From git
PR の CI/CD パイプライン失敗を調査・修正する。ci-analyzer subagent で失敗原因を分析し、コード修正とコミットまで行う。Use when CI が失敗している、CI を修正したい、PR のチェックが通らない際に使用する。
How this skill is triggered — by the user, by Claude, or both
Slash command
/git:pr-ciThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
PR の CI が失敗した際に、原因を調査し修正を行う。
PR の CI が失敗した際に、原因を調査し修正を行う。
japanese-text-style スキルに従う必須: 作業開始前に TaskList で残存タスクを確認し、存在する場合は全て TaskUpdate({ status: "deleted" }) で削除する。その後、TaskCreate ツールで以下のステップをタスクとして登録する:
TaskCreate({ subject: "PR の特定", description: "引数または現在のブランチから PR を特定", activeForm: "PR を特定中" })
TaskCreate({ subject: "CI 失敗の調査", description: "ci-analyzer subagent で失敗原因を分析", activeForm: "CI 失敗を調査中" })
TaskCreate({ subject: "分析結果の提示と修正方針の承認", description: "ユーザーに分析結果を提示し修正方針の承認を得る", activeForm: "分析結果を提示中" })
TaskCreate({ subject: "コード修正の実行", description: "承認された修正方針に基づいてコードを修正", activeForm: "コードを修正中" })
TaskCreate({ subject: "修正の検証", description: "修正後にローカルで検証可能なコマンドを実行", activeForm: "修正を検証中" })
TaskCreate({ subject: "変更のステージング", description: "修正したファイルを git add でステージング", activeForm: "変更をステージング中" })
TaskCreate({ subject: "コミットメッセージの生成", description: "commit-proposer subagent でメッセージ候補を生成", activeForm: "コミットメッセージを生成中" })
TaskCreate({ subject: "コミット前の承認確認", description: "ユーザーにコミットの承認を求める", activeForm: "コミット承認を確認中" })
TaskCreate({ subject: "コミットの実行", description: "承認されたメッセージでコミット", activeForm: "コミットを実行中" })
TaskCreate({ subject: "プッシュの実行", description: "git push でリモートに反映", activeForm: "プッシュを実行中" })
TaskCreate({ subject: "完了報告", description: "修正結果を報告", activeForm: "完了報告を作成中" })
各ステップの開始時に TaskUpdate で in_progress に、完了時に completed に更新する。
引数で PR 番号が指定されていない場合、現在のブランチから PR を特定する:
gh pr view --json number,title,headRefName --jq '{number, title, headRefName}'
ci-analyzer subagent を Task ツールで呼び出す。
Task({
subagent_type: "git:ci-analyzer",
description: "CI 失敗原因の調査",
prompt: "PR #<number> (ブランチ: <branch>) の CI 失敗を調査してください。失敗した job のログを取得し、エラーの根本原因を分析して、修正方針を提案してください。"
})
subagent から返却された分析レポートを次のステップで使用する。
ci-analyzer の分析レポートをユーザーに提示する:
## CI 失敗分析結果
[ci-analyzer のレポートを要約]
### 修正計画
1. [修正内容 1] - [対象ファイル]
2. [修正内容 2] - [対象ファイル]
...
### 自動修正不可能な項目 (該当する場合)
- [手動対応が必要な内容とその理由]
---
この計画で修正を進めますか?
自動修正の可否判断:
| エラー種別 | 自動修正 | 対応 |
|---|---|---|
| Lint/フォーマット | 可能 | プロジェクトのフォーマッタを実行 |
| 型エラー・ビルドエラー | 可能 | コードを修正 |
| テスト失敗 | 要確認 | テストコードまたは実装を修正 |
| 依存関係 | 可能 | パッケージ更新・追加 |
| 環境変数・secret | 不可能 | ユーザーに設定方法を案内 |
| 権限・認証 | 不可能 | ユーザーに対応方法を案内 |
承認後、修正を実行する:
# プロジェクトの設定に応じて適切なコマンドを使用
# 例: bun fmt, npm run lint --fix, etc.
ローカルで検証可能な場合、CI と同等のチェックを実行する:
# プロジェクトの設定に応じて適切なコマンドを使用
# package.json の scripts や Makefile を確認
# 例: bun fmt, bun run lint, bun run build, bun run test
検証が失敗した場合は、エラー内容を確認して追加修正を行う。
修正したファイルをステージングする:
git add <修正したファイルのパス>
commit-proposer subagent を Task ツールで呼び出す。
Task({
subagent_type: "git:commit-proposer",
description: "コミットメッセージ候補の生成",
prompt: "ステージング済みの変更に対してコミットメッセージ候補を提案してください。コンテキスト: CI 失敗の修正です。"
})
subagent が変更差分の分析、commitlint 設定の確認、メッセージ候補の生成を実行する。
必須: 修正内容とコミットメッセージをユーザーに提示し、承認を求める:
## コミット内容の確認
以下の変更をコミットします:
**変更ファイル:**
- path/to/file1.ts (+5, -3)
- path/to/file2.ts (+2, -1)
**コミットメッセージ:**
fix(<scope>): CI 失敗を修正
- [修正内容 1]
- [修正内容 2]
---
この内容でコミットしてよろしいですか?
type の選択基準:
stylefix または buildfix または testdeps または fix承認後、コミットする:
git commit -m "$(cat <<'EOF'
<type>(<scope>): <subject>
<body>
EOF
)"
コミット完了後、リモートにプッシュする:
git push
## CI 修正完了
- 修正コミット: <commit_hash>
- 修正ファイル数: N
- 修正内容: [要約]
PR URL: <url>
CI の再実行結果を確認してください。
gh api コマンドで GitHub API に直接アクセスする:
HEAD_SHA=$(gh api repos/{owner}/{repo}/pulls/<number> --jq '.head.sha')
gh api repos/{owner}/{repo}/actions/runs?head_sha=$HEAD_SHA&status=failure&per_page=100
現在のブランチに PR がない可能性がある。ユーザーに確認する:
現在のブランチ (<branch>) に紐づく PR が見つかりません。
PR 番号を指定してください。
CI がまだ実行中です。完了後に再度実行してください。
実行中の job:
- <job 名> (ステータス: IN_PROGRESS)
全ての CI チェックが成功しています。修正は不要です。
チェック結果:
- <check 名>: SUCCESS
- ...
npx claudepluginhub ronnnnn/cc --plugin gitCreates bite-sized, testable implementation plans from specs or requirements, with file structure and task decomposition. Activates before coding multi-step tasks.