$npx -y skills add wanshuiyin/ARIS-Movie-Director --skill comic-blind-comparison-reviewPhase-1 comic-author step (post-final eval) — a DOUBLE-BLIND A/B of two FINAL whole comics: our cross-model-audited progressive render (the comic-author + comic-director output) vs a naive single-shot baseline. A single sealed coin-flip hides which is which; two cross-model revie
| 1 | # comic-blind-comparison-review — Double-Blind A/B of Two Finished Comics (Phase 1, step S12, post-final) |
| 2 | |
| 3 | The **"vs baseline" capability** the comic side otherwise lacks. The per-panel |
| 4 | [`comic-director`](../comic-director/SKILL.md) `panel_gate` and the cross-panel `assembly_gate` operate |
| 5 | **during** production on single units; this skill operates **after** production, on two **complete works** — |
| 6 | our cross-model-audited progressive comic (authored by the [`comic-author`](../comic-author/SKILL.md) suite, |
| 7 | baked by [`comic-director`](../comic-director/SKILL.md)) **vs a naive single-prompt one-shot baseline** — and |
| 8 | proves the spiral pipeline beats the one-shot, **under a blind so neither reviewer can favor the home team**. |
| 9 | It is a direct, faithful port of aris_movie's `blind-comparison-review` from video to a whole-comic A/B |
| 10 | (`outputs/aris_movie_progressive.mp4` vs `outputs/baseline_sd2_naive.mp4` → two rendered comic page sets), and |
| 11 | it is an **evaluation** skill, not an authoring one: it never edits a comic, it judges two finished ones. |
| 12 | |
| 13 | > **Cardinal lesson baked in as a gate, not prose:** *the order of operations IS the integrity guarantee.* |
| 14 | > A single coin-flip seals `.ab_mapping.json` and `chmod 600`s it **before any reviewer is invoked**; the |
| 15 | > seal's mtime MUST precede both reviews; from seal-time until UNSEAL the orchestrator (Claude) may not read |
| 16 | > or quote the mapping; **any home-team token in a reviewer prompt is a HARD-ABORT, not a warning.** If the |
| 17 | > orchestrator reads the mapping before both reviews land, it may subconsciously phrase the synthesis to favor |
| 18 | > the home team — so the timestamp ordering is the audit trail, and "blinding integrity" is **REPORTED, never |
| 19 | > assumed**. |
| 20 | |
| 21 | ```text |
| 22 | progressive comic ┐ ┌─▶ comparison.md (Chinese deliverable) |
| 23 | (our audited) ├─▶ ⓪ SEAL .ab_mapping.json (1 coin-flip, │ |
| 24 | baseline comic ┘ chmod 600, mtime BEFORE any reviewer) │ |
| 25 | (naive one-shot) │ ▼ │ |
| 26 | │ ① STAGE pages → A/ and B/ (sealed ids) │ |
| 27 | │ ▼ │ |
| 28 | │ ② CODEX blind review (xhigh, RO) ─────┤ (no home-team token; reads SHARED |
| 29 | │ ▼ │ blind spec = intent + ART_BIBLE only) |
| 30 | │ ③ GEMINI blind review (per-page + ─────┤ |
| 31 | │ synthesis, auto-gemini-3) │ |
| 32 | │ ▼ │ |
| 33 | └─▶ ④ UNSEAL (verify seal_ts < BOTH reviews) ┘ |
| 34 | ▼ |
| 35 | ⑤ WRITE comparison.md + ⑥ WIKI A/B verdict nodes + edges |
| 36 | ``` |
| 37 | |
| 38 | ## Constants |
| 39 | - **ARTIFACTS** = two FINAL whole comics. `progressive` = our spiral output (`comic-director`'s baked frames + |
| 40 | the single-file viewer, or `comic.json` → render); `baseline` = a naive single-prompt one-shot comic of the |
| 41 | SAME story+style (no spiral, no per-panel gate). For the worked example the contract boundary is |
| 42 | [`examples/comic_m3_audit/comic.json`](../../examples/comic_m3_audit/comic.json) (the structured-IR artifact |
| 43 | under test) + [`examples/comic_m3_audit/ART_BIBLE.md`](../../examples/comic_m3_audit/ART_BIBLE.md) (the |
| 44 | SHARED blind spec both reviewers read). |
| 45 | - **MAPPING_FILE** = `outputs/.ab_mapping.json` — the seal, `chmod 600`. Written by ⓪ **before** any reviewer. |
| 46 | - **REVIEWERS (two families, the load-bearing diversity)** = Codex via a fresh `mcp__codex__codex` call, |
| 47 | `model_reasoning_effort: xhigh`, `sandbox: "read-only"` (**no model pin** — the call follows the local codex |
| 48 | CLI config; only the *bake* pins a model, via `run_comic.get_bake_plan()`) ‖ Gemini `auto-gemini-3` (per-page |
| 49 | `mcp__gemini__analyzeFile` + a text-only |
| 50 | `mcp__gemini-cli__ask-gemini` synthesis). Never downgrade the effort tier |
| 51 | ([`reviewer-routing`](../../protocols/reviewer-routing.md)). Optionally fold in the |