fix-develop skill
リポジトリのデフォルトブランチで失敗しているCIワークフローの診断と修正を、worktreeの作成およびプルリクエストの作成を通じて自動化します。
- GitHubスター
- 32
- ファイル
- 1
- 最終コミット
- 2026年11月10日
- ライセンス
- Apache-2.0
- 許可されたツール
- —
fix-develop skillは何をしますか
fix-developはAgent Skillsです。 リポジトリのデフォルトブランチで失敗しているCIワークフローの診断と修正を、worktreeの作成およびプルリクエストの作成を通じて自動化します。.
skillのSKILL.mdから生成された要約。
fix-develop skill について
このSKILLの主な機能は、リポジトリのデフォルトブランチにおける壊れた継続的インテグレーション(CI)パイプラインの修復を自動化することです。ビルド失敗のたびに手動で対応することなく、mainブランチやdevelopブランチの健全性を維持する必要がある開発者やDevOpsエンジニア向けに設計されています。このツールはGitHub CLIを使用して失敗したワークフローの実行を特定し、ログを分析してエラーをテスト失敗、リンターの問題、または依存関係の問題として分類し、的を絞った修正を実装します。
エージェントがこのSKILLをロードすると、修復プロセス中にプライマリリポジトリが影響を受けないよう、個別のgit worktreeを作成して動作します。また、根本原因の要約と修正の具体的なエビデンスを含む、デフォルトブランチをターゲットとしたプルリクエストを作成します。プロセスは、報告されたエラーの解決のみに集中するため、リファクタリングを避けて変更を最小限に抑えるという厳格なプロトコルに従います。CIステータスが合格状態に戻るか、試行回数が10回に達するまで、修正の反復とレビューコメントへの対応を継続します。
エージェントができること
- 1失敗しているCIワークフローの修復エージェントに、mainブランチでのビルド失敗の診断と自動修正をタスクとして割り当てることができます。
- 2不安定なテスト(Flaky tests)の特定実際のコードエラーと一時的なインフラストラクチャの失敗を区別し、不要なプルリクエストの作成を防ぐことができます。
skill の SKILL.md から作成されています。すべてのユースケースは、その引用と照合されています。
fix-develop skillのインストール方法
各コマンドはskillフォルダをクライアントのskillsディレクトリにコピーします。読み込むには、クライアントを再起動するか新しいセッションを開始してください。プラグインにfix-develop skillをインストールする
/plugin marketplace add bjcoombs/ai-native-toolkit /plugin install ai-native-toolkit@ai-native-toolkit
Claude Codeにfix-develop skillをインストールする
~/.claude/skills/fix-develop/SKILL.md
$ npx degit bjcoombs/ai-native-toolkit/skills/fix-develop ~/.claude/skills/fix-developClaude Code (project)にfix-develop skillをインストールする
.claude/skills/fix-develop/SKILL.md
$ npx degit bjcoombs/ai-native-toolkit/skills/fix-develop .claude/skills/fix-developCodexにfix-develop skillをインストールする
~/.agents/skills/fix-develop/SKILL.md
$ npx degit bjcoombs/ai-native-toolkit/skills/fix-develop ~/.agents/skills/fix-developGemini CLIにfix-develop skillをインストールする
~/.gemini/skills/fix-develop/SKILL.md
$ npx degit bjcoombs/ai-native-toolkit/skills/fix-develop ~/.gemini/skills/fix-developClaude.aiにfix-develop skillをインストールする
npx degit bjcoombs/ai-native-toolkit/skills/fix-develop fix-develop && zip -r fix-develop.zip fix-develop # claude.ai → Customize → Skills → + → Create skill → Upload a skill → fix-develop.zip
SKILL.md
GitHubで表示Fix Default Branch
Assess failing CI on the repo's default branch (main / develop / etc., or nightly build), create a worktree with a fix, push a PR, and loop until CI passes and review comments are addressed.
Usage: /fix-develop [repo-path] - defaults to current repo context. (Command name is historical; works on whichever branch the repo treats as default.)
Step 1: Assess Default Branch Health
set -euo pipefail
# Identify the repo
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || echo "")
REPO_NAME=$(basename "$REPO_ROOT")
ORG=$(gh repo view --json owner --jq '.owner.login')
REPO=$(gh repo view --json name --jq '.name')
DEFAULT_BRANCH=$(gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name')
# Fail fast if any of the above came back empty (wrong pane, no gh auth, not a repo)
: "${REPO_ROOT:?Not inside a git repo — re-run from the target repo}"
: "${ORG:?gh repo view returned no owner — check gh auth and current directory}"
: "${REPO:?gh repo view returned no name — check gh auth and current directory}"
: "${DEFAULT_BRANCH:?gh repo view returned no defaultBranchRef — check gh auth}"
# Get latest CI status on the default branch
gh api repos/$ORG/$REPO/commits/$DEFAULT_BRANCH/status --jq '{state: .state, total: .total_count}'
# Get failing workflow runs on the default branch
gh run list --branch $DEFAULT_BRANCH --status failure --limit 5 --json databaseId,name,conclusion,createdAt \
| jq '.[] | {id: .databaseId, name, conclusion, created: .createdAt}'
If the default branch is green, report "$DEFAULT_BRANCH is healthy, nothing to fix" and STOP.
Step 2: Diagnose Failures
# For each failing run, get the failed jobs and logs
RUN_ID=<from step 1>
gh run view $RUN_ID --json jobs | jq '.jobs[] | select(.conclusion == "FAILURE") | {name, conclusion}'
gh run view $RUN_ID --log-failed 2>&1 | tail -100
Categorize failures:
- Test failures - read the failing test + source code to understand root cause
- Lint/build errors - read the offending file at the reported line
- Flaky/infrastructure - check if the same test passed on a recent re-run. If so, report as flaky (not actionable) and STOP
- Dependency issues - check if a dependency update broke something
Report diagnosis to user before proceeding:
## Default Branch Diagnosis
Branch: <DEFAULT_BRANCH>
Failing runs: <list>
Root cause: <assessment>
Proposed fix: <plan>
Proceeding to create fix PR...
Step 3: Create Worktree and Fix
set -euo pipefail
: "${ORG:?ORG unset — re-run Step 1 to derive repo identity}"
: "${REPO:?REPO unset — re-run Step 1 to derive repo identity}"
: "${DEFAULT_BRANCH:?DEFAULT_BRANCH unset — re-run Step 1 to derive repo identity}"
# From repo-main (sacred, always on default branch)
cd ~/dev/github.com/$ORG/$REPO/$REPO-main
git checkout $DEFAULT_BRANCH && git pull origin $DEFAULT_BRANCH
# Create fix branch and worktree (slug the default branch in case it contains '/')
DEFAULT_BRANCH_SLUG="${DEFAULT_BRANCH//\//-}"
BRANCH_NAME="fix-${DEFAULT_BRANCH_SLUG}-$(date +%Y%m%d)-$(echo '<brief-description>' | tr ' ' '-')"
git branch $BRANCH_NAME
git worktree add ../worktree/$BRANCH_NAME $BRANCH_NAME
cd ../worktree/$BRANCH_NAME
Implement the fix. Keep changes minimal - fix the failing tests/build only. Do not refactor, do not improve, do not clean up.
# Commit and push
git add <specific-files>
git commit -m "fix: <description of what was failing and why>"
git push -u origin $BRANCH_NAME
# Create PR targeting the default branch
gh pr create --base $DEFAULT_BRANCH --title "fix: Resolve failing CI on $DEFAULT_BRANCH" --body "$(cat <<'EOF'
## Summary
- <What was failing>
- <Root cause>
- <What this PR fixes>
## Evidence
- Failing run: <link>
- Error: <brief>
EOF
)"
Step 4: Loop Until Green
Use the pr-review-merge skill to drive the fix PR to merge-ready, passing $PR and
$DEFAULT_BRANCH and the project's bot rules. It owns the CI/threads/conversation checks
and the positive-jq-filter pitfalls.
Protocol
-
Autonomous Loop - no permission needed between iterations:
- Check CI + comments, fix, push
- Report: "Iteration N: Fixed X issues" or "Iteration N: Waiting for CI"
-
Stop when green:
PR #X: CI passing, all comments addressed. Ready for merge. This fixes the following $DEFAULT_BRANCH failures: - <list of what was broken> --- ## Current Work PR: #X - Fix failing CI on $DEFAULT_BRANCH https://github.com/org/repo/pull/X Latest: All green after N iterations -
Only ask for help if:
- Root cause is unclear after reading logs + source
- Fix requires architectural decision
- After 5+ iterations with no progress
- Failure is in code you don't have context on
-
After merge (if user merges):
cd ~/dev/github.com/$ORG/$REPO cd $REPO-main && git worktree remove --force ../worktree/$BRANCH_NAME git branch -d $BRANCH_NAME
Important
- Minimal fixes only - fix what's broken, nothing else
- Use positive jq filters -
select(.state == "FAILURE")notselect(.state != "SUCCESS") - Never work in repo-main - always create a worktree
- Max iterations: 10 (ask for help after that)
- If flaky/infrastructure: Report and STOP - don't create a PR for transient failures
このスキルのファイル
1fix-develop skillに関する質問
Claude Codeにfix-develop skillをインストールするには
npx degit bjcoombs/ai-native-toolkit/skills/fix-develop ~/.claude/skills/fix-developを実行してください。Claude Codeは~/.claude/skills(すべてのプロジェクト)または.claude/skills(単一プロジェクト)からskillsを読み込み、説明がタスクに一致する場合にskillを使用します。
fix-develop skillはどのクライアントで使用できますか
Agent Skills形式を読み込むすべてのクライアントで使用できます: Claude Code、Codex、Gemini CLI、claude.ai(ZIPとしてアップロード)。skill内のスクリプトは、クライアントがコード実行を許可した場合にのみ実行されます。
修正を実装する際、どの程度のリファクタリングが許可されますか?
エージェントは変更を最小限に抑える必要があります。リファクタリングやコードのクリーンアップは行わず、失敗したテストやビルドの修正のみに集中してください。