agentry/drafter
Drafts a QuickAgent from a description, searching the registry and the web; AI Review reads every result first.
Built into Agentry. The application runs this package itself; it is published here so you can read how it works. Its README says what Agentry gives it beyond its manifest.
Declared capabilities
Ships knowledge: drafting-guide (211.3 KB), in the release archive under knowledge/<name>/, scanned with the version.
Capabilities are the author's declaration and the basis for policy and scanning. The registry cannot enforce them at run time. Your runtime should.
MCP servers & tools
agentry run serves exactly the tools this contract declares, through a per-run MCP gateway. An undeclared capability is a tool that does not exist at run time.
Tools the runner grants
| Manifest declaration | Tool(s) granted |
|---|---|
| (always) | write_report — reports → the run's output folder |
| (always) | list_inputs, read_input, search_inputs — operator-provided input files, read-only |
MCP servers involved
- QuickAgent Tools — the runner's companion server, served through a per-run Docker MCP Gateway; its tool surface is exactly the table above.
In an embedded install
Installed into an existing coding agent (agentry install), the same contract maps to the host's built-in tools — enforcement there is the host's. Allowed tools: none declared (host defaults apply).
Install
agentry install agentry/drafter@1.15.4git clone https://secureagentry.net/agentry/drafter.gitgit clone ssh://git@git.secureagentry.net/agentry/drafter.gitclaude-skill is this agent's default target, so the flag is not needed.
output.schema.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "A Builder draft, as the Drafter returns it",
"description": "The Drafter's last message. The instructions and the notes may come as the reports AGENT.md and notes.md instead, which the CLI's post-step reads back. The manifest's own rules are checked after the run by that post-step, which writes any problem into draft.json rather than refusing the draft.",
"type": "object",
"required": [
"manifest"
],
"properties": {
"manifest": {
"type": "object",
"description": "The v2 manifest (agent.yaml) as JSON.",
"required": [
"schemaVersion",
"name",
"summary",
"modes"
]
},
"instructions": {
"type": "string",
"minLength": 1,
"maxLength": 60000,
"description": "The instruction file (AGENT.md), in the Drafter's own words; or written as the report AGENT.md."
},
"notes": {
"type": "string",
"maxLength": 20000,
"description": "Markdown for the person: what was found, what was chosen and why; or written as the report notes.md."
},
"matches": {
"type": "array",
"maxItems": 10,
"items": {
"type": "object",
"required": [
"ref",
"why"
],
"properties": {
"ref": {
"type": "string",
"maxLength": 200
},
"why": {
"type": "string",
"maxLength": 1000
}
}
}
},
"sources": {
"type": "array",
"maxItems": 100,
"items": {
"type": "object",
"required": [
"url",
"used"
],
"properties": {
"url": {
"type": "string",
"maxLength": 2048
},
"used": {
"type": "string",
"maxLength": 1000
},
"withheld": {
"type": "boolean"
}
}
}
},
"openQuestions": {
"type": "array",
"maxItems": 30,
"items": {
"type": "string",
"maxLength": 1000
}
}
}
}