PROD. SECOND UNIT UGC/SIDES — MODULE 2/DEMO/From content/ on disk
Demo brandnot a real client

Demo — not a real clientclaude-opus-5 · 2026-08-14Module 2  ·  section 10.2  ·  1,214 words

Demo run 02 — Demo / review

demo runDoc type
demoStatus
Not flaggedFact-check
neverLast verified
DEMO BRAND

See README.md.

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

Prompt  the brief, as filledvia script-from-intake
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

Output  as generatedclaude-opus-5 · 2026-08-14
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.

Beat 3 — "about ninety seconds of cooking"

Check: claim-to-experience trace. Failed against: experience.mdNOT RECORDED block, which says in terms: "How long it takes to heat. I never timed it." A duration is a factual claim. This one was produced because ninety seconds is a plausible time to cook two eggs, which is precisely the failure mode the NOT RECORDED block exists to catch.

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

Shippeddemo brand
Final  as shippedclaude-opus-5 · 2026-08-14
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 frame

Changes from first pass:

  1. 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.
  2. Pan age added to beat 2, restoring the omitted condition.
  3. 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:

Check  claim-guard reportclaude-opus-5 · 2026-08-14
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

Provenance  standing lineattached to everything shipped
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
Your word for it — nothing is tracked automatically.

Source: content/module-2/skills/demo-runs/02-demo-review.md