name: ctx-journal-enrich description: “为日记条目添加元数据。当日记条目缺少前置元数据、标签或摘要以便未来参考时使用。”
为会话日记条目添加结构化的元数据。
添加元数据前
- 首先运行
/ctx-journal-normalize:如果条目存在渲染问题;干净的Markdown能产生更好的元数据提取效果。 - 检查是否已添加元数据:通过
ctx journal mark --check <文件名> enriched检查状态文件,或读取.context/journal/.state.json;在覆盖前请确认。
何时使用
- 当日记条目缺少用于未来参考的元数据时。
- 在导出需要分类的会话之后。
- 在构建可搜索的会话存档时。
何时不使用
- 对于已具备完整前置元数据的条目(除非是更新)。
- 在规范化具有损坏格式的条目之前。
- 对于建议会话(简短的自动完成提示;不值得添加元数据)。
输入
用户通过部分匹配指定日记条目:
twinkly-stirring-kettle(短标识)twinkly(部分短标识)2026-01-24(日期)76fe2ab9(短ID)
查找匹配的文件:
ls .context/journal/*.md | grep -i "<模式>"
如果找到多个匹配项,显示它们并询问选择哪一个。
如果未提供参数,通过读取 .context/journal/.state.json 并列出没有 enriched 日期的条目来显示最近未添加元数据的条目:
# 使用状态文件列出未添加元数据的条目
for f in .context/journal/*.md; do
name=$(basename "$f")
ctx journal mark --check "$name" enriched || echo "$f"
done | head -10
使用示例
/ctx-journal-enrich twinkly-stirring-kettle
/ctx-journal-enrich twinkly
/ctx-journal-enrich 2026-01-24
/ctx-journal-enrich 76fe2ab9
添加元数据的任务
读取日记条目并提取:
1. 前置元数据(文件顶部的YAML)
---
title: "会话标题"
date: 2026-01-27
type: feature
outcome: completed
topics:
- authentication
- caching
technologies:
- go
- postgresql
libraries:
- cobra
- fatih/color
key_files:
- internal/auth/token.go
- internal/db/cache.go
---
类型值:
| 类型 | 何时使用 |
|---|---|
feature |
构建新功能 |
bugfix |
修复损坏的行为 |
refactor |
在不改变行为的情况下进行重构 |
exploration |
研究、学习、实验 |
debugging |
调查问题 |
documentation |
编写文档、注释、README |
结果值:
| 结果 | 含义 |
|---|---|
completed |
目标达成 |
partial |
取得一些进展,工作继续 |
abandoned |
停止采用此方法 |
blocked |
等待外部依赖 |
2. 摘要
如果 ## 摘要 显示为 “[添加你的摘要…]”,请用2-3句话描述所完成的工作来替换它。
3. 提取的项目
扫描对话并提取:
做出的决策:如果已持久化,链接到 DECISIONS.md:
## 决策
- 使用Redis进行缓存 ([D12](../DECISIONS.md#d12))
- 选择JWT而非会话(尚未持久化)
发现的收获:如果已持久化,链接到 LEARNINGS.md:
## 收获
- 令牌刷新需要缓存失效 ([L8](../LEARNINGS.md#l8))
- Go的defer按LIFO运行(新见解)
已完成/创建的任务:
## 任务
- [x] 实现缓存层
- [ ] 添加缓存指标(本次会话创建)
流程
- 查找并读取日记文件。
- 分析对话内容。
- 提议添加的元数据(类型、主题、结果)。
- 请用户确认/调整。
- 显示差异并在批准后写入。
- 在状态文件中标记为已添加元数据:
ctx journal mark <文件名> enriched - 提醒用户重新构建:
ctx journal site --build或make journal。