fix-develop skill
Bir deponun varsayılan dalındaki başarısız olan CI iş akışlarını, worktree'ler ve pull request'ler oluşturarak teşhis etme ve düzeltme sürecini otomatikleştirir.
- GitHub yıldızları
- 32
- Dosyalar
- 1
- Son commit
- 10 Kas 2026
- Lisans
- Apache-2.0
- İzin verilen araçlar
- —
fix-develop skill ne işe yarar?
fix-develop bir agent skill'dir. Bir deponun varsayılan dalındaki başarısız olan CI iş akışlarını, worktree'ler ve pull request'ler oluşturarak teşhis etme ve düzeltme sürecini otomatikleştirir.
Özet, skill'in SKILL.md dosyasından oluşturuldu.
fix-develop skilli hakkında
Bu SKILL'in temel işlevi, bir deponun varsayılan dalındaki bozuk sürekli entegrasyon (CI) süreçlerinin onarımını otomatikleştirmektir. Her build hatası için manuel müdahale gerektirmeden sağlıklı bir main veya develop dalını korumak isteyen geliştiriciler ve DevOps mühendisleri için tasarlanmıştır. Araç, GitHub CLI kullanarak başarısız olan workflow çalışmalarını tanımlar, hataları test hataları, linting sorunları veya bağımlılık problemleri olarak kategorize etmek için logları analiz eder ve ardından hedeflenmiş düzeltmeleri uygular.
Bir agent bu SKILL'i yüklediğinde, onarım süreci boyunca ana deponun bozulmamasını sağlamak için ayrı bir git worktree oluşturarak çalışır. Kök nedenin bir özetini ve düzeltmeye dair spesifik kanıtları içeren, varsayılan dalı hedefleyen bir pull request oluşturur. Süreç, bildirilen hatayı çözmeye odaklanmak için refactoring yapmaktan kaçınan ve minimum değişiklik ilkesine dayanan katı bir protokol izler. CI durumu başarılı hale gelene veya on deneme sınırına ulaşana kadar düzeltmeleri tekrarlamaya ve inceleme yorumlarını ele almaya devam eder.
Bir agent bununla neler yapabilir
- 1Başarısız CI iş akışlarını onarmaBir agent, main dalındaki bozuk build'leri otomatik olarak teşhis etmek ve düzeltmekle görevlendirilebilir.
- 2Flaky test sorunlarını belirlemeAraç, gereksiz pull request'leri önlemek için gerçek kod hataları ile geçici altyapı hatalarını birbirinden ayırt edebilir.
Skill'in SKILL.md dosyasından yazılmıştır. Her kullanım durumu oradaki bir alıntı ile kontrol edilir.
fix-develop skill nasıl kurulur
Her komut, skill klasörünü istemcinin skills dizinine kopyalar. Yüklemek için istemciyi yeniden başlatın veya yeni bir oturum başlatın.fix-develop skill'ini Eklenti uygulamasına kur
/plugin marketplace add bjcoombs/ai-native-toolkit /plugin install ai-native-toolkit@ai-native-toolkit
fix-develop skill'ini Claude Code uygulamasına kur
~/.claude/skills/fix-develop/SKILL.md
$ npx degit bjcoombs/ai-native-toolkit/skills/fix-develop ~/.claude/skills/fix-developfix-develop skill'ini Claude Code (project) uygulamasına kur
.claude/skills/fix-develop/SKILL.md
$ npx degit bjcoombs/ai-native-toolkit/skills/fix-develop .claude/skills/fix-developfix-develop skill'ini Codex uygulamasına kur
~/.agents/skills/fix-develop/SKILL.md
$ npx degit bjcoombs/ai-native-toolkit/skills/fix-develop ~/.agents/skills/fix-developfix-develop skill'ini Gemini CLI uygulamasına kur
~/.gemini/skills/fix-develop/SKILL.md
$ npx degit bjcoombs/ai-native-toolkit/skills/fix-develop ~/.gemini/skills/fix-developfix-develop skill'ini Claude.ai uygulamasına kur
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'da görüntüleFix 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
Bu becerideki dosyalar
1fix-develop skill soruları
fix-develop skill'ini Claude Code uygulamasına nasıl kurarım?
npx degit bjcoombs/ai-native-toolkit/skills/fix-develop ~/.claude/skills/fix-develop komutunu çalıştırın. Claude Code, skill'leri ~/.claude/skills (tüm projeler) veya .claude/skills (tek proje) konumundan yükler ve açıklaması görevle eşleştiğinde skill'i kullanır.
fix-develop skill'ini hangi istemciler kullanabilir?
Agent Skills biçimini okuyan her istemci: Claude Code, Codex, Gemini CLI ve claude.ai (ZIP olarak yükleyin). Skill içindeki betikler yalnızca istemcinin kod çalıştırmaya izin verdiği yerlerde çalışır.
Bir düzeltme uygularken ne kadar refactoring yapılmasına izin verilir?
Agent, kod refactoring'i veya temizliği yapmadan, yalnızca başarısız olan testleri veya build işlemini düzeltmeye odaklanarak değişiklikleri minimum düzeyde tutmalıdır.