Development record
Every documentation surface is rendered from its one home
Press Release
A product thinker never keeps two copies of what their product is. abcd renders the README and the docs pages from the one home of each claim: positioning, users and roles from the brief, how-to guides and tutorials from the how, principles from the principles, and install, requirements, first run, citation, badges, licence and links from the repository's own facts. Each rendered section names the home it comes from, so a reader who wants to change it knows where. The derived sections render now; the brief-sourced sections become compulsory in every abcd-managed repository once the brief has an editing surface, because from then the owner's own words live in the brief and a render has nothing of theirs to overwrite.
Why This Matters
Written by the agent on 2026-11-01 from the product thinker's rulings that day (dcn-2611011248594647, dcn-2611011551216958), restated; the planning interview confirms or rewrites it.
A hand-written README is a second home for what the brief already says, and a
second home drifts. abcd's own README shows it: the body beneath its lockup
still describes the product as "a host-agnostic configuration layer for
intent-driven development", the wording the conventions file also carries,
while the brief's identity block now names it differently. Two committed homes
say two things. The principle that every claim has one home
(every-claim-has-one-home) already covers docs/; nothing yet enforces it
on the README or a docs page, and the principle gains its documentation bound
when this intent ships, not before (the record lands with the act).
The product thinker's rulings on 2026-11-01, restated:
- No documentation surface holds prose of its own. What people write lives in the design record (the brief, with its principles) or the how (itd-2611011239589823: how-to guides, and optionally tutorials, exercises and video), and every documentation surface is rendered from its one home, section by section as abcd comes to render it. What abcd's README holds by hand today is positioning, its users and their roles, all of which belong in the brief.
- The derived sections render now. Install, requirements and first run
derive from the release and the repository's facts, the citation from
CITATION.cff, and the badges, licence line, links and contents are the parts setup already derives (itd-2610031348087517). None of these waits on anything. - The brief-sourced sections are compulsory once the brief has an editing surface. From then the owner's own words are written in the brief, so a render replaces nothing of theirs. Until then a repository's hand-written prose stays where it is.
- Every documentation surface, not the README alone. The scope is the
README and every page under
docs/: the explanation pages (who the product is for, roles, artefacts, process) render from the brief, the how-to and tutorial pages from the how, and the reference pages from their sources, as the CLI reference already does. Left hand-written, an explanation page drifts the way the README did. - Not everything goes into the brief. The brief is the why and the what; how-to guides and tutorials belong in the how, and reference facts derive from the release and the code, so the brief does not become a user manual.
- The README's opening is written for a stranger. Brief prose is written for the record's readers; the README is the front door for someone who has never heard of the product, and the product thinker writes the text it opens with. adr-53 expresses audience by placement, never by a prose register, so the agent proposes placing that text as a page of the brief's product chapter of its own, rather than writing it in a second register inside another chapter.
Proposed by the agent, not ruled: facts inside an authored page are filled in, never typed. A version, a command name or a flag in an explanation or a guide comes from the release rather than being typed, and is never written as a version into a committed page (adr-19; itd-2610031348087517's decision 4 applied the same to the README). Where it is filled in is open: the product thinker ruled on 2026-10-15 that a managed repository's docs are read on the forge and its site renders no docs (itd-2610091010348892), so there is no site build to fill anything in for most repositories.
The rule meets two standing constraints, and holds both:
- The owner's space is theirs (
the-users-directory-is-theirs, adr-2609091248200336). A render is run by the person, or by a verb the person runs, never on a schedule or a session start; it rewrites only the sections abcd renders, section by section, holding any section a hand edit is still waiting in (adr-2611011153058085); and committing the result stays the person's act, as itd-2610031348087517's scope condition already says for the setup parts (the space rule now held by adr-2610031751065746). - No autonomous rewrite. itd-102 settled that re-rendering from the identity block is always a proposed diff a person adopts. Whether a brief-sourced section is rendered in place or held to its home by a proposed diff is the open question below; if it settles on rendering in place, this intent reverses that settlement of itd-102 and says so.
Links to the record, typed:
- refines itd-102: the identity block's one home and drift check, widened from the lockup lines to whole documentation surfaces; a candidate reversal of its no-autonomous-rewrite settlement, decided by the open question.
- reverses, in part, itd-2610031348087517: that intent never touches the owner's own words and leaves a hand-edited part as it is. Here the owner's words move into the brief or the how, and each section renders from there. Flagged for the product thinker to confirm as a reversal; not auto-classified.
- The reverse path, catching hand-written text and offering it back to its source, is its own intent (itd-2611011151512956), and the rule that a render never discards hand-written text unasked is adr-2611011153058085 (proposed).
SOTA
.abcd/development/research/notes/2026-11-01-documentation-sources-sota.md
(review 1): explanation authored in the design record and a chosen part
rendered; reference generated from the command tree; how-to and tutorial
pages authored with their steps run as tests; the README composed from stable
authored text and generated regions; every generated region marked; hand
edits caught by regenerating and comparing.
Mechanism
Prompted (the claim-recording gradient): why the authors expect this to work, as a falsifiable "we expect X because Y" — not the outcome restated. Replace this line with the claim, or with the exact token
None stated.alone on its line to record the claim as considered and declined.
Scope Conditions
Required (the claim-recording gradient): the population, platform, scale, or assumptions this claim holds under, one per top-level bullet —
abcd intent planstamps each with a persistent identity. Replace this line with those bullets, or with the exact tokenNone stated.alone on its line.
Acceptance Criteria
Required (the itd-1 discipline): add at least one Given-When-Then bullet describing the verifiable bar for "shipped" before this draft can be planned.
Open Questions
- Rendered or held. Whether a brief-sourced section is generated in place between markers, as the setup parts are, or held to its home by a check that proposes the diff, as the identity block is; the first reverses itd-102's no-autonomous-rewrite settlement.
- The section-to-home map. Which README and docs section renders from which home, recorded where (the docs and identity surface pages of the brief), and how a repository with a thinner brief maps the same sections.
- Where the how lives. Authored in place under
docs/with facts filled in at build, or kept under the development record and rendered intodocs/; the same question stands in itd-2611011239589823. - The front-door text's place. Whether the text the README opens with is its own page of the brief's product chapter (adr-53), or sits beside the identity block.
- Featured principles. The README shows a few principles, not all; how a principle is marked as one the front page shows.
- The editing surface it waits on. Which brief-editing work counts as "the brief has an editing surface" for the compulsory step: live brief sessions, itd-61's reconciliation of a human edit, or itd-90's interview.
- Whether "render now" keeps the setup question. itd-2610031348087517 asks the owner at setup whether abcd keeps parts of the README current; whether the derived sections stay behind that question or render without it, which would reverse that question too.
- Where facts are filled in. For docs a managed repository reads on the forge with no site build (itd-2610091010348892): a live badge, a generated region committed by a verb the person runs, or no version at all.
- The terms. "The how", "documentation surface" and "authored surface" have no glossary entry, and the glossary's "rendered surface" means a public text held to the identity block; the terms get their entries, or the existing one widens, before planning.
Typed Links
- built on by and refined by
itd-2611011239589823(the how): Its how-to and tutorial pages come from that surface. - built on by
itd-2611011151512956(the way back): Catches a hand edit to a page this intent renders and offers it back to its source.
Audit Notes
Empty. Populated by intent-auditor when intent moves to shipped/.
Frontmatter
| id | itd-2611011151475128 |
|---|---|
| type | intent |
| lifecycle | drafts |
| severity | minor |
.abcd/development/intents/drafts/itd-2611011151475128-a-product-thinker-never-keeps-two-copies.md
open on GitHub ↗ · commit history ↗
References5
- adr-19The plugin version lives ONLY in the released artifact; the working tree stays unversioned, and the version location is chosen by a schema-validated decision, not hard-codedrelated
- adr-53Audience is expressed by placement, never by a prose registerrelated
- adr-2610031751065746The worktree store lives under the renamed home, `~/.abcd.noindex/worktrees/<root-sha>/<name>/`, and the rest of its rule is unchangedrelated
- adr-2610142147242544abcd's record is built onto its own GitHub Pages, and abcdev.app becomes abcd's documentation siterelated
- itd-102**Your repo says the same thing about itself everywhere — because abcd asked you once and holds every surface to it.** A project's positioning fragments silently: the README strapline, the package or plugin manifest description, and the agent conventions file are each edited at different moments, and soon three surfaces tell three stories about what the project is. When abcd prepares a repo it interviews the user for the project's identity — title, tagline, and a short elevator pitch — and records the answers in one canonical home in the development record. Every surface rendering derives from that home, and a deterministic positioning check compares the surfaces against it on every audit: a mismatch is highlighted with the exact drifted line, and the fix is either re-render from the record or a deliberate, recorded identity change — never a silent extra variant, and never a silent rewrite by abcd. "I changed my tagline once, in one place, and abcd chased it everywhere else," said Alice, a solo founder. "When a stray edit crept into the README, the next audit pointed at the exact line instead of letting the drift settle in."builds on
Referenced by3
- adr-2611011153058085A re-render never discards hand-written text unaskedrelated
- itd-2611011151512956Hand-written text in a rendered page is caught and offered back to its sourcebuilt on by
- itd-2611011239589823A project's how-to guides and learning material stay current with the productbuilt on by
mentions9
- adr-2609091248200336A tool never creates directories in user-owned project space; the store's location binds now and its verbs bind when the store ships
- dcn-26110112485946472026-11-01 — ADOPTED (product thinker, 2026-11-01): abcd-managed repositories move to documentation that holds no prose of its own. What people write lives in the design record (the brief, what the product is and why, its users and roles, with its principles) or the how (how-to guides, and optionally tutorials, exercises and video), and everything else is generated from code and release facts. The rule binds a page section by section as abcd comes to render it; until then a repository's hand-written prose stays where it is. A hand edit to a rendered page is caught and offered back to its source rather than overwritten. Grounds: every-claim-has-one-home already rules a second copy out for the record, and abcd's own README drifted from the brief it restates; two state-of-the-art reviews (2026-11-01) supported explanation in the design record, generated reference, tested how-to and tutorial pages, and one site with separate owners. Recorded in itd-2611011151475128, itd-2611011151512956, itd-2611011239589823 and adr-2611011153058085 (proposed). Reverse by a later decision that names this one; the drafts carry the open questions (rendered or held, where the how lives) that planning settles.
- dcn-26110115512169582026-11-01 — ADOPTED (product thinker, 2026-11-01), refining dcn-2611011248594647 and setting the stages of its section-by-section rule: (1) the sections derived from the repository's facts (install, requirements, first run, citation, badges, licence, links, contents) render now; (2) the brief-sourced sections become compulsory in abcd-managed repositories once the brief has an editing surface, because from then the owner's words live in the brief; (3) the text the README opens with is written by the product thinker; (4) the scope is the README and every page under docs/; (5) the how is optional per repository and, where it exists, holds how-to guides owned by the product team and learning material (tutorials, exercises, video) that educators and trainers may own, in the same repository, site and toolchain, kept current by tests; (6) every change that alters behaviour records a docs-impact state (needed, done, not needed) and the release cut refuses while a needed update is open, binding once the intent that carries it ships (it is open in itd-2611011239589823 where the state is recorded and which changes count); (7) editing for non-engineers starts with the forge's own editor and previews. Grounds: the product thinker's rulings in the planning conversation of 2026-11-01 and their confirmation of the routing table that day. Whether the reversal of itd-2610031348087517 stands is confirmed at the intents' planning interview. Reverse by a later decision naming this one.
- dcn-26110207201052062026-11-02 — abcd's new website follows the release cut of 2026-11-02 rather than preceding it. The README renders from the brief from its first day, so the brief-sourcing intents itd-2611011151475128, itd-2611011151512956 and itd-2611011239589823 are planned and built first; they carry no acceptance criteria, mechanism or scope yet, and the first holds nine open questions, so each needs the person's planning interview before an automatic plan can run. Pages step 2 of itd-2610142145236613 is built and held unarmed, landing together with the README work and the held identity draft, so the front page and the record's address change once.
- itd-1Every Intent Has Acceptance Criteria; Every Audit Verifies Them
- itd-61A Human Edit To The Brief Cannot Commit Until Its Implied Intents And Principles Are Drawn Out And Reconciled
- itd-90The Product Thinker Is Handed Exactly The Questions Only They Can Answer — And Nothing Else
- itd-2610031348087517Setup asks whether abcd keeps parts of the README current, and which
- itd-2610091010348892An opted-in project's record is built at each release onto its own GitHub Pages