Skip to content

docs(skills): the agent presents a tailor-made storyboard instead of a Studio board - #4150

Merged
miguel-heygen merged 2 commits into
mainfrom
feat/storyboard-recipe
Sep 19, 2026
Merged

miguel-heygen merged 2 commits into
mainfrom
feat/storyboard-recipe

Conversation

@miguel-heygen

@miguel-heygen miguel-heygen commented Sep 19, 2026 •

Copy link
Copy Markdown
Collaborator

What changes

The agent presents the storyboard as a self-contained page it writes itself, storyboard.html, instead of the removed Studio board. The plan is still proposed in chat first; the layout sketch is now a browser page the user opens, styled with the real brand tokens, not a Studio surface.

New: skills/hyperframes-creative/references/storyboard-recipe.md — the method (decisions first, a beat-field table, the storyboard.html cell spec, the review round), distilled from the shipped launch films' storyboards.

Rewritten: review-loop.md, brief-contract.md, storyboard-format.md, the three narrated workflows' SKILL.md, general-video, music-to-video, hyperframes-cli, script-format.md, frame-worker-core.md, production-loop.md, intent-interview.md, brief-format.md, routes/motion-graphics.md, docs/prompting/{overview,storyboards}.mdx, and one code comment in packages/core/src/storyboard/types.ts — every place that still described the deleted board, the Studio poster, "chips it blue", or the .hyperframes/frame-comments.json channel (which had no reader anywhere in the tree).

Deleted: the dead comments-file schema and its two references.

Stacked on #4140 (merged), which removed the Studio storyboard view this replaces.

Example storyboard.html

A worked example at desktop width, so the review is about whether it's beautiful, not hypothetical:

Example storyboard.html at desktop width

Pre-review pass

An independent adversarial review (separate agent, own detached worktree) found two real defects, both fixed at this head:

  1. The frame-packet splitter (frame-packets-core.mjs) takes everything after a ## Frame N heading to the next one — a ## Locked section appended after the recipe's own instruction would have leaked into the last frame's worker packet. Fixed: it's written above the first frame, like the sibling sections.
  2. The recipe's storyboard.html cell spec (real fonts, real brand colors) contradicted review-loop.md's own sketch definition ("wireframe... no full brand treatment"). Reconciled: the sketch is static, not unstyled — the full frame.md treatment lands in the sketch; only motion is deferred to the build pass.

Also fixed: a craft-device citation split across two docs pages, and a provenance sentence overclaiming what the five launch films specifically evidence.

Audited / Trusting / Not exercised

What Status
Frame-packet boundary (every new instructed section sits above the first frame) Audited
Sketch definition consistent across review-loop / recipe / frame-worker-core Audited
No remaining description of the deleted board, poster, or comments file (exhaustive grep, skills/ + docs/) Audited
coreSkillContent.test.ts, figma/skillContent.test.ts phrase requirements Audited (remote run at an earlier head with identical prose: 13 passed / 5 passed; phrases re-confirmed present in current file text)
skills-manifest.json in sync Audited (gen-skills-manifest.ts --check)
comment-check Audited (ok)
Craft-device citations against the real docs pages Audited
Recipe claims against the real launch-film artifacts Audited (one provenance overclaim found and softened)
A live workflow run end to end producing a real storyboard.html Not exercised (docs/prompting change; no runtime harness for this)

No telemetry numbers, tracker keys, internal hostnames, or person names in the new text.

@mintlify

mintlify Bot commented Sep 19, 2026 •

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
hyperframes 🟢 Ready View Preview Sep 19, 2026, 4:54 AM

💡 Tip: Enable Automations to automatically generate PRs for you.

…d of a Studio board

Adds the storyboard recipe (decisions first, beat fields, a self-contained
storyboard.html contact sheet, a review round) distilled from the launch
films, and rewrites the review loop, brief contract, storyboard format and
workflow steps that still described the deleted board and comments file.
… sheet

Review found: the recipe's storyboard.html cell spec (real fonts, real
colors) contradicted review-loop's own sketch definition (wireframe, no
brand treatment). The sketch is static, not unstyled; only motion is
deferred to the build pass. Also fixes a frame-packet boundary note, a
craft-device citation, and a provenance overclaim.

@jrusso1020 jrusso1020 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at 92d873db189540ce383e86b242ca5462beef5c6d (true merge-base 85537e1c7d, 2 commits, 23 files). Approving — the sweep is thorough and the removals are clean. Two wording items below that I'd fix before merge, neither blocking.

Note on the request: I hadn't reviewed 32e3eb9e, so I didn't lean on the range-diff equivalence — this is a first full read at the new head, not a re-stamp.

What I verified

  • The types.ts comment correction is accurate. FrameStatus has no consumer in packages/studio — the only references are packages/core/src/storyboard/* and the four skills' scripts/lib/storyboard.mjs. The old "the Studio renders progress from this" was already stale; "scripts and the agent read progress from this" is right.
  • Both deletions from storyboard-format.md leave nothing dangling. frame-comments went 2 → 0 references repo-wide (the section here plus the brief-contract.md § 1 paragraph, both removed in this PR); srcExists went 1 → 0, and that one occurrence was the sentence being deleted — nothing in the repo ever implemented it.
  • skills-manifest.json is correct. Regenerating with packages/cli/scripts/gen-skills-manifest.ts reports "already in sync — no change (21 skills)". The 8 updated hashes are exactly the 8 skill dirs the PR touches, and hyperframes-creative 78 → 79 matches the one added file.
  • Gates that cover these paths pass: scripts/lint-skills.ts → "Checked 33 skill file(s) and 7 registry snapshot(s) against 409 registry items — no issues found"; oxfmt --check clean on all changed files.
  • No mirror drift. The touched skills (hyperframes, hyperframes-creative, hyperframes-cli, faceless-explainer, general-video, music-to-video, pr-to-video, product-launch-video) are disjoint from the .claude/skills / .agents/skills repo-native set, so check-skill-mirror.mjs isn't in play.
  • storyboard.html is introduced consistently — 0 → 22 references — and § 4 deliberately keeps the Studio preview for the final look, which is why the remaining "final Studio preview" lines in general-video/SKILL.md and faceless-explainer/SKILL.md are correct rather than missed.
  • Workers can reach the new artifact. subagent-dispatch.md gives a worker "the prompt and the files on disk", so storyboard.html#frame-NN is readable — no dispatch-scope change needed.

1. The sketch-is-styled reconciliation didn't reach two places

The second commit's whole point is that a sketch is now a styled frame. That landed in review-loop.md § 2 ("drawn with the full frame.md treatment (real fonts, real colors)") and in frame-worker-core.md, which drops "(the sketch is deliberately unstyled)" for "the sketch already carries the full frame.md treatment". Two sites still say the opposite:

  • skills/hyperframes/references/storyboard-format.md:97 — this PR replaced "Studio chips it blue." with "Nothing is drawn yet beyond the approved layout." on the line that defines built. Read alongside the same line's "(a wireframe sketch or better)", that reads as "nothing is styled yet", which is what § 2 now rules out. The charitable reading is that it scopes content (no elements beyond the approved layout) rather than styling — but it's the status definition, and it's the sentence this PR added, so it's worth disambiguating rather than leaving to the reader.
  • skills/hyperframes/references/review-loop.md:29 (§ 3) — still "building means dressing that layout (full design treatment, real assets, motion)" and "must still read as the approved wireframe, fully dressed." frame-worker-core.md now tells the worker the treatment is already there and to deliver "the approved sketch, now moving". A worker reading § 3 and a worker reading its own role file get different instructions about whether the brand pass is theirs.

2. Three cross-skill citations in the new file lost their path prefix

skills/hyperframes-creative/references/storyboard-recipe.md:3 (and :7) cite brief-contract.md, review-loop.md and storyboard-format.md bare, but all three live in skills/hyperframes/references/ — there are no such siblings in hyperframes-creative/references/. The convention is applied correctly everywhere else, including in this PR:

  • review-loop.md:5 (this PR) → hyperframes-creative/references/storyboard-recipe.md
  • story-spine.md:24, typography.md:63 (pre-existing) → hyperframes/references/brief-contract.md

story-spine.md at :52 is same-directory and correct as-is. Nothing lints link targets, so this won't be caught downstream.

Nit

storyboard-format.md:29 and :34 still describe src and poster in terms of "the tile poster" — board vocabulary in the file this PR was sweeping. The poster field itself is live (parsed at parseStoryboard.ts:270), so it's only the phrasing.

— Rames

@miguel-heygen
miguel-heygen merged commit 1a9668b into main Sep 19, 2026
62 checks passed
@miguel-heygen
miguel-heygen deleted the feat/storyboard-recipe branch September 19, 2026 05:07

This branch was successfully deployed

1 active deployment
staging - docs — 92d873db Deployed Sep 19, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants