まずは
有象無象の技術ブログより公式ドキュメント見ろ
以下は上のドキュメントの自分用まとめ
ディレクトリ構成
my-skill/
├── SKILL.md # Main instructions (required)
├── template.md # Template for Claude to fill in
├── examples/
│ └── sample.md # Example output showing expected format
└── scripts/
└── validate.sh # Script Claude can execute
SKILL.mdに書くfrontmatterのサンプルコード
--- # スキルの表示名。省略した場合、ディレクトリ名を使用します。小文字、数字、ハイフンのみ(最大 64 文字)。 name: pr-review # スキルが何をするか・いつ使うか。Claude はこれを見てスキルを自動適用するか判断する。 # when_to_use と合わせて 1,536 文字でキャップされるため、主要ユースケースを前置きすること。 description: > Pull Request のレビューチェックリストをサブエージェントで生成する。 コード品質・セキュリティ・Rails 規約を多角的に分析し、優先度付きで 指摘事項を列挙する。「このPRをレビューして」「変更を確認して」と 依頼されたときに使用する。 # description に追加される補足コンテキスト。トリガーフレーズや呼び出し例を書く。 when_to_use: 「PRを見て」「レビューして」「#NNN の変更を確認して」のようなフレーズが含まれるとき。issue 番号を引数に渡して呼び出す。例: /pr-review 42 # オートコンプリート時に表示される引数ヒント。 argument-hint: "[issue-number]" # $name 形式で参照できる位置引数の名前。スペース区切りまたは YAML リスト。 arguments: issue # true にすると Claude が自動でスキルを読み込まなくなる。副作用があるワークフローや、タイミングを自分で制御したい場合に使う。 disable-model-invocation: true # false にすると / メニューから非表示になる。Claude のみが呼び出せるバックグラウンド知識スキルに使う。デフォルト: true。 user-invocable: true # スキルがアクティブな間、許可プロンプトなしで使えるツール。 allowed-tools: Bash(gh *) Bash(git *) Read Grep # スキルがアクティブな間に使うモデル。次のプロンプトからはセッションのモデルに戻る。 model: opus # スキルがアクティブな間の思考努力レベル。low / medium / high / xhigh / max。 effort: high # fork にするとメイン会話の履歴を持たないサブエージェントコンテキストで実行される。 context: fork # context: fork 時に使うサブエージェントタイプ。Explore / Plan / general-purpose またはカスタム名。 agent: Explore # スキルのライフサイクルにスコープされたフック。 hooks: PostToolUse: - matcher: "Bash(gh *)" hooks: - type: command command: "echo \"[pr-review] session=${CLAUDE_SESSION_ID} tool=gh\" >> /tmp/pr-review.log" # このスキルを自動適用するファイルパスの Glob パターン。一致するファイルを編集中のときだけ読み込まれる。 paths: "**/*.rb,**/*.yml,**/*.md" # !` ` や ```! ブロックで使うシェル。bash(デフォルト)または powershell。 shell: bash --- # PR #$issue レビュー セッション: ${CLAUDE_SESSION_ID} スキルディレクトリ: ${CLAUDE_SKILL_DIR} ## 事前情報収集 - PR概要: !`gh pr view $issue --json title,body,author,state,baseRefName,headRefName` - 変更ファイル一覧: !`gh pr diff $issue --name-only` - 既存レビューコメント: !`gh pr view $issue --comments --json comments` - 現在のブランチ: !`git branch --show-current` ## レビュータスク 上記の PR 情報を元に、変更ファイルを Read/Grep で精査し、以下の観点で 優先度付きレポートを生成すること。 ### 🔴 MUST(マージブロック) - セキュリティ: SQLインジェクション・mass assignment・認証バイパスがないか - Rails規約: N+1クエリ・バリデーション漏れ・トランザクション境界の問題 - テスト: 変更ロジックに対応するテストが存在するか ### 🟡 SHOULD(マージ前推奨) - パフォーマンス: 不要なDB呼び出し・インデックス不足 - 可読性: メソッド長・命名規則の逸脱 - エラーハンドリング: 例外の適切な捕捉と処理 ### 🟢 NICE TO HAVE(次回以降可) - リファクタリング機会 - ドキュメント・コメントの改善 ## 出力フォーマット **PR #$issue レビューレポート** 🔴 MUST(マージブロック) - 指摘内容 — `ファイル名:行番号` 🟡 SHOULD(マージ前推奨) - 指摘内容 — `ファイル名:行番号` 🟢 NICE TO HAVE(次回以降可) - 指摘内容 ✅ 良い点 - 評価内容