Compare commits

..

2 Commits

Author SHA1 Message Date
Jim Liu 宝玉 76ddcf134e chore: release v1.2.0 2026-01-18 20:42:40 -06:00
Jim Liu 宝玉 5a0feba96e docs: update installation instructions and add available plugins section 2026-01-18 20:28:36 -06:00
11 changed files with 169 additions and 103 deletions
+1 -1
View File
@@ -6,7 +6,7 @@
}, },
"metadata": { "metadata": {
"description": "Skills shared by Baoyu for improving daily work efficiency", "description": "Skills shared by Baoyu for improving daily work efficiency",
"version": "1.1.0" "version": "1.2.0"
}, },
"plugins": [ "plugins": [
{ {
+11
View File
@@ -2,6 +2,17 @@
English | [中文](./CHANGELOG.zh.md) English | [中文](./CHANGELOG.zh.md)
## 1.2.0 - 2026-01-18
### Features
- Session-independent output directories: each generation session creates a new directory (`<skill-suffix>/<topic-slug>/`), even for the same source file. Conflicts resolved by appending timestamp.
- Multi-source file support: source files now saved as `source-{slug}.{ext}`, supporting multiple inputs (text, images, files from conversation).
### Documentation
- `CLAUDE.md`: updates Output Path Convention with new session-independent directory structure and multi-source file naming.
- Multiple skills: updates file management sections to reflect new directory and source file conventions.
- `baoyu-slide-deck`, `baoyu-article-illustrator`, `baoyu-cover-image`, `baoyu-xhs-images`, `baoyu-comic`
## 1.1.0 - 2026-01-18 ## 1.1.0 - 2026-01-18
### Features ### Features
+11
View File
@@ -2,6 +2,17 @@
[English](./CHANGELOG.md) | 中文 [English](./CHANGELOG.md) | 中文
## 1.2.0 - 2026-01-18
### 新功能
- Session 独立输出目录:每次生成创建独立目录(`<skill-suffix>/<topic-slug>/`),即使是同一源文件也会新建目录。目录冲突时追加时间戳。
- 多源文件支持:源文件现以 `source-{slug}.{ext}` 命名,支持多个输入(文本、图片、会话中的文件)。
### 文档
- `CLAUDE.md`:更新 Output Path Convention,采用新的 session 独立目录结构和多源文件命名规范。
- 多个技能:更新文件管理部分,反映新的目录和源文件规范。
- `baoyu-slide-deck``baoyu-article-illustrator``baoyu-cover-image``baoyu-xhs-images``baoyu-comic`
## 1.1.0 - 2026-01-18 ## 1.1.0 - 2026-01-18
### 新功能 ### 新功能
+22 -16
View File
@@ -173,27 +173,33 @@ Use this template when implementing image generation in skills:
### Output Path Convention ### Output Path Convention
Generated images from the same skill and source file MUST be grouped together: Each session creates an independent directory. Even the same source file generates a new directory per session.
**With source file** (e.g., `/path/to/project/content/my-article.md`): **Output Directory**:
``` ```
/path/to/project/content/my-article/<skill-suffix>/ <skill-suffix>/<topic-slug>/
``` ```
- Remove file extension from source filename - `<skill-suffix>`: Skill name suffix (e.g., `xhs-images`, `cover-image`, `slide-deck`, `comic`)
- Use skill name suffix (e.g., `xhs-images`, `cover-image`, `slide-deck`) - `<topic-slug>`: Generated from content topic (2-4 words, kebab-case)
- Example: source `/tests-data/anthropic-economic-index.md` + skill `baoyu-xhs-images``/tests-data/anthropic-economic-index/xhs-images/` - Example: `xhs-images/ai-future-trends/`
**Without source file**: **Slug Generation**:
``` 1. Extract main topic from content (2-4 words, kebab-case)
./<skill-suffix>/<source-slug>/ 2. Example: "Introduction to Machine Learning" → `intro-machine-learning`
```
- Place under current project directory
- Use descriptive slug for the content
**Directory Backup**: **Conflict Resolution**:
- If output directory already exists, rename existing directory with timestamp If `<skill-suffix>/<topic-slug>/` already exists:
- Format: `<dirname>-backup-YYYYMMDD-HHMMSS` - Append timestamp: `<topic-slug>-YYYYMMDD-HHMMSS`
- Example: `xhs-images``xhs-images-backup-20260117-143052` - Example: `ai-future` exists → `ai-future-20260118-143052`
**Source Files**:
- Copy all sources to `<skill-suffix>/<topic-slug>/` with naming: `source-{slug}.{ext}`
- Multiple sources supported: text, images, files from conversation
- Examples:
- `source-article.md` (main text content)
- `source-reference.png` (image from conversation)
- `source-data.csv` (additional file)
- Original source files remain unchanged
### Image Naming Convention ### Image Naming Convention
+12 -1
View File
@@ -31,13 +31,16 @@ Run the following command in Claude Code:
1. Select **Browse and install plugins** 1. Select **Browse and install plugins**
2. Select **baoyu-skills** 2. Select **baoyu-skills**
3. Select **content-skills** 3. Select the plugin(s) you want to install
4. Select **Install now** 4. Select **Install now**
**Option 2: Direct Install** **Option 2: Direct Install**
```bash ```bash
# Install specific plugin
/plugin install content-skills@baoyu-skills /plugin install content-skills@baoyu-skills
/plugin install ai-generation-skills@baoyu-skills
/plugin install utility-skills@baoyu-skills
``` ```
**Option 3: Ask the Agent** **Option 3: Ask the Agent**
@@ -46,6 +49,14 @@ Simply tell Claude Code:
> Please install Skills from github.com/JimLiu/baoyu-skills > Please install Skills from github.com/JimLiu/baoyu-skills
### Available Plugins
| Plugin | Description | Skills |
|--------|-------------|--------|
| **content-skills** | Content generation and publishing | [xhs-images](#baoyu-xhs-images), [cover-image](#baoyu-cover-image), [slide-deck](#baoyu-slide-deck), [comic](#baoyu-comic), [article-illustrator](#baoyu-article-illustrator), [post-to-x](#baoyu-post-to-x), [post-to-wechat](#baoyu-post-to-wechat) |
| **ai-generation-skills** | AI-powered generation backends | [danger-gemini-web](#baoyu-danger-gemini-web) |
| **utility-skills** | Utility tools for content processing | [danger-x-to-markdown](#baoyu-danger-x-to-markdown), [compress-image](#baoyu-compress-image) |
## Update Skills ## Update Skills
To update skills to the latest version: To update skills to the latest version:
+12 -1
View File
@@ -31,13 +31,16 @@ npx add-skill jimliu/baoyu-skills
1. 选择 **Browse and install plugins** 1. 选择 **Browse and install plugins**
2. 选择 **baoyu-skills** 2. 选择 **baoyu-skills**
3. 选择 **content-skills** 3. 选择要安装的插件
4. 选择 **Install now** 4. 选择 **Install now**
**方式二:直接安装** **方式二:直接安装**
```bash ```bash
# 安装指定插件
/plugin install content-skills@baoyu-skills /plugin install content-skills@baoyu-skills
/plugin install ai-generation-skills@baoyu-skills
/plugin install utility-skills@baoyu-skills
``` ```
**方式三:告诉 Agent** **方式三:告诉 Agent**
@@ -46,6 +49,14 @@ npx add-skill jimliu/baoyu-skills
> 请帮我安装 github.com/JimLiu/baoyu-skills 中的 Skills > 请帮我安装 github.com/JimLiu/baoyu-skills 中的 Skills
### 可用插件
| 插件 | 说明 | 包含技能 |
|------|------|----------|
| **content-skills** | 内容生成和发布 | [xhs-images](#baoyu-xhs-images), [cover-image](#baoyu-cover-image), [slide-deck](#baoyu-slide-deck), [comic](#baoyu-comic), [article-illustrator](#baoyu-article-illustrator), [post-to-x](#baoyu-post-to-x), [post-to-wechat](#baoyu-post-to-wechat) |
| **ai-generation-skills** | AI 生成后端 | [danger-gemini-web](#baoyu-danger-gemini-web) |
| **utility-skills** | 内容处理工具 | [danger-x-to-markdown](#baoyu-danger-x-to-markdown), [compress-image](#baoyu-compress-image) |
## 更新技能 ## 更新技能
更新技能到最新版本: 更新技能到最新版本:
+26 -27
View File
@@ -102,43 +102,42 @@ When no `--style` is specified, analyze content to select the best style:
## File Management ## File Management
### With Article Path ### Output Directory
Save illustrations to `[source-name-no-ext]/illustrations/` subdirectory in the same folder as the article: Each session creates an independent directory named by content slug:
``` ```
path/to/ illustrations/{topic-slug}/
├── article.md ├── source-{slug}.{ext} # Source files (text, images, etc.)
── article/ ── outline.md
└── illustrations/ ├── outline-{style}.md # Style variant outlines
├── outline.md ├── prompts/
├── prompts/ ├── illustration-concept-a.md
│ ├── illustration-concept-a.md │ ├── illustration-concept-b.md
── illustration-concept-b.md ── ...
│ └── ... ├── illustration-concept-a.png
├── illustration-concept-a.png ├── illustration-concept-b.png
├── illustration-concept-b.png └── ...
└── ...
``` ```
Example: `/posts/ai-future.md``/posts/ai-future/illustrations/` **Slug Generation**:
1. Extract main topic from content (2-4 words, kebab-case)
2. Example: "The Future of AI" → `future-of-ai`
### Without Article Path (Pasted Content) ### Conflict Resolution
Save to `./illustrations/[topic-slug]/`: If `illustrations/{topic-slug}/` already exists:
- Append timestamp: `{topic-slug}-YYYYMMDD-HHMMSS`
- Example: `ai-future` exists → `ai-future-20260118-143052`
``` ### Source Files
illustrations/
└── ai-future/
├── source.md
├── outline.md
├── prompts/
└── *.png
```
### Directory Backup Copy all sources with naming `source-{slug}.{ext}`:
- `source-article.md` (main text content)
- `source-photo.jpg` (image from conversation)
- `source-reference.pdf` (additional file)
If target directory exists, rename existing to `<dirname>-backup-YYYYMMDD-HHMMSS` Multiple sources supported: text, images, files from conversation.
## Workflow ## Workflow
+16 -8
View File
@@ -55,9 +55,11 @@ Style × Layout × Aspect can be freely combined. Custom styles can be described
## File Structure ## File Structure
Each session creates an independent directory named by content slug:
``` ```
[target]/ comic/{topic-slug}/
├── source.md # Source content (if pasted, not file) ├── source-{slug}.{ext} # Source files (text, images, etc.)
├── analysis.md # Deep analysis results (YAML+MD) ├── analysis.md # Deep analysis results (YAML+MD)
├── storyboard-chronological.md # Variant A (preserved) ├── storyboard-chronological.md # Variant A (preserved)
├── storyboard-thematic.md # Variant B (preserved) ├── storyboard-thematic.md # Variant B (preserved)
@@ -83,13 +85,19 @@ Style × Layout × Aspect can be freely combined. Custom styles can be described
└── {topic-slug}.pdf └── {topic-slug}.pdf
``` ```
**Target directory**: **Slug Generation**:
- With source path: `[source-dir]/[source-name-no-ext]/comic/` 1. Extract main topic from content (2-4 words, kebab-case)
- Example: `/posts/turing-story.md``/posts/turing-story/comic/` 2. Example: "Alan Turing Biography" → `alan-turing-bio`
- Without source: `./comic/[topic-slug]/`
**Directory backup**: **Conflict Resolution**:
- If target directory exists, rename existing to `<dirname>-backup-YYYYMMDD-HHMMSS` If `comic/{topic-slug}/` already exists:
- Append timestamp: `{topic-slug}-YYYYMMDD-HHMMSS`
- Example: `turing-story` exists → `turing-story-20260118-143052`
**Source Files**:
Copy all sources with naming `source-{slug}.{ext}`:
- `source-biography.md`, `source-portrait.jpg`, `source-timeline.png`, etc.
- Multiple sources supported: text, images, files from conversation
## Workflow ## Workflow
+19 -22
View File
@@ -74,38 +74,35 @@ When no `--style` is specified, the system analyzes content to select the best s
## File Management ## File Management
### With Article Path ### Output Directory
Save to `[source-name-no-ext]/cover-image/` subdirectory in the same folder as the article: Each session creates an independent directory named by content slug:
``` ```
path/to/ cover-image/{topic-slug}/
├── article.md ├── source-{slug}.{ext} # Source files (text, images, etc.)
── article/ ── prompts/
└── cover-image/ └── cover.md
├── prompts/ └── cover.png
│ └── cover.md
└── cover.png
``` ```
Example: `/posts/ai-future.md``/posts/ai-future/cover-image/` **Slug Generation**:
1. Extract main topic from content (2-4 words, kebab-case)
2. Example: "The Future of AI" → `future-of-ai`
### Without Article Path (Pasted Content) ### Conflict Resolution
Save to `./cover-image/[topic-slug]/`: If `cover-image/{topic-slug}/` already exists:
- Append timestamp: `{topic-slug}-YYYYMMDD-HHMMSS`
- Example: `ai-future` exists → `ai-future-20260118-143052`
``` ### Source Files
cover-image/
└── ai-future/
├── source.md # Saved pasted content
├── prompts/
│ └── cover.md
└── cover.png
```
### Directory Backup Copy all sources with naming `source-{slug}.{ext}`:
- `source-article.md` (main text content)
- `source-logo.png` (image from conversation)
If target directory exists, rename existing to `<dirname>-backup-YYYYMMDD-HHMMSS` Multiple sources supported: text, images, files from conversation.
## Workflow ## Workflow
+23 -19
View File
@@ -95,36 +95,40 @@ This deck is designed for **reading and sharing**, not live presentation:
## File Management ## File Management
### With Content Path ### Output Directory
```
content-dir/
├── source-content.md
└── source-content/
└── slide-deck/
├── outline.md
├── prompts/
│ └── 01-slide-cover.md, 02-slide-{slug}.md, ...
├── 01-slide-cover.png, 02-slide-{slug}.png, ...
├── {topic-slug}.pptx
└── {topic-slug}.pdf
```
Example: `/posts/ai-intro.md``/posts/ai-intro/slide-deck/` Each session creates an independent directory named by content slug:
### Without Content Path (Pasted Content)
``` ```
slide-deck/{topic-slug}/ slide-deck/{topic-slug}/
├── source.md ├── source-{slug}.{ext} # Source files (text, images, etc.)
├── outline.md ├── outline.md
├── outline-{style}.md # Style variant outlines
├── prompts/ ├── prompts/
├── *.png │ └── 01-slide-cover.md, 02-slide-{slug}.md, ...
├── 01-slide-cover.png, 02-slide-{slug}.png, ...
├── {topic-slug}.pptx ├── {topic-slug}.pptx
└── {topic-slug}.pdf └── {topic-slug}.pdf
``` ```
### Directory Backup **Slug Generation**:
1. Extract main topic from content (2-4 words, kebab-case)
2. Example: "Introduction to Machine Learning" → `intro-machine-learning`
If target directory exists, rename existing to `<dirname>-backup-YYYYMMDD-HHMMSS` ### Conflict Resolution
If `slide-deck/{topic-slug}/` already exists:
- Append timestamp: `{topic-slug}-YYYYMMDD-HHMMSS`
- Example: `intro-ml` exists → `intro-ml-20260118-143052`
### Source Files
Copy all sources with naming `source-{slug}.{ext}`:
- `source-article.md` (main text content)
- `source-diagram.png` (image from conversation)
- `source-data.xlsx` (additional file)
Multiple sources supported: text, images, files from conversation.
## Workflow ## Workflow
+16 -8
View File
@@ -92,9 +92,11 @@ Detailed layout definitions: `references/layouts/<layout>.md`
## File Structure ## File Structure
Each session creates an independent directory named by content slug:
``` ```
[target]/ xhs-images/{topic-slug}/
├── source.md # Source content (if pasted) ├── source-{slug}.{ext} # Source files (text, images, etc.)
├── analysis.md # Deep analysis results ├── analysis.md # Deep analysis results
├── outline-style-[slug].md # Variant A (e.g., outline-style-tech.md) ├── outline-style-[slug].md # Variant A (e.g., outline-style-tech.md)
├── outline-style-[slug].md # Variant B (e.g., outline-style-notion.md) ├── outline-style-[slug].md # Variant B (e.g., outline-style-notion.md)
@@ -109,13 +111,19 @@ Detailed layout definitions: `references/layouts/<layout>.md`
└── NN-ending-[slug].png └── NN-ending-[slug].png
``` ```
**Target directory**: **Slug Generation**:
- With source path: `[source-dir]/[source-name-no-ext]/xhs-images/` 1. Extract main topic from content (2-4 words, kebab-case)
- Example: `/tests-data/article.md``/tests-data/article/xhs-images/` 2. Example: "AI工具推荐" → `ai-tools-recommend`
- Without source: `./xhs-images/[topic-slug]/`
**Directory backup**: **Conflict Resolution**:
- If target directory exists, rename existing to `<dirname>-backup-YYYYMMDD-HHMMSS` If `xhs-images/{topic-slug}/` already exists:
- Append timestamp: `{topic-slug}-YYYYMMDD-HHMMSS`
- Example: `ai-tools` exists → `ai-tools-20260118-143052`
**Source Files**:
Copy all sources with naming `source-{slug}.{ext}`:
- `source-article.md`, `source-photo.jpg`, etc.
- Multiple sources supported: text, images, files from conversation
## Workflow ## Workflow