Skip to main content

create-adr

ADR(Architecture Decision Record)を作成、またはADR対象かどうかを判定する。意思決定の文書化・ADRの要否確認を依頼されたときに使う。

Informations de source

Dépôt
kasiopeiya/claude-dev-template
Dernière activité de la source
27 septembre 2026 à 12:35
Langue détectée de SKILL.md
japonais
Étoiles
0
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
create-adr
description
ADR(Architecture Decision Record)を作成、またはADR対象かどうかを判定する。意思決定の文書化・ADRの要否確認を依頼されたときに使う。
# ADR 作成スキル ## フロー 1. ADR対象かどうかを判定する([adr-policy](../../../docs/policy/adr-policy.md) を Read し、その判定手順を上から当てる) 2. 「作らない」判定の場合:理由を説明し、それでも作成するか確認する。作らないなら、ポリシーの記録先(その仕組みの本文・コミットの決定記録・決定した Issue)に書く 3. 情報収集:必要情報をユーザーから収集する(不足分のみ質問する) 4. 自動採番:削除済みを含む git 履歴上の最大番号+1を使用(調べ方は「採番の調べ方」を参照)。利用先はテンプレートと git 履歴を共有するため、利用先の最初の ADR 番号はテンプレートの最大番号の次から始まる(意図した結果) 5. ファイル作成:`docs/adr/NNN-slug.md`(テンプレート: `docs/adr/adr-template.md` を参照)。既定は軽量版(下記「軽量版で書く」参照)。書き始める前に `samples/docs/adr/`(ADR の手本。フル版と軽量版の書き分けが見られる)を Read する。`samples/` 自体は変更しない 6. 可視化:下記「可視化(必須)」に従い、表・図で構造を一目化する 7. 代替案の絞り込み:下記「代替案に何を載せるか(必須)」に従い、表に載せる案を決める 8. 一覧表を再生成:`npm run gen:adr-index` を実行し `docs/adr/adr-index.md` を更新する(表は手で編集しない) ## 軽量版で書く 軽量版から書き始める。決定が1つなら、TL;DR・コンテキスト・トレードオフ・影響・参照は見出しごと省く。書いている途中で省いた節が必要だと分かったら、その時点で足す。 - **決定 / 採用理由 / 検討した代替案**:省けない - **TL;DR / コンテキスト / トレードオフ・影響 / 参照**:省いてよい なぜこうするか。ADR に残すのは判定を通った決定だけなので、書式の重さで書き渋ってよいものは1件も無い。軽い側を既定にすれば、書式を理由に着手が止まらない。逆に代替案の表まで省くと、半年後に同じ案が出たとき却下理由を調べ直すことになり、ADR を書いた意味が消える。だからこの3節は省けない。 ## 可視化(必須) ADR も他ドキュメント同様、可視化ファーストで書く(`docs/policy/documentation-policy.md`「可視化されていないドキュメントは怠慢である」)。散文で構造を書かない。書いた節にだけ適用する(省いた節に図表を足さない)。 - **検討した代替案** → 比較表(案/内容/却下理由)。2項目でも表にする。 - **トレードオフ・影響** → 表(受け入れる制約・リスク/影響範囲/緩和策)。 - **コンテキスト/決定** → フロー・順序依存・状態遷移・前後(旧→新)比較があれば図にする。図は `/design-doc-mermaid` で作る(**自前で Mermaid を書かない**)。 - 逆変換テスト:表・箇条書きに戻しても文章を読まずに構造を掴めるなら図にしない(一直線 A→B→C など)。図にしないと決めたら、戻す先(表・箇条書き)で実際に書く。そう判断した理由はユーザーへの回答に書き、ADR 本文には残さない。 ## 代替案に何を載せるか(必須) 代替案は「別セッションでの蒸し返しを防ぐ」ための記録である。検討していない案が却下済みとして並ぶと、記録が事実でなくなる。次の3つを守る。 1. **決定の軸を1文で書き、その軸への別の答えだけを並べる。** 軸とは「この ADR が何を選ぶ判断か」(例:「dev へいつ deploy するか」)。軸への答えになっていないもの——別の論点への対処・緩和策・実装手段の違い——は載せない。 2. **人間との対話に出てきた案だけを載せる。** 実装中や `/devil` の反論から自分で思いついた案は載せない。その案が決定の軸(上記1の軸)への答えになっているなら、ADR を書く前に必ず人間へ提示して検討の対象にする(フローの「情報収集」で行う)。軸への答えになっていない案は提示しない。 3. **上限は3件。** 4件目が出てきたら、軸の切り方が粗い(複数の決定が1つの ADR に混ざっている)ことを疑い、ADR を分ける。 ## 採番の調べ方 削除済みの番号を再利用すると、その番号を参照している古い Issue・コミットが別の決定を指すことになるため、**現存するファイルの最大番号ではなく、git 履歴上(削除済みを含む)の最大番号+1** を使う。 ```bash git log --all --pretty=format: --name-only | grep -E '^docs/adr/[0-9]{3}-' | sed -E 's#docs/adr/([0-9]{3})-.*#\1#' | sort -n | tail -1 | awk '{printf "%03d\n", $1+1}' ``` 出力された番号が次の採番。 ## ファイル作成ルール - 保存先: `docs/adr/NNN-slug.md` - NNN: ゼロ埋め3桁(例: 007) - slug: タイトルから生成した英語スラッグ(例: `single-stack`) - テンプレート: `docs/adr/adr-template.md` を参照すること - `status` / `date` は本文ではなく **frontmatter** に書く(一覧表 `adr-index.md` はここから機械生成される) - `status` は必ず **`proposed`** にする(許容値: `proposed` / `accepted` / `rejected` / `deprecated` / `superseded`) - `date`: 今日の日付(YYYY-MM-DD) - 既存 ADR を `superseded` にする場合は、その ADR の frontmatter に `supersededBy: NNN`(置換先の番号)を書く ## 収集する情報 軽量版で省く節の情報は聞かない。必要な情報が不足している場合だけユーザーに質問する: | 項目 | 内容 | 軽量版 | | ------------ | ------------------------------------------------------ | ------ | | 決定内容 | 何を選択したか | 聞く | | 採用理由 | なぜこの選択をしたか | 聞く | | 代替案 | 決定の軸への別の答えのうち、対話に出た案と却下理由 | 聞く | | コンテキスト | 問題の背景、検討した選択肢 | 省く | | トレードオフ | 受け入れる制約・リスク、否定した選択肢(表で整理する) | 省く | | 影響 | この決定が与える影響 | 省く | | 参照 | 関連ドキュメント・実装ファイル(任意) | 省く |
Voir sur GitHub