Agentry
Menu

agentry/drafter

built-inv1.15.4

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

knowledge: ships 1

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 declarationTool(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.4 --target=agents-md
git clone https://secureagentry.net/agentry/drafter.git
git clone ssh://git@git.secureagentry.net/agentry/drafter.git

agents-md is not this agent's default; the flag is required.

README.md

The Drafter

The Drafter is the QuickAgent behind Describe it in the Agentry Builder. You describe a task in plain words, and it drafts a QuickAgent for that task: a manifest (agent.yaml), an instruction file (AGENT.md) and short notes on what it chose and why. It publishes nothing. You read the draft and decide whether to submit it, and a submission is scanned like any other release.

This is the package that runs

The Drafter is built into the Agentry CLI and the desktop app, and it runs from there: on your computer when you run agentry draft, and on an Agentry sandbox host when you use Describe it on the site or in Agentry. This release has the same bytes. The registry built its archive from the package the CLI carries, and the archive's digest is the one the CLI reports. Run agentry builtins to print it and compare it with the digest on this page.

Installing this release does not give you the Drafter. The application runs the Drafter as a built-in, with the tools listed below. If you install this release, it runs as an ordinary QuickAgent with only what its manifest declares.

What it is given beyond its manifest

The manifest declares no network, no files and no commands. When Agentry runs the Drafter, it grants three tools that no other QuickAgent can have:

  • registry_search: searches Agentry's published QuickAgents, reads one QuickAgent's manifest, and reads the registry's vulnerability check of an exact MCP server version.
  • web_search: searches the web. A draft has this tool only when a search provider is configured.
  • web_read: reads one public web page as text.

AI Review reads every search result, page and registry answer before the Drafter's model does. Anything it flags, or could not scan, is withheld from the model, and the draft's notes list what was withheld. AI Review also reads the description before the run starts and checks the finished draft.

When you give a draft your knowledge packs, it also has the three knowledge tools every run with a pack has (knowledge_list, knowledge_search, knowledge_read). It reads the packs before the web, and never ships them. Nothing of a pack reaches its model unscanned: a pack Agentry scanned is read as that scan left it, and any other pack is scanned by AI Review before the draft starts. What a scan flagged is withheld, and the notes name it.

Its drafting guide

The Drafter ships a knowledge pack of its own, drafting-guide, under knowledge/drafting-guide/ in this release, declared in knowledge.ships. It covers how a QuickAgent run works and what a declared MCP server meets in the runner: a musl Node runtime and a glibc Python one, no install scripts, no launch arguments, stdio only, none of the run's files, and only port 443 to its declared hosts. It also has a checklist for a server before it is pinned, and two lists of servers: Runs here, the servers a survey saw install, start and list their tools in the runner, and Does not run here, the ones it saw fail, each with the reason, the runtime and the date. The lists are one thing for the Drafter to look at, not a judgement of any server's safety or quality (knowledge/drafting-guide/sources/servers.yaml; the survey is scripts/mcp-server-survey in the CLI's repository).

Since 1.8.2 the guide also holds the reference the Drafter's instruction used to carry on every turn: every field of the manifest and the rules' bounds, the commands every run provides, the network and the fetch tool, the intake and the guide, run modes, a person's knowledge at run time, how to write a QuickAgent's instructions, and three worked drafts. AGENT.md keeps the role, the rules for deciding, the steps, each naming the pages it needs, and the shape of the answer. The checks after a draft hold every rule they check, whatever the Drafter read.

Since 1.8.3 the checks after a draft hold each MCP server pin to the two lists. A pin on Does not run here, or a server whose own direct dependencies (from the package metadata the check of its version already reads) include a package the list names, gets the one repair turn, like any rule the draft breaks. An npm install script is noted for you to check before a run, not refused. The notes say what admitted each server the draft keeps: its Runs here entry, or the Drafter's judgement with the guide for a server on neither list. The lists stay soft: nothing outside the Drafter reads them, and a server on neither list may be pinned. The check sends nothing new off your computer.

Since 1.9.0 the guide teaches how a QuickAgent takes its files: every input is read in its text or as uploaded, the runner unpacks archives, and the manifest's inputs block says what kinds of file to bring and which view to read first. A draft that takes files declares the block, writes guide.files to match, and declares no command to read its inputs. The checks after a draft correct the block's slips (a kind in the singular, any beside named kinds, the block under capabilities) and send any archive reader to the repair turn. A release that declares the block needs CLI v0.6.73 or later to run; an older CLI refuses its manifest.

Since 1.10.0 the Drafter marks each key a draft declares: optional (capabilities.optionalSecrets) when the QuickAgent still does its job without it, required when it cannot. Its instructions say what to do when an optional key was not given, and a secret question's required matches its key. The Builders on the site and in the desktop show the marking, and the author can change it. A release that marks a key optional needs CLI v0.6.66 or later to run; an older CLI refuses its manifest.

Since 1.11.0 the Drafter may declare a vendor's own remote MCP server by its address, and prefers one to a package for the same service. A remote server signs in by OAuth, by one key sent as a bearer token, or not at all, and an OAuth one asks whoever runs the QuickAgent to sign in at the vendor at the first run of each version. The draft's notes say so, and say whose OAuth client the vendor needs. A package server signs in only with a sign-in its guide lists as seen working, copied exactly: the checks after a draft send any other oauth block to the repair turn. The guide's servers/sign-ins.md lists the vendors' servers and the sign-ins. A release with a remote server needs CLI v0.6.69 or later to run, one signed in to by OAuth CLI v0.6.70, and a package's sign-in CLI v0.6.71; an older CLI refuses its manifest.

Since 1.12.0 the Drafter knows the tools every run has beyond its manifest: the scratch folder, and export_pdf, the only way a run makes a PDF. A QuickAgent whose result is a PDF writes it in Markdown with write_report and turns it into the PDF with export_pdf, laid out in the report theme the person chose. The checks after a draft send instructions that have the run write a PDF with write_report, or leave the person to print a page to PDF, to the repair turn. A release whose instructions call export_pdf needs CLI v0.6.82 or later to run. 1.12.1 teaches the two paths: write_report's path is inside reports/ (resume.md), and export_pdf's source names it from the output folder (reports/resume.md), so a draft no longer writes into reports/reports/.

Since 1.13.0 the Drafter knows input sources. It asks for a codebase with a repository intake question and for a file at a web address with a url question, which the runner fetches before the run, and never advises a .zip for a repository or declares egress or a key to clone one. It knows that a tool result comes a page at a time, that a large fetch body is saved in the scratch folder or kept whole with saveTo, and that scratch_read and scratch_search read it. A release that asks a repository question needs CLI v0.6.97 or later, a url question v0.6.98 or later, and v0.6.104 or later to run either hosted.

Since 1.14.0 the Drafter knows target hosts. For a task on a machine the person names (a server to set up, manage or diagnose) it asks for the machine with an intake question of type host and lists its id in capabilities.targetHosts; it declares no SSH client, no egress and no key for the machine, writes the instructions for the host tools and the shell, and says in the notes that such a QuickAgent runs only on the person's computer. The checks after a draft send an exec that names ssh, scp, sftp or rsync to the repair turn with a line that points to a target host. A release that declares a target host needs CLI v0.6.105 or later to run, v0.6.106 for the shell and v0.6.109 for a host on port 22; it does not run In Agentry.

Since 1.15.0 the Drafter knows the browser. For a task that tests a website the person names as a person sees it (pages, forms, links, a phone's width) it asks for the site with an intake question of type url and lists its id in capabilities.browser.sites, adds hosts only for what the site's pages load, keeps the site scope, and declares a key the browser types into a sign-in form in capabilities.secrets and capabilities.browser.secrets, never with scope: public. It writes the instructions for the browser tools, with screenshots saved by bare file names into reports/browser/, and brings no browser of its own: the checks after a draft send an exec that names a browser or a driver (Chromium, Chrome, Firefox, Playwright, Puppeteer, Selenium, a WebDriver), or an MCP server that is one, to the repair turn with a line that points to the browser line. Since 1.15.2 that includes a hosted browser service (Browserless, Browserbase, browser-use, Hyperbrowser, Steel), by its package or by its remote address. A release that declares a browser needs CLI v0.6.117 or later, or Agentry Desktop 0.6.111; In Agentry it runs since CLI v0.6.118 and opens public sites only.

Since 1.15.2 the Drafter prefers what needs no key and no account: the run's own tools, the browser the runner gives, fetch to an API that answers without a key, a server that needs none. It declares a server or an API that needs a key, an account or a paid plan only when nothing key-free does the task, and the notes then say why.

Since 1.15.4 the Drafter knows deliverables. A QuickAgent whose result is a file tells its run to mark that file with deliverable: true and a one-line title on the write_report (or export_pdf) call that writes it, and to leave notes and drafts unmarked, so the person finds the result among a run's files.

The runner attaches the guide to every run of the Drafter, through the same knowledge tools, the repair turn included. It is part of this release, so the registry scans it with the published release. It is not one of your packs and does not count against a draft's limit of packs, but a pack of yours with the same name is refused. An install of this release from the registry is an ordinary QuickAgent and carries the pack like any release that ships one.

What it returns

AGENT.md and notes.md, written with write_report, and a final answer in the shape output.schema.json describes: the manifest's fields, the published QuickAgents that already do the job, and the questions the draft leaves open. The application turns them into the draft you review.

Agentry uses only strictly necessary cookies — they sign you in and keep the site secure. Nothing here tracks you, and there are no advertising or analytics cookies. Privacy policy