{"id":17871,"plugin_id":"plugins_6a7e8e80bf188191b745b31133a82db8","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:14:25.669Z","digest":"27fc4412d966014fca4de653af1945d5225037a2e7aa4534f5dfb46853c4292b","against":null,"payload":{"description":"Create, storyboard, render, resume, repair, and export finished original manga/anime comics from a short prompt, prose story, pasted narrative, or local .txt/.md source. Use when Codex should produce editable plans, consistent panel PNGs, composed page PNGs, a PDF, manifest, and transparent QA report without building a web app.","included_files":[{"relative_path":"assets/fonts/ComicNeue-Bold.ttf","size_in_bytes":55716},{"relative_path":"assets/fonts/ComicNeue-Regular.ttf","size_in_bytes":57248},{"relative_path":"assets/fonts/NotoSans-Regular.ttf","size_in_bytes":569208},{"relative_path":"assets/fonts/OFL-ComicNeue.txt","size_in_bytes":4389},{"relative_path":"assets/fonts/OFL-NotoSans.txt","size_in_bytes":4377},{"relative_path":"references/capability-detection.md","size_in_bytes":1874},{"relative_path":"references/creative-direction.md","size_in_bytes":2795},{"relative_path":"references/image-provider-setup.md","size_in_bytes":1118},{"relative_path":"references/safety-ip.md","size_in_bytes":2166},{"relative_path":"references/schemas.md","size_in_bytes":23996},{"relative_path":"references/visual-qa.md","size_in_bytes":3680},{"relative_path":"references/workflow.md","size_in_bytes":10340},{"relative_path":"scripts/comic_sol.py","size_in_bytes":86046},{"relative_path":"scripts/compose_pages.py","size_in_bytes":13421},{"relative_path":"scripts/export_pdf.py","size_in_bytes":10370},{"relative_path":"scripts/font_cmap.py","size_in_bytes":5574},{"relative_path":"scripts/layouts.py","size_in_bytes":4851},{"relative_path":"scripts/letter_panels.py","size_in_bytes":41911},{"relative_path":"scripts/normalize_panels.py","size_in_bytes":8990},{"relative_path":"scripts/page_quality.py","size_in_bytes":21146},{"relative_path":"scripts/pdf_quality.py","size_in_bytes":7919},{"relative_path":"scripts/project_io.py","size_in_bytes":23462},{"relative_path":"scripts/quality_records.py","size_in_bytes":2811},{"relative_path":"scripts/quality_sample.py","size_in_bytes":4525},{"relative_path":"scripts/render_report.py","size_in_bytes":22726},{"relative_path":"scripts/typography.py","size_in_bytes":8057},{"relative_path":"scripts/validate_project.py","size_in_bytes":86603},{"relative_path":"templates/character-bible.json","size_in_bytes":50},{"relative_path":"templates/manifest.json","size_in_bytes":1090},{"relative_path":"templates/page-qa.json","size_in_bytes":1836},{"relative_path":"templates/panel-record.json","size_in_bytes":2172},{"relative_path":"templates/qa-report.md.tmpl","size_in_bytes":464},{"relative_path":"templates/story-plan.json","size_in_bytes":209},{"relative_path":"templates/storyboard.json","size_in_bytes":45}],"name":"comic-sol","skill_md_contents":"---\nname: comic-sol\ndescription: Create, storyboard, render, resume, repair, and export finished original manga/anime comics from a short prompt, prose story, pasted narrative, or local .txt/.md source. Use when Codex should produce editable plans, consistent panel PNGs, composed page PNGs, a PDF, manifest, and transparent QA report without building a web app.\n---\n\n# Comic Sol\n\nTurn one natural-language request into a local, editable comic project. Operate as an\nagent workflow: reason about story and images, use an exposed image-generation\ncapability, and delegate deterministic validation, lettering, composition, export, and\nreporting to the bundled Python scripts.\n\n## Read progressively\n\n- Read [workflow](references/workflow.md) for input detection, all ten stages, commands,\n  state transitions, failures, resume, and completion.\n- Read [creative direction](references/creative-direction.md) before authoring plans,\n  character fingerprints, storyboards, references, or image prompts.\n- Read [capability detection](references/capability-detection.md) immediately before\n  selecting or invoking an image-generation tool.\n- Read [visual QA](references/visual-qa.md) before accepting, retrying, overriding,\n  composing, or exporting any generated panel.\n- Read [safety and IP](references/safety-ip.md) before sending prompts externally and\n  whenever people, minors, sensitive data, named styles, franchises, or refusals appear.\n- Read [schemas](references/schemas.md) whenever writing or revising JSON artifacts.\n\n## Core orchestration\n\n1. Detect resume/source-file/pasted-story/short-prompt mode in the normative order.\n2. Ask only a materially required question listed in the workflow reference; otherwise\n   apply defaults and continue without confirmation.\n3. Run the local doctor, initialize or inspect the project, then write and validate each\n   semantic artifact before advancing its status. Persist each completed stage with\n   `record-stage` so resume can reuse honest cache keys.\n4. Detect image capability from tools exposed in the current agent session. Do not ask\n   deterministic scripts to discover or call an image provider.\n5. Generate canonical references and panels into attempt paths. Require the image model\n   to draw each exact storyboard SFX in the artwork, inspect every result visually, record\n   all seven QA checks, and selectively repair only failures within budget.\n6. Promote accepted attempts; deterministically letter dialogue and captions while\n   validating and counting exact storyboard SFX without drawing it in Pillow; compose\n   pages, inspect every composed page and write its `qa/pages/page-{NNN}.json` record,\n   export the PDF, render the QA report (which projects the terminal status the project\n   is about to reach), validate final integrity, then transition to that terminal status.\n7. Return status, counts, warnings, and clickable project output paths.\n\n## Token budget rules\n\nApply these rules in every session to reduce token waste without reducing output quality.\n\n## Fast Mode\n\nFast Mode keeps all quality gates while removing the specific waste that turns a\npilot into a 4+ hour run. Apply it to every new production by default.\n\n### Never read engine source\n\nDo not read, grep, or open any file under `scripts/`, `comic_sol_product/`, or\n`tests/`. The deterministic engine is a black box invoked only via `init`,\n`doctor`, `validate`, `status`, `resume-plan`, and `finalize`. Reading source\nwastes context and risks editing the engine you should not touch.\n\nIf doctor reports missing Python/font/Pillow, stop and report the exact required\nenvironment change. Obtain explicit user approval, then apply only that documented\nfix; do not patch the engine to make the check pass. If a version pin looks wrong,\nreport it as a skill upgrade, not an ad-hoc edit.\n\n### Use init, never hand-write setup scripts\n\nDo not write `setup_batch_*.py`, `build_plans.py`, or equivalent helpers. The engine\nowns project structure. Create a project with one command:\n\n```text\npython3.11 scripts/comic_sol.py init --output-root OUTPUT_ROOT --title TITLE --source SOURCE --request-json REQUEST_JSON\n```\n\nFor setup, edit only the semantic artifacts the engine expects (`plan/*.json`) through\n`transition` stages. Page QA later requires agent-authored\n`qa/pages/page-{NNN}.json` records. Hand-written scaffolding is the single largest\nhidden time sink.\n\n### Right-size reasoning per stage\n\nPlan, storyboard, QA-evidence, finalize, and report do not need maximum reasoning.\nReserve the highest reasoning only for the actual image-generation decision loop.\nStatement: use a cheaper/mid reasoning preset for deterministic stages and the\nstrongest preset for image prompting and visual rejection decisions. Do not run the\nentire run at `xhigh`.\n\n### Parallel independent panels\n\nQueue independent panel generations without waiting for each to complete before\nstarting the next. Panels with no dependency on each other's accepted output can be\ngenerated in the same batch. Visual QA still inspects every accepted attempt before\npromote.\n\n### One resolution check per artifact\n\nCheck panel/source at original resolution during panel QA. Do not re-run a second\nphone-scale (390px) check on every panel. Apply the 390px readability check once,\non the composed page, in page QA — that is where phone readability is actually\ndecided.\n\n### Two-call finalization\n\nAfter the last panel is promoted, run `finalize` once to letter and compose, inspect\nthe composed pages at full and phone scale, write each `qa/pages/page-*.json` from\n`templates/page-qa.json`, then run `finalize` once more. Never re-run lettering,\ncomposition, or export turn-by-turn.\n\n### Lock the brief\n\nBefore generation, confirm the batch map once (e.g. Batch A pages 1-4, Batch B\npages 5-8), persist it in project artifacts, and reuse it unchanged when resuming.\nThe batch map takes precedence only over contradictory internal checklist counts;\ndo not invent a third project to satisfy a miscounted checklist. Page-count limits,\nsafety/IP rules, engine validation, visual QA, and final-acceptance gates remain\nauthoritative.\n\n### Progressive loading\n\nDo not read all references at once. Load only the files needed for the current stage:\n\n- Read [workflow](references/workflow.md) immediately after input detection.\n- Read [creative direction](references/creative-direction.md) before writing plans.\n- Read [capability detection](references/capability-detection.md) just before generating.\n- Read [visual QA](references/visual-qa.md) just before inspecting panels.\n- Read [safety and IP](references/safety-ip.md) only when people, minors, or sensitive\n  content appear in the source.\n- Read [schemas](references/schemas.md) only when resolving a schema field ambiguity.\n\n### No subagents\n\nDo not spawn subagents, delegate, or fork for review, audit, or independent inspection.\nPerform all visual QA, final validation, and completion checks in the main agent thread.\n\n### Concise evidence\n\nRecord QA evidence as a short keyword phrase (e.g. `\"match\"`, `\"PASS\"`, `\"pose ok\"`,\n`\"hands visible\"`, `\"no text\"`). Do not write long-form sentences such as\n`\"Live panel visually reviewed against canonical reference and storyboard.\"`\n\n### Deterministic fallthrough\n\nAfter the last panel passes QA and is promoted, run the full deterministic pipeline\nwith one combined command instead of per-stage turns:\n\n```text\npython3.11 scripts/comic_sol.py finalize PROJECT_DIR\n```\n\nWhen `finalize` is available, prefer it over stacking the deterministic stages\nturn-by-turn. When `finalize` is not available, use the `comic_finalize` MCP tool or run\nthe stage-by-stage route in the workflow reference.\n\n`finalize` fails closed with `page_qa_required` until every composed page has an\nagent-authored `qa/pages/page-{NNN}.json` record matching that page's hash. Run\n`finalize` once to letter and compose, inspect each page, write its record from\n`templates/page-qa.json`, then run `finalize` again. Never fabricate that record.\n\n### Evidence provenance\n\nLabel deterministic sample evidence as `mechanics-only`: it proves normalization,\nlayout, lettering, retry/resume, provenance, rollback, and export integrity, but does\nnot prove live visual quality. Use `scripts/quality_sample.py PROJECT_DIR --mode\ndeterministic` to write that disclosure into `qa/evidence.json`.\n\nLive visual evidence is valid only for an already retained local attempt. Supply its\nprovider/model, attempt path and SHA-256, references, reviewer method, and known\nlimitations. The sample runner never invokes an image provider and refuses live mode\nwithout a retained attempt. The QA report discloses these fields without inferring or\nfabricating them.\n\n### Completion response\n\nReport final status, pages, panels, generation/retry count, and unresolved warnings. Give\nclickable PDF path, page directory, manifest path, and QA report path. Do not spawn a\nsubagent to audit results.\n\n## Deterministic command route\n\nWhen installed as a package, use the stable `comic-sol` executable for `doctor`, `init`,\n`status`, `validate`, `resume`, `finalize`, and `mcp`. Source checkouts retain the\nscript routes below for compatibility.\n\nUse Python 3.11 from the skill root. Replace uppercase placeholders with resolved paths\nor values; quote shell arguments safely.\n\n```text\npython3.11 scripts/comic_sol.py doctor --output-root OUTPUT_ROOT\npython3.11 scripts/comic_sol.py init --output-root OUTPUT_ROOT --title TITLE --source SOURCE --request-json REQUEST_JSON\npython3.11 scripts/comic_sol.py status PROJECT_DIR --json\npython3.11 scripts/comic_sol.py transition PROJECT_DIR TARGET [--warning TEXT]\npython3.11 scripts/validate_project.py PROJECT_DIR --stage plan|storyboard|panels|final [--json]\n\npython3.11 scripts/comic_sol.py resume-plan PROJECT_DIR --json\npython3.11 scripts/comic_sol.py resume PROJECT_DIR --json\npython3.11 scripts/comic_sol.py invalidate PROJECT_DIR STAGE\npython3.11 scripts/comic_sol.py record-stage PROJECT_DIR STAGE\npython3.11 scripts/comic_sol.py record-attempt PROJECT_DIR PANEL_ID initial|visual_retry|transient_repeat PATH\npython3.11 scripts/comic_sol.py promote-attempt PROJECT_DIR PANEL_ID PATH\npython3.11 scripts/comic_sol.py override-panel PROJECT_DIR PANEL_ID --reason TEXT\n\npython3.11 scripts/letter_panels.py PROJECT_DIR [--font PATH]\npython3.11 scripts/compose_pages.py PROJECT_DIR --all\npython3.11 scripts/compose_pages.py PROJECT_DIR --page N\npython3.11 scripts/export_pdf.py PROJECT_DIR [--output PATH]\npython3.11 scripts/render_report.py PROJECT_DIR [--output PATH]\n```\n\nNever fabricate successful artifacts, provider capability, visual evidence, or a terminal\nsuccess status. Preserve editable intermediates and stop at `BLOCKED` when safe completion\nis impossible.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}