Cite-Density Audit
Global Five Over-Rules
- Evidence before elegance. Never improve the story by weakening the evidence.
- Responsibility follows control, benefit, knowledge, and preventability. Do not stop at the most visible actor.
- Keep the taxonomy intact. Distinguish pure scapegoat, partial scapegoat, system/object alibi, and cost-bearing goat.
- Steelman before judgment. Every major claim must face its strongest counterargument before it is asserted.
- Handoff cleanly. Every output must state assumptions, evidence grade, open questions, and next owner.
When to use
- After Wayne or any agent edits a chapter prose file.
- Before any chapter promotion from
in-review to ready.
- Across the corpus before running
/compile-book (verbose brackets break the Chicago formatter).
- Whenever the source-ledger sweeps in changes that may have leaked metadata into chapter prose (the ch-06 Nielsen pattern that motivated rule 13).
The scan-cite-density.py hook fires on every edit at the pattern layer. This skill is the deeper read — verifies the corpus-wide invariant holds.
Decision rubric
A chapter passes cite-density audit when EVERY inline [CITE:] bracket satisfies ALL of:
- Slug-only content. Bracket contains one or more card slugs separated by
;. Slug pattern: [a-z0-9]+(?:[-_][a-z0-9]+)*.
- Length cap. Total bracket (including
[CITE: prefix and ] suffix) ≤ 60 characters.
- Card existence. Every slug resolves to an existing file at
book/evidence/source-ledger/cards/<slug>.md.
- No citation-apparatus phrasing. No commas, no quotation marks, no "reproduced verbatim in", no "tier-1", no "archived at", no "see also", no "Stephen verify" (the
pending-stephen-lock suffix is the only permitted non-slug content per rule 13).
A chapter fails when:
- Any inline
[CITE:] bracket carries a full citation ("Author, "Title," Journal vol. (year)").
- Any bracket carries a corroboration list ("AP, Reuters, NYT").
- Any bracket carries archive metadata ("archived at ...").
- Any slug points to a card that doesn't exist (broken reference).
- Any bracket exceeds 60 characters without justification.
Conflict handling
Bracket exceeds 60 chars but contains only valid slugs separated by ;.
Permitted if 3+ valid slugs share one bracket (a load-bearing claim with multiple supporting sources can legitimately exceed the cap). Document the exception in the audit output.
Bracket contains pending-stephen-lock suffix.
Permitted per rule 13. The suffix is the only non-slug content allowed inline. The audit confirms the slug exists and the suffix syntax is exact (<slug> — pending-stephen-lock).
Bracket contains a card slug that doesn't yet exist.
Hard fail. Either Stephen creates the card OR the marker is converted to [EVIDENCE NEEDED: <description>] until the card lands.
Bracket contains a Layer-1 in-prose-source-naming pattern leaked into the bracket (e.g., the speaker name and date are inside [CITE:] instead of in the sentence).
Hard fail; route to Wayne to restore Layer 1 in prose voice and reduce bracket to slug-only.
Bracket structure is correct but the surrounding paragraph lacks Layer-1 in-prose source naming (per rule 12 V10 and rule 13 Layer 1 requirement).
Soft fail; route to Wayne to add in-prose source-naming. Cite-density audit reports the structural issue; the in-prose-naming pattern is enforced at audit-chapter / contract-audit time.
Escalation conditions
- Escalate to Wayne when prose needs in-voice source naming added to satisfy Layer 1.
- Escalate to Stephen when a referenced slug doesn't exist (card creation needed).
- Escalate to xaiolai when a chapter has 5+ over-length brackets — a structural sign that the chapter's source-naming pattern needs rework, not just per-bracket fixes.
- Escalate to jerry-crew-chief before running
/compile-book — broken slugs or verbose brackets will cause Chicago formatter to fail or produce mangled endnotes.
Boundary-case recipes
Auditing a chapter with the legacy verbose-bracket convention.
Expect many flags on the first pass. The chapter is pre-migration; normal. Wayne sweeps to convert each bracket to slug-only, moving citation metadata to the card (or verifying it's already there). Re-run audit after sweep.
Auditing a chapter with a [CITE: slug — pending-stephen-lock] marker.
Verify slug exists and suffix syntax is exact. The pending suffix is permitted and signals deferred Stephen verification, not an audit failure.
Auditing a multi-slug bracket (e.g., 5 slugs separated by ;).
Permitted if all slugs resolve and the load-bearing claim genuinely requires multiple sources. Length cap may be exceeded with reason documented.
Auditing a chapter against a corpus with deleted slugs.
If a card was renamed or deleted in the source-ledger, the chapter's slug references break. Hard fail per "card existence" check. Route to joe + Stephen for ledger-sync.
Auditing during the migration sweep (Wayne dispatching per-chapter conversion).
Acceptable to run cite-density-audit on an interim chapter state showing reduced (not zero) findings. The audit's job is to track progress, not to fail-stop mid-migration.
Output format
Owner: cite-density-audit (skill run by <joe|stephen|wayne>)
Task: Audit inline [CITE:] brackets in <path-or-corpus> against rule 13.
Inputs reviewed:
- <chapter file(s)>
- book/evidence/source-ledger/cards/ (for slug existence check)
- .claude/rules/13-citation-form.md
Output: cite-density-audit memo at process/audits/<n>-<slug>-cite-density-audit.md
Evidence grade: N/A
Assumptions: <e.g., slug pattern is lowercase-kebab-case-with-digits>
Open questions: <slugs awaiting Stephen card creation; brackets requiring Wayne in-prose addition>
Risks: <chapters that would fail /compile-book due to broken slugs>
Handoff: <wayne for prose / stephen for card creation / joe for compile go/no-go>
Findings table:
| Chapter |
Line |
Issue type |
Snippet |
Suggested fix |
Summary row: total brackets / valid / over-length / verbose-content / broken-slug / pending-lock.
Examples
A: "cite-density-audit for ch-06: 14 brackets scanned, 1 over-length + verbose-content at L31 (Nielsen tweet, 207 chars including 'reproduced verbatim in contemporaneous tier-1 reporting (AP, Reuters, NYT, WaPo, June 17-18, 2018)'); slug for card 'nielsen-tweet-no-policy-2018-06-17' exists. Fix: replace bracket with [CITE: nielsen-tweet-no-policy-2018-06-17]; verify Layer-1 in-prose source naming includes speaker, venue, date (current prose at L29 already names 'the Secretary of Homeland Security' but does not name Nielsen; add 'Kirstjen Nielsen' to the prose before the quote). Routes: Wayne for prose + bracket replacement."
Real audit pattern: one over-length bracket caught by the scanner, slug verified to exist, Wayne gets specific fix instructions including Layer-1 addition. This is the Nielsen example the rule was written to prevent recurring.
A: "cite-density-audit corpus-wide: 287 brackets scanned. 198 valid (slug-only). 43 over-length but valid-content (multi-slug brackets in ch-04, ch-08 procedural-citation paragraphs; document as exceptions). 31 over-length AND verbose-content (legacy form, sweep candidates; concentrated in ch-02, ch-06, ch-08, ch-12). 12 broken-slug references (chapters cite slugs not yet in source-ledger; route to Stephen for card creation). 3 pending-stephen-lock markers (ch-09 L122 wd-sd-tex; ch-12 L93 walsh; ch-12 L19 black) — permitted per rule 13. Recommend: complete migration sweep on the 31 verbose-content brackets and create the 12 missing cards before /compile-book. Compile would currently fail on the 12 missing slugs."
This is the corpus-wide pre-compile audit pattern. The skill produces an actionable manifest for jerry-crew-chief to triage before manuscript export.
1---2name: cite-density-audit3description: Audit chapter prose for verbose inline `[CITE:]` markers that violate rule-13's slug-only invariant. Inline `[CITE:]` brackets must carry only card slugs (separated by `;` for multi-source claims); full citation apparatus lives in the source-ledger card and is compile-generated as Chicago NB endnote. Catches the failure mode where citation metadata leaks from card to prose. Cousin to `scan-cite-density.py` (the cheap pattern-level pass); this skill is the deeper read.4---56# Cite-Density Audit78## Global Five Over-Rules910<!-- GENERATED:five-over-rules:start -->111. **Evidence before elegance.** Never improve the story by weakening the evidence.122. **Responsibility follows control, benefit, knowledge, and preventability.** Do not stop at the most visible actor.133. **Keep the taxonomy intact.** Distinguish pure scapegoat, partial scapegoat, system/object alibi, and cost-bearing goat.144. **Steelman before judgment.** Every major claim must face its strongest counterargument before it is asserted.155. **Handoff cleanly.** Every output must state assumptions, evidence grade, open questions, and next owner.16<!-- GENERATED:five-over-rules:end -->1718## When to use1920- After Wayne or any agent edits a chapter prose file.21- Before any chapter promotion from `in-review` to `ready`.22- Across the corpus before running `/compile-book` (verbose brackets break the Chicago formatter).23- Whenever the source-ledger sweeps in changes that may have leaked metadata into chapter prose (the ch-06 Nielsen pattern that motivated rule 13).2425The `scan-cite-density.py` hook fires on every edit at the pattern layer. This skill is the deeper read — verifies the corpus-wide invariant holds.2627## Decision rubric2829A chapter passes cite-density audit when EVERY inline `[CITE:]` bracket satisfies ALL of:30311. **Slug-only content.** Bracket contains one or more card slugs separated by `;`. Slug pattern: `[a-z0-9]+(?:[-_][a-z0-9]+)*`.322. **Length cap.** Total bracket (including `[CITE: ` prefix and `]` suffix) ≤ 60 characters.333. **Card existence.** Every slug resolves to an existing file at `book/evidence/source-ledger/cards/<slug>.md`.344. **No citation-apparatus phrasing.** No commas, no quotation marks, no "reproduced verbatim in", no "tier-1", no "archived at", no "see also", no "Stephen verify" (the `pending-stephen-lock` suffix is the only permitted non-slug content per rule 13).3536A chapter fails when:3738- Any inline `[CITE:]` bracket carries a full citation ("Author, \"Title,\" Journal vol. (year)").39- Any bracket carries a corroboration list ("AP, Reuters, NYT").40- Any bracket carries archive metadata ("archived at ...").41- Any slug points to a card that doesn't exist (broken reference).42- Any bracket exceeds 60 characters without justification.4344## Conflict handling45461. **Bracket exceeds 60 chars but contains only valid slugs separated by `;`.**47 Permitted if 3+ valid slugs share one bracket (a load-bearing claim with multiple supporting sources can legitimately exceed the cap). Document the exception in the audit output.48492. **Bracket contains `pending-stephen-lock` suffix.**50 Permitted per rule 13. The suffix is the only non-slug content allowed inline. The audit confirms the slug exists and the suffix syntax is exact (`<slug> — pending-stephen-lock`).51523. **Bracket contains a card slug that doesn't yet exist.**53 Hard fail. Either Stephen creates the card OR the marker is converted to `[EVIDENCE NEEDED: <description>]` until the card lands.54554. **Bracket contains a Layer-1 in-prose-source-naming pattern leaked into the bracket** (e.g., the speaker name and date are inside `[CITE:]` instead of in the sentence).56 Hard fail; route to Wayne to restore Layer 1 in prose voice and reduce bracket to slug-only.57585. **Bracket structure is correct but the surrounding paragraph lacks Layer-1 in-prose source naming** (per rule 12 V10 and rule 13 Layer 1 requirement).59 Soft fail; route to Wayne to add in-prose source-naming. Cite-density audit reports the structural issue; the in-prose-naming pattern is enforced at audit-chapter / contract-audit time.6061## Escalation conditions6263- Escalate to Wayne when prose needs in-voice source naming added to satisfy Layer 1.64- Escalate to Stephen when a referenced slug doesn't exist (card creation needed).65- Escalate to xaiolai when a chapter has 5+ over-length brackets — a structural sign that the chapter's source-naming pattern needs rework, not just per-bracket fixes.66- Escalate to jerry-crew-chief before running `/compile-book` — broken slugs or verbose brackets will cause Chicago formatter to fail or produce mangled endnotes.6768## Boundary-case recipes69701. **Auditing a chapter with the legacy verbose-bracket convention.**71 Expect many flags on the first pass. The chapter is pre-migration; normal. Wayne sweeps to convert each bracket to slug-only, moving citation metadata to the card (or verifying it's already there). Re-run audit after sweep.72732. **Auditing a chapter with a `[CITE: slug — pending-stephen-lock]` marker.**74 Verify slug exists and suffix syntax is exact. The pending suffix is permitted and signals deferred Stephen verification, not an audit failure.75763. **Auditing a multi-slug bracket (e.g., 5 slugs separated by `;`).**77 Permitted if all slugs resolve and the load-bearing claim genuinely requires multiple sources. Length cap may be exceeded with reason documented.78794. **Auditing a chapter against a corpus with deleted slugs.**80 If a card was renamed or deleted in the source-ledger, the chapter's slug references break. Hard fail per "card existence" check. Route to joe + Stephen for ledger-sync.81825. **Auditing during the migration sweep (Wayne dispatching per-chapter conversion).**83 Acceptable to run cite-density-audit on an interim chapter state showing reduced (not zero) findings. The audit's job is to track progress, not to fail-stop mid-migration.8485## Output format8687```text88Owner: cite-density-audit (skill run by <joe|stephen|wayne>)89Task: Audit inline [CITE:] brackets in <path-or-corpus> against rule 13.90Inputs reviewed:91 - <chapter file(s)>92 - book/evidence/source-ledger/cards/ (for slug existence check)93 - .claude/rules/13-citation-form.md94Output: cite-density-audit memo at process/audits/<n>-<slug>-cite-density-audit.md95Evidence grade: N/A96Assumptions: <e.g., slug pattern is lowercase-kebab-case-with-digits>97Open questions: <slugs awaiting Stephen card creation; brackets requiring Wayne in-prose addition>98Risks: <chapters that would fail /compile-book due to broken slugs>99Handoff: <wayne for prose / stephen for card creation / joe for compile go/no-go>100```101102Findings table:103104| Chapter | Line | Issue type | Snippet | Suggested fix |105|---|---|---|---|---|106107Summary row: `total brackets / valid / over-length / verbose-content / broken-slug / pending-lock`.108109## Examples110111<example>112Context: ch-06 has the Nielsen tweet bracket post-Stephen catch-up; Wayne hasn't migrated yet to slug-only convention.113114A: "cite-density-audit for ch-06: 14 brackets scanned, 1 over-length + verbose-content at L31 (Nielsen tweet, 207 chars including 'reproduced verbatim in contemporaneous tier-1 reporting (AP, Reuters, NYT, WaPo, June 17-18, 2018)'); slug for card 'nielsen-tweet-no-policy-2018-06-17' exists. Fix: replace bracket with [CITE: nielsen-tweet-no-policy-2018-06-17]; verify Layer-1 in-prose source naming includes speaker, venue, date (current prose at L29 already names 'the Secretary of Homeland Security' but does not name Nielsen; add 'Kirstjen Nielsen' to the prose before the quote). Routes: Wayne for prose + bracket replacement."115<commentary>116Real audit pattern: one over-length bracket caught by the scanner, slug verified to exist, Wayne gets specific fix instructions including Layer-1 addition. This is the Nielsen example the rule was written to prevent recurring.117</commentary>118</example>119120<example>121Context: Stage 3 pre-compile audit across all 12 active chapters before running /compile-book.122123A: "cite-density-audit corpus-wide: 287 brackets scanned. 198 valid (slug-only). 43 over-length but valid-content (multi-slug brackets in ch-04, ch-08 procedural-citation paragraphs; document as exceptions). 31 over-length AND verbose-content (legacy form, sweep candidates; concentrated in ch-02, ch-06, ch-08, ch-12). 12 broken-slug references (chapters cite slugs not yet in source-ledger; route to Stephen for card creation). 3 pending-stephen-lock markers (ch-09 L122 wd-sd-tex; ch-12 L93 walsh; ch-12 L19 black) — permitted per rule 13. Recommend: complete migration sweep on the 31 verbose-content brackets and create the 12 missing cards before /compile-book. Compile would currently fail on the 12 missing slugs."124<commentary>125This is the corpus-wide pre-compile audit pattern. The skill produces an actionable manifest for jerry-crew-chief to triage before manuscript export.126</commentary>127</example>