Audience: contributors writing or revising any file under docs/.
Time to read: 5 min.
Last updated: 2026-05-08
This page operationalizes the rules in docs/README.md (the metadocumentation). Read that first; this page tells you how to apply it.
- First person singular or none. Mycelium is one person plus a framework; "we" is dishonest. Use "Mycelium does X" or the imperative ("Run
/interview"). - Hedged confidence. Every effectiveness claim names its evidence type. Examples:
- "In Drew Hoskins' 8-hour take-home (2026-04-30) Mycelium's Phase 0 selector saved..." — single-session evidence.
- "Across three small dogfood projects, the corrections log accumulated..." — small-N pattern.
- Avoid: "Mycelium reduces wrong-build risk."
- Specifics over abstractions. Name the project, the commit hash, the date. Anonymous "users have reported" fails the hedged-confidence rule.
- Anti-promotional on evaluation surfaces.
docs/evaluate.md,docs/faq.md, the README's "Who it's not for" — disclose tradeoffs before benefits. Per L5 sycophancy correction (.claude/memory/corrections.md2026-04-20). - No marketing words. Drop "powerful", "comprehensive", "robust", "seamless", "best-in-class". Show the receipt.
- No emojis outside diagrams. Mermaid blocks may use them; prose may not.
Every link must signal what's behind it.
- ❌ "click here"
- ❌ "see evaluate.md"
- ✅ "Evaluate Mycelium for your team in 1 hour"
Audit by reading link text alone, top to bottom, with the rest of the prose hidden. If the page still answers "what will I see?", scent is good.
Every doc opens with three lines:
**Audience**: <who this is for>
**Time to read**: <30s | 5 min | 30 min | deep>
**Last updated**: <YYYY-MM-DD>Internal artifacts (.claude/memory/cluster-instances.md, .claude/harness/decision-log.md) use:
**Audience**: internal — published as audit trail, not as public reading.| Surface | Soft cap | Hard cap |
|---|---|---|
| README | 200 | 250 |
docs/<page>.md |
250 | 400 |
docs/receipts/cases/<case>.md |
150 | 250 |
Over-cap = split, not shrink.
Each fact lives in one place. Cross-link.
- Theory definitions:
theories.mdis canonical. - Vocabulary:
glossary.mdis canonical. - Receipts:
docs/receipts/cases/are canonical. - People credits:
CONTRIBUTORS.mdis canonical.
When two pages reference the same fact, only one defines it; the other links.
Every file under docs/receipts/cases/ opens with YAML frontmatter:
---
id: <slug>
date: <YYYY-MM-DD>
contributor: <name or "internal-dogfood">
contributor_link: <CONTRIBUTORS.md anchor or null>
project: <project name or "framework-development">
mechanism_or_status: <graduated mechanism name | "spec" | "one-off" | "in-progress">
commits: [<hash>, <hash>]
subclass: <if part of a known cluster, e.g. "documented-rule-diverges-from-enforcement">
---Frontmatter exists so future /corrections-audit runs can detect candidate graduations from cases without parsing prose.
The README's "How Mycelium got smarter" section shows 5 case headers. The full list lives in docs/receipts/. A given case stays on the README until: (a) a more recent case displaces it, OR (b) /framework-health flags the receipts on the README as static for >90 days. When rotated out, the case stays in docs/receipts/cases/ — only its README mention rotates.
Before merging a docs change, scan the diff for:
- No "we" / "our" / "us"
- No marketing adjectives
- Every effectiveness claim cites evidence
- Every link signals destination
- Audience marker present and current
-
Last updatedreflects today - No emoji in prose
- Length within budget (or split)
If any of these fails, fix before merge.