fix-develop Skill
Automatisiert die Diagnose und Behebung fehlerhafter CI-Workflows im Default-Branch eines Repositories durch das Erstellen von Worktrees und Pull Requests.
- GitHub Stars
- 32
- Dateien
- 1
- Letzter Commit
- 10. Nov. 2026
- Lizenz
- Apache-2.0
- Erlaubte Tools
- —
Was macht der fix-develop Skill?
fix-develop ist ein Agent Skill. Automatisiert die Diagnose und Behebung fehlerhafter CI-Workflows im Default-Branch eines Repositories durch das Erstellen von Worktrees und Pull Requests.
Zusammenfassung erzeugt aus der SKILL.md des Skills.
Über den fix-develop skill
Die Hauptfunktion dieses Skills ist die automatisierte Reparatur von defekten Continuous Integration Pipelines im Default-Branch eines Repositories. Er wurde für Developer und DevOps Engineers entwickelt, die einen stabilen main- oder develop-Branch ohne manuellen Eingriff bei jedem Build-Fehler aufrechterhalten müssen. Das Tool identifiziert fehlgeschlagene Workflow-Runs über das GitHub CLI, analysiert die Logs, um Fehler als Testfehler, Linting-Probleme oder Dependency-Probleme zu kategorisieren, und implementiert anschließend gezielte Fixes.
Wenn ein Agent diesen Skill lädt, arbeitet er mit einem separaten git worktree, um sicherzustellen, dass das primäre Repository während des Reparaturprozesses unberührt bleibt. Er erstellt einen Pull Request für den Default-Branch, der eine Zusammenfassung der Ursache und den spezifischen Nachweis des Fixes enthält. Der Prozess folgt einem strikten Protokoll minimaler Änderungen und vermeidet Refactoring, um sich rein auf die Behebung des gemeldeten Fehlers zu konzentrieren. Er iteriert so lange durch Fixes und bearbeitet Review-Kommentare, bis der CI-Status wieder auf passing steht oder ein Limit von zehn Versuchen erreicht ist.
Was ein agent damit machen kann
- 1Reparatur fehlerhafter CI-WorkflowsEin Agent kann damit beauftragt werden, defekte Builds auf dem main-Branch automatisch zu diagnostizieren und zu beheben.
- 2Identifikation von Flaky TestsDas Tool kann zwischen echten Code-Fehlern und transienten Infrastruktur-Fehlern unterscheiden, um unnötige Pull Requests zu vermeiden.
Geschrieben basierend auf dem SKILL.md des skills. Jeder use case wurde gegen ein zitat daraus geprüft.
So installierst du den fix-develop Skill
Jeder Befehl kopiert den Skill-Ordner in das Skills-Verzeichnis des Clients. Starte den Client neu oder beginne eine neue Session, um ihn zu laden.Den fix-develop Skill in Plugin installieren
/plugin marketplace add bjcoombs/ai-native-toolkit /plugin install ai-native-toolkit@ai-native-toolkit
Den fix-develop Skill in Claude Code installieren
~/.claude/skills/fix-develop/SKILL.md
$ npx degit bjcoombs/ai-native-toolkit/skills/fix-develop ~/.claude/skills/fix-developDen fix-develop Skill in Claude Code (project) installieren
.claude/skills/fix-develop/SKILL.md
$ npx degit bjcoombs/ai-native-toolkit/skills/fix-develop .claude/skills/fix-developDen fix-develop Skill in Codex installieren
~/.agents/skills/fix-develop/SKILL.md
$ npx degit bjcoombs/ai-native-toolkit/skills/fix-develop ~/.agents/skills/fix-developDen fix-develop Skill in Gemini CLI installieren
~/.gemini/skills/fix-develop/SKILL.md
$ npx degit bjcoombs/ai-native-toolkit/skills/fix-develop ~/.gemini/skills/fix-developDen fix-develop Skill in Claude.ai installieren
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
Auf GitHub ansehenFix 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
Dateien in diesem Skill
1fix-develop Skill-Fragen
Wie installiere ich den fix-develop Skill in Claude Code?
Führe npx degit bjcoombs/ai-native-toolkit/skills/fix-develop ~/.claude/skills/fix-develop aus. Claude Code lädt Skills aus ~/.claude/skills (alle Projekte) oder .claude/skills (ein Projekt) und nutzt einen Skill, wenn seine Beschreibung zur Aufgabe passt.
Welche Clients können den fix-develop Skill nutzen?
Jeder Client, der das Agent Skills-Format liest: Claude Code, Codex, Gemini CLI und claude.ai (als ZIP hochladen). Skripte im Skill laufen nur dort, wo der Client Codeausführung erlaubt.
Wie viel Refactoring ist bei der Implementierung eines Fixes erlaubt?
Der Agent muss die Änderungen minimal halten und sich ausschließlich darauf konzentrieren, die fehlerhaften Tests oder den Build zu beheben, ohne Code zu refactoren oder aufzuräumen.