Goal
P1.5 of docs/coding-harness-roadmap.md (sequenced last — API shape): replace scattered if/else model handling with declarative per-model capabilities, and let tools own their prompt text so the system prompt self-assembles from the active toolset.
Scope
- Extend the providers registry (or a models metadata table) with harness-relevant capabilities: context window, output-truncation budget, parallel-tool support, thinking format/levels, prompt-variant key, native-search gating.
- Tool-owned prompt assembly: optional PromptSnippet/PromptGuidelines on tools; the coding system prompt lists one line per active tool and merges deduped guidelines (pi pattern).
- At least two prompt variants with a guaranteed generic fallback: gemini-3 (terse) and default; snapshot-test rendered prompts (Cline pattern).
Out of scope
XML tool-calling fallback (roadmap P3); per-model pricing.
Implementation notes
Sources: Codex models.json, pi compat structs + promptSnippet, Cline PromptRegistry/variants, Gemini CLI model-family tool schemas. Sequence after #338–#343 so the registry fields are informed by what those needed.
Docs update required
provider-guide.md; design.md; CHANGELOG.
Verification commands
go test ./providers/... ./tools/... ./cmd/glue/ && go vet ./...
Acceptance criteria
Capabilities resolved per model id with sane defaults; system prompt content changes when the toolset changes (snapshot-tested); no behavior change for existing default paths.
Goal
P1.5 of docs/coding-harness-roadmap.md (sequenced last — API shape): replace scattered if/else model handling with declarative per-model capabilities, and let tools own their prompt text so the system prompt self-assembles from the active toolset.
Scope
Out of scope
XML tool-calling fallback (roadmap P3); per-model pricing.
Implementation notes
Sources: Codex models.json, pi compat structs + promptSnippet, Cline PromptRegistry/variants, Gemini CLI model-family tool schemas. Sequence after #338–#343 so the registry fields are informed by what those needed.
Docs update required
provider-guide.md; design.md; CHANGELOG.
Verification commands
go test ./providers/... ./tools/... ./cmd/glue/ && go vet ./...
Acceptance criteria
Capabilities resolved per model id with sane defaults; system prompt content changes when the toolset changes (snapshot-tested); no behavior change for existing default paths.