dokkaiv0.1.0
Routines

Bug hunt

A free-text investigation over the whole project via a bounded agentic tool loop.

Ollama-native only in this release. The agentic tool-calling loop uses Ollama's native tools=/tool_calls mechanism. If the resolved provider isn't ollama, the launch fails with 400.

kind: bughunt runs a free-text investigation over the whole ingested project (not a diff): a bounded in-process agentic loop (≤12 rounds) gives the model search, grep_project, get_entity, neighbors, get_file and load_skill tools, and the model decides what to look at based on the scope you give it.

bash
curl -X POST localhost:8000/routines/runs \
  -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d '{
    "kind": "bughunt",
    "project": "your-repo",
    "scope": "look for unhandled errors and resource leaks in the ingestion pipeline",
    "path_prefix": "src/services"
  }'

scope is required (422 if omitted). path_prefix restricts reported findings to files under that prefix, but the agent may still read files outside it for context.

Evidence and anchoring

Every raw finding is validated against the project graph/repo before it's stored: a file_path that matches neither a graph node nor a file on disk is dropped as a hallucination. A mechanical read-before-report guard runs after the model's first verdict: if it reported findings without ever calling get_entity or get_file, the run pushes back once before accepting the corrected answer.

Honest quality limitation. Finding quality is bounded by the local model's own code-reading comprehension. Measured with qwen2.5-coder:14b, roughly half of read-verified findings can still misinterpret the code they cite. The evidence trail exists precisely so you can verify a finding against the real code before acting on it — treat bug-hunt output as a lead, not a verdict.