$npx -y skills add wanshuiyin/ARIS-Movie-Director --skill comic-authorPhase 1 ORCHESTRATOR of a movie/comic — turn a fuzzy story idea into the Authored Source of Truth (a schema-valid comic.json + its locked asset library) by driving the detailed author skills in order (intent → style → outline → storyboard → assets → blueprints → prompts → comic.j
| 1 | # comic-author — the Pipeline-A Orchestrator (Phase 1) |
| 2 | |
| 3 | The **left third of Figure 1**, as an **agent-run workflow**: a fuzzy idea → a `comic.json` + its locked asset |
| 4 | library, so [`comic-director`](../comic-director/SKILL.md) (Phase 2/3) bakes + adversarially verifies it. This |
| 5 | skill is **thin** — it owns the ORDER, the BARRIERS, and the HAND-OFF; each step's real procedure lives in its |
| 6 | own detailed skill. |
| 7 | |
| 8 | > **End-to-end in one slash-command?** [`movie-pipeline`](../movie-pipeline/SKILL.md) is the single entry that |
| 9 | > drives THIS skill (Phase 1) → the `p0_proof` gate → `comic-director` (Phase 2/3 bake) → viewer. comic-author is |
| 10 | > the Phase-1 half it calls; use it directly when you only want to author + lock the `comic.json`. The contract boundary to Phase 2/3 is **`comic.json` + the assets it references** |
| 11 | (content-SVG blueprints, identity refs, `ART_BIBLE.md`). |
| 12 | |
| 13 | > **How you "run" this — it is an AGENT workflow, not a shell CLI.** You point your coding agent (Claude, |
| 14 | > Codex, …) at this skill; the agent FOLLOWS the steps below — authoring the wiki nodes and calling the few |
| 15 | > deterministic helper scripts that ARE real CLIs: [`comic-director/scripts/run_comic.py`](../comic-director/scripts/run_comic.py), |
| 16 | > [`cli/validate_wiki.py`](../../cli/validate_wiki.py), [`comic-panel-prompt-builder/scripts/build_prompt.py`](../comic-panel-prompt-builder/scripts/build_prompt.py). |
| 17 | > The **`--gate <kind>`** notations below are the **agent PROCEDURE** in |
| 18 | > [`comic-cross-layer-gate`](../comic-cross-layer-gate/SKILL.md) (fan out the cross-model reviewers → fuse → flip |
| 19 | > `status`) — **not** a binary you `exec`. This mirrors every ARIS skill: the SOP is the product, a coding agent is the runtime. |
| 20 | |
| 21 | > **Two hard human gates (never auto-proceed):** the **intent** and the **outline** are story decisions — the |
| 22 | > user must approve each before the next layer starts (the story-first rule; the gate is |
| 23 | > [`acceptance-gate`](../../protocols/acceptance-gate.md)). Everything downstream is agent-driven + cross-model gated. |
| 24 | |
| 25 | ## The pipeline (run in order) — the N1 two-stage DAG (each step = a detailed skill + its gate) |
| 26 | Dependencies are the node_schema `source_*` fields, not invented — each step consumes the prior locked node. |
| 27 | The two-stage shape is the deadlock fix: the outline gate demands every referenced `asset_id` be **DECLARED |
| 28 | with a complete, generatable request** (never `locked` — assets don't exist yet on a fresh project); the |
| 29 | storyboard runs a **provisional structural pass** first; the ONE hard locked-asset barrier sits before |
| 30 | blueprint authoring (step 7), reached via two cheap gate re-passes (6a/6b). |
| 31 | |
| 32 | | # | Step → skill | Produces | Gate (via [`comic-cross-layer-gate`](../comic-cross-layer-gate/SKILL.md)) | |
| 33 | |---|---|---|---| |
| 34 | | 1 | [`comic-intent-parser`](../comic-intent-parser/SKILL.md) | `intent_spec` | **USER approves** → `--gate intent` | |
| 35 | | 2 | [`comic-style-bible-lock`](../comic-style-bible-lock/SKILL.md) | `style_anchor`×N + `ART_BIBLE.md` | style lock (design-aware) | |
| 36 | | 3 | [`comic-outline-creator`](../comic-outline-creator/SKILL.md) | `outline_spec` (3-lens → synth) | **OUTLINE_DRAFT_VALID** (`--gate outline`: narrative+continuity+safety; asset_ids DECLARED, **not** locked) → **USER approves** → locked | |
| 37 | | 4 | [`comic-storyboard-creator`](../comic-storyboard-creator/SKILL.md) | PROVISIONAL `storyboard_spec` + `panel_spec`×N + `motif_ledger` + consolidated `asset_requests` | `--gate storyboard` **structural pass** (may reference draft assets) | |
| 38 | | 5 | [`comic-asset-ref-generator`](../comic-asset-ref-generator/SKILL.md) | `asset`×N (single-source, from the requests) | — | |
| 39 | | 6 | [`comic-asset-review-loop`](../comic-asset-review-loop/SKILL.md) | each `asset` → `status: locked` (准×3) | `--gate asset` · **assets LOCKED** | |
| 40 | | 6a | **OUTLINE_FINAL_LOCK** (gate re-pass, no new skill) | outline re-check `decision` node | cheap re-check: the locked assets still match the approved outline (`identity/scene_lock_feasibility` scored HERE) | |
| 41 | | 6b | storyboard **FINAL validation** (gate re-pass) | `storyboard_spec` → `locked` | re-run `--gate storyboard`: `panel_assets_referenceable` (resolves AND locked) now satisfiable · **ASSET-LOCK BARRIER ↓** | |
| 42 | | 7 | [`comic-blueprint-author`](../comic-blueprint-author/SKILL.md) | `blueprint`×N (content-SVG, no baked bubbles) | `--gate blueprint` (the locked-asset HARD barrier lives here) | |