slice について
slice は、変更の意図を範囲の明確な Doctrine の作業単位にする開発スキルです。スコープ文書や対象パスのセレクター、ライフサイクル記録を整え、設計と調査へ引き継ぎます。
主な機能
- 01範囲を定めた変更単位の作成
- 02境界と対象パスの記述
- 03スコープ関連セレクターの追加
- 04ライフサイクルと関連の記録
活用シーン
- 01設計前のコード変更のスコープ定義
- 02slice とプロジェクト全体の決定の切り分け
- 03設計と調査に向けた変更準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ davidlee/ doctrine --skill sliceインストール後、Claude Code で/sliceを入力して読み込まれたか確認します。
詳細
スライス
意図を、具体的で範囲の定まった変更単位に落とし込みます。スライスは一貫した変更です。プロジェクト全体に関わる決定(それはADRです)でも、恒久的な仕様資料(.doctrine/spec/)でもありません。
プロセス
-
枠組みを確認します。 コードを変更する意図があり、それをすでにカバーするスライスがないことを確認します。まず制約を確認します。ADR、
.doctrine/spec/tech/、規約については/canonを、これから触れる領域のサブシステム固有の注意点については/retrieve-memoryを使います。 -
スライスを作成します。
doctrine slice new "<title>" [--slug <slug>]次の ID を割り当て、
slice-nnn.toml(メタデータ、関係、ライフサイクルのステータス。初期値はproposed)とslice-nnn.md(スコープ文書)のひな形を作成します。 -
slice-nnn.mdでスコープを明確にします。- 何を、なぜ変更するのか
- スコープ内とスコープ外(境界を明記します)
- 影響を受ける領域 — 具体的なパス/モジュール
- リスク、前提、未解決の質問
- 検証/完了の意図 — 何をもって「完了」と判断するか
影響を受ける領域は、粗い
scope-relevantセレクターとして登録します。変更箇所のおおよそのパス/glob の範囲を、スコープが新鮮なうちに記録します。doctrine slice selector add <id> "src/foo/**" "src/bar.rs" --intent scope-relevantこれらは意図的に大まかな指定です(正確な変更対象の特定は
/designの役割です)。監査時のslice conformance差分に使われます。範囲が設定されていないスライスは、実際に Git で変更された内容と比較できません。 -
構造を
slice-nnn.tomlに記録します。 メタデータとライフサイクルのステータスを記録します。保存ルールを守ってください。構造化データは TOML に、文章は MD に記述し、文章から検索・導出されるデータは記述しません。関係は手作業で行を記述せず、doctrine linkを使って設定します。これにより、RELATION_RULES(使用可能な語彙。lib:reference/using-doctrine.md§ エンティティ間の関係)に照らしてペアが検証されます。たとえば、ADR に対するgoverned_by、仕様に対するspecs、以前のスライスに対するsupersedesなどです。 -
適切な粒度か確認します。 作業が実際にはプロジェクト全体に関わる決定なら、
doctrine adr newを使います。恒久的な仕様なら、技術仕様(doctrine spec new tech)または製品仕様(doctrine spec new product)を作成します。スライスはリリース可能な変更を1つに絞り、範囲が広がりすぎる場合は分割します。
次のステップ
計画の前に、必ず設計を固めます。ライフサイクルの状態遷移を記録し(doctrine slice status <id> design — 数字のみ)、/design に引き継ぎます。未設計のスライスから /plan や /execute に進んではいけません。/route のゲートで禁止されています。スコープ設定中に、実質的なトレードオフや不明点が明らかになった場合は、/consult を使います。
/design の前に /research に従って事前調査を行い、記憶ではなく引用可能な成果物に基づいて設計を進めてください。