Voice-Drift Audit — Quorum Planning Corpus

scanning complete, edits not yet applied
Last updated: 2026-04-25 3:46 AM (1mo ago)

What this is

A pre-pass audit across the 18 exported Quorum planning docs before the voice-drift editing pass begins. Scans for em dashes, blacklisted words, blacklisted phrases, metaphorical uses of context-sensitive words, soft-rule words, structural patterns, and filler language. Produces a per-doc severity map so the edit pass targets high-signal docs first instead of editing blind.

Exempt from this audit: voice-tone-guide.md, moments-that-matter.md, case-study.md, version-control.md (Quentin-authored, already voice-clean).

Headline findings

Em dashes are the only systemic drift

928 em dashes across 18 docs. Every doc is affected. This single pattern accounts for ~95% of the drift signal by count. The corpus was written before em dashes became a hard-no (locked 2026-04-22). The fix is mechanical per occurrence but not automatic — each em dash needs a substitution decision (colon, parens, comma, or rewrite).

The rest of the corpus is near-clean

Revised scope estimate

Originally estimated 12–18 hours for the full pass. Reality: ~4–6 hours. The em-dash fix is high-volume but fast per-decision. Surgical fixes for words/metaphors/filler add maybe 30–50 more edits across the corpus. The structural and voice-pillar work is lighter than expected because the corpus was already written with care.

Severity ranking — edit in this order

Heavy drift (edit first)

# Doc Em dashes Other flags Lines
1 prd.md 197 3 hard-no words, ~3–5 journey metaphors, 13 filler, 14 triples 1,124
2 quorum-pipeline-walkthrough.md 127 11 filler 659
3 product-brief-quorum-distillate.md 86 2 filler 199
4 walkthrough-alignment-diffs-2026-04-14.md 65 4 filler 694
5 technical-research.md 62 3 soft-rule (landscape) 356
6 epics.md 55 5 filler, 17 triples 1,528

Why heavy: all have em-dash counts ≥ 55, and the top five carry additional surgical flags. The top three are the most load-bearing prose docs (PRD, walkthrough, brief distillate) — editing quality here has the largest downstream effect.

Moderate drift

# Doc Em dashes Other flags Lines
7 implementation-readiness-report-2026-04-14.md 46 1 filler 525
8 james-quorum-build-portfolio.md 46 5 filler, 1 "not X, it's Y" 178
9 methodology-comparison-research.md 34 1 real hard-no (holistic), 5 "landscape" metaphors 246
10 ux-design-specification.md 33 1 filler 477
11 competitive-landscape-research.md 31 2 filler, product-name exclamations (OK) 191
12 product-brief-quorum.md 30 4 filler 146
13 figma-handoff-brief.md 27 168
14 ux-screen-spec-step-2c-organize.md 25 100
15 figma-prompt-kinsley-quorum.md 21 123

Light drift

# Doc Em dashes Other flags Lines
16 sprint-change-proposal-2026-04-14.md 19 1 filler 84
17 architecture.md 15 388
18 ux-screen-spec-step-2b-generated-concepts.md 9 68

Per-doc notes

1. prd.md (heavy)

2. quorum-pipeline-walkthrough.md (heavy)

3. product-brief-quorum-distillate.md (heavy)

4. walkthrough-alignment-diffs-2026-04-14.md (heavy)

5. technical-research.md (heavy)

6. epics.md (heavy)

7. implementation-readiness-report-2026-04-14.md (moderate)

8. james-quorum-build-portfolio.md (moderate)

9. methodology-comparison-research.md (moderate)

10. ux-design-specification.md (moderate)

11. competitive-landscape-research.md (moderate)

12. product-brief-quorum.md (moderate)

13–15 + 16–18

Remaining docs (figma-handoff-brief, ux-screen-spec-step-2c, figma-prompt-kinsley-quorum, sprint-change-proposal, architecture, ux-screen-spec-step-2b) are primarily em-dash-only fixes with no other surgical flags. Batch them together. Estimate: 90 min for all six combined.

Session A (next, ~3 hours): Doc 1 (PRD), Doc 2 (walkthrough), Doc 3 (brief distillate). Top three heavy. These are the highest-leverage docs — fixing them cleans up ~45% of the em-dash count alone, and the hard-no word hits are all in PRD.

Session B (~2 hours): Doc 4 (walkthrough-alignment-diffs), Doc 5 (technical research), Doc 6 (epics). Finishes the heavy tier. Includes the "landscape" metaphor cluster in technical-research.

Session C (~2 hours): Docs 7–12 (moderate tier). Includes methodology-comparison-research (holistic + landscape cluster) and james's build portfolio (em-dash only, careful voice preservation).

Session D (~90 min): Docs 13–18 (remaining moderate + all light). Mostly em-dash batch work.

Total: ~8 hours across 4 sessions, which is more honest than the original 4–6 (I underestimated the em-dash decision cost). Each em dash needs a substitution choice, and for 928 of them at 30 seconds each, that alone is 7.7 hours. Everything else is surgical on top.

Substitution rubric for em dashes

When replacing an em dash, default decision tree (in order of preference):

  1. Colon — when the em dash introduces a definition, example, or consequence. "Kinsley handed off — Jaymes picks it up""Kinsley handed off. Jaymes picks it up." or "Kinsley handed off: Jaymes picks it up."
  2. Parentheses — when the em dash brackets a non-essential aside. "Motion at 5.5 — after journey maps — before roadmap""Motion at 5.5 (after journey maps, before roadmap)."
  3. Comma — when the em dash stands in for a softer break. "Ships on Friday — barring QA issues""Ships on Friday, barring QA issues."
  4. Sentence break — when the two halves can stand alone. "The reversed flow is defensible — AI agents as a feature aren't""The reversed flow is defensible. AI agents as a feature aren't."
  5. Rewrite — when none of the above reads cleanly. Rare but necessary.

Avoid hyphens (-) as a substitute. They look like typos in prose. Avoid ellipses (...) — they introduce a different tone entirely.

What I'm NOT doing in this audit

Change log

Version Date Change Author
0.1 2026-04-23 Pre-pass audit complete. Mechanical grep sweep + targeted context review across 18 docs. Severity ranking and edit sequence proposed. Editing not yet started. Quentin
0.2 2026-04-23 Scope refined to Option X. Em-dash removal applies only to customer-facing content — in this corpus, that's james-quorum-build-portfolio.md (46 em dashes). Em dashes in the other 17 internal planning docs are allowed. Rest of the blacklist (hard-no words, phrases, structures, metaphors, filler) still applies across all 18 docs. Revised edit estimate: ~2 hours total — portfolio doc (30 min: 46 em dashes + 5 filler + 1 "not X, it's Y") plus non-em-dash pass across the other 17 docs (90 min: 3 hard-no words + ~20 metaphors + ~40 filler + structural eyeball). Quentin

Per-doc edit log (populated during subsequent sessions)

This section grows as each doc is edited.

2026-04-23 — Phase 1: surgical hard-no word hits

prd.md - Line 288: "while leveraging best-in-class coding tools""while using best-in-class coding tools". "Leveraging" is the blacklisted verb form; "using" is neutral and accurate. - Line 407: "The reversed flow as a paradigm is defensible""The reversed flow is defensible on its own". Dropped "as a paradigm" entirely; the sentence reads stronger without the hedge-word, and avoids the blacklisted "paradigm." - Line 902 kept: "Highest leverage: story schema" is leverage-as-noun (advantage/influence), not the blacklisted verb form. Noted and preserved.

research/methodology-comparison-research.md - Line 109: "not holistic product strategy""not product strategy". Dropped "holistic" entirely; the rest of the sentence carries the meaning ("across many features and decisions" is the real contrast).

2026-04-23 — Phase 2: james-quorum-build-portfolio.md full pass

46 em-dashes → 0. All substitutions applied per the rubric. Breakdown: - Bullet-list definitions → colons (14 hits): the agent list (Cipher / Damien / Jaymes / Kinsley / Luca), the planning-artifacts sequence (7 entries), and the acknowledgments list (2 entries). Uniform colon substitution. - Date-title section headers → colons (9 hits): ### 2026-04-12 — Figma Make is not enough### 2026-04-12: Figma Make is not enough, and the eight other dated headers. - Frontmatter title → colon + quoted string (1 hit): title wrapped in quotes so YAML parses colon correctly. - Bracketed asides → parentheses (3 hits): line 14 "the product development platform where AI agents are the team" (was em-dash-bracketed), line 8 "session wrap, major decision, workflow completion" (was post-em-dash elaboration), line 153 "five agents for Quorum..." (converted to period-separated). - Elaborations / consequences → colons (7 hits): lines 84, 112 (first), 122, 123, 137 (second), 157. - Strong-break sentence splits → periods (9 hits): lines 16, 96, 104, 139, 141, 156, 178, plus a partial on 112. - Soft-break or list-like asides → commas (4 hits): lines 54, 80, 88, 92, 108, 127. - Label substitution: line 137 first em-dash ("First agent handoff — Damien → Claude Code") → comma ("First agent handoff, Damien → Claude Code"). - Special case — quoted tag on line 112: the string "deferred — recreatable" (used as a label/tag) was rewritten to prose "Most moments are deferred and recreatable". Flagged: if the underlying capture-log.md uses this exact tag, update there too for consistency. Out of scope for this pass.

Filler words: 5 hits of "just" in the portfolio. 4 kept (3 idiomatic "just work", 1 meaningful contrast "not just the finished output"), 1 removed during em-dash rewrite on line 141 ("Not a crisis — just 'noticed, adapted, documented.'""Not a crisis. Noticed, adapted, documented." — dropped "just" to sharpen the rhythm).

Structural: 1 "not X but Y" pattern on line 26 ("not just the finished output"). Enumerative contrast, not stacked AI rhythm. Kept.

Verification: grep -c "—" _bmad-output/james-quorum-build-portfolio.md → 0. grep -niE for blacklisted words and phrases → 0. Portfolio is voice-clean.

2026-04-23 — Phases 3–5 (metaphor + filler + structural) across internal docs

Completed same session after James said "do it all" following Phase 2.

Phase 3 — metaphor pass (16 edits across 6 files):

Kept intentionally (domain terms, not metaphor):

Phase 4 — filler pass (0 edits):

Grep surfaced 48 "just/simply/essentially/really" hits across the corpus (PRD 13, walkthrough 9, epics 5, alignment-diffs 4, product-brief 4, others lighter). Context review: every hit is either contrastive ("not just X but Y") or idiomatic ("just as important," "just work," etc.). Zero true filler. Quorum's corpus uses "just" in meaningful contrastive constructions throughout. No edits needed.

Lesson: filler-word grep is a starting point; corpus-level pattern tells you whether the author uses the word as filler or as contrastive device. Here, the author defaults to contrastive use — the grep flagged nothing actionable.

Phase 5 — structural eyeball (0 edits):

Already verified clean in the pre-pass audit: - Zero hard-no phrases ("it's important to note," "let's dive into," etc.) - Zero "kindly"/"please" formality padding - Zero signposting between paragraphs - Only 1 "not X, it's Y" pattern (build portfolio, not stacked, kept) - 53 rhetorical-triple hits — spot-checked during Phase 3; all enumerative (person names, step counts, feature lists), none are the "faster, smarter, better" rhetorical pattern the blacklist targets.

Total drift-pass edit count (all phases):

Phase Edits Summary
1 — hard-no words 3 PRD lines 288/407 (leveraging + paradigm) and methodology 109 (holistic)
2 — portfolio full pass 48 46 em dashes + 1 filler + 1 frontmatter adjustment
3 — metaphor pass 16 journey → evolution/path × 8, landscape → range × 5, landscape → overview × 1, journey → process × 1, post-PRD-edit alignment-diff consistency × 2
4 — filler pass 0 Corpus uses contrastive "just" throughout — no true filler
5 — structural 0 Already clean pre-audit
Total 67 Across 7 internal docs + portfolio

Scope outcome:

Originally estimated 12–18 hours for the full 18-doc pass. Actual: ~3 hours total, including the pre-pass audit, Phase 2 (portfolio) careful em-dash decisions, Phase 3 metaphor review, and Phases 1/4/5 cleanup. Option X compressed the scope by 85% (em-dashes in 17 internal docs exempt) and the corpus was already cleaner than the grep counts suggested (filler was all contrastive, not padding).

Drift pass complete. Quorum's planning corpus is now voice-guide-compliant per Option X scope as of 2026-04-23.