ADR 0100: The documentation tree is the agent-maintained map, not the project's own docs
Amendments.
- Vocabulary: current config uses
[map](formerly[docs]).- ADR 0131 — no adoption offer: the setup consent question offering to point
[map].dirat existing docs is retired — setup reassures that an existingdocs/folder stays untouched and never offers adoption. Pointing the map at real documentation remains a deliberate config act; it is simply never suggested.- ADR 0195 — placement: the fresh default is now
discern/map/; the map identity and consent reasoning are unchanged.
Status: accepted; builds on ADR 0099; extends ADR 0080
Context
§Two different artifacts have shared the name "docs", and discern has never formally distinguished them:
- The project's documentation — human-authored, structured to the team's taste, possibly public-facing or auto-published from the repo. It belongs entirely to the user.
- The tree discern maintains — scaffolded by setup, structured by discern's discipline (a markdown tree, ADRs, scope manifests), kept current by gate hints, its staleness treated as a defect. In practice it is written almost entirely by agents: it records what an agent can infer about the codebase, which is not the same thing as what a human would choose to write about it.
The conflation is dangerous in exactly one direction. [map].dir has defaulted to docs/ — the conventional home of artifact 1 — while discern's guidance instructs agents to keep "the docs" current after a green done run. In a brownfield repo whose docs/ is real, published documentation, that is an instruction to restructure someone's website. Setup has papered over the collision with an all-or-nothing skeleton skip and an advisory docs/discern/ suggestion — advisory patches on a structural problem, and everything merely advised degrades.
Meanwhile this tree's actual audience was never written down. The discern.toml template gestures at it ("conceptually distinct from human-curated project docs"), and discern's own tree — written ~99% by agents — demonstrates it, but no doc states it.
Decision
§- The documentation tree discern maintains is the map: an agent-first artifact. Agents infer it, write it, and read it; humans read it to audit what their agents actually understand about the codebase. Its structure, format (markdown), and upkeep discipline are discern's to prescribe — that is what makes it useful as an instrument. A wrong or shallow map is itself a finding about the agent's understanding.
- Its default home is inside the namespace:
discern/docs/(per ADR 0099). The project's own documentation is out of discern's reach by construction: discern never writes to a path it wasn't defaulted or pointed to, so the restructure-someone's-website failure mode becomes impossible rather than warned against. - Pointing
[map].dirat real documentation is deliberate consent to apply the map discipline there — the right choice for some projects (discern's own repo does exactly this), and always the user's explicit act, offered as a question during setup rather than silently defaulted. - The map is eager, and never empty. Scaffolding-then-filling the map is part of
setup begin, not a lazy afterthought: an install without a map is the product without its point, and laziness was only ever a hedge against imposing on the user's tree — a hedge the namespace makes unnecessary. A skeleton must not land without the authoring pass that fills it; a blank map is worse than none. TODO.mdgets the same classification. It is discern's deferred-work ledger — written and read by agents in discern's workflow, not the team's backlog (that is their tracker). It lives atdiscern/TODO.mdby default, with its own config key for teams who want it elsewhere.
Consequences
§- The two-docs distinction enters the glossary and orientation docs; guidance and skill prose say "the map" where they mean discern's tree, and never direct agents at documentation the user didn't point discern to.
- Setup simplifies: the existing-docs conflict detection and
docs/discern/suggestion machinery reduce to one consent question ("should discern manage your existing docs, or keep its map in its own folder?"). - The map becomes honest positioning: a living, agent-authored read of the codebase the user can audit — and the claim may appear in public docs only once the behaviour ships.
- Projects that want discern's discipline over their real docs still get it, by pointing — nothing is lost relative to today except the accident.
Alternatives considered
§- Keep defaulting to
docs/and warn. Rejected: the failure mode is an agent restructuring published documentation; a warning is advice, and advice degrades. Structure or nothing. - Detect existing docs and choose a default conditionally. Rejected: a default that differs per repo is not a default; agents and docs could no longer state where the map lives, and support would carry the ambiguity forever.
- Keep the map lazy. Rejected: every reason for laziness was collision avoidance, which the namespace solves; what laziness actually produced was installs whose central artifact might never appear.