ctx-journal-enrich ctx-journal-enrich

这是一个用于为开发会话日记条目自动添加结构化元数据的工具。它能提取并生成标题、日期、类型、结果、主题、技术栈、关键文件等元数据,补充摘要,并提取决策、收获和任务列表。适用于构建可搜索、可分类的会话知识库,提升开发文档管理和知识沉淀效率。关键词:会话日记,元数据提取,知识管理,开发日志,文档自动化。

DevOps 0 次安装 0 次浏览 更新于 2/27/2026

name: ctx-journal-enrich description: “为日记条目添加元数据。当日记条目缺少前置元数据、标签或摘要以便未来参考时使用。”

为会话日记条目添加结构化的元数据。

添加元数据前

  1. 首先运行 /ctx-journal-normalize:如果条目存在渲染问题;干净的Markdown能产生更好的元数据提取效果。
  2. 检查是否已添加元数据:通过 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] 实现缓存层
- [ ] 添加缓存指标(本次会话创建)

流程

  1. 查找并读取日记文件。
  2. 分析对话内容。
  3. 提议添加的元数据(类型、主题、结果)。
  4. 请用户确认/调整。
  5. 显示差异并在批准后写入。
  6. 在状态文件中标记为已添加元数据
    ctx journal mark <文件名> enriched
    
  7. 提醒用户重新构建:ctx journal site --buildmake journal