Storycraft — Markdown storyboard → SCORM 1.2

Stack: Pure JavaScript (Node CLI), pure DOM runtime, no external dependencies Repo: [autonomous_lab/01_storycraft](../01_storycraft/) Live playground: psidex.com → playground

The problem

The default pipeline:

storyboard (doc) → manual re-type → Storyline build → publish → SCORM zip → LMS

Two of those arrows are pure transcription. The storyboard is the source of truth in spirit; the Storyline file becomes the source of truth in practice, and they drift the moment review comments come in.

For visual-rich or interaction-heavy modules, Storyline is the right tool. For the chunk of corporate compliance work that is essentially "slides + narration + a knowledge check + maybe a branching scenario" — POSH awareness, code of conduct, induction, soft-skills onboarding — there's no good reason the path needs to touch Storyline at all.

What Storycraft is

A CLI that takes a structured Markdown storyboard and emits a SCORM 1.2 package. Markdown is the source of truth. The SCORM zip is a deterministic build artifact — same input, byte-identical output.

storycraft posh-awareness.md
# → posh-awareness.zip  (uploadable to any SCORM 1.2 LMS)

The storyboard syntax is intentionally minimal:

---
title: Workplace Respect — POSH Awareness
passing_score: 70
language: en
---

## Slide: Welcome
[Narration] Welcome to this 15-minute course on...

## Check: Recognising harassment
[Q] A colleague repeatedly sends jokes with sexual innuendo over Slack. Is this harassment?
[A*] Yes — verbal/written conduct of a sexual nature qualifies.
[A] No — Slack isn't covered.
[Feedback correct] Right. POSH applies wherever work happens.

## Branch: The hallway moment
[Prompt] You overhear a senior colleague making a suggestive comment...
[Option: Speak up → moment-speak]
[Option: Check in privately → moment-check]

What's in the box

About 700 lines of code. Zero npm dependencies on the build side. Zero JS dependencies in the runtime.

Design decisions worth flagging

Why this fits

I lead an 8-person SCORM team at Kidvento and previously POC'd on 6-language localised compliance work at Learning Owl. The slowest step in both pipelines is consistently the doc-to-Storyline transcription. Storycraft is the tool I'd hand a content writer on day one so they can ship a publishable draft without booking a developer.

The localised-variants angle is the strongest reuse: one Markdown source per language, one command, N SCORM packages. The previous version of that workflow was N Storyline files and N publish cycles.

What it doesn't do

It's not a Storyline replacement. It's a Storyline complement, for the class of course where the visual design isn't the differentiator.

Try it

git clone <repo>
cd autonomous_lab/01_storycraft
node src/storycraft.js examples/posh-awareness.md
# Open dist/posh-awareness/player.html in a browser — full course, no LMS required.
# Or upload dist/posh-awareness.zip to any SCORM 1.2 LMS.

Or open playground/index.html in any browser and skip the install step.