Claude Code スキル
このリポジトリには、メンテナーワークフローの負荷の高い部分(PRレビュー、Issueのトリアージ、スカッシュマージ、変更履歴の生成など)を自動化する一連のClaude Codeスキルが.claude/skills/配下に含まれています。
各スキルは独自のディレクトリに配置され、SKILL.md ファイルが含まれています。Claude Code はリポジトリを開いた際にこれらのスキルを自動的に読み込み、自然な言語で望む内容を説明するか、明示的な参照(例:/squash-merge 1234)によって呼び出すことができます。
利用可能なスキル
| スキル | これを使用する際 |
|---|---|
github-pr-review-session | 特定のPRをレビューする、またはレビューキューを処理する: レビュー本文を作成し、ソースと照合して、アクティブなアカウント所有者のIDで gh を通じて投稿します |
github-issue-triage | バックログの整理を実行し、stale/duplicate の issue をクローズし、ラベルを適用し、標準の issue stale policy を適用する |
github-issue | 構造化されたイシュー(バグレポートまたは機能リクエスト)を提出する |
github-pr | 完全に埋められたテンプレート本文を持つPRを開くか更新する |
squash-merge | 承認されたPRをmasterにマージし、コミット履歴を保持して紫色のMergedバッジを表示 |
changelog-generation | リリースに向けた CHANGELOG-next.md の準備: 前回のタグ以降のマージをまとめます |
skill-creator | スキル自体の作成、編集、またはベンチマーク |
zeroclaw | 実行中のZeroClawインスタンスの操作(CLI + ゲートウェイAPI) |
PRレビューワークフロー
github-pr-review-session スキルは、レビュー日の主要なツールです。典型的なセッションは以下のようになります:
> review 1234
このスキルは AGENTS.md、レビュアーのプレイブック、およびPRの差分とコミットを読み取り、レビューをドラフトします。以下を使用します:
- 特定の行に紐づくすべての🔴ブロッキング、🟡警告、🔵提案の検出結果に対するインラインdiffコメント
- レビュー本文 — 全体的な判定、理解度の要約、相互参照、特定の行に紐づかないテンプレートレベルの問題について
- ベアコミットハッシュ(バッククォートで囲まないこと:GitHub が自動的にリンクします)
- @プレフィックス付きユーザー名 はすべてのレビューコンテンツに含まれます
検出結果はフィードバック分類に従います: 🔴 [blocking] はPRを保留し、🟡 [warning] は対処すべきであり、🔵 [suggestion] は任意であり、🟢 [praise] は機能している点を挙げ、✅ [resolved] は再レビュー時に対処済みの検出結果を確認します。PR Review Protocol は、各ティアおよびレビュー本文のMarkdown形式に関する正式な基準です。
スキルは投稿前に必ずドラフトを表示して承認を求めます。レビューはボットとしてではなく、人間のレビュアーの名義で投稿されます。
変更後の再レビュー:
> re-review 1234
キューを処理する:
> go through the queue
イシューのトリアージワークフロー
github-issue-triage スキルは、定義された権限の範囲内で自律的なバックログのスイープを実行します。引数なしの場合は集計パス(バックログの状態を確認した後、モードを入力するよう促します)を実行します。それ以外の場合のモードは次のとおりです。
- トリアージ: トリアージラベルのない issue を処理する: 分類し、ラベルを適用し、オープンな PR にリンクし、内容の薄いバグレポートにフラグを立て、セキュリティ issue をリダイレクトする
- スイープ: 優先順位順にバックログ全体を処理(マージ済みPRで修正 → 重複 →
r:support→ 古い候補) - Stale: 標準のissue stale policy(
status:stale、応答期間、除外事項、および再エンゲージメント)を適用する - Won’t-fix: 指定されたコア エンジニアリング制約に違反する問題をクローズし、その制約と
AGENTS.md/RFC の参照を引用します - 単一: 番号または URL で 1 つの issue を処理
ラベル定義はLabelsにあります。スキルが適用するトリアージラベル(r:needs-repro、r:support、stale-candidate、status:*ライフサイクルラベル、および解決ラベル)はすべてそこで定義されています。Stale手順はissue-triageスキルプロトコルにあり、レビュアー側のコンテキストはReviewer playbook → Issue triageにあります。スキルは曖昧な点があれば、対応する前にユーザーにエスカレーションします。
スクワッシュマージ戦略
ZeroClaw はすべての PR に対して squash-merge を使用します。squash-merge スキルは、紫色の Merged バッジと、本文に完全なコミット履歴を含む conventional-commits 形式の squash メッセージを生成します。
このスキルが存在する理由
GitHub のデフォルトの squash-merge:
- 件名からPR番号を省略する
- 本文書の書式が不整合
- プロジェクトの規約に一致しません
squashをmasterに直接プッシュすると、PRのマージ機構がバイパスされます。PRは「Merged」ではなく「Closed」と表示されます(紫色のバッジなし、リンクされたissueの自動クローズなし、マージの関連付けなし)。このスキルは gh pr merge --subject --body を使用して、バッジと正しくフォーマットされたコミットの両方を取得します。
フォーマット
- 件名:
<PR title> (#<number>): Conventional Commits 形式にすること(feat(scope): …、fix: …など) - 本文(複数コミットPR): PRブランチからの
- <短いSHA> <コミット件名>の箇条書きリスト - 本文 (単一コミットPR): 完全なコミット本文、または本文がない場合は空白
プリフライトチェック
スキルが停止する場所:
- PRはオープンされていません
- PRが
master以外のブランチを対象としています - マージコンフリクトが発生しています(ユーザーは作者にリベースを依頼する必要があります)。
CHANGES_REQUESTEDのレビューが保留中ghCLI < 2.17.0 (--subject/--bodyフラグが不足)
REVIEW_REQUIRED 状態は確認を促しますが、ブロックしません。
呼び出し
> squash-merge 1234
または明示的:
> /squash-merge 1234
スキルは、gh pr merge を呼び出す前に、生成された件名と本文を常に確認します。
変更ログの生成
changelog-generation は、最後のタグ以降にマージされた PR を gh でクエリし、conventional-commits のプレフィックスごとにグループ化して、ハウススタイルの changelog にフォーマットすることで、リリース用の CHANGELOG-next.md を生成します。release-stable-manual.yml をディスパッチする前に、リリースの手順書の一部として使用してください。
スキルを編集する
スキルは YAML フロントマターを含むプレーンな Markdown です。description フィールドは、Claude Code がいつスキルをトリガーするかを判断するために使用するものです。具体的に記述し、明確なトリガーフレーズ("review 1234"、"triage issues" など)を含めてください。スキルの編集には skill-creator を使用します。これは構造を強制し、トリガー精度を測定する eval の実行を支援します。
スキルの動作がドキュメントで説明されている内容と異なる場合(例:レビュアーのプレイブックが変更された場合)、そのスキルおよびそれを参照しているドキュメントを更新してください。スキルの SKILL.md は自動化にとっての正典であり、コントリビューションに関するドキュメントは人間にとっての正典です。