storyboard-architect — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited storyboard-architect (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You are turning a creative brief into a deterministic storyboard. The output is a set of files an editor, agency, or developer can act on without asking follow-up questions.
This is not a creative-writing exercise. The output is a spec.
Trigger this skill when the user:
If the user only wants prompts for an image generator (no narrative structure), use visual-prompt-forge directly instead.
For every storyboard run, create this exact set of files in the working output directory:
output/
├── storyboard.md # Human-readable, structured per shot
├── shots.json # Machine-readable, schema in templates/shots.schema.json
├── text-overlays.json # On-screen text + timing
└── brand-lock.snapshot.md # Frozen copy of the brand-lock used (audit trail)If the user asks for image prompts or HTML preview, hand off to visual-prompt-forge or storyboard-html-preview, those skills consume shots.json directly. Don't try to do their job here.
You need these. If any are missing, ask before drafting.
| Input | Required? | Default if absent |
|---|---|---|
| Brief (problem, audience, goal) | Yes | Ask |
| Total duration | Yes | Ask |
| Aspect ratio | Yes | Ask (16:9, 9:16, 1:1) |
| Beat framework | No | Suggest based on brief |
| Brand-lock file path | No | Use brand-packs/_template.md and flag the gap |
| Voiceover style (VO present, on-screen only, captions) | No | Ask if unclear |
| Target generator(s) for downstream prompts | No | Note as "to be specified" |
Follow this sequence. Don't skip steps even if the brief seems simple.
If a brand-lock file path is provided, read it first. Extract:
If no brand-lock is provided, copy brand-packs/_template.md into the output as brand-lock.snapshot.md with a note: # UNCONFIGURED, using template defaults. Recommend providing a real brand-lock for production work.
Read references/beat-frameworks.md. Pick the one that matches the brief. Common cases:
If none fit cleanly, build a custom beat structure but document why in storyboard.md rationale section.
Read references/timing-rules.md for the math. Default cadence:
Don't fight the framework. If the brief and the duration disagree, surface the disagreement before drafting.
Read references/shot-grammar.md for controlled vocabulary. Every shot has:
id, sequential, zero-padded (shot_01, shot_02...)beat, which beat this shot servesstart / end, timestamps in seconds, decimal allowedframing, ECU / CU / MCU / MS / MLS / WS / EWSangle, eye-level / high / low / overhead / dutchmotion, static / push / pull / pan-left / pan-right / handheld / orbitsubject, what's in frame, structuredenvironment, references series-lock languagelighting, references series-lock languageon_screen_text, null OR a text-overlay referencevo, voiceover line, or nullrationale, one sentence explaining why this shot at this momentEvery piece of on-screen text becomes an entry in text-overlays.json. Never bake text into the visual description. Each overlay has:
id, text_01, text_02...shot_id, which shot this overlays oncontent, the actual textfont, references brand-lock typographyposition, center, lower-third, upper-third, left-third, right-third, or {x, y} percentagessize, display, headline, body, captionweight, regular, medium, bold, blackcolor, hex (must come from brand-lock palette)enter, { at: seconds, animation: fade-in | slide-up | type-on | hard-cut }exit, { at: seconds, animation: fade-out | slide-down | hard-cut }Define environment, lighting, and character anchors that apply across every shot. These go at the top of shots.json under series_lock. Without these, image generation will produce incoherent frames.
Every shot has a one-sentence rationale. Why this beat. Why this framing. Why this on-screen text. This is the audit trail. Do not skip it.
Copy the brand-lock file (or template) into the output as brand-lock.snapshot.md. Add a header line at the top:
<!-- snapshot taken: ISO-8601 timestamp -->
<!-- source: original path or "template default" -->This is what makes the storyboard reproducible later.
storyboard.mdUse the template at templates/storyboard.md.tpl. Read it before writing.
shots.jsonMust validate against templates/shots.schema.json. Read it before writing. The structure is:
{
"version": "1.0",
"project": { "title": "...", "duration_s": 30, "aspect": "9:16" },
"brand_lock_ref": "brand-lock.snapshot.md",
"series_lock": {
"character": "...",
"environment": "...",
"lighting": "...",
"color_grade": "..."
},
"shots": [
{
"id": "shot_01",
"beat": "hook",
"start": 0.0,
"end": 2.0,
"framing": "MCU",
"angle": "eye-level",
"motion": "static",
"subject": "...",
"environment_ref": "series_lock.environment",
"lighting_ref": "series_lock.lighting",
"on_screen_text": "text_01",
"vo": null,
"rationale": "..."
}
]
}text-overlays.jsonMust validate against templates/text-overlays.schema.json. Read it before writing.
Before declaring the storyboard complete, verify:
(end - start) across shots equals project duration (within 0.1s)on_screen_text reference resolves to an entry in text-overlays.jsonseries_lock is populated (not empty strings)brand-lock.snapshot.md exists in outputsubject fieldIf any check fails, fix before declaring done.
Load these as needed:
references/beat-frameworks.md, the beat structuresreferences/shot-grammar.md, controlled vocabulary for framing/angle/motionreferences/timing-rules.md, pacing mathreferences/on-screen-text.md, when on-screen text earns its keepexamples/30s-pain-proof-promise/, full output set for a 30-second conversion adexamples/60s-founder-explainer/, full output set for a founder explainerRead these to understand the expected output quality, especially the rationale fields.
After producing the four files, tell the user what's in output/ and offer the obvious next steps:
visual-prompt-forge on shots.json."storyboard-html-preview."visual-asset-critic."Don't run those automatically. The user picks.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.