Demo — not a real clientclaude-opus-5 · 2026-08-14Module 2 · section 10.2 · 1,214 words
Demo run 02 — Demo / review
What this run demonstrates: the generator's own self-check passing something
claim-guard then caught. This is the case the two-skill split exists for, and
it happened on the first attempt rather than being staged.
Step 1 — Intake read, format checked
Demo/review is available: there is a visible, demonstrable result on file (eggs released, cold pan, smear of oil, no scraping).
Same disclosure collision as Run 01 — BV-4 wants a spoken mention inside three seconds, the template opens on the claim under test. Same resolution: disclosure as its own beat ahead of beat 1.
Step 2 — The brief, as filled
Write a 45-second demo script in 5 beats.
PRODUCT
Sable 24cm skillet — a mid-price steel pan sold direct. Hand wash only.
Manufacturer's claim being tested: eggs release with almost no oil.
CONDITIONS — these appear on screen, so be exact
Testing on: two eggs
Starting state: cold pan, a smear of oil, eggs straight from the fridge
Would be unfair to omit: the pan is new, four weeks old
WHAT ACTUALLY HAPPENED — do not improve on this
Result: eggs released on the first try, no scraping
Where it fell short: heavy, awkward one-handed when full
AUDIENCE
A renter in their late twenties who cooks four nights a week in a kitchen they
can't renovate, already owns one pan they resent.
BRAND VOICE
Never say: game-changer, obsessed, literally, honestly, elevate, foodie,
girl math
Barred claims: non-stick forever; dishwasher safe (contract requires hand wash
only in all creative); clinically proven / lab tested; any
comparison naming a competitor product
CONSTRAINTS
- Beat 3 is continuous — write it as one unbroken action, no cuts
- Narration under 12 words per beat; the picture is doing the work
- No comparative claims against named competitors
- State the conditions out loud in beat 2, do not leave them to captions alone
- Do not claim a result I did not list under WHAT ACTUALLY HAPPENED
Return as: BEAT n — [narration] / [what's on screen]. Nothing else.Step 3 — Output, first pass, as generated
BEAT 1 — "Sable says eggs come off with almost no oil." / pan held, one beat BEAT 2 — "Cold pan. A smear of oil. Eggs from the fridge." / hand places each item BEAT 3 — [no narration, about ninety seconds of cooking, unbroken] / egg in, spatula under BEAT 4 — "Came off in one piece." / empty pan, held three seconds BEAT 5 — "Heavy. Hand wash only. It did the thing." / pan set down, hand out of frame
The generator's own step-5 self-check passed this. It ran the template's What to reject list and the off-limits scan, both clean, and handed it on.
Step 4 — claim-guard
BLOCKED — none.
UNSUPPORTED — 1 finding.
Why the generator missed it. The claim was inside a stage direction, not inside narration. The self-check reads narration for banned vocabulary and rejected claims; it did not treat a bracketed timing note as a claim. That is a real gap in the generator's self-check, and it is exactly why a script is not considered checked until the separate skill has seen it.
FLAGGED — 2.
- Beat 1 quotes the manufacturer's claim. Confirm the wording matches what Sable actually publishes — quoting a claim slightly wrong is still misquoting it.
- Conditions omit that the pan is four weeks old. The brief listed it under would be unfair to omit and the output dropped it. Not unsupported — incomplete.
Step 5 — Final script, as shipped
DISCLOSURE — "Paid partnership with Sable." / title card + spoken, 0:00–0:02
BEAT 1 — "Sable says eggs come off with almost no oil." / pan held, one beat
BEAT 2 — "Cold pan. Smear of oil. Fridge-cold eggs. Pan's four weeks old."
/ hand places each item
BEAT 3 — [no narration — run continuous, do not cut] / egg in, cooking, spatula under
BEAT 4 — "Came off in one piece." / empty pan, held three seconds
BEAT 5 — "Heavy. Hand wash only. It did the thing." / pan set down, hand out of frameChanges from first pass:
- Timing claim removed from beat 3 entirely, not softened to "a minute or so" — a hedged unsupported claim is still unsupported, and harder to catch next time.
- Pan age added to beat 2, restoring the omitted condition.
- Disclosure beat added per BV-4.
claim-guard, second pass: BLOCKED 0 · UNSUPPORTED 0 · FLAGGED 2 (manufacturer
wording unverified; disclosure date ageing).
Step 6 — Regression re-run, 2026-08-14
Both skills were amended after this run to define scan scope explicitly — bracketed stage directions, beat/shot descriptions, on-screen text, captions, cover frames and asset names, not just spoken narration. The first-pass draft above was re-run against the amended skills to confirm the gap is actually closed rather than merely documented.
Input: the Step 3 first-pass output, unmodified, including
BEAT 3 — [no narration, about ninety seconds of cooking, unbroken].
Result — script-from-intake step 5 self-check, amended:
SELF-CHECK — surface sweep Spoken narration ................... 4 beats scanned, 0 findings Bracketed stage directions ......... 1 scanned, 1 FINDING Beat/shot descriptions ............. 5 scanned, 0 findings On-screen text ..................... none present — UNCHECKED, not clean FINDING — beat 3, bracketed stage direction "about ninety seconds of cooking" Duration is a factual claim. Numbers sweep flagged it before the claim-to-experience trace ran. experience.md → NOT RECORDED: "How long it takes to heat. I never timed it." Do not hand on. Remove — do not hedge.
Caught at the generator this time, one stage earlier than before, without
claim-guard needing to see it. claim-guard's own amended pass catches the
same line independently, so it is now covered twice rather than moved.
The on-screen text ... UNCHECKED, not clean line is the other half of the fix:
the amended scope requires naming surfaces that don't exist yet rather than
silently scoring them as passed.
What this does not fix. The catch here is the numbers sweep, which works because a duration is recognisably a number. The structural repeatability claim in demo run 04 — a durability assertion made by editing rather than by words — is still only caught by the semantic pass, which has no test behind it. That remains a documented limitation, not a closed gap.
7Provenance
Generated 2026-08-14 · claude-opus-5 · via script-from-intake From: BV-01/SABLE rev. C + experience.md (both DEMO — invented, see README) First pass carried an unsupported timing claim; caught by claim-guard, not by the generator's own check. Removed, not hedged. Human edits: disclosure beat; pan-age condition restored Not evidence of any real client, campaign, or result
Source: content/module-2/skills/demo-runs/02-demo-review.md