Thought Leadership Article — Quality Control
Companion files (required for prose QC):
business-aos/reference/brand/copy-qc.md— AI pattern detection. Run against all prose before shipping.business-aos/reference/brand/linkedin-sentence-editor.md— Sentence-level editing rules (R1–R8). Run against all prose before shipping.business-aos/reference/brand/visual-style.md— Brand visual reference for color, typography, and layout decisions.
Pre-Build: Intake Validation
Before building starts, confirm a Concept Lock exists with all seven decisions made:
- [ ] Brand locked (Advisory OS or Creating Your Plan)
- [ ] Conversion goal locked (product purchase / diagnostic booking / subscribe)
- [ ] Core concept articulated — insight, assumption it challenges, named mechanism
- [ ] Interactive elements selected (2–3) with different cognitive work per interactive
- [ ] Title locked — creates curiosity gap, works as distribution hook
- [ ] Narrative arc defined — section flow with eyebrow labels and function descriptions
- [ ] Reframe level set (light / medium / heavy)
If any of these are missing, run the intake before building.
Narrative Architecture
Required Functions (Every Article)
- [ ] Title creates a curiosity gap — reader must close it by reading
- [ ] Hero has one specific number or scene in the first three seconds
- [ ] Hero subtitle is one clean thought — not two or three beats compressed
- [ ] At least one section opens with a third-person composite story with escalating specifics
- [ ] A definition box names the core mechanism — tight enough to quote, names something the reader has felt but never articulated
- [ ] Definition box is a mechanism name, not a description of a problem everyone already knows
- [ ] Mechanism name passes the conversation test: "You know [Name]? Where you [one-sentence description]?" — if that sentence works spoken aloud, the name is right
- [ ] Mechanism was derived from synthesis (operational principle → cost pattern → name), not from restating the source material's existing terminology
- [ ] At least one section makes an invisible cost visible (through prose, interactive, or both)
- [ ] A Constraint section exists — explains why knowing isn't enough, ideally with time compression
- [ ] CTA matches the conversion goal locked in intake
- [ ] If article will version (launch CTA differs from evergreen CTA), both versions exist as separate files
Architecture-Specific Checks
If diagnostic booking CTA:
- [ ] Article builds pressure — reader finishes feeling urgency, not just informed
- [ ] Solution is deliberately left incomplete — the diagnostic is where it gets resolved
- [ ] CTA describes what happens in the diagnostic and lowers the barrier
- [ ] Closing line: "Whether we work together after that is a separate conversation" or equivalent
If product purchase CTA:
- [ ] Article teaches the system completely — reader understands how it works
- [ ] At least one interactive lets the reader practice or use the system
- [ ] CTA sells the deployed/automated version of what they just experienced
- [ ] Price displayed. Single button with price: "Get the Toolkit · $27" or equivalent.
If subscribe CTA:
- [ ] Article delivers complete standalone value
- [ ] CTA promises the next piece, not a sales pitch
Interactive Quality
- [ ] Article contains 2–3 embedded interactives
- [ ] Each interactive does fundamentally different cognitive work (test: describe what each teaches in one sentence — if two teach the same lesson, one needs to change)
- [ ] Each interactive creates a specific emotional response (discomfort, surprise, tension, dread, etc.) — if an interactive doesn't make the reader feel something that advances the argument, it's decoration
- [ ] Interactives that involve scoring or choosing have genuine ambiguity built in — the answer should not be obvious
- [ ] No standalone micro-tool types embedded in the article (no calculators, no full diagnostics)
- [ ] Every interactive has the prose-interactive-prose sandwich (setup → interactive → interpretation)
- [ ] Removing any interactive would weaken the argument (it's evidence, not decoration)
- [ ] Interactive types differ from the previous week's article
- [ ] All interactives function on mobile (tap targets, responsive layout)
Interactive Logic Verification
For every interactive that scores, calculates, or produces a result, extract the logic and test it independently (via Node or equivalent) before shipping. Do not rely on visual inspection alone.
- [ ] All inputs contribute to the result. Every question, slider, or input the user touches must affect the output. Extract the scoring function and verify — computed but unused variables are a silent bug.
- [ ] Test 4+ scenarios through the scoring function: all-high, all-low, all-middle, and at least one realistic mixed input. Log the outputs and verify each produces the correct result category.
- [ ] Result thresholds produce honest categories. All-middle inputs should not land in an extreme category. Walk the boundary values — if 60% triggers "most of your meeting was X," that claim must be mathematically defensible at 60%.
- [ ] Result copy matches the math. Each result message must be true for every score that triggers it. "Most" means >50%. "Roughly even" means neither side dominates. Read each message with its boundary score and confirm accuracy.
- [ ] No division by zero or NaN. Test what happens if the user somehow submits with missing answers (even if the UI guards against it). The scoring function should handle partial input gracefully.
- [ ] Flip/toggle interactives: Verify every card/toggle has content on both sides, all click handlers fire, and no card is stuck or unreachable.
Prose Quality
- [ ] Paragraphs are 2–4 sentences. None exceed 5.
- [ ] Each paragraph does one thing — no paragraphs trying to make three points at once
- [ ] Last sentence of each paragraph hits harder than the first
- [ ] Specific numbers used instead of vague claims ("$120K" not "significant results")
- [ ] Core mechanism is named, not described ("The Politeness Premium" not "the tendency to misjudge")
- [ ] Constraint section uses time compression or emotional pressure, not just explanation
- [ ] No "might," "could potentially," or hedge language where the pattern is clear
- [ ] No academic phrasing ("furthermore," "it should be noted")
- [ ] No breathless marketing language ("game-changing," "revolutionary")
- [ ] Em dashes for emphasis, not parentheses
- [ ] Non-breaking spaces ( ) before line-ending words to prevent orphans
- [ ] HTML entities used for special characters (— ’ “ ”)
Copy QC Pass (reference: copy-qc.md)
Run every visible text element against the AI pattern detection checklist. Extract ALL reader-facing text from the HTML first — do not eyeball it inside markup. This means: h1, h2, h3, p, .lead, .big-quote, .definition-box, .card-title, .card-text, .cta-sub, .cta-subtext, .hero-sub. If a reader can see it, it gets audited.
P1 — Must fix before shipping:
- [ ] No twinning ("You don't have X. You have Y" — two sentences with mirrored structure where one negates/corrects the other)
- [ ] No mirror reversals (same root word in reversed positions across two clauses)
- [ ] No question → dramatic silence → revelation arcs
- [ ] No correction-revelation family compounds (2+ instances from Patterns 1/3/4/7 anywhere in the piece)
P2 — Rewrite unless exception applies:
- [ ] No three-beat parallel lists (three items with identical syntactic structure) unless demonstrating a literal data pattern
- [ ] No "Not because X. Because Y." constructions
- [ ] No formulaic setups ("Most people think X. Actually Y.") — max 1 per piece with real evidence
- [ ] No trying-to-be-quotable lines (metaphor or abstraction over clarity)
P3 — Fix if multiple:
- [ ] No more than one dramatic single-word beat per piece
- [ ] No rhetorical hand-holding ("Right?" "Sound familiar?" "That's the point.")
- [ ] No three+ consecutive sentences starting with the same word
Compound check:
- [ ] No accumulation of mild patterns creating AI feel (3+ P3s = treat as P1)
- [ ] Sentence lengths vary — no metronomic rhythm
- [ ] Not every insight structured as a correction of a common belief
- [ ] Passes the read-aloud test at conversation speed
Sentence Editor Pass (reference: linkedin-sentence-editor.md)
Run every prose line against the 8 sentence-level rules. This is a tightening pass, not a strategy pass — do not restructure the article's arc or add sections.
- [ ] R1 End Strong — Last word of each sentence is the most impactful word. No sentences ending on pronouns, prepositions, particles, or auxiliary verbs. Exception: anticipation lines that set up the next sentence.
- [ ] R2 Acronyms — First use spelled out with acronym in parentheses. Exception: universally known terms for the target audience.
- [ ] R3 Economy — No "already," "really," "very," "just," "actually," "start to," "in order to," "the fact that" unless each earns its place. Cut "the consultant explained that" — state directly.
- [ ] R4 No Repeats — Every sentence says something new. No sentence restates the previous one in different words.
- [ ] R5 Vary Words — No word appears 3+ times in a short span unless it's the mechanism name. Swap at least one instance of repeated nouns.
- [ ] R6 Precision — 3–5 precision vocabulary upgrades per article in longer explanatory sentences. Short punch sentences stay simple.
- [ ] R7 Two-Comma Rule — Most sentences have max two commas. Three+ means the sentence is doing too much — split it.
- [ ] R8 Kill Adverbs — Remove -ly words and stealth adverbs ("already," "just," "really," "fundamentally," "genuinely") unless the adverb adds meaning the verb alone can't carry.
Structural Elements
- [ ] Every section has an eyebrow label (uppercase, tracked, gold or gold-on-cream)
- [ ] Section headlines are statements, not questions
- [ ] Definition box appears at least once — in the section that names the mechanism
- [ ] Big quotes used as breathers between dense sections (1–2 per article)
- [ ] Bridge quotes (if present) serve a narrative function — marking the transition from one phase of the argument to the next, not just connecting dark sections
- [ ] Bridge quotes name what the reader is feeling at that moment, not teach something new
- [ ] Self-assessment cards follow the mirror → confrontation → possibility arc (not three independent questions)
- [ ] Constraint section uses time compression (accelerating beats from "tomorrow" to "back where you started"), not just explanation
- [ ] Comparison table present in or near the Constraint section (strongly recommended)
Theme Alternation
- [ ] Sections alternate dark/light — no two consecutive same-background sections
- [ ] Exception: continuous dark sections use padding-bottom: 0 / padding-top: 48px technique AND
background: #1e1e1e(flat color) on both sections to prevent gradient seam - [ ] Hero is dark
- [ ] CTA section is dark
- [ ] At least one cream and one off-white section in the middle
- [ ] Dark sections use charcoal gradient (135deg, #1a1a1a → #2a2a2a)
Brand Compliance
Colors
- [ ] Colors defined — CSS variables (
:root {}) are acceptable in single-file articles; all color values must resolve within the same file - [ ] Scrollbar: thumb #b79d64, track #1a1a1a (both WebKit and Firefox syntaxes)
- [ ] Gold-on-light text uses #6b5d3e (not #b79d64) when on cream/off-white backgrounds
- [ ] No pure black (#000000) or pure white (#ffffff) anywhere
- [ ] Gold (#b79d64) appears on maximum 2 elements per viewport
Typography
- [ ] Google Fonts loaded: Cormorant Garamond (400, 500, 600, italic) + Inter (300, 400, 500, 600)
- [ ] Headlines: Cormorant Garamond, weight 400
- [ ] Body: Inter, weight 400
- [ ] Labels/eyebrows: Inter, weight 500, uppercase
- [ ] Label letter-spacing: 0.15–0.25em
- [ ] Strong tags: weight 500 (not 700)
Layout
- [ ] Content containers max-width 700px (prose) or 900px (wide elements like interactives)
- [ ] Section padding: 100px vertical on desktop
- [ ] Navigation fixed at top with gold bottom border (3px solid #b79d64)
- [ ] Footer with gold top border (3px solid #b79d64)
- [ ] Footer links: Contact, LinkedIn, Substack, Creating Your Plan
- [ ] Footer legal line with copyright, privacy policy, terms, disclaimer
Technical Quality
- [ ] HTML renders as single self-contained file (no external dependencies except Google Fonts and CDN scripts)
- [ ] React loaded from CDN if React interactives are used
- [ ] All interactives render and function correctly
- [ ] No broken class names or missing closing tags
- [ ] No console errors
- [ ] Responsive at 768px (mobile) breakpoint minimum
- [ ] File named correctly: topic-slug.html (lowercase, hyphens)
Multi-Pass Review Notes
After each revision cycle, note what was changed and what still needs work. Track the version:
- v1 — First pass from Concept Lock. Should be 85%+ with these skill files. Expect prose-level fixes, not structural rebuilds.
- v1 QC — Run the full QC checklist: structural checks (this file), copy QC pass (
copy-qc.md), sentence editor pass (linkedin-sentence-editor.md), and interactive logic verification (Node). Fix all P1 and P2 violations before presenting v1 for review. - v2 — Prose revision based on editorial feedback (break paragraphs, add breathing quotes, sharpen Constraint time compression, tune interactive ambiguity). Re-run copy QC on any rewritten prose.
- Ship — Passes all checks above.
If v1 needs major structural work (missing sections, wrong architecture, interactives that all do the same thing), the intake was incomplete. Go back to the Concept Lock before revising.