| name | lint |
| description | 谨迹日志库的自动整理 Agent。用户输入 /lint、说整理一下日志库、最近日志有点乱、帮我理一下档案、日志库维护、跑一次 lint时触发。执行四阶段整合流程修复「记忆腐烂」:标注决策演进、修复 Identity 档案矛盾、补充交叉引用、修复元数据、检测事实矛盾。只动日志「关联记录」区和 Identity 档案,绝不改日志正文、绝不改 raw/。不要在仅看单个条目或处理会议素材时触发 — 本 skill 面向「整个日志库」的周期性维护。 |
日志库自动 lint
契约
| 维度 | 声明 |
|---|
| reads | yyMM/*.md、identity/*.md、.claude/last-lint.json、.claude/learnings/LEARNINGS.md |
| writes | yyMM/*.md(关联记录区 + frontmatter)、identity/*.md、.claude/last-lint.json |
| depends | /identity-profiling(修改档案前)、/self-improvement(读取学习记录) |
修复日志库的「记忆腐烂」—— 新日志推翻旧结论但旧条目不知道、档案信息过期、交叉引用缺失、frontmatter 格式漂移。
前置依赖: 涉及 Identity 档案修改时必须先加载 /identity-profiling(获取五维度 / 四维度定义、合并而非追加的更新策略、过时信息处理原则)。
安全约束(贯穿全流程)
- 不修改日志条目正文 — 只操作「关联记录」区
- 不删除任何内容 — 只追加标注(用 ⚠️ 标记已被取代的结论)
- 不修改
raw/ 目录
- 不修改
.claude/ 目录(除 last-lint.json)
- 低置信度的发现跳过 — 输出到摘要供人工复核
- Identity 档案可修改(修正矛盾、更新角色、补充信息),但必须遵循
/identity-profiling 的规范
- 日志条目 frontmatter 必须是合法 YAML:
tags: 不是 ## tags:,必须有开闭 ---
Phase 1 — Orient(盘点)
目标:建立当前状态快照,不做任何修改。
- 统计各月日志条目数量(bash 片段见
references/scripts.md)
- 统计 Identity 档案数量(
identity/ 下 .md 文件,排除 README.md 和 raw/)
- 检查扫描范围内所有日志的 frontmatter 完整性:summary 是否为空、tags 是否缺失、格式是否正确(
## tags: 等错误格式)
记录所有有问题的文件路径和具体问题,作为 Phase 1 缺陷清单,传递给 Phase 2
- 抽查「关联记录」区的链接有效性(指向的文件是否存在)
- 读取
.claude/last-lint.json(如存在),确认上次整理时间和条目数
输出:状态快照表(含 Phase 1 缺陷清单),然后继续 Phase 2。
Phase 2 — Gather Signal(采信号)
目标:扫描日志库提取需要整合的信号。不做任何修改。
扫描范围:
- 如果有
last-lint.json → 只扫描上次整理之后新增 / 修改的条目
- 如果没有 → 扫描最近 2 个月的条目
派出 5 个并行 Explore Agent,每个负责一个维度:决策演进 / 档案质量 / 交叉引用 / frontmatter / 事实矛盾。
完整 Agent prompt 见 references/phase2-agents.md — 整段作为 agent 任务 dispatch。
交叉验证契约
Phase 1 缺陷清单必须作为输入传递给对应 Agent。Agent 必须首先验证清单中的每一项,再做独立扫描。如果 Agent 的结果与 Phase 1 清单矛盾(例如 Phase 1 发现了缺陷但 Agent 报告无发现),以 Phase 1 的事实为准,Agent 需解释差异原因。
收集 5 个 Agent 的结果后合并为统一信号清单,按置信度排序。向用户展示发现摘要(数量和类型),继续 Phase 3。
Phase 3 — Consolidate(整合)
目标:基于 Phase 2 的信号清单执行实际修改。只处理高置信度和中置信度的信号。
3.1 标注决策演进(最高优先级)
新条目的决策取代了旧条目的结论时,在旧条目「关联记录」区追加:
- [新条目标题](路径) — ⚠️ 本条目的 XX 方案已被此版本取代,以新版为准
不修改旧条目正文。
3.2 修复 Identity 档案(高优先级)
所有档案修改必须遵循 /identity-profiling skill:人物按五维度组织、产品按四维度组织、合并而非追加、事件作为证据内联。
| 情况 | 操作 |
|---|
| 档案内部矛盾 | 根据最新日志修正 |
| 角色 / 职责变化 | 更新对应维度,不追加日期段落 |
| 新人物需建档 | 用 .claude/scripts/identity-create 创建,按渐进深挖规则填充 |
| 档案与新日志冲突 | 以最新日志为准更新 |
| 结构不符规范 | 把按日期追加的段落重构为按维度组织,归纳模式,事件作为证据内联 |
| 产品决策错放人物档案 | 迁移到产品档案的「战略判断与关键决策」,人物档案只保留归纳后的决策模式 |
| 模式沉淀(Agent 2 输出) | 把通过三重验证的归纳写入「决策模式」或对应维度,括号内附 3 条以上独立事件作为证据。同步检查并补充「观察边界」段落。不满足三重验证的信号一律不写 |
| 边界缺失(Agent 2 输出) | 为已有归纳补写「观察边界」段落,明确列出推断不可靠的情境(如"只观察到工作场景""仅在 X 领域有证据") |
建档标准:只对有实质性互动的人物建档。仅被提及一次、没有发言、没有明确角色的不建档。
3.3 补充交叉引用(中优先级)
在条目「关联记录」区追加缺失的链接:
- 同一天同主题 → 必须互链
- 系列条目 → 串联为链
- A 正文引用 B 的内容 → A 链接到 B
- 同产品的技术条目 → 互相链接
3.4 修复 frontmatter 格式 + 补充内容(低优先级)
先运行格式修复脚本(见 references/scripts.md),再人工补充:
- summary 为空 → 根据正文生成 1-3 句摘要(结论先行)
- tags 缺失 → 根据内容补充(第一个 tag 必须是
journal)
3.5 处理孤立档案(低优先级)
对 Agent 2 发现的孤立档案,按 /identity-profiling 的过时信息处理规则:
- 内容经核实仍准确(角色 / 职位未变)→ 不做任何标注
- 内容已过时 → 直接更新
- 无法确认 → 列入 Phase 4 摘要供人工复核,不在档案中追加 ⚠️ 警告
3.6 补充人物关系交叉引用(低优先级)
对 Agent 2 发现的缺失关系引用,在相关档案「关联记录」区追加对方链接:
- [对方姓名](../identity/region-name.md) — 共同参与了 [条目标题](路径)
每完成一个子步骤,简要报告修改了什么。
Phase 4 — Digest(生成摘要)
4.1 生成整合摘要条目
用 .claude/scripts/journal-create "自动整理摘要" 创建条目,frontmatter:
---
tags: [journal, maintenance]
summary: 日志库自动整理摘要。扫描了 X 篇条目,发现 Y 个问题,修复了 Z 处。
---
正文包含:
- 扫描范围(时间段、条目数)
- 各类型发现数量(矛盾 N 处、孤立档案 N 个、关系引用 N 处)
- 实际执行的修改清单(文件路径 + 修改内容)
- 跳过的低置信度信号(供人工复核)
- 网络搜索来源列表(如有)
4.2 更新触发状态
bash 片段见 references/scripts.md(写 last-lint.json)。
4.3 完成报告
向用户一句话总结:修复了多少处,建议人工复核哪些低置信度发现。