本文へ移動

Prompts

The research model works best when the target, the purpose and the shape of the output are each stated in one sentence. This page writes in the same vocabulary admission uses (task / scope) and shows what stays clear of the guardrails.

The system turn

JSON
{"role": "system", "content": "You are reviewing code the user owns (scope: owned). Report concrete findings with file:line evidence. Prefer fixes over descriptions. Output English."}

One leading system turn only: role, scope, output language and format. task is the purpose (code-review / vulnerability-triage / remediation), not a phrase in the prompt; the bearer path defaults to code-review.

Passing files

Shell
jq -n --arg m "qwen3.8-flash-next-whitehacker" --rawfile f src/auth.ts \
  '{model:$m,max_tokens:4096,messages:[{role:"user",content:("Review src/auth.ts for auth bypasses.\n\n```ts\n"+$f+"\n```")}]}' \
  | curl -s -X POST https://api.mithril.fund/v1/chat/completions -H "Authorization: Bearer $KOTOBA_API_TOKEN" -H "content-type: application/json" -d @-

Deciding the output shape

What to avoid (guardrails)

Live credential shapes (sk-…, AKIA…, PRIVATE KEY) are masked before the model sees them (redact); use dummy values in tests. A block is 403 guardrail-blocked and leaves a durable receipt.

The offensive band (payload-crafting / c2-tooling) is closed until the contracted rung. Even PoC work inside an authorized engagement is refused on that task — the answer is raising the rung, not rewording the request.