Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Otonom PR yasam dongusu. PR olustur, CI bekle, hata varsa duzelt, review feedback'i uygula, merge'e hazirla. Budget ve zaman limiti ile kontrol altinda tutulan tam otonom PR pipeline'i.
.claude/skills/autonomous-pr/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | — | — |
| case-07 | ✗→✓ | ▲ Improved | — | — |
| case-16 | ✗→✓ | ▲ Improved | — | — |
| case-15 | ✗→✗ | = Same ✗ | — | — |
| case-18 | ✗→✗ | = Same ✗ | — | — |
PR'i olusturmaktan merge'e kadar tum sureci otonom yonet. CI basarisiz olursa duzelt, review feedback gelirse uygula, butce asarsa dur.
1. BRANCH → Feature branch olustur
2. IMPLEMENT → Kodu yaz (kraken/spark)
3. VERIFY → Lokal test + lint + build
4. PR CREATE → gh pr create
5. CI WAIT → CI pipeline'i bekle
6. CI FIX → Basarisizsa duzelt, tekrar push (max 3)
7. REVIEW → Review feedback bekle
8. APPLY → Feedback'i uygula
9. READY → Merge'e hazir bildirbash# Claude'a otonom PR olusturttir claude -p " Feature: kullanici profil sayfasi ekle Branch: feat/user-profile PR target: main Pipeline: 1. Branch olustur 2. Implement et 3. Test yaz 4. PR olustur 5. CI bekle ve fix et 6. Hazir olunca bildir "
bashclaude -p " Feature: auth middleware refactor Branch: refactor/auth-middleware PR target: main Limitler: --budget 500K tokens # Max token harcama --max-duration 30m # Max sure --max-ci-retries 3 # Max CI fix denemesi --auto-merge false # Merge'i ben onaylayacagim Basarisiz olursa: Draft PR olarak birak, ne yaptigini acikla "
CI BASARISIZ
│
├─ Build hatasi?
│ └─ build-error-resolver agent cagir
│ └─ Fix → Push → CI tekrar bekle
│
├─ Test basarisiz?
│ └─ Hata mesajini oku
│ ├─ Test kodu hatali → Test'i duzelt
│ └─ Implementation hatali → Kodu duzelt
│ └─ Push → CI tekrar bekle
│
├─ Lint hatasi?
│ └─ Otomatik fix (prettier, eslint --fix)
│ └─ Push → CI tekrar bekle
│
├─ Type hatasi?
│ └─ Type fix uygula
│ └─ Push → CI tekrar bekle
│
└─ 3. deneme basarisiz?
└─ DURR → Draft PR olarak birak
└─ PR body'ye aciklama yazbash#!/bin/bash # scripts/ci-fix-loop.sh MAX_RETRIES=3 RETRY=0 while [ $RETRY -lt $MAX_RETRIES ]; do echo "=== CI Check (attempt $((RETRY + 1))/$MAX_RETRIES) ===" # CI durumunu kontrol et STATUS=$(gh pr checks --json state -q '.[].state' | sort -u) if echo "$STATUS" | grep -q "SUCCESS"; then echo "CI PASSED" exit 0 fi if echo "$STATUS" | grep -q "PENDING"; then echo "CI bekliyor..." sleep 30 continue fi # Basarisiz -- fix dene RETRY=$((RETRY + 1)) echo "CI FAILED (attempt $RETRY)" # Hata detayini al FAILED=$(gh pr checks --json name,state -q '.[] | select(.state=="FAILURE") | .name') for check in $FAILED; do echo "Fixing: $check" # Claude'a fix ettir claude -p "CI check '$check' failed. Read the error, fix it, commit." --no-input done git push sleep 60 # CI'in yeniden baslamasini bekle done echo "CI FIX BASARISIZ ($MAX_RETRIES deneme)" exit 1
REVIEW GELDI
│
├─ Approval?
│ └─ MERGE'E HAZIR
│
├─ Changes requested?
│ └─ Her yorumu oku
│ ├─ Kod degisikligi isteniyor → Uygula
│ ├─ Soru soruluyor → Cevapla (PR comment)
│ └─ Mimari itiraz → DURDUR, kullaniciya bildir
│ └─ Degisiklikleri push et
│ └─ Re-review iste
│
└─ Comment only?
└─ Cevaplanmasi gereken varsa cevaplabash# PR review comment'lerini oku gh pr view <PR_NUMBER> --comments --json comments # Her comment icin fix uygula claude -p " PR #<NUMBER> icin su review feedback geldi: $(gh api repos/OWNER/REPO/pulls/<NUMBER>/comments | jq -r '.[] | "File: \(.path):\(.line)\nComment: \(.body)\n---"') Her feedback'i uygula, commit et. " git push gh pr review <PR_NUMBER> --comment --body "Review feedback uygulandı, tekrar bakabilir misiniz?"
bash# Session token kullanimi takibi # Her agent cagrisinda tahmini token sayisini artir TOKEN_USED=0 TOKEN_BUDGET=500000 # 500K limit check_budget() { if [ $TOKEN_USED -gt $TOKEN_BUDGET ]; then echo "BUDGET ASILDI: $TOKEN_USED / $TOKEN_BUDGET tokens" echo "Otonom islem durduruluyor." # Draft PR olarak birak gh pr ready --undo 2>/dev/null exit 1 fi }
bashSTART_TIME=$(date +%s) MAX_DURATION=1800 # 30 dakika check_time() { ELAPSED=$(($(date +%s) - START_TIME)) if [ $ELAPSED -gt $MAX_DURATION ]; then echo "ZAMAN LIMITI: ${ELAPSED}s / ${MAX_DURATION}s" echo "Mevcut durumu kaydet ve dur." git add -A && git commit -m "WIP: zaman limiti asildi" || true gh pr create --draft --title "WIP: $FEATURE" --body "Zaman limiti nedeniyle duraklatildi." 2>/dev/null exit 1 fi }
1. ASLA --force push yapma
2. ASLA main/master'a direkt push yapma
3. ASLA review olmadan merge yapma (auto-merge false default)
4. Secret/credential commit ETME
5. Budget asiminda DURDUR, devam etme
6. CI 3 kez basarisizsa DURDUR, draft birak
7. Mimari itirazda DURDUR, kullaniciya sor| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-24 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-23 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-25 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted, and 23 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +12 percentage points is the difference between those two pass rates over the 23 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.