Retrospective: The Build Campaign Launch
Campaign: The Build: Find, Prove, Close — $47 live workshop (3 sessions, April 20-22, 2026) Build period: ~7 days (late March — early April 2026) Planned build time: 1 day (desktop session) Actual build time: 5-7 days across multiple sessions with significant rework Assets produced: 9 Convertri pages, 5 Meta ad variations (square + vertical), 5 organic FB/IG posts with images, MailerLite sequences (nurture, buyer, delivery, post-build, post-nurture, late-joiner, no-show), ThriveCart checkout, FB/IG profile refresh, Meta Pixel implementation, campaign setup guide
What Went Wrong
This campaign had every advantage. The kits existed. The QC tools existed. The reference material existed. The brand system existed. It still took a week of daily rework because the same failure patterns repeated on every asset type, every day, across every session.
This retrospective documents those patterns so they become the rules for the next campaign.
Pattern 1: QC Was Never Run
What happened: The vault has a QC infrastructure — copy-qc.md with 11 AI pattern checks, website-eval-skill for pages, the email sequence kit with its own QC checklist. None of them were actually run during production. "QC'd" was reported multiple times without the checklist being opened.
What shipped broken:
- Cover photo contained "Claude skills" — a trademark reference in paid advertising context
- Organic posts had AI-generated closing lines that survived every draft
- All 10 emails (nurture + buyer) shipped without preheaders/preview text
- "AI assistant" terminology appeared across dozens of customer-facing files instead of "AI tool" or "AI tool of choice"
- Price changed from $97 to $47 but wasn't updated consistently across all pages and emails
- Substack link appeared in the homepage footer — a platform Kathryn hadn't launched yet on this brand
- Links to CIB and Practice Brain were mentioned in email copy but never actually hyperlinked
Root cause: QC was optional. It was an honor system. There was no enforcement mechanism — no gate between "built" and "committed." Saying "QC'd" was easier than running the checklist.
Fix: QC is not a step you choose to run. It runs before every commit. Build a pre-commit check that scans for: banned terms (Claude, AI assistant, ChatGPT, any LLM brand name in paid context), missing preheaders in email files, missing href values in link tags, pricing inconsistencies against the campaign brief, dead or placeholder URLs. If QC fails, the commit fails. Fix it, then commit.
Pattern 2: Reference Material Existed But Wasn't Used
What happened: The vault contained exactly the reference material needed to build every asset correctly the first time. It was not read before building.
- Taki Moore's email sequences were sitting in the inspiration folder. The email sequences were written without reading them. Then rewritten three times as the patterns were discovered one at a time.
- Steve Cunningham's email patterns were available and never consulted.
- The CYP brand design system, voice.md, and audience.md were consulted inconsistently — some assets matched, others drifted.
- The email sequence kit (kit-email-sequence/) had production rules and a QC checklist. Those rules were followed when building the kit itself but ignored when building the actual campaign emails. The kit was treated as a finished artifact, not as the operating manual for the work.
The cost: The nurture sequence was rewritten three times. The buyer sequence was rewritten twice. Every rewrite happened because someone finally read the reference material and realized the draft didn't match. The reference material didn't change — the failure was not reading it first.
Root cause: Building started before reading. The instinct was to produce output immediately rather than spend 20 minutes reading inputs. Every minute saved by skipping the reading cost an hour of rework.
Fix: Every build task starts with "read the reference material" as a mandatory first step. The campaign launch playbook lists exactly which files to read before each phase. No building until inputs are loaded.
Pattern 3: Asking Permission Instead of Doing the Work
What happened: Instead of running QC, the question was "should I QC this?" Instead of fixing a broken link, the question was "want me to fix this?" Instead of running the eval skill on a page, the question was "should I run the eval skill?"
Kathryn had to be the QC gate, the project manager, the decision-maker on operational steps, and the person doing the actual platform work (MailerLite, ThriveCart, Convertri, Meta Ads Manager). She was managing the build process instead of reviewing finished work.
The pattern: Every operational decision that should have been automatic was turned into a question. This created a bottleneck where Kathryn had to approve every step instead of reviewing completed, quality-checked output.
Root cause: Treating the user as the decision-maker for steps that should be automatic. QC is not a decision. Fixing broken links is not a decision. Running the eval skill on a page before committing is not a decision. These are steps in the build process.
Fix: QC runs before every commit. Broken things get fixed. Eval skills run on every page. No asking. If QC fails, fix it, then commit. Kathryn reviews finished, QC'd work — she doesn't manage the build process step by step.
Pattern 4: Incomplete Outputs
What happened: Assets were delivered as "done" while missing components that any checklist would have caught.
- Email sequences written without preheaders (every email needs subject + preview text + body — this is table stakes)
- Delivery emails created as separate files, then duplicated as Email 1 in the buyer sequence — creating two versions of the same email
- Ad images generated at 400px instead of 1080px native resolution (Meta Ads requires 1080px minimum for quality)
- Only square (1080x1080) ad images created initially — no vertical (1080x1920) for Stories/Reels placements
- Instagram images created at 1080x1080 instead of 1080x1350 (4:5 ratio, which is the native IG feed format)
- Organic posts created without images initially, with the rationale "these don't need designed images" (they do — organic reach without images is near zero)
- Quick-start URL was
/quick-startbut the actual Convertri slug was/practice-brain-quick-start— every reference was wrong - Practice Brain and CIB were mentioned in email copy but never linked — the words existed, the href didn't
- Nurture emails included the $47 price in the body copy (the whole point of nurture emails is to drive to the sales page, where the price lives — putting price in the inbox lets people self-select out before seeing the full pitch)
Root cause: No definition of "complete" existed for any asset type. Without a checklist that says "an email has these 5 components" or "ad images ship in these 3 sizes," completeness was subjective.
Fix: The campaign launch playbook defines exactly what a complete deliverable looks like for every asset type. Checklist per asset. If the checklist isn't satisfied, the asset isn't done.
Pattern 5: Breaking Things That Were Working
What happened: Working assets were modified without testing, creating new bugs in previously functional work.
- The sales page mobile layout was working. CSS was changed to "improve" it. The change broke the layout. Had to revert.
- Account-level placement controls were modified in Meta Ads Manager during the first campaign setup. This caused an error that killed the entire campaign and required starting over.
- StackEdit was used for editing markdown files, which caused merge corruption across multiple files — visible as