Skip to content

Docs quality: one fact one home, and index what's read under pressure - #284

Merged
Sbussiso merged 1 commit into
masterfrom
docs-quality
Sep 10, 2026
Merged

Docs quality: one fact one home, and index what's read under pressure#284
Sbussiso merged 1 commit into
masterfrom
docs-quality

Conversation

@Sbussiso

Copy link
Copy Markdown
Contributor

Yesterday's pass fixed accuracy. This is about quality — and it starts by undoing damage I did.

I made the duplication worse

ARCHITECTURE.md appeared in all eight cross-file duplication clusters. I'd restated numbers that already had homes.

The reasoning behind the agent's isolation existed in three files in three phrasings. "23 tools" appeared five ways across three files. Those are exactly the facts that drift: a number in three places gets updated in one, and then two files are quietly lying.

The rule, now recorded in docs/README.md

  • Reference docs state a value once, in whichever doc owns the subject.
  • ARCHITECTURE.md carries structure, not values — except facts that only make sense across services, like Fly's proxy bind budget, which is the entire reason two services sleep and one can't.
  • Operational docs may inline a value where stopping to look it up would make them unusable. "kill a CameraNode for >90s" is an instruction, not a specification.
  • Prefer pointing at code. A value with a good comment beside it is more durable than the same value copied into prose.

Applied, 384 MiB now appears in no document at all. It lives in fly.toml next to the comment explaining why it moves together with memory_mb — where someone changing it is already looking.

One overlap left deliberately: the agent's ~10s boot time is in both its own doc and the cross-service table. Removing it would serve the rule at the reader's expense — they'd no longer learn why their machine stays warm without following a link.

None of the four longest docs had an index

ON_CALL.md is 611 lines and describes itself as "optimised for being read under pressure." It wasn't. It opened with a tools cheatsheet — but a responder knows the symptom, not the scenario letter.

It now opens with a symptom-to-scenario table, including a row for "data is missing, corrupted, or gone" → DISASTER_RECOVERY.md, so you find out you're in the wrong document before working through procedures that can't help.

DISASTER_RECOVERY.md had the same gap plus one I created: I'd put its index at line 122, behind a long migration note. An index you have to scroll to isn't an index. Moved above the fold, and it now leads with "a restore is destructive — read the whole procedure before running its first command."

AGENTS.md gets a contents table and now points outward for the two things it was restating.

Verified

79 internal links and anchors checked, including cross-file fragments — 0 broken.

🤖 Generated with Claude Code

Yesterday's pass fixed accuracy. This one is about quality, and it
starts by undoing damage I did: ARCHITECTURE.md appeared in all eight
cross-file duplication clusters. I had restated numbers that already had
homes.

The reasoning behind the agent's isolation existed in three files in
three different phrasings. "23 tools" appeared five ways across three.
Those are precisely the facts that drift — a number in three places gets
updated in one, and then two files are quietly lying.

The rule, now recorded in docs/README.md so it is enforceable:

  - reference docs state a value ONCE, in whichever doc owns the subject
  - ARCHITECTURE.md carries structure, not values — except facts that
    only make sense ACROSS services, like Fly's proxy bind budget, which
    is the whole reason two services sleep and one cannot
  - operational docs may inline a value where stopping to look it up
    would make them unusable ("kill a CameraNode for >90s" is an
    instruction, not a specification)
  - prefer pointing at code — a value with a good comment beside it is
    more durable than the same value copied into prose

Applied, `384 MiB` now appears in no document at all. It lives in
fly.toml next to the comment explaining why it moves together with
memory_mb, which is where someone changing it will actually be looking.

Deliberately left one overlap: the agent's ~10s boot time is in both its
own doc and the cross-service comparison. Removing it from the agent's
doc would serve the rule at the cost of the reader, who would no longer
learn why their machine stays warm without following a link.

Second half: none of the four longest documents had an index. ON_CALL is
611 lines and describes itself as "optimised for being read under
pressure", which it was not — it opened with a tools cheatsheet, and a
responder knows the SYMPTOM, not the scenario letter. It now opens with
a symptom-to-scenario table, including a row for "the data is gone",
which sends you to the other runbook before you waste time here.

DISASTER_RECOVERY had the same problem plus a worse one: I put its index
at line 122, behind a long migration note. An index you scroll to is not
an index. Moved above the fold.

AGENTS.md gets a contents table and now points outward for the two
things it was restating.

79 links and anchors verified, including cross-file fragments.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Sbussiso
Sbussiso merged commit a723eb2 into master Sep 10, 2026
12 checks passed
@Sbussiso
Sbussiso deleted the docs-quality branch September 10, 2026 01:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant