决策日志记录器

decision-logger
分类通用
作者Alireza Rezvani
许可MIT
评分4.30/5
使用11.9K

Decision Logger (决策记录器)

双层记忆系统。第一层存储所有内容;第二层仅存储创始人批准的内容。未来的会议仅读取第二层——这可以防止过去辩论中产生的“幻觉共识”干扰新的审议。

关键词

决策日志, 记忆, 已批准决策, 待办事项, 董事会会议记录, /cs:decisions, /cs:review, 冲突检测, DO_NOT_RESURFACE

快速上手

bash
python scripts/decision_tracker.py --demo             # 查看示例输出
python scripts/decision_tracker.py --summary          # 概览 + 逾期项
python scripts/decision_tracker.py --overdue          # 已过截止日期的事项
python scripts/decision_tracker.py --conflicts        # 矛盾检测
python scripts/decision_tracker.py --owner "CTO"      # 按负责人筛选
python scripts/decision_tracker.py --search "pricing" # 搜索决策

---

命令

| 命令 | 效果 |
|---------|--------|
| /cs:decisions | 最近 10 条已批准的决策 |
| /cs:decisions --all | 完整历史记录 |
| /cs:decisions --owner CMO | 按负责人筛选 |
| /cs:decisions --topic pricing | 按关键词搜索 |
| /cs:review | 7 天内到期的待办事项 |
| /cs:review --overdue | 已逾期的事项 |

---

双层架构

存储遵循标准的双层决策记忆(参见 ../agent-protocol/SKILL.md $\rightarrow$ "Decision Memory (Canonical Layout)") —— 即 /cs:decide 写入的相同布局。

第一层 — 原始转录 (Raw Transcripts)

位置: ~/.claude/decisions/raw/YYYY-MM-DD-<slug>.md
  • 包含完整的第二阶段 Agent 贡献、第三阶段评议、第四阶段综合
  • 所有辩论内容,包括被否决的论点
  • 绝不自动加载。 仅在创始人明确要求时加载。
  • 90 天后归档 $\rightarrow$ ~/.claude/decisions/raw/archive/YYYY/

第二层 — 已批准决策 (Approved Decisions)

位置: ~/.claude/decisions/approved/ —— 每项决策一个记录 (YYYY-MM-DD-<slug>.md) 以及一个仅限追加的索引文件 decisions.md
  • 仅包含创始人批准的决策、待办事项和用户修正
  • 在每次董事会会议的第一阶段自动加载
  • 仅限追加。决策永远不会被删除,只会被取代。
  • 由幕僚长 (Chief of Staff) 在第五阶段后管理。Agent 绝不能直接写入。

迁移:可能存在早期版本的旧 memory/board-meetings/ 文件夹;可读取其历史记录,但所有新条目必须写入 ~/.claude/decisions/

---

决策条目格式

markdown
## [YYYY-MM-DD] — [议程项目标题]

决策: [对决策内容的清晰陈述。]
负责人: [一名人员或角色 —— 对执行负责。]
截止日期: [YYYY-MM-DD]
复盘日期: [YYYY-MM-DD]
理由: [为何选择此方案而非替代方案。1-2 句话。]

用户覆盖: [如果创始人更改了 Agent 的建议 —— 更改内容及原因。不适用则留空。]

被否决项:

  • [提案] — [原因] [DO_NOT_RESURFACE]

待办事项:

  • [ ] [事项] — 负责人: [姓名] — 截止日期: [YYYY-MM-DD] — 复盘日期: [YYYY-M

M-DD]

取代: [若有,填写此前关于同一主题的决定日期]
被取代: [若后续被覆盖,则追溯填写]
原始记录: ~/.claude/decisions/raw/[DATE]-<slug>.md

code
---

冲突检测

在记录之前,幕僚长(Chief of Staff)需检查:
1. DO_NOT_RESURFACE(禁止再次提出)违规 —— 新决定与此前被拒绝的提案匹配
2. 主题矛盾 —— 针对同一主题存在两个结论不同的有效决定
3. 负责人冲突 —— 同一项行动在不同决定中被分配给了不同的人

发现冲突时:


⚠️ 决定冲突
新项:[文本]
冲突项:[日期] — [现有文本]

选项:(1) 取代旧项 (2) 合并 (3) 提交创始人裁决

code
DO_NOT_RESURFACE 执行:

🚫 已拦截:"[提案]" 已于 [日期] 被拒绝。原因:[原因]。
如需重新开启:创始人必须明确指示 "reopen [主题] from [日期]"。
code
---

记录工作流(第五阶段后)

1. 创始人批准综合结果
2. 写入第一层原始记录 $\rightarrow$ ~/.claude/decisions/raw/YYYY-MM-DD-<slug>.md
3. 对比 ~/.claude/decisions/approved/decisions.md 检查冲突
4. 呈报冲突 $\rightarrow$ 等待创始人解决
5. 将批准的记录写入 ~/.claude/decisions/approved/YYYY-MM-DD-<slug>.md 并追加至索引文件 decisions.md
6. 确认:决定已记录,行动已追踪,DO_NOT_RESURFACE 标记已添加

---

标记行动完成

markdown
  • [x] [行动] — 负责人:[姓名] — 完成日期:[日期] — 结果:[一句话概括]
code
严禁删除已完成项。历史记录即是档案。

---

文件结构

~/.claude/decisions/ ├── raw/YYYY-MM-DD-<slug>.md # 第一层:每次会议的完整记录 ├── raw/archive/YYYY/ # 超过 90 天的原始文件 ├── approved/YYYY-MM-DD-<slug>.md # 第二层:每个批准决定的单条记录 └── approved/decisions.md # 第二层索引:仅限追加,经创始人批准 ``

---

参考资料

  • templates/decision-entry.md — 包含字段规则的单条记录模板
  • scripts/decision_tracker.py` — CLI 解析器、逾期追踪器、冲突检测器