mcpField
R
recording-decisions

recording-decisions

github.com/riekelt文档处理3318.8k 次安装6 周前更新
代码仓库

关于 recording-decisions

用于将已接受的工程决策记录为架构决策记录(ADR)或轻量决策日志的技能,强调保留理由与备选方案,并在背景变化时通过追加记录更新。

主要功能

  1. 01为架构级决策编写完整 ADR
  2. 02为较小选择编写轻量日志
  3. 03只追加记录并以新条目取代旧项
  4. 04记录理由和被否决的备选方案
  5. 05明确记录否定结果与未知事项
  6. 06界定相关文档的职责范围

适用场景

  1. 01记录已接受的架构选择
  2. 02保存已解决权衡的决策理由
  3. 03背景变化时记录取代旧决策的新决定

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/riekelt/technical-writer --skill recording-decisions

安装后在 Claude Code 中输入/recording-decisions确认已加载。

详细介绍

记录决策

必需背景: technical-writing 技能(硬性规则、真实性规则、风格)。

概述

按分量分为两种格式:对架构层面有影响的决策使用完整 ADR;持续记录较小选择的决策日志条目。两者都只追加:已接受的决策不可更改;新背景应作为一条新记录,用于取代旧记录。

何时调用,何时不调用

当有人已做出选择且需要记录时、有人要求“写下我们为什么这么做”时,或现有决策被取代时,调用本技能。对于仍在讨论的决策,不要调用本技能(此时应使用 writing-design-docs;其“Why & What”框在决策获接受后会成为 ADR)。

当出现未记录的决策正在流逝的信号时,也要调用本技能:“我们决定选 X 而不是 Y”、“就这么定吧”、在 PR 评论或聊天主题中解决的权衡,或某个理由已被解释过两次。每一种情况都表示有一项决策存在于非持久化位置;应主动提出记录下来。

引用决策之前,先记录该决策。聊天会话不是持久化来源。将带日期的实质内容写入日志,在措辞重要时引用决策者原话,提交该条目,然后再引用它。记录完整决策所需的最少内容,不要记录完整对话。

ADR

Nygard 格式。每份 ADR 只记录一项决策。

# ADR-[number]: [short title of the decision]

| | |
|---|---|
| **Status** | Proposed / Accepted / Superseded by ADR-XXX |
| **Date** | YYYY-MM-DD |
| **Deciders** | [who took part] |

## Context
[The forces at play: technical, organizational, political. What must be solved.
Factual, without giving away the decision.]

## Decision
[What was decided. Active voice: "We release on tags", not "it was decided that".]

## Consequences
**Positive:** [what gets easier]
**Negative:** [what gets harder, which trade we accept]
**Neutral:** [what changes without being better or worse]

## Alternatives considered
**[Alternative]** - For: [...] Against: [...] Why not chosen: [...]

## References
[Evidence, related decisions, measurements]

必须记录负面影响,且内容不得为空。 每个备选方案都要包含其最有力的支持理由;没有说明理由就驳回某方案,是在树立稻草人论点。

已接受 ADR 唯一允许的编辑,是在其状态行添加“Superseded by ADR-XXX”。提出但始终未得到回应的异议,应作为负面影响完整记录,并指定负责人:撰写者不得自行编造反驳,也不得隐瞒负责人已宣布的决策。撰写时尚不清楚姓名的,应标记为提交前填写,因为已提交的记录涉及真实的人。

决策日志(轻量版)

持续记录的日志若采用完整 ADR,维护成本会过高。因此格式要足够简便:

## YYYY-MM-DD

### [Decision stated as an imperative sentence]
[One paragraph: the rule.]
Why:
- [reason]
- [reason]
Instead of: [rejected option] - [why not]

规则

  • 只追加。错误条目应通过一条带日期的新记录来取代,绝不要编辑旧记录。将相对日期转换为绝对日期。
  • 记录原因,而不只是结果。
  • 当书面规则与已发布的实际情况不一致时,记录团队原本希望采用哪一种。每份规范文档都要说明其负责的内容,以及留给其他文档处理的内容。
  • 如果可能与同类文档重叠,应在开头明确范围:“产品构想记录在 ROADMAP.md;本文件用于记录工程决策。”
  • 明确记录负面结果和未知项:“四种理论均被证伪,尚未找到原因”就是一种结果。搜索无果也是一种结果。

评论

支持 Markdown