$npx -y skills add wanshuiyin/ARIS-Movie-Director --skill comic-asset-ref-generatorPhase-1 (S4) of a comic movie — PRODUCE the canonical reusable references the whole spiral conditions on. Per asset it bakes ONE canonical 1:1 white-bg identity ref via the agent mcp__codex__codex sidecar bake (Codex native image_gen — conditioned, never hand-pasted) OR, for a de
| 1 | # comic-asset-ref-generator — the Reference Producer (Phase 1 · S4) |
| 2 | |
| 3 | The **missing Layer-2 of comic-author**: take the storyboard's consolidated `ASSET_REQUESTS` and produce, for |
| 4 | **every** declared asset, the one canonical artifact that **every downstream panel bake will condition on** — |
| 5 | so the film never grows two visual dialects and every panel of the same character/prop/motif reads as the same |
| 6 | thing. This is precisely the producer of `comic.json`'s `identity_refs` (e.g. `duo_canonical_ref_v001.png` + |
| 7 | per-character locks like `executor.hoodie #1D4684` / `reviewer.beard true`) that the proven comic created **by |
| 8 | hand**. It is the upstream sibling of [`comic-blueprint-author`](../comic-blueprint-author/SKILL.md) (which |
| 9 | authors per-panel content-SVGs) and feeds [`comic-asset-review-loop`](../comic-asset-review-loop/SKILL.md) and |
| 10 | the [`comic-director`](../comic-director/SKILL.md) spiral. |
| 11 | |
| 12 | Two asset classes, two production routes — **this is the load-bearing fork**: |
| 13 | |
| 14 | ```text |
| 15 | storyboard.consolidated_asset_requests |
| 16 | ├── identity / scene / prop ──▶ RASTER ref: agent mcp__codex__codex sidecar bake, CONDITIONED on a labeled white-bg |
| 17 | │ (a face, a hoodie, condition + real identity refs → 1:1 (or 16:9 scene) PNG |
| 18 | │ an empty room) → output_ref{file_path,data_url,sha256,width,height,mime} (ALL 6) |
| 19 | │ |
| 20 | └── deterministic motif ──▶ SVG SOURCE: ONE parametric builder in asset_lib.py |
| 21 | (clock / chart / stamp (ddl_chip / stamp / mug / curve_panel / tokyo_chip / starmap …) |
| 22 | / mug / star-map) the "ref" IS the single-source SVG — NOT an image bake |
| 23 | → records generator_script, owner_script, file_sha256 |
| 24 | |
| 25 | both routes → review_status:"pending" (NEVER "locked" here) → collision gate → asset-review-loop |
| 26 | ``` |
| 27 | |
| 28 | The battle lesson, landed as the fork above: a clock, a chart, a verdict stamp, a star-map is **deterministic |
| 29 | content** — you do NOT bake it as a fuzzy image and hope the digits land; you build it once from a python |
| 30 | generator (`asset_lib.py`) so all 18 instances of the DDL timeline, all 7 verdict stamps, both the labeled and |
| 31 | the wordless star-map render from the **same coordinates** and never diverge. An identity (a face, a costume) is |
| 32 | **not** deterministic — that you bake once via the sidecar bake (Codex's native image tool), *conditioned* on a |
| 33 | labeled white-bg reference and the real identity refs, never a free prompt, never a hand-paste. |
| 34 | |
| 35 | ## Constants |
| 36 | - **GENERATOR** (raster route) = the agent's `mcp__codex__codex` sidecar bake: `model: "gpt-5.5"`, |
| 37 | `config{ model_reasoning_effort: "xhigh", include_image_gen_tool: true }`, **`sandbox: "workspace-write"`**, |
| 38 | plus `approval-policy: "never"` — an **mcp-call argument**, NOT a `.bakereq.json` field (the sidecar payload |
| 39 | carries no such key). This exact shape is the **empirical v3.5 lesson**: without `workspace-write` + |
| 40 | `approval=never` + `include_image_gen_tool=true`, Codex falls back to writing *descriptive text* (or an SVG |
| 41 | renderer) instead of firing its native image tool. `image_gen` is **incompatible with `minimal`** effort; the |
| 42 | shipped bake runs **`xhigh`** — the same `gpt-5.5 + xhigh` single compat default pinned in |
| 43 | `run_comic.get_bake_plan()` (contract `bakereq/v1`, the digest the p0_proof cert binds to; a config-driven |
| 44 | model/effort override is **planned**, not yet implemented). **Honest scope: this Phase-1 raster ASSET bake |
| 45 | is paid and runs PRE-P0** — the p0_proof cert gates the Phase-2/3 PANEL bakes only (no cert can exist before |
| 46 | `comic.json` compiles, and assets must lock first); the gate on THIS spend is the cross-model |
| 47 | [`comic-asset-review-loop`](../comic-asset-review-loop/SKILL.md) + the single-source collision gate (P5), |
| 48 | not P0. NB the Codex CLI *reviewers* elsewhere in the |
| 49 | pipeline pin **no** model (they follow the local codex config — currently `gpt-5.6-sol`) at eff |