name: ctx-blog-changelog description: “根据提交记录生成主题博客文章。在撰写版本间变更或记录开发历程时使用。”
根据特定提交以来的变更生成一篇博客文章,并围绕给定主题展开。
写作前
两个问题;如果任一答案为“否”,请重新考虑:
- “是否有足够的变化来讲述一个故事?” → 仅修复几个拼写错误不足以构成一篇博文
- “主题是否清晰?” → 如果提交范围包含不相关的工作,请缩小范围或拆分为多篇博文
使用时机
- 记录版本间的变更时
- 撰写关于某个开发历程或主题时
- 当用户想要解释“发生了什么变化以及为什么”时
不应使用的时机
- 用于没有特定提交范围的一般项目更新(使用
/ctx-blog) - 当变更微小或属于日常维护时
- 当提交内容没有统一的主题时
输入
必需:
- 提交哈希:起始点(例如
040ce99、HEAD~50、v0.1.0) - 主题:叙述角度(例如“人工辅助重构”、“召回系统”)
可选:
- 参考文章:一篇现有文章,用于匹配风格
使用示例
/ctx-blog-changelog 040ce99 "人工辅助重构"
/ctx-blog-changelog HEAD~30 "构建日志系统"
/ctx-blog-changelog v0.1.0 "v0.2.0 的新特性"
流程
- 分析提交范围:
git log --oneline <commit>..HEAD
git diff --stat <commit>..HEAD
git log --format="%s" <commit>..HEAD | head -50
- 收集支持性上下文:
# 变更最多的文件
git diff --stat <commit>..HEAD | sort -t'|' -k2 -rn | head -20
# 此期间的日志条目
ls .context/journal/*.md
- 起草叙述性内容,遵循主题
- 保存到
docs/blog/YYYY-MM-DD-slug.md - 更新
docs/blog/index.md,在顶部添加条目:
### [文章标题](YYYY-MM-DD-slug.md)
*作者 / 日期*
2-3 句摘要。
**主题**:主题一,主题二,主题三
---
博客结构
前言
---
title: "[主题]: [具体角度]"
date: YYYY-MM-DD
author: [询问用户]
topics:
- 主题一
- 主题二
- 主题三
---
正文
# [标题]

> [与主题相关的引子]
## 起点
[描述在 <commit> 时代码库的状态,以及引发变更的原因]
## 历程
[按主题而非时间顺序组织的变更叙述]
## 前后对比
[展示改进的对比表格或代码差异]
## 关键提交
| 提交 | 变更描述 |
|--------|-------------|
| abc123 | 描述 |
## 经验教训
[从这项工作中获得的见解]
## 下一步
[这些变更所启发的未来工作]
风格指南
- 个人口吻:使用“我”、“我们”,分享历程
- 展示而非讲述:包含实际代码、提交、差异
- 使用表格进行比较:前后对比、关键提交
- 坦诚面对失败:包含出错内容及原因
- 具体示例:引用特定文件、提交、决策
- 不使用破折号:使用
:、;或重构句子代替 - 仅使用直引号:使用“直引号”(
"、'),切勿使用印刷/弯引号 - 80 字符行宽:正文文本在约 80 字符处换行;表格、代码块和 URL 除外