agentleFS
OrionicsLtdOrionicsLtd/claude-skills/skills/docs-maintenance/SKILL.md

docs-maintenance

Skill1 starsChanged 22 days agoMITView on GitHub

Keep specs, design docs, plans and READMEs true as the code changes. Use whenever a change alters behaviour a doc describes; when building from, finishing, superseding or abandoning a spec or plan; when adding, moving or tidying docs; and before relying on a spec to understand code. Covers the specs index, status and supersede markers, folding deviations back into the spec, and checking a doc against the code before trusting it.

5 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

11 rules. 0 are common, 6 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 6

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Keep one source of truth per fact, and change it in the same commit as the code.

    line 15
  2. Very specific:

    Every spec and design doc is listed in one index (e.g.

    line 19
  3. Distinctive:

    When work lands, update the status and the index row together.

    line 40
  4. Distinctive:

    When the implementation deviates, change the requirement itself, not an "as built" note on top.

    line 44
  5. Distinctive:

    No live state in specs: dated figures, balances and "as of" tables go stale.

    line 49
  6. Very specific:

    When a new spec replaces an old one, mark the old one superseded with a pointer to the new, and say in the new one what it replaces.

    line 54
  7. Distinctive:

    Keep a superseded or abandoned spec while other docs link to it.

    line 57
  8. Very specific:

    Check whether the code it describes changed since it was last verified: git log --oneline <verified commit>..

    line 62
  9. Very specific:

    When diff-reviewer's spec coverage or your own check confirms a spec matches the code, update verified.

    line 65
  10. Distinctive:

    When asked to tidy docs, or before starting work in an area, compare:

    line 77
  11. Very specific:

    test names the specs list against pytest --collect-only -q.

    line 81

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Docs maintenance

A doc that disagrees with the code is worse than none: the next reader trusts it. Keep one source of truth per fact, and change it in the same commit as the code.

One index

  • Every spec and design doc is listed in one index (e.g. docs/specs/README.md) with a one-line description and its status. A doc goes into the index in the change that adds it; a doc missing from the index is a bug.
  • The index carries nothing that needs hand-dating ("Updated on …"); git has it.

Status at the top, in one form

Each spec opens with its status in the same form across the repo. Match the repo's convention; if it has none, propose this frontmatter to the user before adopting it:

---
status: draft | specced | partly built | built | superseded | abandoned
description: One line, the same text the index shows.
superseded_by: docs/specs/new-spec.md      # only when superseded
code: [src/pkg/module.py, src/pkg/cli.py]   # what implements it
verified: abc1234                           # commit it was last checked against the code
---

When work lands, update the status and the index row together.

Keep the spec true while building

  • When the implementation deviates, change the requirement itself, not an "as built" note on top. History lives in git.
  • A plan (build order, phases, task lists) is scaffolding. Once the work is built, fold any design change into the spec, then delete the plan or mark it done. Two docs must never both claim to be the truth about the same behaviour.
  • No live state in specs: dated figures, balances and "as of" tables go stale. They belong in generated output or the command that produces them.

Superseding and retiring

  • When a new spec replaces an old one, mark the old one superseded with a pointer to the new, and say in the new one what it replaces. Repoint links that cite the old spec for current behaviour.
  • Keep a superseded or abandoned spec while other docs link to it; delete it once nothing does — git keeps it.

Before trusting a doc

  • Check whether the code it describes changed since it was last verified: git log --oneline <verified commit>.. -- <code paths>. If it did, read the code before relying on the doc, and fix whichever is wrong.
  • When diff-reviewer's spec coverage or your own check confirms a spec matches the code, update verified.

Other docs

READMEs, CLAUDE.md files, skills, prompts and command help describe behaviour too. When a change renames or alters something, grep for the old name across them and update each in the same change. A doc's claim about a command (flags, output) should be checkable: run --help or the command on a fixture.

Sweep

When asked to tidy docs, or before starting work in an area, compare:

  • docs on disk against the index, and each status against git log;
  • relative links against the files they point to;
  • test names the specs list against pytest --collect-only -q;
  • code: paths against the tree.

Report what disagrees and fix it in one change.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.