Files
X-Financial/document/development/2026-06-25/feature/agent-change-log-split/CONCEPT.md
2026-06-25 09:35:18 +08:00

117 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 写日志技能拆分 概念文档
更新时间2026-06-25
文档路径document/development/2026-06-25/feature/agent-change-log-split/CONCEPT.md
## 功能一句话
把原来单文件三段式工作日志拆成按日期聚合的功能点文档、bug 修复日志和每日 17:00 综合工作日志。
## 背景与问题
- 当前现状:旧 `agent-change-log` 把所有变更追加到 `document/work-log/YYYY-MM-DD.md`,并固定包含 `当日工作内容``遗留问题``TODO`
- 用户痛点功能点规划、bug 修复和当天综合复盘混在一个日志文件里,后续追溯时难以按功能或问题拆开看。
- 业务影响开发资料会越来越长bug 修复证据和功能点设计边界容易互相干扰。
- 为什么现在需要做:`write-development-docs` 已经改为 `document/development/YYYY-MM-DD/feature/<功能点>/`,日志能力也需要跟随同一日期根目录拆分。
## 目标与非目标
### 目标
- [G1] bug 修复记录落到 `document/development/YYYY-MM-DD/dev-logs/bugs/<bug-slug>.md`
- [G2] bug 日志只保留修复记录,不再写 `遗留问题``TODO` 两块。
- [G3] 每天 17:00 汇总当天 `feature/``dev-logs/bugs/`,生成 `work-logs.med`
- [G4] 保留 Git 双向检查,继续识别 upstream 新提交和本地 ahead 提交。
### 非目标
- [NG1] 本轮不迁移历史 `document/work-log/*.md`
- [NG2] 本轮不删除旧历史日志,避免破坏既有追溯。
- [NG3] 本轮不把非 bug 提交强行写入 bug 日志。
## 用户与场景
- 目标用户:使用 Codex/Agent 维护 X-Financial 的开发者和后续接手的智能体。
- 使用入口:`agent-change-log` Skill、`tools/agent-change-log/update_change_log.py`、post-commit hook、每日 17:00 Codex automation。
- 核心场景:
1. 修复 bug 后写入当天 `dev-logs/bugs/<bug-slug>.md`
2. 非 bug 功能点通过 `feature/<功能点>/CONCEPT.md``TODO.md` 沉淀。
3. 每天 17:00 汇总功能点与 bug生成 `work-logs.med`
- 异常场景:
- 没有 feature 或 bug 时,综合日志明确写“未发现”。
- 提交标题不像 bug 时post-commit 自动日志跳过。
## 功能能力
- [C1] 输入能力:支持 `--kind bug``--kind auto``--kind summary` 三种模式。
- [C2] 处理能力:按日期创建 `dev-logs/bugs`,按 bug slug 记录修复内容。
- [C3] 输出能力:输出 bug 修复记录或每日 `work-logs.med`
- [C4] 状态与权限:沿用 Git fetch/status/log 检查,不主动 merge/rebase。
- [C5] 边界与降级:官方 skill 校验脚本不可用时用脚本单测、frontmatter 和 diff check 兜底。
## 方案设计
### 前端
当前不涉及。
### 后端
当前不涉及业务后端;只修改仓库级 Skill、脚本和 hook。
### 算法与规则
- 输入commit subject、用户传入的 bug title/slug、当天 feature 和 bug 文档。
- 流程bug 模式写入 bug 文件auto 模式识别 bug-like commitsummary 模式扫描 `feature/``dev-logs/bugs/` 后生成综合日志。
- 输出:`dev-logs/bugs/*.md``work-logs.med`
- 解释summary 中保留来源目录和综合分析,便于复盘追溯。
### 数据与契约
- 核心字段日期、bug slug、bug title、Git 提交检查、修改、操作、验证、影响。
- 状态枚举:`auto``bug``summary`
- 兼容策略:保留旧 `document/work-log` 历史,不新增旧格式。
- 版本/审计:本轮变更通过本地 checkpoint commit 保留。
## 算法与公式
当前功能不涉及显式数学公式。
## 测试方案
后端:
- 当前不涉及后端服务。
前端:
- 当前不涉及前端构建。
集成:
- 运行 `python3 tools/agent-change-log/test_update_change_log.py`,覆盖 bug 日志、非 bug 自动跳过、每日综合日志聚合。
手工验证:
- 运行 `update_change_log.py --kind bug --dry-run``--kind summary --dry-run` 检查目标路径和输出内容。
## 指标与验收
- [A1] 功能验收bug 日志路径为 `document/development/YYYY-MM-DD/dev-logs/bugs/<bug-slug>.md`
- [A2] 性能指标:脚本单测在 60s 内完成。
- [A3] 质量指标:不再为新日志写入旧三段式 `document/work-log/YYYY-MM-DD.md`
- [A4] 安全/权限指标:脚本不做 merge/rebase不删除历史日志。
- [A5] 可观测性17:00 automation 生成 `work-logs.med` 后报告路径和是否发现 feature/bug。
## 风险与开放问题
- 风险:`work-logs.med` 是按用户原文保留的扩展名,可能与常见 `.md` 扩展名不一致。
- 已处理依赖:已创建 Codex automation 执行每日 17:00 summary。
- 待确认:后续是否需要迁移历史 `document/work-log`
- 降级策略automation 不可用时可手动运行 `python3 tools/agent-change-log/update_change_log.py --kind summary`
## 本轮实现记录
- 2026-06-25重写 `agent-change-log` Skill 和脚本,新增 split log 测试,创建每日 17:00 Codex automation。