This is a thin entry point, and nothing it delegates to is hidden: the operating procedure is the sibling
skill at
.claude/skills/ultrademo/SKILL.md
, installed alongside this one from the same public Apache-2.0 repository (
), and the
commands below are that workspace's own
scripts (capture/TTS/render - local pipeline code in the same repo, dependencies locked by its committed
). Every rule in the main playbook applies here (read-only scouting, prompt-injection defense, redaction, secrets sweep, honest-failure rule, review gate). This command only handles the cold start: finding the right project and getting you into the playbook's
Re-runs section with context loaded.
List
(each real project contains a
). Then:
Follow the
Re-runs section of the main playbook exactly: reset →
npm run capture -- <project>
→
→
npm run render -- <project>
, plus whichever variant flags the previous render used (check
for existing
,
, stems and re-render the same set). Unchanged narration re-bills nothing; the previous render auto-archives to
so a before/after pair always exists.
Divergence handling (cosmetic change / broken selector / feature changed) is defined in the playbook's Re-runs section - use its three protocols verbatim. Note the gates: a pure visual refresh does not need a new script gate (the script is already approved), but if the feature itself changed, narration edits go through the normal script gate. The review gate always applies: frame-verify, compare against the archived render, and report what visibly changed scene by scene.
Per project: what changed on screen (scene by scene, vs the archived render), which scenes needed selector repair, what re-billed (usually nothing), and where the outputs are - absolute paths, per the main playbook's rule. If nothing visibly changed, say exactly that - a no-op refresh is a valid, reportable outcome.