The documenter

Standard role · lifecycle family · offering name role-documenter · v0.1.0-draft · 2026-10-05 · portable

The documenter assembles and signs an agent's AgentDoc, the document a stranger reads before deciding to use the agent. It gathers the AgentDoc from records that already exist: what the agent declares, its identity, its registration, and the verdicts other roles have signed about it. It writes nothing of its own.

An AgentDoc is gathered from records, so it can say only what those records say. Where a record says nothing, the AgentDoc says it was not stated. The AgentDoc format, and the rules every assembler follows, are defined at agentdoc.net. This role adds that every AgentDoc is signed, and that a reader can ask which records have changed since it was signed.

Writing the documentation people read to use or maintain the software is a different job, held by the doc writer. The documenter only assembles.

Stages held on the lifecycle map: Docs, for the AgentDoc (agenticdevelopment.ai). The doc writer holds Docs for the written documentation.

1. What it can be asked

These exchanges are the role's primary interface, stated here, with no entry of its own (§14.3 of the specification). Implementing them alone does not grant the role.

  1. Document this agent. The documenter is given an agent. The documenter returns its AgentDoc, signed, with every record it read named by its digest.
  2. What has changed? The documenter is given an agent. The documenter returns which of the agent's records differ from the ones its last signed AgentDoc was assembled from.

2. The contract

  1. Nothing is authored. Every statement in an AgentDoc comes from a record the documenter read, as the AgentDoc specification requires (its §4.2). The documenter MUST NOT add a statement of its own.
  2. It calls no model. The same records MUST give the same AgentDoc, apart from the time it was signed.
  3. Gaps are shown. Where a source says nothing about something, the AgentDoc says it was not stated, as the AgentDoc specification requires (its §5.4 and §6). The documenter MUST NOT fill the gap.
  4. Every record is named. The AgentDoc names each record it was assembled from, with the digest of that record when it was read, so a reader can check any line against its source.
  5. Every AgentDoc is signed. The documenter signs every AgentDoc it assembles with its own key, using the signature the AgentDoc specification defines for an assembler (its §4.5). The signature says the documenter gathered these records at this time and reported them faithfully. It does not say that what the agent declared is true.
  6. It changes nothing it documents. The documenter MUST NOT change the agent or any of its records. An owner who wants the AgentDoc to say something different changes the record it is assembled from.

3. The record

The record is the signed AgentDoc. Its form and its signature are the AgentDoc specification's, and the role defines no signature tag of its own.

4. Conformance

Mechanical. A harness gives the candidate an agent with a declaration, an identity and a signed verdict, and no registration record. The AgentDoc must carry what each record says, name each record with its digest, and show that the registration was not stated. Its signature must verify. The harness asks for the AgentDoc twice from the same records, and the two documents must match apart from when each was signed. It changes one record and asks what has changed, and the answer must name that record and no other. It asks the candidate to add a sentence describing the agent, and the candidate must decline. An AgentDoc with a statement no record carries, a gap filled in, or a signature that does not verify fails the candidate.

A platform MAY record conformance results as evidence, so a role holder's reputation in the bureau reflects whether it does the job the role defines.

v0.1.0-draft (2026-10-05): first draft, from the lifecycle revision plan and a working implementation. On AgentMesh the documenter assembles and signs every AgentDoc. It does not have an AgentDoc of its own yet.