Skip to content

Apply the documentation voice rules to CONTRIBUTING.md and the agent docs - #10

Merged
techmanual-ai merged 1 commit into
mainfrom
docs/voice-contributor-20261006
Oct 6, 2026
Merged

techmanual-ai merged 1 commit into
mainfrom
docs/voice-contributor-20261006

Conversation

@techmanual-ai

Copy link
Copy Markdown
Owner

What changed

This finishes the documentation voice pass. CONTRIBUTING.md, docs/agent_docs/readme_agent.md and docs/agent_docs/agent_development.md were the last prose docs not yet checked against agent_development.md §7 (Documentation Voice). The section exists, so the task applied. I only fixed text that breaks one of its rules.

  • Em-dashes (§7.9): these went from 32 to 1. Most were dashes between a label and its definition (**\README.md`** — what LabLink is…, Update docs — …, stateless — it receives…). Each became a colon, a verb or a full stop. The one left in CONTRIBUTING.md` ("Register it — one line in each of…") marks a real turn. The four inside the quoted Before examples in §7 are there on purpose.
  • Slogan sentences: I removed three sentences that only repeated the line before them:
    • "One server, many protocol drivers, one install."
    • "This is a living, two-way document."
    • "This document is the codified collective memory."
  • Overview sentence: I removed the opening of CONTRIBUTING.md that only listed what the document covers (§7.3/§7.5).
  • §7 itself: the rule against rhythmic writing contained an "X, not Y" closer: "is a rhythm, not a fact pattern". It now says: "is a rhythm, and facts rarely come in threes that reliably." I checked the rest of §7 against its own rules and changed nothing else.

Where precision won over voice

readme_agent.md and agent_development.md are instructions an agent has to follow. Where a smoother rewrite would have made a rule less exact, I kept the exact version:

  • "Not X" prohibitions stay. Each one rules out something agents really do, so it isn't the empty contrast §7.2 targets:
    • "release-note tone, not as a session diary"
    • "a backstop, not permission"
    • "a bug, not a flake"
    • "discovered … never assumed"
  • Bolded field labels stay. Purpose, Your responsibility, Framework, Mocking and the rest are labels the reader scans for, which §7.8 allows. Removing them would also have changed the structure.
  • Directives stay directives. Where a dash came before a command, the command became its own sentence instead of being folded into a clause, e.g. "…or the wrong type. Return a structured error." and "…are settled. Do not revisit them…".

Not changed

  • Every heading, code block and table in the three files is byte-identical to main, which I checked with a diff. No rule or contract changed.
  • Sections that already read cleanly were left alone, including §2, §4 (apart from one dash), §5 and §9 of agent_development.md, and §3 and §4 of readme_agent.md.
  • I did not touch CHANGELOG.md, docs/LAUNCH.md or docs/system_connections_plan.md. There is no CHANGELOG entry because no behavior changed.

Assumptions and a follow-up

  • I read the task's "Documentation voice" section as the existing ## 7. Documentation Voice, which differs only in capitalization.
  • Follow-up: §7 says it covers prose in "README.md, docs/, and CHANGELOG.md". That list leaves out CONTRIBUTING.md, even though this task applies the rules to it. It also takes in the internal planning notes under docs/ that the task treats as out of scope. Fixing that line would change the spec's content, which this pass was told to leave alone, so I left it for a separate change.

Testing

The full suite (.venv/bin/python -m pytest -q) passed before and after the change: 393 tests.


🤖 Generated with Claude Code

CONTRIBUTING.md, readme_agent.md and agent_development.md were the last
prose docs not yet read against agent_development.md section 7. They had
the same register the README and ARCHITECTURE passes removed: 32
em-dashes, most of them separating a label from its definition, plus a
few slogan sentences that restated the line before them ("One server,
many protocol drivers, one install", "This is a living, two-way
document", "This document is the codified collective memory").

Em-dashes drop to 1 outside the quoted Before examples in section 7; the
survivor in CONTRIBUTING.md marks a real turn. Label/definition dashes
become a colon, a verb or a full stop.

Section 7 itself contained an "X, not Y" closer ("a rhythm, not a fact
pattern") in the rule against rhythmic writing. It now states the claim
directly.

The two agent docs are instructions to be followed, so precision won
where it conflicted with voice. Prohibitions that deny something an
agent really does are kept ("not as a session diary", "a backstop, not
permission", "a bug, not a flake"), as are the bolded field labels
(Purpose, Your responsibility, Framework, Mocking) that the reader
scans for. Every heading, code block and table is byte-identical.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@techmanual-ai
techmanual-ai merged commit f357b71 into main Oct 6, 2026
4 checks passed
@techmanual-ai
techmanual-ai deleted the docs/voice-contributor-20261006 branch October 6, 2026 23:10
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