用途:为团队或智能体保存可持久、可搜索的决策记录,记录决定了什么、为何如此、考虑过哪些替代方案以及何时需要复审。解决聊天记录和会议纪要难以长期承载决策的问题,如决策被淹没、理由被遗忘、旧问题被反复讨论、用删除掩盖变更、缺少复审节奏等。
主要能力:采用 ADR 风格,每条决策一个 Markdown 文件,按序编号,包含状态、日期、背景、备选方案、决策、后果与复审信息。记录目录可通过每个命令的 --decisions-dir DIR、环境变量 DECISIONS_DIR,或默认 ./decisions/ 配置。支持创建、列出、取代、全文搜索、到期复审检查和取代链时间线。
必要用法:创建新决策执行 python scripts/decision_log.py new --title "Use SQLite for source-tracker",会生成如 ./decisions/ADR-001-use-sqlite-for-source-tracker.md 的编号文件,填写后把状态从 proposed 改为 accepted。列出用 list,可按 --status accepted/proposed/superseded/deprecated 与 --topic 过滤;搜索用 search "SQLite";变更时先建新决策再用 supersede 001 --by 005 标记旧记录;到期复审用 due-review;时间线用 timeline。定时提醒用 cron 调用 python scripts/review_checker.py --decisions-dir ./decisions,无到期时静默。
适用场景:架构、存储、API、依赖、部署、安全等选择,影响多人的产品或流程决策,有真实成本与取舍的权衡,需要在日期、里程碑或外部触发条件后复审的决策,以及对旧决策的推翻。琐碎选择如拼写修正、一次性重构或已有明确标准规定的事项不建议记录。
限制:状态需严格使用 proposed、accepted、superseded by ADR-NNN、deprecated 四种取值,否则过滤与提醒可能失效;文件需符合 ADR-NNN-short-title.md 命名,否则不会进入列表、复审与时间线命令;不要删除旧决策,应标记为被取代以保留审计链;复审节奏支持 monthly、quarterly、annually、on-trigger,日历月计算会夹到目标月最后有效日,例如 1 月 31 日的月度复审变为 2 月 28 或 29 日。资料未提供安装方式、收费与平台信息。