{"id":16601,"plugin_id":"plugins_6a599e3b00f0819192a964630fc98d27","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:13:33.863Z","digest":"e76dd7365ee5d54d4fee6df2367f5f6deb47df3b57b0752353b22f9bc21376a8","against":null,"payload":{"description":"Create cover and illustration image assets for this novel project with an available raster image provider. Use when the user wants to plan, generate, refine, or save a book cover, chapter illustration, spot illustration, visual motif, or image prompt while preserving a consistent visual style across assets.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":204},{"relative_path":"references/antigravity-image-generation.md","size_in_bytes":753},{"relative_path":"references/claude-image-generation.md","size_in_bytes":699},{"relative_path":"references/codex-image-generation.md","size_in_bytes":606},{"relative_path":"references/external-image-provider.md","size_in_bytes":2729},{"relative_path":"scripts/invoke_image_provider.py","size_in_bytes":5123},{"relative_path":"tests/test_invoke_image_provider.py","size_in_bytes":2968}],"name":"create-visual-asset","skill_md_contents":"---\nname: create-visual-asset\ndescription: Create cover and illustration image assets for this novel project with an available raster image provider. Use when the user wants to plan, generate, refine, or save a book cover, chapter illustration, spot illustration, visual motif, or image prompt while preserving a consistent visual style across assets.\n---\n\n# Create Visual Asset\n\n## Overview\n\nUse this skill to create project-bound cover and illustration assets for the novel.\n\nAlways preserve visual consistency by reading `style/visual-style-guide.md`\nfirst. Detect the image-generation capabilities available in the current host,\nthen use the matching guide:\n\n- Codex: `references/codex-image-generation.md`\n- Claude Code: `references/claude-image-generation.md`\n- Antigravity CLI: `references/antigravity-image-generation.md`\n- External API or CLI provider: `references/external-image-provider.md`\n\nSave final project-bound assets under `assets/cover/` or\n`assets/illustrations/`; never leave a referenced asset only in a provider's\ndefault output location.\n\n## Required Context\n\nRead before generating:\n\n- `AGENTS.md`\n- `project.md`\n- `style/visual-style-guide.md`\n- relevant `chapters/*.md`, `outlines/`, `plot/`, `world/`, `characters/`, `materials/`, and `macguffins/` files for the requested asset\n- existing files in `assets/cover/` and `assets/illustrations/`\n\nIf `style/visual-style-guide.md` is incomplete, ask the user for missing visual direction before generating a final asset.\n\n## Workflow\n\n### 1. Identify Asset Type\n\nClassify the request as one of:\n\n- `cover`: front cover image for EPUB packaging\n- `chapter-illustration`: full-width or full-page illustration tied to a chapter\n- `spot-illustration`: smaller image embedded within a chapter\n- `motif`: reusable visual symbol, object, or atmospheric plate\n- `reference`: visual exploration not yet used in the manuscript\n\nConfirm the intended destination and filename slug before saving.\n\n### 2. Gather Direction\n\nSummarize the likely image in Korean:\n\n- subject\n- narrative moment or symbolic function\n- setting and time period\n- characters shown or deliberately omitted\n- composition and crop\n- mood, lighting, palette, and texture\n- continuity constraints from source files\n- whether text should be included\n\nAsk for missing direction when it affects the image. For covers, ask about tone, central image, and whether the title/author text should be left out for later typography. Prefer no generated text unless the user explicitly asks for it.\n\n### 3. Build A Style-Locked Prompt\n\nUse the visual style guide as the stable base. Keep the prompt concise but specific:\n\n```text\nUse case: illustration-story\nAsset type: <cover|chapter-illustration|spot-illustration|motif|reference>\nPrimary request: <specific image>\nStory context: <chapter/plot/world context>\nStyle/medium: <from style/visual-style-guide.md>\nComposition/framing: <crop, subject placement, negative space>\nLighting/mood: <from style guide plus asset-specific mood>\nColor palette: <from style guide>\nMaterials/textures: <paper, ink, grain, brush, lens, etc.>\nContinuity constraints: <must match story facts>\nText: no text, no title, no watermark unless explicitly requested\nAvoid: <style guide avoid list plus asset-specific avoid list>\n```\n\n### 4. Select And Invoke A Raster Provider\n\nInspect the tools actually available in the current agent host. Prefer, in\norder:\n\n1. a verified built-in raster image generator;\n2. a configured image-generation MCP server or agent tool;\n3. an author-approved external API or CLI adapter.\n\nDo not infer image-generation capability from image input, image analysis, or\ngeneric file tools. Do not substitute SVG, HTML, or placeholder art.\n\nFor project-bound assets:\n\n1. Generate the image with the selected raster provider.\n2. Inspect the result for style, subject, composition, and continuity.\n3. Iterate only with targeted changes.\n4. Move or copy the final selected image into the project:\n   - cover: `assets/cover/<slug>.<ext>`\n   - chapter illustration, spot illustration, motif, or reference: `assets/illustrations/<slug>.<ext>`\n5. Report the saved path and final prompt.\n\nIf no raster provider is available:\n\n1. say clearly that no image was generated;\n2. return the complete style-locked prompt without shortening it;\n3. link the relevant host guide and\n   `references/external-image-provider.md`;\n4. offer to continue after the author connects a provider;\n5. do not create a fake asset or register a nonexistent image in Markdown.\n\n### 5. Register In Markdown\n\nFor cover assets, store or update the cover path in `project.md` frontmatter when the user confirms it as the active cover:\n\n```yaml\ncover_image: assets/cover/cover.png\n```\n\nFor chapter illustrations, add a normal Markdown image reference inside the target chapter when the user asks to insert it:\n\n```markdown\n![Alt text](../assets/illustrations/001-scene-slug.png)\n```\n\nDo not edit manuscript prose merely to place an image unless requested.\n\n## Cover Missing During EPUB Build\n\nIf another workflow needs a cover and no usable cover exists, ask whether to generate one. Ask for the desired feeling, central image, and whether it should include text. If the user approves, use this skill to create the cover before building the EPUB.\n\n## Verification\n\nBefore finishing:\n\n- Confirm the final asset exists inside the workspace.\n- Confirm the filename is filesystem-safe.\n- Confirm project or chapter references use relative paths that the EPUB builder can resolve.\n- Confirm the image follows `style/visual-style-guide.md`.\n- Run `git status --short` and report changed files.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}