コードベース全体のレビュー・監査。perf/sec/test/arch/cq/docs の6観点を並列委譲し、優先度付き issue ファイルと観点サマリをメモリディレクトリに生成する。コードベース全体の監査・定期レビュー・リリース前品質確認の依頼時、/codebase-review 実行時に使用。境界: PR 単位は pr-review、自ブランチの提出前確認は self-review。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
コードを書く時の実装原則(既存パターンの踏襲・deep module 設計・seam・テスタビリティ・シーム限定 TDD・コメント規約・リーダブルコード)。プロダクションコードの差分を作る時に、規模を問わず使用(数行の修正も含む)。
新しい module・関数・エンドポイント・画面の追加、DB への書き込み、認可・入力検証の追加、既存構造を変えるリファクタでは特に。CSS・HTML・テンプレート等のフロントエンド資産も対象。lint・CI 等の設定ファイルだけの変更では使わない。
TypeScript/Python/Go の言語別ガイドを同梱。境界: バグ・エラーの原因調査は systematic-debugging が先、提出前の diff 確認は self-review。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
人間に読みやすいコードは、生成AIにとっても読み・変更しやすい。本スキルは、コードを書く時の設計判断を毎回同じプロセスに固定する。
バグ・エラーの修正では、先に /systematic-debugging スキルで根本原因を特定し、修正の実装段階で本スキルの原則に従う。
コードを書き始める前に実行する:
role / aria-*)と状態表示の作りを引き継ぐなぜ「機能の類似」で選んではいけないか: 新機能は見た目が似た画面・似た名前のmoduleに引きずられて選ばれるが、データ整合性を守るガードは同じレコードを書く別機能の側にある。似た画面を1つ読んで「踏襲した」と判断すると、読んだファイルの中で印象に残った部分だけがコピーされ、そのファイルにある他のガードはコピーから漏れる。
このゲートの成果物は「触るもの × 既存経路」の対応表(各経路のガードと、自分の経路での要否・不要な場合の理由)。「既存実装を読んだ」は成果物にしない(1件読めば満たせてしまい、漏れが表に現れないため)。同類が存在しない場合はその旨を記録する。数行の修正では、触るものが1つなら表は1行で足りる。
認可チェック・関門・レート制限・redirectガード・バリデーションを新しく置くときは、その制約が守る対象への到達経路を列挙してから実装する。最低限:
1経路にだけ置いた制約は未完成とみなす。 守らない経路があるなら、なぜ守らなくてよいかを書く。
実装前ゲートの2と対になる。ゲート2が「既存の制約 → 新しい経路」への転記漏れを防ぎ、本節が「新しい制約 → 既存の経路」への展開漏れを防ぐ。どちらも「制約 × 経路」の直積が埋まっていないことが原因で、ゲート2と本節のどちらか一方だけでは埋まらない。
防御的コード(nullチェック・再バリデーション・フォールバック)は局所的には常に正当化できる(「nullかもしれない」)ため、迷い自体を追加の根拠にしない。書く前に保証元を確認する:
レビュー指摘で防御追加を求められた場合も同じ基準で判断する(保証済みなら却下候補。類型は ~/.claude/context/code-review-checklist.md §16)。
設計判断の記述・議論では以下の用語を正確に使う。コード上の既存命名・フレームワーク公式用語(React component等)はそのまま尊重する(既存パターン踏襲と両立させる)。
How はコード、What はテスト、Why(変更した理由・経緯)はコミットログに置く。コードコメントに残すのは、コードとテストとログのどれにも置けないものだけにする(コメントはコードの変更時に更新されず、古くなってもレビューで気づかれないため)。
shortcut: <限界>, <見直す条件> の形で書く。限界と見直す条件の無い近道は、条件に達しても誰も気づかないまま残るfile:line でなくシンボル名で指す。リポジトリ外の文書や外部ツールの内部記号(画面番号・チケット内の連番)だけを根拠にしない(そのコードだけを読む人が辿れない)書く例・書かない例は references/comments.md。迷ったときに読む。
テスト基盤が存在するPJでプロダクションコードを書く時に適用する。適用外: テスト基盤が存在しないPJ / 設定・ドキュメントのみの変更 / UIの微調整。適用外で進めた場合は完了報告にその旨を明示する。
expect(add(a, b)).toBe(a + b) は構造的に必ず通る)。期待値は独立した真実源から取る: 既知の正しいリテラル・手計算した例・仕様書Parser / diff / tokenizer / formatter / 日付境界ヘルパー等、入力から出力が決定論的に定まるpure関数を新設・変更する時は、以下を必ず整備する:
0 / 空文字 / 空配列 / null / undefined / MAX_SAFE_INTEGER / 極端に長い文字列。日付はtimezone境界 / DST / 閏年。数値はinteger overflow / floating point誤差mapToDsl(dslToMap(x)) === x のround-trip、sort(sort(arr)) === sort(arr) のidempotency、可換性、逆演算成立)は fast-check 等を優先。個別ケース列挙より状態空間の網羅性が上がる0 を有効値として持ちうる。!!id / if (id) は 0 を無効値として扱う!= null(null と undefined のみfalse) をdefaultにするundefinedoptionalフィールドを更新処理に渡すとき、undefined が「変更しない」なのか「削除する」なのかを、呼び出し側と保存側の両方で確認する。保存側が全列を書く実装(渡されなかった列を null で埋める)なら、optionalをそのまま渡すと意図しない削除になる。
型は両者を区別しない(どちらも T | undefined)ため、シグネチャを見ても判別できない。保存側の実装を読むまで結論を出さない。
一度実行するとユーザーが自力で戻せない状態遷移(確定・昇格・削除・フラグの片道更新)を書くときは、コミットの後ろに並ぶ副作用(外部API呼び出し・通知・キュー投入・別テーブルへの追記)を列挙し、それぞれが失敗したときにユーザーが次に何をできるかを決めてから実装する。
状態を変えるスクリプト・ジョブ・移行・起動や停止の処理は、前回の実行が意図したことではなく今ある状態を読み、目標との差分だけを当てる形にする。2回続けて走っても、前回がどこで落ちていても、同じ結果に収束させる(リトライ・再起動・クラッシュが普通に起きる場所で動くため)。
delete / disable / revoke / 無効化 / 全件上書き を書くときは、その対象を今参照している他者を列挙する: 別セッション・別ユーザー・共有済みのURLやトークン・キャッシュ・外部システム。
「今の画面から見て不要」は削除の理由にならない。発行済みのものを無効化する処理は、発行先が自分とは限らない。
書いている最中に以下の兆候を検知したら手を止めて設計を見直す。いずれも判断材料でありハード違反ではない。PJの明文規約を常に優先する。
| Smell | 兆候 | 対処 |
|---|---|---|
| Duplicated Code | 同じロジックが2箇所以上 | 共通化を検討(3箇所目で必須検討) |
| Duplicated State | サーバ/永続層が持つ状態を、クライアントのstateや操作の戻り値にも保持して表示に使う | 真実源を一方に決める。複製するなら、サーバ側だけが変わる経路(他ユーザーの更新・別タブ・再検証・複合操作の部分的失敗)を列挙し、追従を設計する |
| Scattered State | 同期させる boolean が2つ目になる、if/else に分岐を1つ足すだけで機能を追加する、同じ形の前提を複数ファイルで繰り返す | 状態機械・判別共用体・表(registry)で状態と分岐を1か所に表す。形が今のままで十分小さく、増える見込みが無いなら作らない |
| Feature Envy | 他moduleのデータばかり触るメソッド | ロジックをデータ側へ移す |
| Primitive Obsession | ドメイン概念を裸のstring/intで表現 | 専用型・値オブジェクトへ |
| Data Clumps | 同じ引数群がいつも一緒に移動 | まとめて型にする |
| Shotgun Surgery | 1つの変更が多数ファイルに飛散 | 変更が集まるようmoduleを再配置(localityの欠如) |
| Speculative Generality | 「いつか使うかも」の抽象層・引数 | 削除(two adapters ruleで判定) |
| Redundant Guard | 型・上流・DB制約で保証済みの値への再チェック | 保証元を確認し、あるなら書かない。無いなら境界(入口)に1箇所置く |
| Message Chains | a.b().c().d() の連鎖 | 深いinterfaceで隠蔽 |
新規module作成・公開interface変更・テスト設計を伴う実装の開始時に、対象言語のガイドをReadする。既存コードの数行修正では読まない。
出典: obra/superpowers、mattpocock/skills、DietrichGebert/ponytail、cursor/plugins の pstack(いずれもMIT License)を翻案。詳細はリポジトリルートのNOTICE.mdを参照。
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
コードベース全体のレビュー・監査。perf/sec/test/arch/cq/docs の6観点を並列委譲し、優先度付き issue ファイルと観点サマリをメモリディレクトリに生成する。コードベース全体の監査・定期レビュー・リリース前品質確認の依頼時、/codebase-review 実行時に使用。境界: PR 単位は pr-review、自ブランチの提出前確認は self-review。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
変更を git-cz 形式でコミットする。リポジトリの直コミット可否の判定手順と、push 後の CI・conflict の確認を含む。/commit 実行時、「コミットして」「pushして」等の依頼時に使用。--push 引数または「pushして」の依頼で push も行う。境界: PR 作成は create-draft-pr、PR コメントへの対応コミットは pr-comment から呼ばれる。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
PR を Draft で作成する。変更をローカルで動かして確かめ、画面が変わるならスクリーンショットを gh の --attach で貼り、PR テンプレートを全セクション埋めて対象 repo の既存 PR の分量に揃え、出した後は CI・レビュー・マージを Monitor で見張る。PR 作成の依頼時、実装が一段落して PR 化する時、/create-draft-pr 実行時に使用(gh pr create を直接実行しない)。引数でベースブランチを指定できる。境界: 個別レビューコメントへの対応は pr-comment、PR 全体のレビューは pr-review、複数 PR 規模の計画は plan-feature-prs。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
スキルを新規作成する。「スキルを作って」「この手順をスキル化して」等の依頼時、/create-skill 実行時に使用。AGENTS.md・context・既存スキルと整合させ、重複・競合を避ける。境界: 既存スキル・指示ファイルの修正は update-inst、指示ファイル全体の監査は instructions-audit。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
抽象的な要件・事業側の要求を深掘りし、既存実装との整合を確認して実装マスタとシステム要件書を作成する。「こういう機能を作りたい」「この要求を満たす機能を設計して」等の抽象要件の提示時、既存機能の拡張や Phase 分割の要件定義開始時、/design-feature 実行時に使用。境界: 要件確定後の実装計画書・PR 分割と実装進行は plan-feature-prs。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
画面の設計判断(ナビゲーション・重ね方・通知と空状態と読み込み・外枠とトークンと状態表現)の型を決定表で選び、アプリ内の全画面で揃える。画面・ページ・レイアウト・ナビゲーション・ダイアログ・コンポーネントを新しく作る・作り直す時、モックやダッシュボードを作る時、サイドバー・タブ・モーダル・シート・toast・バナー・空状態のどれを使うか決める時に使用。PJ に components.json があれば shadcn の部品とトークンへの対応も扱う。主要なデザインシステム(Material・HIG・Carbon・Primer・Atlassian・Fluent・GOV.UK・NN/g・WAI-ARIA APG・WCAG)の一致点を規則にし、食い違いの採否を定めてある。境界: 画面の文言は writing-ui-text、画面に何を出すかと提示前の完了基準は context/ui-artifact-standards.md、コードの実装原則は writing-code、shadcn 部品の API と組み立ては shadcn。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.