Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

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番号を省略する
  • 本文書の書式が不整合
  • プロジェクトの規約に一致しません

PR マージの仕組みを経由せずに squash を master へ直接 push すると、PR の表示が「マージ済み」ではなく「クローズ済み」になります(紫のバッジが表示されず、リンクされた Issue の自動クローズも行われず、マージとの関連付けもされません)。このスキルでは gh pr merge --subject --body-file を使うことで、バッジの表示と正しい形式のコミットの両方を得ています。

フォーマット

  • 件名: <PR title> (#<number>): Conventional Commits 形式にすること(feat(scope): …、fix: … など)
  • 本文(複数コミットPR): PRブランチからの - <短いSHA> <コミット件名> の箇条書きリスト
  • 本文 (単一コミットPR): 完全なコミット本文、または本文がない場合は空白

プリフライトチェック

スキルが停止する場所:

  1. PRはオープンされていません
  2. PRがmaster以外のブランチを対象としています
  3. マージコンフリクトが発生しています(ユーザーは作者にリベースを依頼する必要があります)。
  4. CHANGES_REQUESTED のレビューが保留中
  5. do-not-merge または status:blocked が設定されています
  6. Parking LotまたはIceboxのマイルストーンが存在します
  7. 将来の行配置は未解決のままです
  8. gh CLI < 2.50.0 (必要な機械可読のチェックフィールドが不足)

REVIEW_REQUIRED 状態は確認を促しますが、ブロックしません。

この skill は、release-gate を現在のマイルストーン、本文、クローズ対象の Issue、リンクされたトラッカー、または永続的なコメントと照合します。release-gate は検査の経路を決めるだけで、単独ではマージをブロックしません。マージ直前に、skill はこれらの公開情報源を再読み込みし、リリースラインの処理結果を再計算したうえで、head、リリースラベル、マイルストーン、ソート済みのクローズ対象 Issue 集合、そして依拠したすべての配置情報を比較します。リリース処理結果、クローズ参照、または依拠した情報が変更された場合や曖昧になった場合は、確認パケットを無効にして事前チェックを再開します。本文の無関係な文言の変更では無効にしません。

呼び出し

> 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 は自動化にとっての正典であり、コントリビューションに関するドキュメントは人間にとっての正典です。