diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index e203893..11569a3 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -6,7 +6,7 @@ }, "metadata": { "description": "Skills shared by Baoyu for improving daily work efficiency", - "version": "0.6.1" + "version": "0.7.0" }, "plugins": [ { diff --git a/.claude/skills/release-skills/SKILL.md b/.claude/skills/release-skills/SKILL.md new file mode 100644 index 0000000..46980f6 --- /dev/null +++ b/.claude/skills/release-skills/SKILL.md @@ -0,0 +1,179 @@ +--- +name: release-skills +description: Release workflow for baoyu-skills plugin. This skill should be used when the user wants to create a new release version. It analyzes changes since the last version tag, updates changelogs (EN/CN), bumps the version in marketplace.json, commits changes, and creates a version tag. Supports dry-run mode and breaking change detection. +--- + +# Release Skills + +Automate the release process for baoyu-skills plugin: analyze changes, update changelogs, bump version, commit, and tag. + +## When to Use + +Trigger this skill when user requests: +- "release", "发布", "create release", "new version" +- "bump version", "update version" +- "prepare release" + +## Workflow + +### Step 1: Analyze Changes Since Last Tag + +```bash +# Get the latest version tag +LAST_TAG=$(git tag --sort=-v:refname | head -1) + +# Show changes since last tag +git log ${LAST_TAG}..HEAD --oneline +git diff ${LAST_TAG}..HEAD --stat +``` + +Categorize changes by type based on commit messages and file changes: + +| Type | Prefix | Description | +|------|--------|-------------| +| feat | `feat:` | New features, new skills | +| fix | `fix:` | Bug fixes | +| docs | `docs:` | Documentation only | +| refactor | `refactor:` | Code refactoring | +| style | `style:` | Formatting, styling | +| chore | `chore:` | Build, tooling, maintenance | + +**Breaking Change Detection**: If changes include: +- Removed skills or scripts +- Changed API/interfaces +- Renamed public functions/options + +Warn user: "Breaking changes detected. Consider major version bump (--major flag)." + +### Step 2: Determine Version Bump + +Current version location: `.claude-plugin/marketplace.json` → `metadata.version` + +Version rules: +- **Patch** (0.6.1 → 0.6.2): Bug fixes, docs updates, minor improvements +- **Minor** (0.6.x → 0.7.0): New features, new skills, significant enhancements +- **Major** (0.x → 1.0): Breaking changes, only when user explicitly requests with `--major` + +Default behavior: +- If changes include `feat:` or new skills → Minor bump +- Otherwise → Patch bump + +### Step 3: Update Changelogs + +Files to update: +- `CHANGELOG.md` (English) +- `CHANGELOG.zh.md` (Chinese) + +Format (insert after header, before previous version): + +```markdown +## {NEW_VERSION} - {YYYY-MM-DD} + +### Features +- `skill-name`: description of new feature + +### Fixes +- `skill-name`: description of fix + +### Documentation +- description of docs changes + +### Other +- description of other changes +``` + +Only include sections that have changes. Omit empty sections. + +For Chinese changelog, translate the content maintaining the same structure. + +### Step 4: Update marketplace.json + +Update `.claude-plugin/marketplace.json`: +```json +{ + "metadata": { + "version": "{NEW_VERSION}" + } +} +``` + +### Step 5: Commit Changes + +```bash +git add CHANGELOG.md CHANGELOG.zh.md .claude-plugin/marketplace.json +git commit -m "chore: release v{NEW_VERSION}" +``` + +### Step 6: Create Version Tag + +```bash +git tag v{NEW_VERSION} +``` + +**Important**: Do NOT push to remote. User will push manually when ready. + +## Options + +| Flag | Description | +|------|-------------| +| `--dry-run` | Preview changes without executing. Show what would be updated. | +| `--major` | Force major version bump (0.x → 1.0 or 1.x → 2.0) | +| `--minor` | Force minor version bump | +| `--patch` | Force patch version bump | +| `--pre ` | (Reserved) Create pre-release version, e.g., `--pre beta` → `0.7.0-beta.1` | + +## Dry-Run Mode + +When `--dry-run` is specified: +1. Show all changes since last tag +2. Show proposed version bump (current → new) +3. Show draft changelog entries (EN and CN) +4. Show files that would be modified +5. Do NOT make any actual changes + +Output format: +``` +=== DRY RUN MODE === + +Last tag: v0.6.1 +Proposed version: v0.7.0 + +Changes detected: +- feat: new skill baoyu-foo added +- fix: baoyu-bar timeout issue +- docs: updated README + +Changelog preview (EN): +## 0.7.0 - 2026-01-17 +### Features +- `baoyu-foo`: new skill for ... +### Fixes +- `baoyu-bar`: fixed timeout issue + +Files to modify: +- CHANGELOG.md +- CHANGELOG.zh.md +- .claude-plugin/marketplace.json + +No changes made. Run without --dry-run to execute. +``` + +## Example Usage + +``` +/release-skills # Auto-detect version bump +/release-skills --dry-run # Preview only +/release-skills --minor # Force minor bump +/release-skills --major # Force major bump (with confirmation) +``` + +## Post-Release Reminder + +After successful release, remind user: +``` +Release v{NEW_VERSION} created locally. + +To publish: + git push origin main + git push origin v{NEW_VERSION} +``` diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..9ff5416 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,96 @@ +# Changelog + +English | [中文](./CHANGELOG.zh.md) + +## 0.7.0 - 2026-01-17 + +### Features +- `baoyu-comic`: adds `--aspect` (3:4, 4:3, 16:9) and `--lang` options; introduces multi-variant storyboard workflow (chronological, thematic, character-centric) with user selection. + +### Enhancements +- `baoyu-comic`: adds `analysis-framework.md` and `storyboard-template.md` for structured content analysis and variant generation. +- `baoyu-slide-deck`: adds `analysis-framework.md`, `content-rules.md`, `modification-guide.md`, and `outline-template.md` references for improved outline quality. +- `baoyu-article-illustrator`, `baoyu-cover-image`, `baoyu-xhs-images`: enhanced SKILL.md documentation with clearer workflows. + +### Documentation +- Multiple skills: restructured SKILL.md files—moved detailed content to `references/` directory for maintainability. +- `baoyu-slide-deck`: simplified SKILL.md, consolidated style descriptions. + +## 0.6.1 - 2026-01-17 + +- `baoyu-slide-deck`: adds `scripts/merge-to-pdf.ts` to export generated slides into a single PDF; docs updated with pptx/pdf outputs. +- `baoyu-comic`: adds `scripts/merge-to-pdf.ts` to merge cover/pages into a PDF; docs clarify character reference handling (image vs text). +- Docs conventions: adds a “Script Directory” template to `CLAUDE.md`; aligns `baoyu-gemini-web` / `baoyu-slide-deck` / `baoyu-comic` docs to use `${SKILL_DIR}` in commands so agents can run scripts from any install location. + +## 0.6.0 - 2026-01-17 + +- `baoyu-slide-deck`: adds `scripts/merge-to-pptx.ts` to merge slide images into a PPTX and attach `prompts/` content as speaker notes. +- `baoyu-slide-deck`: reshapes/expands the style library (adds `blueprint` / `bold-editorial` / `sketch-notes` / `vector-illustration`, and adjusts/replaces some older styles). +- `baoyu-comic`: adds a `realistic` style reference. +- Docs: refreshes `README.md` / `README.zh.md`. + +## 0.5.3 - 2026-01-17 + +- `baoyu-post-to-x` (X Articles): makes image placeholder replacement more reliable (selection retry + verification; deletes via Backspace and verifies deletion before pasting), reducing mis-insertions/failures. + +## 0.5.2 - 2026-01-16 + +- `baoyu-gemini-web`: adds `--sessionId` (local persisted sessions, plus `--list-sessions`) for multi-turn conversations and consistent multi-image generation. +- `baoyu-gemini-web`: adds `--reference/--ref` for reference images (vision input), plus stronger timeout handling and cookie refresh recovery. +- Docs: `baoyu-xhs-images` / `baoyu-slide-deck` / `baoyu-comic` document session usage (reuse one `sessionId` per set) to improve visual consistency. + +## 0.5.1 - 2026-01-16 + +- `baoyu-comic`: adds creation templates/references (character template, Ohmsha guide, outline template) to speed up “characters → storyboard → generation”. + +## 0.5.0 - 2026-01-16 + +- Adds `baoyu-comic`: a knowledge-comic generator with `style × layout` and a full set of style/layout references for more stable output. +- `baoyu-xhs-images`: moves style/layout details into `references/styles/*` and `references/layouts/*`, and migrates the base prompt into `references/base-prompt.md` for easier maintenance/reuse. +- `baoyu-slide-deck` / `baoyu-cover-image`: similarly split base prompt and style references into `references/`, reducing SKILL.md complexity and making style expansion easier. +- Docs: updates `README.md` / `README.zh.md` skill list and examples. + +## 0.4.2 - 2026-01-15 + +- `baoyu-gemini-web`: updates description to clarify it as the image-generation backend for other skills (e.g. `cover-image`, `xhs-images`, `article-illustrator`). + +## 0.4.1 - 2026-01-15 + +- `baoyu-post-to-x` / `baoyu-post-to-wechat`: adds `scripts/paste-from-clipboard.ts` to send a “real paste” keystroke (Cmd/Ctrl+V), avoiding sites ignoring CDP synthetic events. +- `baoyu-post-to-x`: adds docs for X Articles/regular posts, and switches image upload to prefer real paste (with a CDP fallback). +- `baoyu-post-to-wechat`: docs add script-location guidance and `${SKILL_DIR}` path usage for reliable agent execution. +- Docs: adds `screenshots/update-plugins.png` for the marketplace update flow. + +## 0.4.0 - 2026-01-15 + +- Adds `baoyu-` prefix to skill directories and updates marketplace paths/docs accordingly to reduce naming collisions. + +## 0.3.1 - 2026-01-15 + +- `xhs-images`: upgrades docs to a Style × Layout system (adds `--layout`, auto layout selection, and a `notion` style), with more complete usage examples. +- `article-illustrator` / `cover-image`: docs no longer hard-code `gemini-web`; instead they instruct the agent to pick an available image-generation skill. +- `slide-deck`: docs add the `notion` style and update auto-style mapping. +- Tooling/docs: adds `.DS_Store` to `.gitignore`; refreshes `README.md` / `README.zh.md`. + +## 0.3.0 - 2026-01-14 + +- Adds `post-to-wechat`: Chrome CDP automation for WeChat Official Account posting (image-text + full article), including Markdown → WeChat HTML conversion and multiple themes. +- Adds `CLAUDE.md`: repository structure, running conventions, and “add new skill” guidelines. +- Docs: updates `README.md` / `README.zh.md` install/update/usage instructions. + +## 0.2.0 - 2026-01-13 + +- Adds new skills: `post-to-x` (real Chrome/CDP automation for posts and X Articles), `article-illustrator`, `cover-image`, and `slide-deck`. +- `xhs-images`: adds multi-style support (`--style`) with auto style selection and updates the base prompt (e.g. language follows input, hand-drawn infographic constraints). +- Docs: adds `README.zh.md` and improves `README.md` and `.gitignore`. + +## 0.1.1 - 2026-01-13 + +- Marketplace refactor: introduces `metadata` (including `version`), renames the plugin entry to `content-skills` and explicitly lists installable skills; removes legacy `.claude-plugin/plugin.json`. +- Adds `xhs-images`: Xiaohongshu infographic series generator (outline + per-image prompts). +- `gemini-web`: adds `--promptfiles` to build prompts from multiple files (system/content separation). +- Docs: adds `README.md`. + +## 0.1.0 - 2026-01-13 + +- Initial release: `.claude-plugin/marketplace.json` plus `gemini-web` (text/image generation, browser login + cookie cache). diff --git a/CHANGELOG.zh.md b/CHANGELOG.zh.md new file mode 100644 index 0000000..ed9f06b --- /dev/null +++ b/CHANGELOG.zh.md @@ -0,0 +1,95 @@ +# Changelog + +[English](./CHANGELOG.md) | 中文 + +## 0.7.0 - 2026-01-17 + +### 新功能 +- `baoyu-comic`:新增 `--aspect`(3:4、4:3、16:9)和 `--lang` 选项;引入多变体分镜工作流(时间线、主题、人物视角),支持用户选择最佳方案。 + +### 增强 +- `baoyu-comic`:新增 `analysis-framework.md` 和 `storyboard-template.md`,提供结构化内容分析与变体生成框架。 +- `baoyu-slide-deck`:新增 `analysis-framework.md`、`content-rules.md`、`modification-guide.md`、`outline-template.md` 参考文档,提升大纲质量。 +- `baoyu-article-illustrator`、`baoyu-cover-image`、`baoyu-xhs-images`:SKILL.md 文档增强,工作流程更清晰。 + +### 文档 +- 多个技能:重构 SKILL.md 结构,将详细内容移至 `references/` 目录,便于维护。 +- `baoyu-slide-deck`:精简 SKILL.md,整合风格描述。 + +## 0.6.1 - 2026-01-17 + +- `baoyu-slide-deck`:新增 `scripts/merge-to-pdf.ts`,可将生成的 slide 图片一键合并为 PDF;文档补充导出步骤与产物命名(pptx/pdf)。 +- `baoyu-comic`:新增 `scripts/merge-to-pdf.ts`,将封面/分页图片合并为 PDF;补充角色参考(图片/文本)处理说明。 +- 文档规范:在 `CLAUDE.md` 中补充“Script Directory”模板;`baoyu-gemini-web` / `baoyu-slide-deck` / `baoyu-comic` 文档统一用 `${SKILL_DIR}` 引用脚本路径,方便 agent 在任意安装目录运行。 + +## 0.6.0 - 2026-01-17 + +- `baoyu-slide-deck`:新增 `scripts/merge-to-pptx.ts`,将生成的 slide 图片合并为 PPTX,并可把 `prompts/` 写入 speaker notes。 +- `baoyu-slide-deck`:风格库重组与扩充(新增 `blueprint` / `bold-editorial` / `sketch-notes` / `vector-illustration`,并调整/替换部分旧风格定义)。 +- `baoyu-comic`:新增 `realistic` 风格参考文件。 +- 文档:README / README.zh 同步更新技能说明与用法示例。 + +## 0.5.3 - 2026-01-17 + +- `baoyu-post-to-x`(X Articles):插图占位符替换更稳定——选中占位符增加重试与校验,改用 Backspace 删除并确认删除后再粘贴图片,降低插图错位/替换失败概率。 + +## 0.5.2 - 2026-01-16 + +- `baoyu-gemini-web`:新增 `--sessionId`(本地持久化会话,支持 `--list-sessions`),用于多轮对话/多图生成保持上下文一致。 +- `baoyu-gemini-web`:新增 `--reference/--ref` 传入参考图片(vision 输入),并增强超时与 cookie 失效自动恢复逻辑。 +- `baoyu-xhs-images` / `baoyu-slide-deck` / `baoyu-comic`:文档补充 session 约定(整套图使用同一 `sessionId`,增强风格一致性)。 + +## 0.5.1 - 2026-01-16 + +- `baoyu-comic`:补齐创作模板与参考(角色模板、Ohmsha 教学漫画指南、大纲模板),更适合从“设定 → 分镜 → 生成”快速落地。 + +## 0.5.0 - 2026-01-16 + +- 新增 `baoyu-comic`:知识漫画生成器,支持 `style × layout` 组合,并提供风格/布局参考文件用于稳定出图。 +- `baoyu-xhs-images`:将 Style/Layout 的细节从 SKILL.md 拆分到 `references/styles/*` 与 `references/layouts/*`,并将基础提示词迁移到 `references/base-prompt.md`,便于维护和复用。 +- `baoyu-slide-deck` / `baoyu-cover-image`:同样将基础提示词与风格拆分到 `references/`,降低 SKILL.md 复杂度,便于扩展更多风格。 +- 文档:README / README.zh 更新技能清单与用法示例。 + +## 0.4.2 - 2026-01-15 + +- `baoyu-gemini-web`:描述信息更新,明确其作为 `cover-image` / `xhs-images` / `article-illustrator` 等技能的图片生成后端。 + +## 0.4.1 - 2026-01-15 + +- `baoyu-post-to-x` / `baoyu-post-to-wechat`:新增 `scripts/paste-from-clipboard.ts`,通过系统级 Cmd/Ctrl+V 发送“真实粘贴”按键,规避 CDP 合成事件在站点侧被忽略的问题。 +- `baoyu-post-to-x`:补充 X Articles/普通推文的操作文档(`references/articles.md`、`references/regular-posts.md`),并将发图流程改为优先使用“真实粘贴”(保留 CDP 兜底)。 +- `baoyu-post-to-wechat`:文档补充脚本目录说明与 `${SKILL_DIR}` 路径写法,便于 agent 可靠定位脚本。 +- 文档:新增插件更新流程截图 `screenshots/update-plugins.png`。 + +## 0.4.0 - 2026-01-15 + +- 技能命名统一加 `baoyu-` 前缀:目录结构、marketplace 清单与文档示例命令同步更新,减少与其它插件技能的命名冲突。 + +## 0.3.1 - 2026-01-15 + +- `xhs-images`:升级为 Style × Layout 二维系统(新增 `--layout`、自动布局选择与 Notion 风格),文档示例更完整。 +- `article-illustrator` / `slide-deck` / `cover-image`:文档改为“选择可用的图片生成技能”而非强绑定 `gemini-web`,并补充 Notion 风格相关说明。 +- 工程化:`.gitignore` 增加 `.DS_Store` 忽略;README / README.zh 同步调整。 + +## 0.3.0 - 2026-01-14 + +- 新增 `post-to-wechat`:基于 Chrome CDP 自动化发布公众号图文/文章,包含 Markdown → 微信 HTML 转换与多主题样式支持。 +- 新增 `CLAUDE.md`:补充仓库结构、运行方式与添加新技能的约定,方便协作与二次开发。 +- 文档:README / README.zh 更新安装、更新与使用说明。 + +## 0.2.0 - 2026-01-13 + +- 新增技能:`post-to-x`(真实 Chrome/CDP 自动化发布推文与 X Articles)、`article-illustrator`(文章智能插图规划)、`cover-image`(文章封面图生成)、`slide-deck`(幻灯片大纲与图片生成)。 +- `xhs-images`:新增 `--style` 多风格与自动风格选择,并更新基础提示词(例如语言随内容、强调手绘信息图等)。 +- 文档:新增 `README.zh.md`,并完善 README 与 `.gitignore`。 + +## 0.1.1 - 2026-01-13 + +- marketplace 结构重构:引入 `metadata`(含 `version`),插件名调整为 `content-skills` 并显式列出可安装 skills;移除旧 `.claude-plugin/plugin.json`。 +- 新增 `xhs-images`:小红书信息图系列生成技能(拆解内容、生成 outline 与提示词)。 +- `gemini-web`:新增 `--promptfiles`,支持从多个文件拼接 prompt(便于 system/content 分离)。 +- 文档:新增 `README.md`。 + +## 0.1.0 - 2026-01-13 + +- 初始发布:提供 `.claude-plugin/marketplace.json` 与 `gemini-web`(文本/图片生成、cookie 登录与缓存流程)。 diff --git a/skills/baoyu-article-illustrator/SKILL.md b/skills/baoyu-article-illustrator/SKILL.md index 26f6fe0..d834701 100644 --- a/skills/baoyu-article-illustrator/SKILL.md +++ b/skills/baoyu-article-illustrator/SKILL.md @@ -125,7 +125,11 @@ path/to/ 1. Read article content 2. If `--style` specified, use that style 3. Otherwise, scan for style signals and auto-select -4. Extract key information: +4. **Language detection**: + - Detect **source language** from article content + - Detect **user language** from conversation context + - Note if source_language ≠ user_language (will ask in Step 4) +5. Extract key information: - Main topic and themes - Core messages per section - Abstract concepts needing visualization @@ -173,10 +177,55 @@ path/to/ ... ``` -### Step 4: Create Prompt Files +### Step 4: Review & Confirm + +**Purpose**: Let user confirm all options in a single step before image generation. + +**IMPORTANT**: Present ALL options in a single confirmation step using AskUserQuestion. Do NOT interrupt workflow with multiple separate confirmations. + +1. **Generate 3 style variants**: + - Analyze content to select 3 most suitable styles + - Generate complete illustration plan for each style variant + - Save as `outline-{style}.md` (e.g., `outline-notion.md`, `outline-tech.md`, `outline-warm.md`) + +2. **Determine which questions to ask**: + + | Question | When to Ask | + |----------|-------------| + | Style variant | Always (required) | + | Language | Only if `source_language ≠ user_language` | + +3. **Present options** (use AskUserQuestion with all applicable questions): + + **Question 1 (Style)** - always: + - Style A (recommended): [style name] - [brief description] + - Style B: [style name] - [brief description] + - Style C: [style name] - [brief description] + - Custom: Provide custom style reference + + **Question 2 (Language)** - only if source ≠ user language: + - [Source language] (matches article language) + - [User language] (your preference) + + **Language handling**: + - If source language = user language: Just inform user (e.g., "Prompts will be in Chinese") + - If different: Ask which language to use for prompts + +4. **Apply selection**: + - Copy selected `outline-{style}.md` to `outline.md` + - If custom style provided, generate new plan with that style + - If different language selected, regenerate outline in that language + - User may edit `outline.md` directly for fine-tuning + - If modified, reload plan before proceeding + +5. **Proceed only after explicit user confirmation** + +### Step 5: Create Prompt Files Save prompts to `prompts/` directory with style-specific details. +**All prompts are written in the user's confirmed language preference.** + **Prompt Format**: ```markdown @@ -199,7 +248,7 @@ Text content (if any): Style notes: [specific style characteristics] ``` -### Step 5: Generate Images +### Step 6: Generate Images **Image Generation Skill Selection**: 1. Check available image generation skills @@ -212,7 +261,7 @@ Style notes: [specific style characteristics] 4. On failure, auto-retry once 5. If retry fails, log reason, continue to next -### Step 6: Update Article +### Step 7: Update Article Insert generated images at corresponding positions: @@ -225,7 +274,7 @@ Insert generated images at corresponding positions: - Leave one blank line before and after image - Alt text uses concise description in article's language -### Step 7: Output Summary +### Step 8: Output Summary ``` Article Illustration Complete! @@ -244,6 +293,57 @@ Failed: - illustration-zzz.png: [failure reason] ``` +## Illustration Modification + +Support for modifying individual illustrations after initial generation. + +### Edit Single Illustration + +Regenerate a specific illustration with modified prompt: + +1. Identify illustration to edit (e.g., `illustration-concept-overview.png`) +2. Update prompt in `prompts/illustration-concept-overview.md` if needed +3. If content changes significantly, update slug in filename +4. Regenerate image +5. Update article if image reference changed + +### Add New Illustration + +Add a new illustration to the article: + +1. Identify insertion position in article +2. Create new prompt with appropriate slug (e.g., `illustration-new-concept.md`) +3. Generate new illustration image +4. Update `outline.md` with new illustration entry +5. Insert image reference in article at the specified position + +### Delete Illustration + +Remove an illustration from the article: + +1. Identify illustration to delete (e.g., `illustration-concept-overview.png`) +2. Remove image file and prompt file +3. Remove image reference from article +4. Update `outline.md` to remove illustration entry + +### File Naming Convention + +Files use meaningful slugs for better readability: +``` +illustration-[slug].png +illustration-[slug].md (in prompts/) +``` + +Examples: +- `illustration-concept-overview.png` +- `illustration-workflow-diagram.png` +- `illustration-key-benefits.png` + +**Slug rules**: +- Derived from illustration purpose/content (kebab-case) +- Must be unique within the article +- When content changes significantly, update slug accordingly + ## Style Reference Details ### elegant @@ -325,4 +425,5 @@ Typography: Clean hand-drawn lettering, simple sans-serif labels - Maintain selected style consistency across all illustrations in one article - Image generation typically takes 10-30 seconds per image - Sensitive figures should use cartoon alternatives -- Prompt and illustration text language should match article language +- Prompts written in user's confirmed language preference +- Illustration text (labels, captions) should match article language diff --git a/skills/baoyu-comic/SKILL.md b/skills/baoyu-comic/SKILL.md index 6c9a6ce..5b11c2f 100644 --- a/skills/baoyu-comic/SKILL.md +++ b/skills/baoyu-comic/SKILL.md @@ -11,7 +11,6 @@ Create original knowledge comics with multiple visual styles. ```bash /baoyu-comic posts/turing-story/source.md -/baoyu-comic posts/turing-story/source.md --style dramatic --layout cinematic /baoyu-comic # then paste content ``` @@ -19,10 +18,14 @@ Create original knowledge comics with multiple visual styles. | Option | Values | |--------|--------| -| `--style` | classic (default), dramatic, warm, tech, sepia, vibrant, ohmsha, realistic | +| `--style` | classic (default), dramatic, warm, tech, sepia, vibrant, ohmsha, realistic, or custom description | | `--layout` | standard (default), cinematic, dense, splash, mixed, webtoon | +| `--aspect` | 3:4 (default, portrait), 4:3 (landscape), 16:9 (widescreen) | +| `--lang` | auto (default), zh, en, ja, etc. | -Style × Layout can be freely combined. +Style × Layout × Aspect can be freely combined. Custom styles can be described in natural language. + +**Aspect ratio is consistent across all pages in a comic.** ## Auto Selection @@ -54,15 +57,29 @@ Style × Layout can be freely combined. ``` [target]/ -├── outline.md -├── characters/ -│ ├── characters.md # Character definitions -│ └── characters.png # Character reference sheet +├── source.md # Source content (if pasted, not file) +├── analysis.md # Deep analysis results (YAML+MD) +├── storyboard-chronological.md # Variant A (preserved) +├── storyboard-thematic.md # Variant B (preserved) +├── storyboard-character.md # Variant C (preserved) +├── characters-chronological/ # Variant A chars (preserved) +│ ├── characters.md +│ └── characters.png +├── characters-thematic/ # Variant B chars (preserved) +│ ├── characters.md +│ └── characters.png +├── characters-character/ # Variant C chars (preserved) +│ ├── characters.md +│ └── characters.png +├── storyboard.md # Final selected +├── characters/ # Final selected +│ ├── characters.md +│ └── characters.png ├── prompts/ -│ ├── 00-cover.md -│ └── XX-page.md -├── 00-cover.png -├── XX-page.png +│ ├── 00-cover-[slug].md +│ └── NN-page-[slug].md +├── 00-cover-[slug].png +├── NN-page-[slug].png └── {topic-slug}.pdf ``` @@ -72,91 +89,287 @@ Style × Layout can be freely combined. ## Workflow -### Step 1: Analyze Content +### Step 1: Analyze Content → `analysis.md` -1. Read source content -2. Select style (from `--style` or auto-detect) -3. Select layout (from `--layout` or auto-detect per page) -4. Determine page count: +Read source content, save it if needed, and perform deep analysis. + +**Actions**: +1. **Save source content** (if not already a file): + - If user provides a file path: use as-is + - If user pastes content: save to `source.md` in target directory +2. Read source content +3. **Deep analysis** following `references/analysis-framework.md`: + - Target audience identification + - Value proposition for readers + - Core themes and narrative potential + - Key figures and their story arcs +4. Detect source language +5. Determine recommended page count: - Short story: 5-8 pages - Medium complexity: 9-15 pages - Full biography: 16-25 pages +6. Analyze content signals for style/layout recommendations +7. **Save to `analysis.md`** -### Step 2: Define Characters +**analysis.md Format**: -**Purpose**: Establish visual consistency across all pages. +```yaml +--- +title: "Alan Turing: Father of Computing" +topic: Biography +time_span: 1912-1954 +source_language: en +user_language: zh +aspect_ratio: "3:4" +recommended_page_count: 12 +--- -1. Extract all characters from content (protagonist, supporting, antagonist, narrator) -2. Create `characters/characters.md` with visual specs for each character -3. Generate `characters/characters.png` (character reference sheet) +## Target Audience -**Reference**: `references/character-template.md` for detailed format and examples. +- **Primary**: Tech enthusiasts curious about computing history +- **Secondary**: Students learning about scientific breakthroughs +- **Tertiary**: General readers interested in biographical stories -### Step 3: Generate Outline +## Value Proposition -Create `outline.md` with: -- Metadata (title, style, layout, page count, character reference path) -- Cover design -- Each page: layout, panel breakdown, visual prompts +What readers will gain: +1. Understanding of how modern computing was born +2. Emotional connection to a brilliant but tragic figure +3. Appreciation for the human cost of innovation -**Reference**: `references/outline-template.md` for detailed format. +## Core Themes + +| Theme | Narrative Potential | Visual Opportunity | +|-------|--------------------|--------------------| +| Genius vs. Society | High conflict, dramatic arcs | Contrast scenes | +| Code-breaking | Mystery, tension | Technical diagrams as art | +| Personal tragedy | Emotional depth | Intimate, somber panels | + +## Key Figures & Story Arcs + +### Alan Turing (Protagonist) +- **Arc**: Misunderstood genius → War hero → Tragic end +- **Visual identity**: Disheveled academic, intense eyes +- **Key moments**: Enigma breakthrough, arrest, final days + +### Christopher Morcom (Catalyst) +- **Role**: Early friend whose death shaped Turing +- **Visual identity**: Youthful, bright +- **Key moments**: School friendship, sudden death + +## Content Signals + +- "biography" → classic + mixed +- "computing history" → tech + dense +- "personal tragedy" → dramatic + splash + +## Recommended Approaches + +1. **Chronological** - follow life timeline (recommended for biography) +2. **Thematic** - organize by contributions (good for educational focus) +3. **Character-focused** - relationships drive narrative (good for emotional impact) +``` + +### Step 2: Generate 3 Storyboard Variants + +Create three distinct variants, each combining a narrative approach with a recommended style. + +| Variant | Narrative Approach | Recommended Style | Layout | +|---------|-------------------|-------------------|--------| +| A | Chronological | sepia | cinematic | +| B | Thematic | tech | dense | +| C | Character-focused | warm | standard | + +**For each variant**: + +1. **Generate storyboard** (`storyboard-{approach}.md`): + - YAML front matter with narrative_approach, recommended_style, recommended_layout, aspect_ratio + - Cover design + - Each page: layout, panel breakdown, visual prompts + - **Written in user's preferred language** + - Reference: `references/storyboard-template.md` + +2. **Generate matching characters** (`characters-{approach}/`): + - `characters.md` - visual specs matching the recommended style (in user's preferred language) + - `characters.png` - character reference sheet + - Reference: `references/character-template.md` + +**All variants are preserved after selection for reference.** + +### Step 3: User Confirms All Options + +**IMPORTANT**: Present ALL options in a single confirmation step using AskUserQuestion. Do NOT interrupt workflow with multiple separate confirmations. + +**Determine which questions to ask**: + +| Question | When to Ask | +|----------|-------------| +| Storyboard variant | Always (required) | +| Visual style | Always (required) | +| Language | Only if `source_language ≠ user_language` | +| Aspect ratio | Only if user might prefer non-default (e.g., landscape content) | + +**Language handling**: +- If source language = user language: Just inform user (e.g., "Comic will be in Chinese") +- If different: Ask which language to use + +**All storyboards and prompts are generated in the user's selected/preferred language.** + +**Aspect ratio handling**: +- Default: 3:4 (portrait) - standard comic format +- Offer 4:3 (landscape) if content suits it (e.g., panoramic scenes, technical diagrams) +- Offer 16:9 (widescreen) for cinematic content + +**AskUserQuestion format** (example with all questions): + +``` +Question 1 (Storyboard): Which storyboard variant? +- A: Chronological + sepia (Recommended) +- B: Thematic + tech +- C: Character-focused + warm +- Custom + +Question 2 (Style): Which visual style? +- sepia (Recommended from variant) +- classic / dramatic / warm / tech / vibrant / ohmsha / realistic +- Custom description + +Question 3 (Language) - only if mismatch: +- Chinese (source material language) +- English (your preference) + +Question 4 (Aspect) - only if relevant: +- 3:4 Portrait (Recommended) +- 4:3 Landscape +- 16:9 Widescreen +``` + +**After confirmation**: +1. Copy selected storyboard → `storyboard.md` +2. Copy selected characters → `characters/` +3. Update YAML front matter with confirmed style, language, aspect_ratio +4. If style differs from variant's recommended: regenerate `characters/characters.png` +5. User may edit files directly for fine-tuning ### Step 4: Generate Images -For each page (cover + pages): +With confirmed storyboard + style + aspect ratio: -1. Save prompt to `prompts/XX-page.md` -2. Call image generation skill with: - - Base prompt: `references/base-prompt.md` - - Character reference (text or image, depending on skill capability) - - Page prompt - - Output path +**For each page (cover + pages)**: +1. Save prompt to `prompts/NN-{cover|page}-[slug].md` (in user's preferred language) +2. Generate image using confirmed style and aspect ratio +3. Report progress after each generation **Image Generation Skill Selection**: -- Check available image generation skills in the environment +- Check available image generation skills - If multiple skills available, ask user preference **Character Reference Handling**: -- If skill supports reference image: pass `characters/characters.png` as reference image -- If skill does NOT support reference image: include `characters/characters.md` content in the prompt -- This ensures character visual consistency across all pages +- If skill supports reference image: pass `characters/characters.png` +- If skill does NOT support reference image: include `characters/characters.md` content in prompt **Session Management**: -If the image generation skill supports `--sessionId`: -1. Generate a unique session ID at the start (e.g., `comic-{topic-slug}-{timestamp}`) -2. Use the same session ID for character sheet and all pages -3. This ensures visual consistency (character appearance, style) across all generated images - -3. Report progress after each generation +If image generation skill supports `--sessionId`: +1. Generate unique session ID: `comic-{topic-slug}-{timestamp}` +2. Use same session ID for all pages +3. Ensures visual consistency across generated images ### Step 5: Merge to PDF -After all images are generated, merge them into a PDF file: +After all images generated: ```bash npx -y bun ${SKILL_DIR}/scripts/merge-to-pdf.ts ``` -This creates `{topic-slug}.pdf` in the comic directory with all pages as full-page images. +Creates `{topic-slug}.pdf` with all pages as full-page images. ### Step 6: Completion Report ``` Comic Complete! -Title: [title] | Style: [style] | Pages: [count] +Title: [title] | Style: [style] | Pages: [count] | Aspect: [ratio] | Language: [lang] Location: [path] +✓ analysis.md ✓ characters.png -✓ 00-cover.png ... XX-page.png +✓ 00-cover-[slug].png ... NN-page-[slug].png ✓ {topic-slug}.pdf ``` +## Page Modification + +Support for modifying individual pages after initial generation. + +### Edit Single Page + +Regenerate a specific page with modified prompt: + +1. Identify page to edit (e.g., `03-page-enigma-machine.png`) +2. Update prompt in `prompts/03-page-enigma-machine.md` if needed +3. If content changes significantly, update slug in filename +4. Regenerate image using same session ID and aspect ratio +5. Regenerate PDF + +### Add New Page + +Insert a new page at specified position: + +1. Specify insertion position (e.g., after page 3) +2. Create new prompt with appropriate slug (e.g., `04-page-bletchley-park.md`) +3. Generate new page image (same aspect ratio) +4. **Renumber files**: All subsequent pages increment NN by 1 + - `04-page-tragedy.png` → `05-page-tragedy.png` + - Slugs remain unchanged +5. Update `storyboard.md` with new page entry +6. Regenerate PDF + +### Delete Page + +Remove a page and renumber: + +1. Identify page to delete (e.g., `03-page-enigma-machine.png`) +2. Remove image file and prompt file +3. **Renumber files**: All subsequent pages decrement NN by 1 + - `04-page-tragedy.png` → `03-page-tragedy.png` + - Slugs remain unchanged +4. Update `storyboard.md` to remove page entry +5. Regenerate PDF + +### File Naming Convention + +Files use meaningful slugs for better readability: +``` +NN-cover-[slug].png / NN-page-[slug].png +NN-cover-[slug].md / NN-page-[slug].md (in prompts/) +``` + +Examples: +- `00-cover-turing-story.png` +- `01-page-early-life.png` +- `02-page-cambridge-years.png` +- `03-page-enigma-machine.png` + +**Slug rules**: +- Derived from page title/content (kebab-case) +- Must be unique within the comic +- When page content changes significantly, update slug accordingly + +**Renumbering**: +- After add/delete, update NN prefix for affected pages +- Slug remains unchanged unless content changes +- Maintain sequential numbering with no gaps + ## Style-Specific Guidelines ### Ohmsha Style (`--style ohmsha`) Additional requirements for educational manga: -- Default characters: Student (大雄), Mentor (哆啦A梦), Antagonist (胖虎) -- Custom: `--characters "Student:小明,Mentor:教授"` +- **Default: Use Doraemon characters directly** - No need to create new characters + - 大雄 (Nobita): Student role, curious learner + - 哆啦A梦 (Doraemon): Mentor role, explains concepts with gadgets + - 胖虎 (Gian): Antagonist/challenge role, represents obstacles or misconceptions + - 静香 (Shizuka): Supporting role, asks clarifying questions +- Custom characters only if explicitly requested: `--characters "Student:小明,Mentor:教授"` - Must use visual metaphors (gadgets, action scenes) - NO talking heads - Page titles: narrative style, not "Page X: Topic" @@ -165,8 +378,9 @@ Additional requirements for educational manga: ## References Detailed templates and guidelines in `references/` directory: +- `analysis-framework.md` - Deep content analysis for comic adaptation - `character-template.md` - Character definition format and examples -- `outline-template.md` - Outline structure and panel breakdown +- `storyboard-template.md` - Storyboard structure and panel breakdown - `ohmsha-guide.md` - Ohmsha manga style specifics - `styles/` - Detailed style definitions - `layouts/` - Detailed layout definitions diff --git a/skills/baoyu-comic/references/analysis-framework.md b/skills/baoyu-comic/references/analysis-framework.md new file mode 100644 index 0000000..cd747ca --- /dev/null +++ b/skills/baoyu-comic/references/analysis-framework.md @@ -0,0 +1,152 @@ +# Comic Content Analysis Framework + +Deep analysis framework for transforming source content into effective visual storytelling. + +## Purpose + +Before creating a comic, thoroughly analyze the source material to: +- Identify the target audience and their needs +- Determine what value the comic will deliver +- Extract narrative potential for visual storytelling +- Plan character arcs and key moments + +## Analysis Dimensions + +### 1. Core Content (Understanding "What") + +**Central Message** +- What is the single most important idea readers should take away? +- Can you express it in one sentence? + +**Key Concepts** +- What are the essential concepts readers must understand? +- How should these concepts be visualized? +- Which concepts need simplified explanations? + +**Content Structure** +- How is the source material organized? +- What is the natural narrative arc? +- Where are the climax and turning points? + +**Evidence & Examples** +- What concrete examples, data, or stories support the main ideas? +- Which examples translate well to visual panels? +- What can be shown rather than told? + +### 2. Context & Background (Understanding "Why") + +**Source Origin** +- Who created this content? What is their perspective? +- What was the original purpose? +- Is there bias to be aware of? + +**Historical/Cultural Context** +- When and where does the story take place? +- What background knowledge do readers need? +- What period-specific visual elements are required? + +**Underlying Assumptions** +- What does the source assume readers already know? +- What implicit beliefs or values are present? +- Should the comic challenge or reinforce these? + +### 3. Audience Analysis + +**Primary Audience** +- Who will read this comic? +- What is their existing knowledge level? +- What are their interests and motivations? + +**Secondary Audiences** +- Who else might benefit from this comic? +- How might their needs differ? + +**Reader Questions** +- What questions will readers have? +- What misconceptions might they bring? +- What "aha moments" can we create? + +### 4. Value Proposition + +**Knowledge Value** +- What will readers learn? +- What new perspectives will they gain? +- How will this change their understanding? + +**Emotional Value** +- What emotions should readers feel? +- What connections will they make with characters? +- What will make this memorable? + +**Practical Value** +- Can readers apply what they learn? +- What actions might this inspire? +- What conversations might it spark? + +### 5. Narrative Potential + +**Story Arc Candidates** +- What natural narratives exist in the content? +- Where is the conflict or tension? +- What transformations occur? + +**Character Potential** +- Who are the key figures? +- What are their motivations and obstacles? +- How do they change throughout? + +**Visual Opportunities** +- What scenes have strong visual potential? +- Where can abstract concepts become concrete images? +- What metaphors can be visualized? + +**Dramatic Moments** +- What are the breakthrough/revelation moments? +- Where are the emotional peaks? +- What creates tension and release? + +### 6. Adaptation Considerations + +**What to Keep** +- Essential facts and ideas +- Key quotes or moments +- Core emotional beats + +**What to Simplify** +- Complex explanations +- Dense technical details +- Lengthy descriptions + +**What to Expand** +- Brief mentions that deserve more attention +- Implied emotions or relationships +- Visual details not in source + +**What to Omit** +- Tangential information +- Redundant examples +- Content that doesn't serve the narrative + +## Output Format + +Analysis results should be saved to `analysis.md` with: + +1. **YAML Front Matter**: Metadata (title, topic, time_span, languages, aspect_ratio, page_count) +2. **Target Audience**: Primary, secondary, tertiary audiences with their needs +3. **Value Proposition**: What readers will gain (knowledge, emotional, practical) +4. **Core Themes**: Table with theme, narrative potential, visual opportunity +5. **Key Figures & Story Arcs**: Character profiles with arcs, visual identity, key moments +6. **Content Signals**: Style and layout recommendations based on content type +7. **Recommended Approaches**: Narrative approaches ranked by suitability + +## Analysis Checklist + +Before proceeding to storyboard: + +- [ ] Can I state the core message in one sentence? +- [ ] Do I know exactly who will read this comic? +- [ ] Have I identified at least 3 ways this comic provides value? +- [ ] Are there clear protagonists with compelling arcs? +- [ ] Have I found at least 5 visually powerful moments? +- [ ] Do I understand what to keep, simplify, expand, and omit? +- [ ] Have I identified the emotional peaks and valleys? diff --git a/skills/baoyu-comic/references/outline-template.md b/skills/baoyu-comic/references/storyboard-template.md similarity index 86% rename from skills/baoyu-comic/references/outline-template.md rename to skills/baoyu-comic/references/storyboard-template.md index 4e49de7..790ceb0 100644 --- a/skills/baoyu-comic/references/outline-template.md +++ b/skills/baoyu-comic/references/storyboard-template.md @@ -1,23 +1,30 @@ -# Outline Template +# Storyboard Template -## Outline Document Format +## Storyboard Document Format ```markdown -# [Comic Title] - Knowledge Comic Outline +--- +title: "[Comic Title]" +topic: "[topic description]" +time_span: "[e.g., 1912-1954]" +narrative_approach: "[chronological/thematic/character-focused]" +recommended_style: "[style name]" +recommended_layout: "[layout name or varies]" +aspect_ratio: "3:4" # 3:4 (portrait), 4:3 (landscape), 16:9 (widescreen) +language: "[zh/en/ja/etc.]" +page_count: [N] +generated: "YYYY-MM-DD HH:mm" +--- + +# [Comic Title] - Knowledge Comic Storyboard -**Topic**: [topic description] -**Time Span**: [e.g., 1912-1954] -**Style**: [selected style] -**Default Layout**: [selected layout or "varies"] -**Page Count**: Cover + N pages **Character Reference**: characters/characters.png -**Generated**: YYYY-MM-DD HH:mm --- ## Cover -**Filename**: 00-cover.png +**Filename**: 00-cover-[slug].png **Core Message**: [one-liner] **Visual Design**: @@ -33,7 +40,7 @@ ## Page 1 / N -**Filename**: 01-page.png +**Filename**: 01-page-[slug].png **Layout**: [standard/cinematic/dense/splash/mixed] **Narrative Layer**: [Main narrative / Narrator layer / Mixed] **Core Message**: [What this page conveys] diff --git a/skills/baoyu-comic/scripts/merge-to-pdf.ts b/skills/baoyu-comic/scripts/merge-to-pdf.ts index bea5dc9..bdd29c6 100644 --- a/skills/baoyu-comic/scripts/merge-to-pdf.ts +++ b/skills/baoyu-comic/scripts/merge-to-pdf.ts @@ -37,7 +37,7 @@ function findComicPages(dir: string): PageInfo[] { } const files = readdirSync(dir); - const pagePattern = /^(\d+)-(cover|page)\.(png|jpg|jpeg)$/i; + const pagePattern = /^(\d+)-(cover|page)(-[\w-]+)?\.(png|jpg|jpeg)$/i; const promptsDir = join(dir, "prompts"); const hasPrompts = existsSync(promptsDir); @@ -59,7 +59,7 @@ function findComicPages(dir: string): PageInfo[] { if (pages.length === 0) { console.error(`No comic pages found in: ${dir}`); - console.error("Expected format: 00-cover.png, 01-page.png, etc."); + console.error("Expected format: 00-cover-slug.png, 01-page-slug.png, etc."); process.exit(1); } diff --git a/skills/baoyu-cover-image/SKILL.md b/skills/baoyu-cover-image/SKILL.md index 5aed29e..6716b02 100644 --- a/skills/baoyu-cover-image/SKILL.md +++ b/skills/baoyu-cover-image/SKILL.md @@ -38,6 +38,8 @@ Generate hand-drawn style cover images for articles with multiple style options. | Option | Description | |--------|-------------| | `--style ` | Specify cover style (see Style Gallery below) | +| `--aspect ` | Aspect ratio: 2.35:1 (cinematic, default), 16:9 (widescreen), 1:1 (social) | +| `--lang ` | Output language for title text (en, zh, ja, etc.) | | `--no-title` | Generate cover without title text (visual only) | ## Style Gallery @@ -85,34 +87,86 @@ path/to/ └── cover.png ``` -### Without Article Path +### Without Article Path (Pasted Content) -Save to current working directory: +Save to `cover-outputs/YYYY-MM-DD/[topic-slug]/`: ``` -./ -├── cover-prompt.md -└── cover.png +cover-outputs/ +└── 2026-01-17/ + └── ai-future/ + ├── source.md # Saved pasted content + ├── prompts/ + │ └── cover.md + └── cover.png ``` ## Workflow ### Step 1: Analyze Content -Extract key information: -- **Main topic**: What is the article about? -- **Core message**: What's the key takeaway? -- **Tone**: Serious, playful, inspiring, educational? -- **Keywords**: Identify style-signaling words +1. **Save source content** (if not already a file): + - If user provides a file path: use as-is + - If user pastes content: save to `source.md` in target directory -### Step 2: Select Style +2. **Extract key information**: + - **Main topic**: What is the article about? + - **Core message**: What's the key takeaway? + - **Tone**: Serious, playful, inspiring, educational? + - **Keywords**: Identify style-signaling words -If `--style` specified, use that style. Otherwise: -1. Scan content for style signals (see Auto Style Selection table) -2. Match signals to most appropriate style -3. Default to `elegant` if no clear signals +3. **Language detection**: + - Detect **source language** from content + - Detect **user language** from conversation context + - Note if source_language ≠ user_language (will ask in Step 3) -### Step 3: Generate Cover Concept +### Step 2: Determine Options + +1. **Style selection**: + - If `--style` specified, use that style + - Otherwise, scan content for style signals and auto-select 3 candidates + - Default to `elegant` if no clear signals + +2. **Aspect ratio**: + - If `--aspect` specified, use that ratio + - Otherwise, prepare options: 2.35:1 (cinematic), 16:9 (widescreen), 1:1 (social) + +### Step 3: Confirm Options + +**Purpose**: Let user confirm all options in a single step before generation. + +**IMPORTANT**: Present ALL options in a single confirmation step using AskUserQuestion. Do NOT interrupt workflow with multiple separate confirmations. + +**Determine which questions to ask**: + +| Question | When to Ask | +|----------|-------------| +| Style | Always (required) | +| Aspect ratio | Always (offer common options) | +| Language | Only if `source_language ≠ user_language` | + +**Present options** (use AskUserQuestion with all applicable questions): + +**Question 1 (Style)** - always: +- Style A (recommended): [style name] - [brief description] +- Style B: [style name] - [brief description] +- Style C: [style name] - [brief description] +- Custom: Provide custom style reference + +**Question 2 (Aspect)** - always: +- 2.35:1 Cinematic (Recommended) - ultra-wide, dramatic +- 16:9 Widescreen - standard video/presentation +- 1:1 Square - social media optimized + +**Question 3 (Language)** - only if source ≠ user language: +- [Source language] (matches content) +- [User language] (your preference) + +**Language handling**: +- If source language = user language: Just inform user (e.g., "Title will be in Chinese") +- If different: Ask which language to use for title text + +### Step 4: Generate Cover Concept Create a cover image concept based on selected style: @@ -126,21 +180,26 @@ Create a cover image concept based on selected style: - 1-2 symbolic elements representing the topic - Metaphors or analogies that fit the style -### Step 4: Create Prompt File +### Step 5: Create Prompt File + +Save prompt to `prompts/cover.md` with confirmed options. + +**All prompts are written in the user's confirmed language preference.** **Prompt Format**: ```markdown Cover theme: [topic in 2-3 words] Style: [selected style name] +Aspect ratio: [confirmed aspect ratio] [If title included:] -Title text: [8 characters or less, in content language] -Subtitle: [optional, in content language] +Title text: [8 characters or less, in confirmed language] +Subtitle: [optional, in confirmed language] Visual composition: - Main visual: [description matching style] -- Layout: [positioning based on title inclusion] +- Layout: [positioning based on title inclusion and aspect ratio] - Decorative elements: [style-appropriate elements] Color scheme: @@ -154,23 +213,25 @@ Style notes: [specific style characteristics to emphasize] Note: No title text, pure visual illustration only. ``` -### Step 5: Generate Image +### Step 6: Generate Image **Image Generation Skill Selection**: 1. Check available image generation skills 2. If multiple skills available, ask user to choose **Generation**: -Call selected image generation skill with prompt file and output path. +Call selected image generation skill with prompt file, output path, and confirmed aspect ratio. -### Step 6: Output Summary +### Step 7: Output Summary ``` Cover Image Generated! Topic: [topic] Style: [style name] +Aspect: [aspect ratio] Title: [cover title] (or "No title - visual only") +Language: [confirmed language] Location: [output path] Preview the image to verify it matches your expectations. @@ -183,4 +244,5 @@ Preview the image to verify it matches your expectations. - Visual metaphors work better than literal representations - Maintain style consistency throughout the cover - Image generation typically takes 10-30 seconds -- Title text language should match content language +- Title text uses user's confirmed language preference +- Aspect ratio: 2.35:1 for cinematic/dramatic, 16:9 for widescreen, 1:1 for social media diff --git a/skills/baoyu-slide-deck/SKILL.md b/skills/baoyu-slide-deck/SKILL.md index 9b6586d..faaaaaa 100644 --- a/skills/baoyu-slide-deck/SKILL.md +++ b/skills/baoyu-slide-deck/SKILL.md @@ -10,31 +10,13 @@ Transform content into professional slide deck images with flexible style option ## Usage ```bash -# Auto-select style based on content /baoyu-slide-deck path/to/content.md - -# Specify a style /baoyu-slide-deck path/to/content.md --style sketch-notes -/baoyu-slide-deck path/to/content.md --style minimal - -# Target specific audience /baoyu-slide-deck path/to/content.md --audience executives - -# Set output language /baoyu-slide-deck path/to/content.md --lang zh - -# Limit slide count /baoyu-slide-deck path/to/content.md --slides 10 - -# Generate outline only (skip image generation) /baoyu-slide-deck path/to/content.md --outline-only - -# Direct content input -/baoyu-slide-deck -[paste content] - -# Combine options -/baoyu-slide-deck path/to/content.md --style storytelling --audience experts --slides 15 +/baoyu-slide-deck # Then paste content ``` ## Script Directory @@ -58,7 +40,7 @@ Transform content into professional slide deck images with flexible style option |--------|-------------| | `--style ` | Visual style (see Style Gallery) | | `--audience ` | Target audience: beginners, intermediate, experts, executives, general | -| `--lang ` | Output language for prompts and slides (en, zh, ja, etc.) | +| `--lang ` | Output language (en, zh, ja, etc.) | | `--slides ` | Target slide count | | `--outline-only` | Generate outline only, skip image generation | @@ -66,33 +48,31 @@ Transform content into professional slide deck images with flexible style option | Style | Description | Best For | |-------|-------------|----------| -| `sketch-notes` | Hand-drawn sketch notes, warm & friendly | Educational, tutorials, knowledge sharing | -| `blueprint` | Technical blueprint, precise & analytical | Architecture, system design, data analysis | -| `bold-editorial` | Magazine editorial, high-impact & dynamic | Product launches, marketing, keynotes | -| `vector-illustration` | Flat vector with black outlines, retro & cute | Creative proposals, children's content, brand showcases | -| `minimal` | Ultra-clean, maximum whitespace | Executive briefings, keynotes, premium brands | -| `storytelling` | Cinematic, full-bleed visuals | Narratives, case studies, emotional impact | -| `warm` | Soft gradients, wellness aesthetic | Lifestyle, wellness, personal development | -| `notion` (Default) | SaaS dashboard, clean data focus | Product demos, SaaS, productivity tools | -| `corporate` | Navy/gold, professional business | Investor decks, client proposals, quarterly reports | -| `playful` | Vibrant colors, dynamic rounded shapes | Workshops, training, creative pitches | - -Detailed style definitions: `references/styles/