Choruz
AGENTS.md1.1k starsChanged 18 days agoApache-2.0View on GitHub
How documentation is organised and written in this repository. AGENTS.md at the root holds the standing engineering rules; this file holds the ones about prose. The procedure for writing or auditing a page is choruz-doc; sentence-level judgement is choruz-prose-standard. Every fact has exactly one home. Everything else links to it. Placement: bugs and incidents go to a note or a runbook, rationale to notes, procedures to operations or a skill, definitions to the data model or a subsystem page, package…
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,439 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository14 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .agents/notes/implemented/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- choruz-archive-agent-notesSkill
- choruz-ci-test-reliabilitySkill
- choruz-code-reviewSkill
- choruz-docSkill
- choruz-find-simplificationsSkill
- choruz-merging-stacked-prsSkill
- choruz-pre-push-checksSkill
- choruz-pre-simplify-auditSkill
- choruz-prose-standardSkill
- choruz-prSkill
- choruz-record-demoSkill
The file
We split this AGENTS.md into the rules it gives an agent
3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 7
Every fact has exactly one home.
- Distinctive: line 34
One physical line per paragraph: Use editor soft-wrap; hard-wrapped prose makes diffs and greps unreadable.
- Distinctive: line 35
Each section opens with a short orienting paragraph: before subsections or exhaustive detail.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Documentation rules
How documentation is organised and written in this repository. AGENTS.md at the root holds the standing engineering rules; this file holds the ones about prose. The procedure for writing or auditing a page is choruz-doc; sentence-level judgement is choruz-prose-standard.
The tiers: one home per fact
Every fact has exactly one home. Everything else links to it.
| Tier | Home | Holds | Never holds |
| Standing orders | AGENTS.md | One to three lines per rule, linking its home | Rationale, procedures |
| Platform protocol | CLAUDE.md | How an agent on Choruz talks to humans and agents | Engineering rules |
| Architecture | architecture.md | The ordered map of how the system works today, read before changing crates/, services/ or the pipeline | Per-crate detail, history, status annotations |
| Subsystems | subsystems/ | One reference page per subsystem: what it owns, the data it moves, its entry points and invariants | Cross-subsystem narrative (that is architecture) |
| Feature checklist | adding-a-feature.md | The extension point each horizontal concern of a new feature plugs into, one example each, what breaks when skipped | The seams' own contracts (those stay with their subsystem, the data model or the test policy) |
| Data model | data-model.md | Tables, ownership, workspace_id, sequences | Migration narration |
| Operations | operations/ | Install, run, deploy, back up, SLO, runbook | Design rationale |
| Testing | testing/ | PR types and the tests they require, what CI runs, e2e conventions | Test walkthroughs |
| Defensive patterns | defensive-patterns.md | Bug classes that shipped or nearly shipped here, as the rule that prevents each | War stories |
| Decisions | .agents/notes/ | Problem, decision, alternatives, consequences | Current-state reference |
| Skills | .agents/skills/ | Repeatable procedures for agents and people | Product or runtime contracts |
| Contributor entry | CONTRIBUTING.md, README.md | Setup, commands, layout, links into the tiers | Duplicated rules |
| User docs | apps/web/app/docs/ | The in-app documentation site | Engineering process |
| Package contracts | a package's README.md, doc comments | Config, semantics, failures, limitations | Cross-package narrative |
Placement: bugs and incidents go to a note or a runbook, rationale to notes, procedures to operations or a skill, definitions to the data model or a subsystem page, package contracts to the package README, standing orders to AGENTS.md with a link.
Writing rules
- Document current state, not change history. No "previously", "now", "no longer", pull request numbers, or migration narration outside
archive/and a note'sConsequences. - Classify every page as a tutorial or a reference. A tutorial orders concepts by prerequisite and ends in an observable outcome; a reference is exhaustive and skimmable. Split a page that tries to be both.
- Test, do not assume. A command, flag, default, error or path appears in a page only after being run or read in the current checkout; delete what did not reproduce.
- Link by relative path, never by bare filename or note number; a link to a heading uses its real anchor.
- One physical line per paragraph. Use editor soft-wrap; hard-wrapped prose makes diffs and greps unreadable.
- Each section opens with a short orienting paragraph before subsections or exhaustive detail.
- Prefer the real identifier: the crate, the table, the endpoint, the env var, the script, so the page can be checked against the tree.
- Chinese is welcome where the existing page is Chinese (
README.md, user-facing pages); keep one page in one language.
The slop checklist
Hunt these with the cheapest probe first (git grep a distinctive phrase, word counts, heading counts):
- Duplicated rules: the same instruction in two homes. Keep one, link from the other.
- Narrated history: "we used to", "this was changed", "since PR …".
- Status annotations: "(WIP)", "(deprecated)", "(new)" inside reference prose; status lives in the tree or the note lifecycle.
- Hand-restated inventories: a list the tree, a script or a manifest already owns.
- Reasoning transcripts: "(decision 3)", "as discussed", "the reviewer asked", hedged planning residue.
- Repeated rationale: the why written again where only the what belongs, instead of a link to the note.
- Paragraph walls: a section with no orienting sentence and no structure.
- Emphasis inflation: bold on whole sentences, exclamation marks, superlatives.
- Spec-speak in implemented material: "will", "should", "plan to", acceptance criteria, migration steps in a page or note that describes shipped reality.
Validation
Every non-trivial change updates the document that names what it changed, in the same pull request. python3 scripts/verify_agent_notes.py gates the notes; links are checked by hand or in the rendered preview; a command in a page is re-run before a claim about it merges. A documentation-only pull request runs no test job and merges in seconds, so keep configuration and code out of it.
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
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.

