# Prompt templates agent guide
These Markdown files become provider-visible instructions, not user-facing help pages.
## Where to look
| `system.md` | `../src/agent/prompt.rs`: main behavior |
| `tools.md` | `../src/agent/prompt.rs`: bounded tool-use guidance |
| `skills.md` | `../src/agent/prompt.rs`: skill availability |
| `subagents.md` | `../src/subagents/profiles.rs`: child-agent availability |
| `compact.md` | `../src/agent/prompt.rs`: continuation summary template |
| `summarizer.md` | Compiled into `../src/summarizer.rs`: background outcome summaries |
| `view_image_system.md` | `../src/tools/view_image.rs`: internal image request |
| `tools/*.md` | `../src/tools/descriptions.rs`: built-in tool descriptions |
## Local contracts
- Keep `{{SKILLS_LIST}}` and `{{LIST_SUBAGENTS}}` aligned with their respective runtime substitutions. Availability wrappers are separate from individual tool descriptions.
- `tools.md` is usage guidance, not a generated schema inventory. Do not duplicate full schemas in wrappers or add local display state to provider text.
- Exact tool names, arguments, limits, and routing advice must match `../src/tools/capability.rs`, `../src/tools/args.rs`, `../src/tools/exa.rs`, and dispatch behavior.
- Public research and direct URL fetching use `web` search/open; `read` handles local/internal resources. Browser interaction and accessibility-tree extraction are not built-ins.
- Preserve compaction headings and continuation requirements: relevant decisions, evidence, loaded skills, blockers, and next actions, without whole skill bodies or reinjected context.
- `summarizer.md` is separate from compaction: activity is untrusted data, no tools/actions are allowed, and output is a JSON array of zero to two outcome strings. Preserve exact child source attribution and never report planned work as completed.
- Keep vision instructions separate from ordinary agent templates; they serve an internal image request.