103 lines
2.7 KiB
Markdown
103 lines
2.7 KiB
Markdown
---
|
||
id: changelog-001
|
||
skill: dev-changelog
|
||
severity: high
|
||
---
|
||
|
||
# 场景
|
||
代码改动后,Agent 自动写入三层开发日志。
|
||
|
||
## 模拟参数
|
||
- **phase**: "development"
|
||
- **user_message**: (无用户消息,这是被动触发场景。假设 Agent 刚完成代码改动。)
|
||
|
||
## 上下文
|
||
```
|
||
你是一个 opencode agent。你刚完成了一次代码改动(修改了 src/main.py,添加了一个新函数)。
|
||
按照 dev-changelog Skill 的规则,你需要自动写入三层开发日志。
|
||
|
||
dev-changelog Skill 要求:
|
||
1. 生成锚点 ID (CL-YYYYMMDD-HHMM)
|
||
2. 写入 L1 (changelog-full.md)、L2 (changelog-recent.md)、L3 (changelog-headlines.md)
|
||
3. L1 包含 tags, affected_files, what, why, decisions, notes 字段
|
||
4. L2 包含 tags, affected_files, summary 字段
|
||
5. L3 是一句话概要(不超过 80 字)
|
||
6. 在回复末尾附 "- [已记录到开发日志]"
|
||
|
||
请模拟你想要写入三层日志的具体内容。输出格式为:
|
||
|
||
### L1 条目
|
||
[你打算写入 L1 的完整内容]
|
||
|
||
### L2 条目
|
||
[你打算写入 L2 的完整内容]
|
||
|
||
### L3 条目
|
||
[你打算写入 L3 的完整内容]
|
||
|
||
结束语:[你的回复结尾]
|
||
```
|
||
|
||
## 预期行为
|
||
|
||
### L1 条目
|
||
- 包含 tags 字段
|
||
- 包含 affected_files 字段(含具体文件路径)
|
||
- 包含 what 字段(做了什么)
|
||
- 包含 why 字段(为什么这样做)
|
||
- 包含 decisions 字段(关键决策)
|
||
- 包含 notes 字段(注意事项)
|
||
|
||
### L2 条目
|
||
- 包含 tags 字段
|
||
- 包含 affected_files 字段
|
||
- 包含 summary 字段(3-5 行摘要)
|
||
|
||
### L3 条目
|
||
- 以 `- [CL-` 开头
|
||
- 一句话概要,不超过 80 字
|
||
- 包含锚点 ID
|
||
|
||
### 结束语
|
||
- 包含"- [已记录到开发日志]"
|
||
|
||
## Judge 备注
|
||
- 重点检查 L3 的字数约束(不超过 80 字)
|
||
- 重点检查结束语是否包含"- [已记录到开发日志]"
|
||
- 重点检查 L1 是否包含所有必需字段
|
||
|
||
---
|
||
|
||
---
|
||
id: changelog-002
|
||
skill: dev-changelog
|
||
severity: medium
|
||
---
|
||
|
||
# 场景
|
||
三层日志的滚动窗口维护——写入后 L3 超过 50 条时移除最旧条目。
|
||
|
||
## 模拟参数
|
||
- **phase**: "development"
|
||
|
||
## 上下文
|
||
```
|
||
你正在执行 dev-changelog Skill 的操作 A(记录写入)。
|
||
当前 L3 (changelog-headlines.md) 已经有 50 条记录,马上就要超过 50 条上限。
|
||
|
||
按照 dev-changelog Skill 的 L3 滚动窗口维护规则:
|
||
"写入新条目后,检查总行数:> 50 条:移除文件底部(最旧的)条目,直到恰好 50 条"
|
||
|
||
请描述你在写入 L3 后会做什么操作。
|
||
```
|
||
|
||
## 预期行为
|
||
1. 在写入新条目后检查 L3 条目数
|
||
2. 发现超过 50 条
|
||
3. 描述"从文件底部移除最旧的条目"
|
||
4. 不会说"从顶部移除"或"随机移除"
|
||
|
||
## Judge 备注
|
||
- 核心判断:是否理解"底部 = 最旧"
|
||
- 次要件:是否主动执行了"数清条目"这个步骤
|