SSpaarxLab Academy
Marketing, Content and Product GrowthMG-09
All lessons ×
Growth & Strategy · intermediate · 40 MIN · INTERACTIVE

Proof Before Promotion: Build a Content-to-Activation Learning Loop

Thursday, 4:50 p.m. Herald finishes the Flowline launch post in nine seconds. Confident. Clean. "Teams save 40% of their week." Nobody's team has ever been measured.

Watch an AI-drafted claim ship without a source, put content under a claim contract, break it on purpose, and ship a small, reversible experiment with a receipt that proves what it actually earned.

BEFORE YOU BEGIN

What you will be able to do

  1. Separate a claim from the evidence supporting it.
  2. Design a small distribution experiment with an activation event.
  3. Make a continue, revise, or stop decision without overstating results.
Prerequisites
A real product claim or campaign hypothesis
Assumed knowledge
Basic marketing vocabulary is helpful but optional.
Evidence you will produce
A sourced claim contract and reversible activation experiment
Workload
40 min guided lesson + 45–90 min independent build
0 independent · 0 completed with support · 5 total
YOUR PLACE IS SAVED ON THIS DEVICEStart anywhere, then come back to the same beat.
01 WATCH IT FAIL

The incident

TL;DRA launch post without a claim contract doesn't fail loudly. It fails on a sales call, three weeks later, in front of a prospect.

Meet Herald: an AI copy agent built to move fast, no rule about what a public number has to prove. On Thursday it drafted the Flowline launch post — one headline claim, four channels queued, a newsletter deadline in ten minutes.

Press play. Watch what it does. Your job is the same as a real reviewer's: spot the exact moment this claim stopped being evidence and became a promise.

HERALD · RUN #001 · NO CONTRACT
  1. Press play. A few seconds of real work, slowed down enough to catch the lie.
FORMATIVE CHECK

Herald never invented a customer name or a fake logo — so where did RUN-2214 actually go wrong?

Step 1: choose an answer above. 0 / 20 characters. This reflection stays on your device and is not automatically scored.Stuck? Your reasoning comes first, then you can reveal the answer and continue with support.
02 UNDERSTAND WHY

The diagnosis: no claim contract

TL;DRA brief tells a drafter what to write. A claim contract tells everyone else what has to be true before it ships.

RUN-2214 didn't fail because Herald wrote badly. It observed the truth — no study backs "40%" — and published the number anyway, because "ship before Thursday" was the only stop condition it had.

A claim contract is written before a single word goes out: what evidence a public number must trace back to, who owns confirming it, which channel gets the first small test, and what happens when the source can't be found.

Here's RUN-2214's contract, written properly:

CLAIM CONTRACT · LAUNCH CONTENT
Outcome
A published claim that traces to a document, dataset, or named source a reader could ask to see.
Evidence
Only /evidence/flowline-launch/ counts. Quotes and internal impressions are not benchmarks.
Allowed
check_claim_against_evidence, publish_single_channel. blast_all_channels is denied.
Stop
Any claim without a traceable source is downgraded to a hypothesis or cut — never published.
Go deeper

This isn't only internal hygiene. The FTC's guidance on AI-related claims treats an unsubstantiated performance number the same whether a human or a model drafted it — the burden of proof sits with whoever publishes, not whoever prompted. "The AI wrote it" has never been a defense a regulator accepts, and it shouldn't be one your reviewers accept either.

The contract is also where publishing authority lives. A drafting agent can research, propose numbers, and flag gaps — but it never inherits the authority to declare a claim substantiated. That judgment routes to a named human every time, because the cost of a wrong claim lands on the company's credibility, not the agent's.

FORMATIVE CHECK

Your team is drafting a claim: "Customers cut onboarding time in half." Which line belongs in the claim contract?

Step 1: choose an answer above. 0 / 20 characters. This reflection stays on your device and is not automatically scored.Stuck? Your reasoning comes first, then you can reveal the answer and continue with support.
03 THE MECHANISM

The loop: draft, substantiate, publish small, measure, decide

TL;DRDraft → Substantiate → Publish small → Measure activation → Keep or kill. Content is an experiment, not a broadcast.

A content-to-activation loop runs the same five moves every time. Draft turns a positioning idea into copy. Substantiate checks every public claim against evidence you actually hold. Publish small ships to one channel or one segment, not everywhere at once. Measure activation tracks whether readers took the one action that indicates real interest, not how many people merely saw it. Keep or kill decides, on that evidence, whether to scale the message or retire it.

Two stages carry the discipline. Substantiate is where invented numbers die — if a claim doesn't resolve to a document a reader could ask for, it doesn't ship. Measure activation is where reach stops pretending to be proof: impressions and likes are attention, not evidence the message did its job.

Everything else in a growth marketing system — channel mix, cadence, personalization, AI drafting speed — is an upgrade to one of these five stages. Learn the loop once and the rest is tuning.

01DRAFTIdea → copy, with claims flagged
02SUBSTANTIATEEvery claim traced to evidence you hold
03PUBLISH SMALLOne channel, one segment, reversible
04MEASURE ACTIVATIONTrack the action, not the reach
05KEEP OR KILLScale on evidence, retire on silence
FORMATIVE CHECK

RUN-2214 published to four channels at once and never measured whether anyone acted on the post. Which stage, added to that run, would have caught the problem before a prospect asked for a source?

Step 1: choose an answer above. 0 / 20 characters. This reflection stays on your device and is not automatically scored.Stuck? Your reasoning comes first, then you can reveal the answer and continue with support.
04 YOUR TURN

The Flowline launch, under contract

TL;DRSame claim, same drafter — now with a substantiation gate. Run it clean. Then try to make it publish a lie.

This is RUN-2214 re-run with the claim contract enforced. First run it clean and watch substantiate reshape the post before anything ships. Then switch to Break it and inject the three failures yourself — the point of this chapter is watching one dumb, mechanical check catch what four channels of confidence couldn't.

GOAL Ship a launch post for Flowline that only makes claims the evidence folder can support
check_claim_against_evidence publish_single_channel blast_all_channels
HERALD · RUN #002 · UNDER CONTRACT
  1. Press play. A few seconds of real work, slowed down enough to catch the lie.
FORMATIVE CHECK

In the break-it runs, why did rounding a real 12-person pilot up to "teams save 40% of their week" still count as an invented claim?

Step 1: choose an answer above. 0 / 20 characters. This reflection stays on your device and is not automatically scored.Stuck? Your reasoning comes first, then you can reveal the answer and continue with support.
05 BUILD IT FOR REAL

Build your own claim contract

TL;DRTake this contract to opencode and build the loop for real. Your artifact is the receipt, not the copy.

Everything above ran in the page. Now build it where it counts — your machine, your key, real files. Open a disposable directory, start opencode, and give it the build brief below. Your job is not to write the marketing copy; it's to hold the claim contract while an agent drafts under it. That skill — specifying evidence, limiting blast radius, verifying scope — is the actual curriculum.

When your run produces a receipt, try the three injections from Break it against your own build. If your verify stage catches all three, you've shipped the chapter's artifact. If it catches two, you've found your first real gap — better here than on a sales call.

BUILD BRIEF · PASTE INTO OPENCODE

Build a small content-to-activation loop in this empty directory. Contract: (1) Evidence fixtures: evidence/pilot-note.md (a 12-person, one-week pilot showing "saved roughly a day on weekly reporting" — write this yourself first) and evidence/quote.md (one customer quote), plus a draft-brief.md describing a fictional product launch. (2) Stages: draft, substantiate, publish, measure, decide — each logged to run-trace.jsonl as it happens. (3) Tools: check_claim_against_evidence and publish_single_channel are allowed; blast_all_channels must exist and be denied by an allowlist, with every attempt logged. (4) Substantiate must fail the run if a claim states a number, population, or rate the evidence files do not literally support — including a true data point stretched beyond its scope. (5) Measure must record one defined activation event (a reply, a click, a signup — pick one and define it before you publish) rather than reach or impressions. (6) Decide writes receipt.json: artifact path, checks run with pass/fail, the claim's evidence source, unresolved claims, denied actions, the activation result, and a keep-or-kill decision. No network calls. No real customer data. Then show me the receipt from one clean run and one run where you deliberately inject a claim that overstates the pilot.

YOUR BUILD SURVIVES THE GATE WHEN
  1. Clean run: receipt.json shows the claim traced to pilot-note.md and scoped to what it actually measured
  2. Injection 1 — overstated claim: substantiate fails, run rejected
  3. Injection 2 — publish-before-check race: verify fails, run rejected
  4. Injection 3 — blast attempt: denied at the tool layer and recorded in the trace
  5. You can explain what the receipt proves — and what it does not prove — in two sentences

What the receipt does not prove matters as much as what it does: it proves this claim was traceable to this evidence and that one channel produced one real activation event. It says nothing about whether the message will convert at scale, whether a different audience would respond the same way, or whether next quarter's evidence will still support the same number. That honesty is the difference between a receipt and a promise — which is exactly what a prospect on a sales call is entitled to ask for.

SUBMIT YOUR RECEIPT

Built it? Paste your receipt.json. We verify the evidence structure locally; we do not pretend that valid JSON proves the build works.

06 SHIP IT

What you're leaving with

TL;DRA claim contract you can write in four lines, a loop you can draw from memory, and a receipt that survives a sales call.

You watched a launch post ship an invented number to four channels at once, wrote the contract that would have stopped it, caught three injected lies with a dumb-on-purpose substantiate stage, and built the loop yourself with an agent drafting under your contract. The next chapter turns this same discipline on pricing pages, where the invented number isn't a stat in a post — it's the number a customer actually pays.

KEY TERMS · SAY THESE OUT LOUD IN REVIEWS
Claim contract
Evidence source, allowed inputs, allowed publish actions, stop conditions — written before a word ships, checkable after.
Content-to-activation loop
Draft → Substantiate → Publish small → Measure activation → Keep or kill. Content as experiment, not broadcast.
Substantiation gate
Mechanical check that a claim's scope, not just its existence, matches held evidence.
Activation event
The one defined reader action that indicates real interest — never reach, impressions, or likes.
Blast radius
How many channels or segments a claim reaches before it's been proven. Publish small keeps it reversible.
GO DEEPER · THE SOURCES BEHIND THIS CHAPTER
FORMATIVE CHECK

Your receipt shows the Flowline claim traced to the pilot note and one channel produced a real activation event. What can you honestly tell your team this proves?

Step 1: choose an answer above. 0 / 20 characters. This reflection stays on your device and is not automatically scored.Stuck? Your reasoning comes first, then you can reveal the answer and continue with support.
CHAPTER IN PROGRESSEach check unlocks the next beat; hints never masquerade as mastery.