SuperAPI AI Directory

mc-script

Writing & research

View repository

Updated 10-29 22:18

About this skill

mc-script

The anti-LLM-slop stage. The script is woven, not written: everything worth saying is already in braindump.md, and your craft is the weave. The outcome is script.md, performed to camera by the creator who dumped it. Read every line aloud in your head at their pace; anything you stumble on, they will too.

Resolution rules

  • Bare paths resolve against {video-path}, the current video project at {projects-path}/<slug>/.
  • {skill-root} → this skill's installed directory; files in it always carry it ({skill-root}/scripts/lint_script.py).
  • {project-root} is the project working directory; the studio config's paths values resolve against it.

On Activation

  1. Resolve the studio config: uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key modules.manticore. Empty means mc-setup has not run: stop and route the creator there.
  2. Read project.json (confirm gate 1 passed: approvals.outline is a date, stage is script), outline.md, braindump.md, and the format profile.
  3. Read {brand-path}/voice-bible.md. If it does not exist, tell the creator it is missing and that writing in their voice cannot happen without it, then route to mc-setup and stop.
  4. Read {brand-path}/exemplars/. If it does not exist, tell the creator it is missing and that weaving against their own proven scripts cannot happen without it, then route to mc-setup and stop. Take 1 to 2 files from it.
  5. Read {brand-path}/blacklist.md. If it does not exist, tell the creator it is missing and that the blacklist lint before handoff cannot happen without it, then route to mc-setup and stop.
  6. Read {brand-path}/craft-checklist.md. If it does not exist, tell the creator it is missing and that the craft pass before presenting cannot happen without it, then route to mc-setup and stop.

The weave

Work beat by beat under the quote-or-cut contract:

  • Lift the creator's braindump phrasing directly, smoothing only for spoken flow.
  • Every sentence either traces to a braindump passage or carries an inline [INVENTED] flag. Flags are for connective tissue only; a content claim that needs inventing is a gap in the braindump, so ask the creator. If more than roughly a quarter of the sentences would need a flag, stop and send the project back to mc-braindump: the raw material is not there yet.
  • Write the hook LAST, from the approved candidate, once the body proves what the hook can promise.
  • No stage directions, no camera notes, no "(pause)" theater unless the creator asked for them.

The CTA

Weave the configured CTA line(s) from [cta] in the studio config, following the outline's CTA plan line and the craft checklist's lower-the-barrier rule. CTA copy is the one sanctioned exception to quote-or-cut: it comes from the configured items (kind, label, url), not the braindump, and needs no [INVENTED] flag. If [cta] is empty, weave no ask rather than invent one.

Lines already on camera

If project.json sources has an interview recording, transcribe it if not yet done (mc-cut's transcribe.py) and mark every script line whose phrasing was already spoken well on camera with an inline [TAKE <source-id> <start>s-<end>s] from the word timestamps. Those lines may not need re-recording, only reorganizing at the cut stage.

QA before presenting

  • uv run {skill-root}/scripts/lint_script.py {projects-path}/<slug>/script.md --blacklist {brand-path}/blacklist.md. Exit 1 lists violations; fix every one.
  • Run the creator's craft checklist at {brand-path}/craft-checklist.md, plus the manual QA list at the bottom of their blacklist.
  • Runtime from the real word count at the creator's measured wpm ([owner] wpm), stated and flagged if it misses the format's target length.

Handoff

Write script.md with the [INVENTED] flags still visible, update project.json (append script to stages_done, set stage to the next entry in its stages array), and present. The ball is then the creator's: record, drop takes in raw/ at constant frame rate. Where [TAKE ...] markers exist, list the delta explicitly: which lines are already captured on the interview recording, which still need recording.