7.2 KiB
name, description, argument-hint, effort, allowed-tools
| name | description | argument-hint | effort | allowed-tools |
|---|---|---|---|---|
| guide-recap | 将 CHANGELOG 条目转换为社交平台内容(LinkedIn、Twitter/X、Newsletter、Slack),支持法语和英语。在发布后或每周使用,从指南更新中生成可直接发布的内容。 | <latest|vX.Y.Z|week [YYYY-MM-DD]> [--interactive] [--format=linkedin|twitter|newsletter|slack] [--lang=fr|en] [--save] | medium | Read, Bash |
Guide Recap
从 CHANGELOG.md 条目生成社交媒体内容。默认输出 8 份(4 种格式 × 2 种语言)。
何时使用
- 在运行
/release后创建社交平台公告 - 每周汇总多个版本
- 在 LinkedIn、Twitter/X、Newsletter 或 Slack 上发帖前
用法
/guide-recap latest # 最新已发布版本
/guide-recap v3.20.5 # 指定版本
/guide-recap week # 本周(周一至今)
/guide-recap week 2026-01-27 # 指定周(周一至周日)
标记
| 标记 | 作用 | 默认值 |
|---|---|---|
--interactive |
引导模式:选择角度、受众、亮点 | 关闭(自动草稿) |
--format=X |
单一格式:linkedin、twitter、newsletter、slack |
全部 4 种格式 |
--lang=X |
单一语言:fr、en |
法语 + 英语 |
--save |
将输出保存至 claudedocs/social-posts/ |
仅显示 |
--force |
即使仅含维护类条目也生成内容 | 跳过低分内容 |
工作流程(7 步)
第 1 步:解析输入
解析 $ARGUMENTS 以确定模式:
| 输入 | 模式 | 目标 |
|---|---|---|
latest |
单个版本 | [Unreleased] 之后的第一个 ## [X.Y.Z] |
vX.Y.Z 或 X.Y.Z |
单个版本 | 精确匹配版本号 |
week |
周范围 | 本周周一至今 |
week YYYY-MM-DD |
周范围 | 该周周一至下周日 |
如果没有参数或参数无效,显示用法说明并退出。
第 2 步:提取 CHANGELOG 条目
从项目根目录读取 CHANGELOG.md。
单个版本:
- 找到匹配
## [{version}]的行 - 提取直到下一个
## [行的所有内容 - 解析
### Added、### Changed、### Fixed章节
周范围:
- 收集所有日期落在该范围内的
## [X.Y.Z] - YYYY-MM-DD条目 - 解析所有匹配版本中的所有章节
错误:未找到版本 -> 列出最近 5 个版本,建议使用 latest。
错误:该周没有条目 -> 显示最近一次发布的日期,建议使用该版本。
第 3 步:条目分类
对于每个顶级条目(### 下的一级项目符号),分配一个类别:
| 类别 | 权重 | 检测方式 |
|---|---|---|
NEW_CONTENT |
3 | 新文件、新章节、新图表、新测验题 |
GROWTH_METRIC |
2 | 行数增长、条目数量变化 |
RESEARCH |
1 | 资源评估、外部来源集成 |
FIX |
1 | 在 ### Fixed 下,更正内容 |
MAINTENANCE |
0 | README 更新、徽章同步、着陆页同步、计数更新 |
详细分类规则请参见 references/changelog-parsing-rules.md。
第 4 步:转换为用户价值
应用 references/content-transformation.md 中的映射规则:
- 技术语言 -> 用户收益
- 提取具体数字
- 注明来源
- 归并相关条目
对照 references/tone-guidelines.md 中的 DO/DON'T 检查清单进行验证。
第 4b 步:交互模式(仅限 --interactive)
如果设置了 --interactive 标记,则在第 4 步和第 5 步之间插入以下流程:
-
显示候选亮点及评分:
Highlights (by score): [14] 4 new ASCII diagrams (16 -> 20) [NEW_CONTENT] [ 9] 30 new quiz questions (227 -> 257) [NEW_CONTENT] [ 6] Docker sandbox isolation guide [NEW_CONTENT] [ 1] README updated [MAINTENANCE] -
询问切入角度:
- 自动(最高分作为钩子)
- 用户选择特定条目作为钩子
- 自定义角度(用户提供主题)
-
询问目标受众:
devs(技术深度)tech-leads(关注影响力)general(通俗语言)all(默认,均衡)
-
询问主要亮点:
- 自动(最高分)
- 用户从列表中选择
-
确认选择并进入第 5 步。
第 5 步:评分与筛选
计算每条条目的评分:
score = (category_weight * 3)
+ (has_number * 2)
+ (named_source * 1)
+ (new_file * 1)
+ (min(impact_files, 3))
+ (breaking * 2)
按评分选择前 3-4 条。最高分作为钩子行。
如果所有评分 < 3:输出"此版本不推荐生成社交内容。请使用 --force 强制生成。"并退出(除非使用了 --force)。
第 6 步:生成内容
对于每种请求的格式(默认:全部 4 种)和语言(默认:两种):
- 从
assets/读取对应的模板 - 使用评分和转换后的条目填充模板字段
- 应用 tone-guidelines.md 质量检查清单
链接:
| 格式 | 链接目标 |
|---|---|
| 着陆页 URL | |
| GitHub 仓库 URL | |
| Newsletter | 两者(着陆页 + GitHub) |
| Slack | GitHub 仓库 URL |
URL:
- 着陆页:
https://florianbruniaux.github.io/Codex-ultimate-guide-landing/ - GitHub:
https://github.com/FlorianBruniaux/Codex-ultimate-guide
第 7 步:输出
将每条生成的内容显示在围栏代码块中,标注格式和语言:
## LinkedIn (FR)
```text
[内容]
`` `
## LinkedIn (EN)
```text
[内容]
`` `
## Twitter/X (FR)
```text
[内容]
`` `
...
如果使用 --save 标记:将所有输出写入 claudedocs/social-posts/YYYY-MM-DD-vX.Y.Z.md(针对版本)或 claudedocs/social-posts/YYYY-MM-DD-week.md(针对周)。如果 claudedocs/social-posts/ 目录不存在则自动创建。
错误处理
| 错误 | 响应 |
|---|---|
| 无参数 | 显示用法说明块 |
| 无效参数 | 显示带有示例的用法说明块 |
| 未找到版本 | 列出最近 5 个版本,建议使用 latest |
| 该周没有条目 | 显示最近一次发布的日期,建议使用该版本 |
| 所有条目均为 MAINTENANCE(评分 0) | "不推荐生成社交内容。请使用 --force 强制生成。" |
| 未找到 CHANGELOG.md | "在项目根目录中未找到 CHANGELOG.md。" |
参考文件
references/tone-guidelines.md- DO/DON'T 规则、emoji 预算、语言风格references/changelog-parsing-rules.md- CHANGELOG 格式、提取、评分算法references/content-transformation.md- 技术 -> 用户价值映射(30+ 条)assets/linkedin-template.md- 约 1300 字符,钩子 + 要点 + CTA + 标签assets/twitter-template.md- 280 字符单条或 2-3 条推文串assets/newsletter-template.md- 约 500 词,结构化章节assets/slack-template.md- 紧凑、富含 emoji、Slack 格式examples/version-output.md- v3.20.5 的完整示例输出examples/week-output.md- 2026-01-27 周的完整示例输出
提示
- 在
/release后立即运行/guide-recap latest以准备社交平台帖子 - 前几次使用
--interactive以了解评分机制 - 当只需要某个特定输出时,使用
--format=linkedin --lang=fr --save输出通过claudedocs/约定被 gitignore 忽略- 发布前请检查并个性化调整(这些是草稿,非最终文案)