Subagents
The ten files in .claude/agents/ are Claude Code project subagents. Each is a
Markdown file with YAML frontmatter (name, description, tools, model) and a
body that is the subagent's full system prompt. Each enforces exactly one quality
dimension and nothing else, and each carries the same accuracy doctrine: confirm
every finding against the source, actively disprove false positives, cross-reference
every consumer before changing anything, and never reduce functionality to satisfy a
rule.
The fleet
| Subagent | Dimension |
|---|---|
security-maintainer |
Authorization on every route, private-resource gating, read-only file guards, input validation, XSS controls. |
audit-maintainer |
Every state-changing action emits an audit record; denials and failures carry the right result; the event catalogue is complete. |
devii-maintainer |
The Devii assistant can do everything a role allows over REST, and exposes only the tools that role may call. |
docs-maintainer |
CLAUDE.md, AGENTS.md, README, the API docs, and the prose pages agree with the source, with correct role gating. |
fanout-maintainer |
A feature is wired through every layer: form model, output schema, response, Devii tool, API docs, SEO, docs. |
dry-maintainer |
Shared helpers are reused instead of duplicated logic re-implemented. |
style-maintainer |
Naming, headers, typing, and formatting follow the project rules, applied with context so intentional patterns are left alone. |
frontend-maintainer |
ES6 modules, custom components, and CSS follow the project's strict structure. |
seo-maintainer |
Public pages carry the right search metadata and appear in the sitemap. |
test-maintainer |
Routes without an integration test get one written. It never runs the suite. |
Modes
Each subagent operates in one of two modes, chosen by how it is invoked.
- Report (default): record findings only, change nothing.
- Fix: apply a minimal root-cause fix per the doctrine, then run the project
validator (hawk .) and confirm the build still imports.
A subagent never runs the test suite and never performs a git write.
Invoking a subagent
Mention the subagent by its name, or let Claude delegate to it automatically based
on its description:
@agent-security-maintainer check every POST in routers/ has a guard
@agent-docs-maintainer report doc drift in the bugs router (report only)
Each subagent's model is set to inherit, so it runs on the model the session is
using. To run the whole fleet at once, use the
/maintenance command or the /fleet workflow.