# vibe-journal-pipeline

把分散的开发对话，整理成可以回顾的日常记录。

使用 Python 标准库构建的开发日志流水线。汇集 Hermes、Codex 与可选 OpenCode 会话，按日期生成结构化中文日志，再从日志重建技术清单和时间线，并为网站提供经过筛选的公开记录。

[网站原文](https://zzzxc.com/projects/vibe-journal-pipeline)

## 让开发过程留下可回顾的记录

使用多个 Agent 开发时，一天的工作会分散在不同工具与会话中：有些记录需求，有些讨论实现，有些保留排障和验证过程。重新回看这些对话，需要先找齐来源，再从大量往返中整理出有意义的工作内容。

vibe-journal-pipeline 按日期汇集这些材料，生成一份结构化日志。它记录当天使用的技术、完成的工作与一条可复用的成果描述，并进一步整理出时间线，让零散会话能够按天回顾。

## 先把一天的数据放在一起

流水线可以读取 Hermes 的 SQLite 会话数据库、Codex CLI/Desktop 的 JSONL 会话，以及可选的本地 OpenCode 数据库。Hermes 与 Codex 也支持通过 SSH 读取配置的远程来源。

不同来源经过各自的筛选与标准化后，按时间合并到同一个日期窗口。日期边界使用本机时区或显式指定的时区；记录按整天组织，保留来源与会话信息，再交给后续摘要步骤。

## 为繁忙的一天分段整理

普通日期直接根据合并后的对话生成日志。合并消息超过 300 条时，程序先按顺序拆成大小接近的片段，分别压缩，再据此生成当天日志。筛选后的每条输入都会进入某个处理片段。

中间摘要根据输入指纹缓存，相同输入在再次运行时可以复用。这个过程减少了单次请求承载的内容，也保留了长会话的处理路径；压缩仍由语言模型完成，摘要可能遗漏或误解细节，因此结果需要结合原始材料判断。

## 让模型输出经过结构检查

最终日志直接保存为 JSON，正文包含“今天用了啥”“干了啥”和“可写进简历的一件事”。程序检查字段类型、非空内容与最低详细程度；遇到格式问题时，尝试要求模型修复，再经过同一套检查。

日期、会话数和轮次数由程序根据实际输入写入，其中轮次数是根据消息数量计算的近似值。这样，生成内容和可计算的元数据各有来源。结构检查能够拦住格式错误与明显过短的输出，事实判断仍依赖来源质量和内容复核。

## 保存依据，也让汇总可以重建

每日日志是主要记录，技术清单和时间线都从现有日志重新汇总。技术名称会进行轻量的别名归一，使常见大小写和分隔符差异尽量归到同一条记录；不能识别的名称保留日志提供的信息。

如果需要追溯生成依据，可以选择保存压缩前的标准化消息归档。归档记录合并后的输入、顺序、日期、时区和指纹，也支持单独补存而不调用模型、不改写日志。它保存的是流水线实际读取并筛选后的输入；文件默认私有、排除自动提交，gzip 只负责压缩。

## 从本地日志走到网站时间线

项目已经与这个网站建立数据更新链路。日志数据推送后，源仓库先运行测试并验证日志，再通知网站处理对应的数据版本。网站导出公开快照、完成构建与部署，并读取发布结果核对版本和内容。

公开内容按日期配对，只包含日期、精简工具名称和当天的时间线事件。完整日志正文、会话归档、缓存和完整技术清单不进入网站快照。日志生成、Git 推送与网站发布是相互衔接的步骤，各自保留状态和验证依据。

## 保持一个小工具的规模

整个生成器使用 Python 标准库，以单脚本为核心，支持指定日期、日期区间、预演和历史补处理。配置完成后就可以围绕已有本地数据使用，无需为日志整理再部署后台服务。

它的覆盖范围取决于可读到的会话来源，生成质量取决于模型与输入，输出应作为工作回顾材料。当前生成会调用配置的模型接口，并非默认离线处理；私有归档的本地保护也不代表数据从未发送给模型服务。源读取警告、生成失败和公开内容复核都需要认真对待。

## 从开发会话到公开时间线

### 读取来源

汇集可读取的 Hermes、Codex 与可选 OpenCode 记录。

### 按日期合并

在指定时区内筛选、标准化并排列输入。

### 分段整理

繁忙日期按顺序压缩，相同输入复用已有摘要。

### 校验日志

检查 JSON 结构，写入由程序计算的元数据。

### 重建汇总

从每日日志整理技术清单与时间线。

### 更新网站

导出公开字段，构建发布，再核对发布结果。

## 继续查看项目

- [源码与项目文档](https://github.com/agenticnoob/vibe-journal-pipeline)

[内容目录](https://zzzxc.com/agent/zh/index.md)
