name: ctx-journal-enrich-all description: “批量丰富所有未丰富的日志条目。在导出会话后使用,无需手动选择即可处理积压任务。” allowed-tools: Bash(ctx:*), Read, Glob, Grep, Edit, Write, Task
自动批量丰富所有未丰富的日志条目。
何时使用
- 在
ctx recall export --all生成一批新条目之后 - 当存在积压的未丰富会话时
- 当用户说“丰富所有内容”或“处理日志”时
- 定期处理以跟进最近的会话
何时不应使用
- 针对单个特定会话(请改用
/ctx-journal-enrich) - 在导出之前(尚无内容可丰富)
处理流程
步骤 1:查找未丰富的条目
使用状态文件列出所有缺少丰富内容的日志条目:
# 列出日志目录中的 .md 文件并检查状态
for f in .context/journal/*.md; do
name=$(basename "$f")
ctx journal mark --check "$name" enriched || echo "$f"
done
或者直接读取 .context/journal/.state.json 并列出未设置 enriched 日期的条目。
如果所有条目都已记录为已丰富,则报告此情况并停止。
步骤 2:过滤掉噪音
跳过不值得丰富的条目:
- 建议会话:文件少于约 20 行或仅包含自动完成片段。使用以下命令检查:
wc -l <file> - 多部分延续:以
-p2.md、-p3.md等结尾的文件。仅丰富第一部分;延续部分继承前置元数据主题。
报告将处理多少条目以及过滤掉了多少条目。
步骤 3:处理每个条目
对于每个条目,读取对话并提取:
- 标题:会话的简短描述性标题
- 类型:功能、错误修复、重构、探索、调试或文档
- 结果:已完成、部分完成、已放弃或已阻塞
- 主题:2-5 个主题标签
- 技术:使用的语言、框架、工具
- 摘要:2-3 句话描述完成的内容
将 YAML 前置元数据应用到每个文件:
---
title: "会话标题"
date: 2026-01-27
type: feature
outcome: completed
topics:
- authentication
- caching
technologies:
- go
- redis
---
步骤 4:标记为已丰富
将前置元数据写入每个文件后,更新状态文件:
ctx journal mark <filename> enriched
步骤 5:报告
处理完成后,报告:
- 丰富了多少条目
- 跳过了多少条目(已丰富、太短等)
- 提醒用户重新构建:
ctx journal site --build
确认模式
交互式(用户在场时的默认模式):在应用前显示拟议丰富内容的摘要。按类型/结果分组,以便用户快速浏览,而无需逐一审查。
无人值守(在循环中运行或明确告知“直接执行”时):直接应用丰富内容并报告结果。
大量积压任务
对于 20 个以上的条目积压,考虑生成子代理以并行处理条目。每个子代理处理一批 5-10 个条目。父代理通过任务列表跟踪进度。
这是可选的——对于较小的积压任务,顺序处理效果良好,并避免了协调开销。
质量检查清单
- [ ] 建议会话和多部分延续已被过滤
- [ ] 每个已丰富的条目都包含所有必需的前置元数据字段
- [ ] 摘要是针对特定会话的,而非通用描述
- [ ] 在应用前向用户显示了摘要(除非是无人值守模式)
- [ ] 已为每个已丰富的条目更新了状态文件