Living Documentation
Knowledge sharing that stays correct with the least effort. Distilled from
Cyrille Martraire, Living Documentation: Continuous Knowledge Sharing by
Design (Addison-Wesley, 2019) - cite the book as the canonical source.
The whole method hangs off one maxim: no mechanism, no trust. A durable fact
without something keeping it true is rot-in-waiting, and one stale fact a reader
catches destroys the authority of every other fact in the document.
Use when
- Writing or reviewing an
AGENTS.md / CLAUDE.md, a SKILL.md, an ADR, a
README, or a knowledge-base note.
- Deciding whether a thing is even worth documenting.
- A doc keeps drifting from reality, or feels too long to trust.
- Designing how a project's knowledge should be organised.
- Documenting, reverse-engineering, or rescuing a legacy / inherited codebase
nobody understands.
The codex (sticky maxims)
Lead with these; they are meant to be memorable, not nuanced. Depth is in the
references.
- No mechanism, no trust - every durable fact needs an accuracy check, or it is rot-in-waiting.
- Document only the delta from defaults - say only what a competent reader does not already know.
- Rule of Two - write the rule the second time you correct someone, never speculatively.
- Code shows what and how; documentation exists for why.
- The best documentation never has to be read - it fires at the right moment, or makes the wrong thing impossible.
- Put knowledge on the thing it describes - so it moves, renames, and dies with that thing.
- Date it and let it be - accounts from the past need no upkeep; only current-state docs do.
- Reference volatile -> stable, never the reverse - churn must not cascade upward.
- One document, one message.
- If it is hard to document, fix the design, not the prose.
- Link, don't re-explain - name the canonical source and write only your 1%.
- Derive it; never store the derived thing as a source.
The eight themes (map)
Each is a section of references/principles.md (the
general method); references/agent-docs.md re-applies
the themes per artifact (AGENTS.md / skills / ADRs / KBs), tagging them inline.
- Accuracy & trust - pair every fact with a mechanism; the hierarchy of accuracy; dated accounts need none.
- What earns a place - the default is don't; salience, Rule of Two, sedimentation, link-don't-re-explain, biodegradable docs.
- Where knowledge lives - co-location, evergreen vs volatile, volatile->stable references, perennial naming.
- Rationale & decisions - record the why and the rejected alternatives; commit messages as docs; the architecture codex.
- Enforcement over prose - turn rules into types/linters/tests/hooks; the config is the doc.
- Curation & navigation - one message per doc; highlight the core; sightseeing maps; make it skimmable and searchable.
- Generated / living artifacts - consolidate dispersed facts; living glossary; exploit knowledge already in tools.
- Feedback loops - docs as a design mirror; the cold-newcomer astonishment report; the two-minute test.
How to use this skill
- Authoring / reviewing a doc? Run the relevant checks from
references/rituals.md: the salience pass, the
two-minute test, evergreen/volatile classification, and (for any
hand-maintained fact) "name the mechanism that keeps this true".
- Doc keeps rotting? Reach for theme 1 + 5 + 7: add a reconciliation check,
enforce the rule instead of stating it, or derive the fact from its source.
- Deciding what to capture? Apply theme 2: Rule of Two, sedimentation, and
the three gates (long-lived? many readers? critical?).
- Rescuing a legacy or inherited system (lost specs, author gone)? Read
references/legacy.md: fossilised knowledge,
superimposed / highlighted structure, external annotation registry,
small-scale simulation, comprehension diagnostics, enforced legacy rules,
biodegradable bankruptcy.
Don't duplicate sibling skills
Per maxim 11, point at these rather than restating them:
- mechanical-enforcement - which rules to turn into linters/hooks and how (theme 5).
- refactoring - comprehending, characterising, and migrating the legacy code itself; references/legacy.md covers only the documentation side.
- architecture - domain modelling, ports/adapters, making illegal states unrepresentable (theme 5.3).
- testing / test-coverage - reconciliation tests, contract tests, enforcement gates (themes 1, 5).
- hk - wiring pre-commit hooks and local checks for the mechanisms above.
- writing-skills - how to author a skill (structure, description, checks);
references/agent-docs.md keeps only what living
documentation adds to skills.
1---2name: living-documentation3description: Writes durable, trustworthy documentation that does not rot - for AI agents (AGENTS.md/CLAUDE.md, skills) and humans (ADRs, READMEs, knowledge bases). Distilled from Cyrille Martraire's "Living Documentation". Use when authoring or reviewing an AGENTS.md/CLAUDE.md, writing a skill, writing an ADR or doc, deciding whether something is worth documenting, or when docs keep going stale. Triggers: "living documentation", "is this doc trustworthy", "should this be documented", "why does this doc keep going stale", "doc rot", "documenting a legacy or inherited codebase", "rescuing a codebase nobody understands".4---5
6# Living Documentation
7
8Knowledge sharing that stays correct with the least effort. Distilled from
9Cyrille Martraire, *Living Documentation: Continuous Knowledge Sharing by
10Design* (Addison-Wesley, 2019) - cite the book as the canonical source.
11
12The whole method hangs off one maxim: **no mechanism, no trust.** A durable fact
13without something keeping it true is rot-in-waiting, and one stale fact a reader
14catches destroys the authority of every other fact in the document.
15
16## Use when
17
18- Writing or reviewing an `AGENTS.md` / `CLAUDE.md`, a `SKILL.md`, an ADR, a
19 README, or a knowledge-base note.
20- Deciding whether a thing is even worth documenting.
21- A doc keeps drifting from reality, or feels too long to trust.
22- Designing how a project's knowledge should be organised.
23- Documenting, reverse-engineering, or rescuing a legacy / inherited codebase
24 nobody understands.
25
26## The codex (sticky maxims)
27
28Lead with these; they are meant to be memorable, not nuanced. Depth is in the
29references.
30
311. **No mechanism, no trust** - every durable fact needs an accuracy check, or it is rot-in-waiting.
322. **Document only the delta from defaults** - say only what a competent reader does not already know.
333. **Rule of Two** - write the rule the *second* time you correct someone, never speculatively.
344. **Code shows what and how; documentation exists for *why*.**
355. **The best documentation never has to be read** - it fires at the right moment, or makes the wrong thing impossible.
366. **Put knowledge on the thing it describes** - so it moves, renames, and dies with that thing.
377. **Date it and let it be** - accounts from the past need no upkeep; only current-state docs do.
388. **Reference volatile -> stable, never the reverse** - churn must not cascade upward.
399. **One document, one message.**
4010. **If it is hard to document, fix the design, not the prose.**
4111. **Link, don't re-explain** - name the canonical source and write only your 1%.
4212. **Derive it; never store the derived thing as a source.**
43
44## The eight themes (map)
45
46Each is a section of [references/principles.md](references/principles.md) (the
47general method); [references/agent-docs.md](references/agent-docs.md) re-applies
48the themes per artifact (AGENTS.md / skills / ADRs / KBs), tagging them inline.
49
501. **Accuracy & trust** - pair every fact with a mechanism; the hierarchy of accuracy; dated accounts need none.
512. **What earns a place** - the default is *don't*; salience, Rule of Two, sedimentation, link-don't-re-explain, biodegradable docs.
523. **Where knowledge lives** - co-location, evergreen vs volatile, volatile->stable references, perennial naming.
534. **Rationale & decisions** - record the why and the rejected alternatives; commit messages as docs; the architecture codex.
545. **Enforcement over prose** - turn rules into types/linters/tests/hooks; the config *is* the doc.
556. **Curation & navigation** - one message per doc; highlight the core; sightseeing maps; make it skimmable and searchable.
567. **Generated / living artifacts** - consolidate dispersed facts; living glossary; exploit knowledge already in tools.
578. **Feedback loops** - docs as a design mirror; the cold-newcomer astonishment report; the two-minute test.
58
59## How to use this skill
60
61- **Authoring / reviewing a doc?** Run the relevant checks from
62 [references/rituals.md](references/rituals.md): the salience pass, the
63 two-minute test, evergreen/volatile classification, and (for any
64 hand-maintained fact) "name the mechanism that keeps this true".
65- **Doc keeps rotting?** Reach for theme 1 + 5 + 7: add a reconciliation check,
66 enforce the rule instead of stating it, or derive the fact from its source.
67- **Deciding what to capture?** Apply theme 2: Rule of Two, sedimentation, and
68 the three gates (long-lived? many readers? critical?).
69- **Rescuing a legacy or inherited system (lost specs, author gone)?** Read
70 [references/legacy.md](references/legacy.md): fossilised knowledge,
71 superimposed / highlighted structure, external annotation registry,
72 small-scale simulation, comprehension diagnostics, enforced legacy rules,
73 biodegradable bankruptcy.
74
75## Don't duplicate sibling skills
76
77Per maxim 11, point at these rather than restating them:
78
79- **mechanical-enforcement** - which rules to turn into linters/hooks and how (theme 5).
80- **refactoring** - comprehending, characterising, and migrating the legacy code itself; [references/legacy.md](references/legacy.md) covers only the documentation side.
81- **architecture** - domain modelling, ports/adapters, making illegal states unrepresentable (theme 5.3).
82- **testing** / **test-coverage** - reconciliation tests, contract tests, enforcement gates (themes 1, 5).
83- **hk** - wiring pre-commit hooks and local checks for the mechanisms above.
84- **writing-skills** - how to author a skill (structure, description, checks);
85 [references/agent-docs.md](references/agent-docs.md) keeps only what living
86 documentation adds to skills.