Development record
Audience is expressed by placement, never by a prose register
Context
The repository has always behaved as if audience is a property of where
text lives, not how it is written: the three-tier layout keeps the
agent-heavy development record apart from user-facing docs/; the "JSON
internal, MD render" invariant assigns machine consumers to machine surfaces
(--json payloads, the generated CLI reference); and the rules loader
injects agent guidance as data, not as documentation prose. But no record
ratified that position, and on 2026-08-28 the question became live: a
proposal to extend the writing-style guide with a two-register audience
model — product prose written for humans, technical prose assumed to be
consumed mostly by AI agents.
The prefer-sota sequence ran in full: an independent fit-challenge over the repo's record, then an independent SOTA research pass, recorded in the dated research note 2026-08-28-docs-audience-style-sota. Both converged. The field's evidence is that well-structured human documentation serves agents as-is, that the adopted split is by artifact class (docs for everyone; dedicated instruction files for agents), and that the strongest dedicated-machine-surface experiment (llms.txt) failed on adoption data. The fit-challenge found a register axis would duplicate the placement boundary the tier layout already owns, and would open a per-page "agent-register" exemption no path-scoped lint rule can see.
Decision
Audience is expressed by placement and machine surfaces, never by a prose register:
docs/is written for human readers, in one register. There are no parallel agent-facing versions of documentation pages.- The machine audience is served by machine surfaces:
--jsonpayloads, the generated CLI reference, the AGENTS.md router, and the rules loader. When a page seems to need an agent-specific rendering, the remedy is a machine surface, not restyled prose. - A page's density is set by its Diátaxis type, not by an audience guess. A page too dense for its reader is mis-typed or mis-placed, never re-registered.
- No rule in the writing-style guide may be conditioned on a page's
supposed audience; the guide binds
docs/andREADME.mduniformly.
Alternatives Considered
- Two prose registers inside
docs/. Rejected: it bifurcates maintenance, contradicts thedocs/charter ("user-facing only"), has no SOTA support, and silently weakens every path-scoped machine-enforced rule by inviting register-based exemptions. - A dedicated machine-readable docs surface (llms.txt class). Rejected on adoption evidence (~10% adoption, ~97% zero traffic, no provider commitment). Revisit only if a major consumer commits to reading it; the repo's own consumers already read AGENTS.md and the rules loader.
- Keep the position unratified. Rejected: the question recurs (recurrence-is-signal), and an unrecorded position invites relitigating it page by page.
Consequences
The writing-style guide gains an Audience section citing this ADR, so the reference page describes a ratified fact rather than an assumption. Future "write this for agents" requests route to machine surfaces. Reversing this position is a new ADR that supersedes this one.
Frontmatter
| id | adr-53 |
|---|---|
| type | adr |
| status | accepted |
| date | 2026-08-28 |
.abcd/development/decisions/adrs/0053-audience-by-placement.md
open on GitHub ↗ · commit history ↗
References2
- adr-43Contributions are inbound = outbound MIT, and the trust boundary is the organisation's role ladderrelated
- itd-141docs-lint enforces the writing style guide's machine-checkable rules: an em dash inside a list item, a lower-case letter opening a list lead-in after its colon, and a capital letter after a semicolon are flagged as findings, with code spans and fenced blocks masked, so the canonical style guide's machine-enforceable subset is a shipped gate rather than a review habit — and the guide marks a rule machine-enforced only once its lint shipsrelated
Referenced by3
- adr-54Punctuation enforcement stays mechanical-onlyrelated
- adr-2610030814023326AGENTS.md is the one conventions file abcd writes; it never writes a host-specific copyrelated
- itd-2611011151475128Every documentation surface is rendered from its one homerelated
mentions2
- dcn-26082800000000012026-08-28 — Punctuation enforcement stays mechanical-only (adr-54): the
- itd-2610030814013772abcd's projects keep one conventions file, AGENTS.md, and Claude Code reads it directly