# prompts KNOWLEDGE BASE
## OVERVIEW
Provider-visible prompt templates. Treat as runtime code: changes alter model behavior, tool choice, safety boundaries, and replay semantics.
## STRUCTURE
```text
prompts/
├── system.md # main system prompt template
├── tools.md # tool-list prompt wrapper
├── skills.md # skill discovery/invocation guidance
├── subagents.md # subagent tool/profile prompt section
├── compact.md # session compaction prompt
├── view_image_system.md # tool-internal image inspection prompt
└── tools/ # one markdown description per built-in tool
```
## WHERE TO LOOK
| Main behavior | `system.md` | Global agent contract consumed by prompt builder. |
| Tool guidance wrapper | `tools.md` | Surrounds generated/bundled tool descriptions. |
| Individual tool wording | `tools/*.md` | Must match `ToolCapability::description()` tests. |
| Skills prompt | `skills.md` | How discovered skills are presented and invoked. |
| Subagents prompt | `subagents.md`, `tools/subagents.md` | Child-agent availability, identity, task schema guidance. |
| Compaction | `compact.md` | Session summary generation prompt. |
| Vision tool | `view_image_system.md` | Tool-internal vision request instructions, not user-facing CLI text. |
## CONVENTIONS
- Prompt text is provider-visible. Keep deterministic ordering, explicit constraints, and concise wording.
- Tool descriptions in `prompts/tools/*.md` are source of truth for `ToolCapability::description()` include_str tests.
- If tool schema/limits/aliases change, update matching prompt file and focused tests.
- Keep secrets out of examples. Use placeholders only.
- Preserve exact tool names and argument names unless compatibility tests and README/docs change together.
- Avoid stale claims about unavailable tools, missing files, or unsupported flags.
- Prompt changes need behavior verification by tests that render prompt/tool definitions where practical.
## ANTI-PATTERNS
- Do not add motivational prose, vague safety filler, or examples that contradict schemas.
- Do not mention real API keys, OAuth tokens, account ids, bearer headers, auth codes, or credential bodies.
- Do not document a tool behavior only in prompt text when code/schema/docs disagree.
- Do not duplicate long tool schemas in prose; point to exact constraints that affect model choice.
- Do not edit generated AGENTS guidance here; manual repo memory belongs in `../AGENTS_CUSTOM.MD`.