From 8cd512b9d9d1bf6bc9022878ca95822c9040684d Mon Sep 17 00:00:00 2001 From: Aditi Date: Sun, 18 Oct 2026 15:59:25 -0700 Subject: [PATCH] docs(skills): give general-video a narration policy and a voice-track gate general-video's route never set narration, and the brief contract only said "Follow the selected route", so a general-video run could ship a silent composition and still pass check. The route now infers narration and asks only when the request leaves it open, the contract falls back to inferring it when neither route nor workflow sets a default, and the Done checklist blocks render when narration is yes or minimal and index.html has no voice track. Refs #5686 --- skills-manifest.json | 4 ++-- skills/general-video/SKILL.md | 1 + skills/hyperframes/references/brief-contract.md | 2 +- skills/hyperframes/references/routes/general-video.md | 1 + 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/skills-manifest.json b/skills-manifest.json index ec3874ae536..73c02687c01 100644 --- a/skills-manifest.json +++ b/skills-manifest.json @@ -14,11 +14,11 @@ "files": 2 }, "general-video": { - "hash": "f288a7bc7eb1a1cf", + "hash": "9e4aa19a49b2b561", "files": 6 }, "hyperframes": { - "hash": "44700184328c21b5", + "hash": "431c3a5bce8497ff", "files": 31 }, "hyperframes-animation": { diff --git a/skills/general-video/SKILL.md b/skills/general-video/SKILL.md index 4ee2d13d01a..4b7b7836a89 100644 --- a/skills/general-video/SKILL.md +++ b/skills/general-video/SKILL.md @@ -155,6 +155,7 @@ A run is complete only when: - requested scope is implemented; - for `flow: companion`, the treatment is delivered, not just the scope: every scene's cited blueprint or rules realized, the audio identity present (or the silence chosen and said), the open and close designed rather than defaulted; +- when `narration` is `yes` or `minimal`, `index.html` carries the voice track; a missing track blocks render; - `npx hyperframes check` passes, including its built-in lint stage; - design adherence is reviewed against `/hyperframes-creative` → `references/design-adherence.md` when a design spec exists; - contrast findings are resolved; diff --git a/skills/hyperframes/references/brief-contract.md b/skills/hyperframes/references/brief-contract.md index eec0e03f44e..554785ad525 100644 --- a/skills/hyperframes/references/brief-contract.md +++ b/skills/hyperframes/references/brief-contract.md @@ -71,7 +71,7 @@ Ask only fields used by the selected route. Route entries identify their must-ha | `audience` | Who will watch | Infer when clear. Ask only when a different answer changes the story or terminology. | | `message` | The one thing the video must communicate | Derive and echo one sentence. Do not storyboard until this is clear. | | `angle` | Route-specific story shape | Recommend one route-defined option with a reason. | -| `narration` | `yes`, `minimal`, or `no`, plus route-specific modes | Follow the selected route. | +| `narration` | `yes`, `minimal`, or `no`, plus route-specific modes | Follow the route and its workflow. If neither sets a default, infer from the request and state it. Ask only when unknown and it changes the build. | ### Remembered defaults diff --git a/skills/hyperframes/references/routes/general-video.md b/skills/hyperframes/references/routes/general-video.md index d3e7c2d2b87..fb6ba6b64ad 100644 --- a/skills/hyperframes/references/routes/general-video.md +++ b/skills/hyperframes/references/routes/general-video.md @@ -8,5 +8,6 @@ - **Open-ended requests only:** first derive a one-sentence `message`. Ask `audience` only when it is unclear and would change the story or terminology. Ask `destination` only when it would change aspect or composition. Ask for a priority only when the brief contains a real trade-off. Default to one best version; ask about variations only when the user requests options or comparison. - **Specific requests:** a complete ask such as "a static title card with our logo for a website hero" needs no discovery questions. +- **Conditional:** a multi-scene or longer piece with no voice signal adds **`narration`** — narrated or silent? Otherwise infer it and state it: a title card, poster, or loop is `no`; a requested voiceover is `yes`. - **Pitch round:** `message` — the unformed open-ended request is this round's home case. - **Run-shape:** both questions apply. `/general-video` is also the companion host, so `flow: companion` stays on this route with the full toolbox.