title: Yerleşik İlkeler description: “Yaygın aracı arıza modlarını yakalayan 39 yerleşik ilke” icon: shield
failproofai, yaygın aracı arıza modlarını yakalayan 39 yerleşik ilke ile birlikte gelir. Her ilke belirli bir kanca olayı türü ve araç adında çalışır. On dokuz ilke, kod yazmadan davranışını ayarlamanıza olanak tanıyan parametreleri kabul eder. Beş iş akışı ilkesi, Claude’un durması öncesinde bir commit → push → PR → CI hattını uygular.Genel Bakış
İlkeler kategorilere ayrılmıştır:| Kategori | İlkeler | Kanca türü |
|---|---|---|
| Tehlikeli komutlar | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
| Altyapı komutları | block-kubectl, block-terraform, block-aws-cli, block-gcloud, block-az-cli, block-helm, block-gh-pipeline | PreToolUse |
| Sırlar (sanitizers) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
| Ortam | block-env-files, protect-env-vars | PreToolUse |
| Dosya erişimi | block-read-outside-cwd, block-secrets-write | PreToolUse |
| Git | block-push-master, block-work-on-main, block-force-push, warn-git-amend, warn-git-stash-drop, warn-all-files-staged | PreToolUse |
| Veritabanı | warn-destructive-sql, warn-schema-alteration | PreToolUse |
| Uyarılar | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
| Paket yöneticileri | prefer-package-manager | PreToolUse |
| İş akışı | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-no-conflicts-before-stop, require-ci-green-before-stop | Stop |
block-— aracının devam etmesini engeller.warn-— aracıya kendi kendini düzeltebilmesi için ek bağlam sağlar.sanitize-— aracı görmesinden önce aracın çıktısından hassas verileri temizler.
Ad Alanları
Her ilke bir<namespace>/<name> yuvasında yer alır. Yerleşik ilkeler failproofai/ ad alanına aittir — örneğin, failproofai/sanitize-jwt. Ad alanı, benzer kısa adlara sahip özel veya üçüncü taraf ilkeleri yüklerken çakışmaları engeller.
Yapılandırmanızda yerleşik bir ilkeye kısa adı veya tam adı ile başvurabilirsiniz; her iki form aynı ilkeye çözümlenir:
/ yoksa, failproofai onu varsayılan failproofai ad alanına ait olarak davranır. Zaten / içeren adlar (örn. myorg/foo, custom/my-hook) olduğu gibi kalır.
require-— koşullar karşılanana kadar Stop olayını engeller.
Tehlikeli komutlar
Aracıların geri almması zor olan veya ana sisteme zarar verebilecek işlemleri çalıştırmasını engeller.block-sudo
Olay: PreToolUse (Bash)Varsayılan: Herhangi bir
sudo komutunu reddeder.
sudo anahtar sözcüğünü içeren çağrıları engeller. Model eşleştirmesi ham dize yerine ayrıştırılmış komut belirteçleri üzerinde yapılır; bu, shell operatörü enjeksiyonu yoluyla bypass’ı engeller.
Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
allowPatterns | string[] | [] | İzin verilen tam komut önekleri. Her giriş ayrıştırılmış argv belirteçlerine karşı eşleştirilir. |
sudo systemctl status nginx izin verilir, ancak sudo rm /etc/hosts reddedilir.
Desenler ham komut dizesi değil, ayrıştırılmış belirteçlere karşı eşleştirilir. Bu, eklenen shell operatörleri yoluyla bypass’ı engeller (örn.
sudo systemctl status x; rm -rf / sudo systemctl status * ile eşleşmez).block-rm-rf
Olay: PreToolUse (Bash)Varsayılan:
rm -rf, rm -fr ve benzer özyinelemeli silme formlarını reddeder.
Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
allowPaths | string[] | [] | Özyinelemeli olarak silinmesi güvenli olan yollar (örn. /tmp). |
block-curl-pipe-sh
Olay: PreToolUse (Bash)Varsayılan:
curl <url> | bash, curl <url> | sh, wget <url> | bash ve benzer desenleri reddeder.
Parametre yok.
block-failproofai-commands
Olay: PreToolUse (Bash)Varsayılan: failproofai’ın kaldırılmasını veya devre dışı bırakılmasını sağlayacak komutları reddeder (örn.
npm uninstall failproofai, failproofai policies --uninstall).
Parametre yok.
Altyapı komutları
Kodlama aracılarının altyapı CLI’lerini çalıştırmasını veya CI/CD hattını tetiklemesini engeller. Bu kategorideki tüm ilkeler opt-in (defaultEnabled: false) — kubectl, terraform vb. çağırması gereken aracılar ilkeyi etkinleştirmediğiniz sürece kesintiye uğramaz. Etkinleştirildiğinde, eşleşen CLI’nin her çağrısı komutu allowPatterns içindeki bir giriş ile eşleşmedikçe reddedilir.
Desen dilbilgisi, block-sudo ile aynıdır: belirteçler ayrıştırılmış argv’ye karşı eşleştirilir, * bir belirteç için joker karttır ve herhangi bir çağrı içeren komut veya enjeksiyon bypass’ını engellemeyi tercih etmek için gömülü shell metakarakterlerine sahip belirteçler, izin listesi eşleştirmesi öncesinde reddedilir.
block-kubectl
Olay: PreToolUse (Bash)Varsayılan: Herhangi bir
kubectl çağrısını reddeder.
Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
allowPatterns | string[] | [] | İzin verilen kubectl komut önekleri. |
kubectl get pods izin verilir ancak kubectl apply -f deploy.yaml reddedilir.
block-terraform
Olay: PreToolUse (Bash)Varsayılan: Herhangi bir
terraform veya tofu (OpenTofu) çağrısını reddeder.
Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
allowPatterns | string[] | [] | İzin verilen terraform/tofu komut önekleri. |
block-aws-cli
Olay: PreToolUse (Bash)Varsayılan: Herhangi bir
aws CLI çağrısını reddeder.
Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
allowPatterns | string[] | [] | İzin verilen aws CLI komut önekleri. |
block-gcloud
Olay: PreToolUse (Bash)Varsayılan: Herhangi bir
gcloud (Google Cloud) CLI çağrısını reddeder.
Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
allowPatterns | string[] | [] | İzin verilen gcloud komut önekleri. |
block-az-cli
Olay: PreToolUse (Bash)Varsayılan: Herhangi bir
az (Azure) CLI çağrısını reddeder.
Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
allowPatterns | string[] | [] | İzin verilen az CLI komut önekleri. |
block-helm
Olay: PreToolUse (Bash)Varsayılan: Herhangi bir
helm çağrısını reddeder.
Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
allowPatterns | string[] | [] | İzin verilen helm komut önekleri. |
block-gh-pipeline
Olay: PreToolUse (Bash)Varsayılan: Durumu mutasyona uğratan veya hattı tetikleyen aşağıdaki
gh CLI alt komutlarını reddeder:
gh workflow run,gh workflow enable,gh workflow disablegh run rerun,gh run cancelgh pr mergegh release create,gh release deletegh cache deletegh secret set,gh secret delete
gh pr view, gh pr list, gh run list, gh release view ve gh api repos/.../... gibi salt okunur gh alt komutları bu ilkeyle eşleşmez — iş akışı kontrolleri (failproofai’ın kendi require-ci-green-before-stop dahil) için rutin olarak gereklidir.
Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
allowPatterns | string[] | [] | Aksi takdirde reddedilecek belirli betikleştirilmiş çağrılara izin vermek için. |
Sırlar (sanitizers)
Aracıların kimlik bilgilerini bağlamlarına veya çıktılarına sızmasını engeller. Sanitizer ilkeleri PostToolUse olaylarında çalışır. Claude bir Bash komutu çalıştırdığında, bir dosya okuduğunda veya herhangi bir aracı çağırdığında, bu ilkeler çıktı Claude’a döndürülmeden önce inceler. Bir gizli desen algılanırsa, ilke çıktının geri aktarılmasını engeller.sanitize-jwt
Olay: PostToolUse (tüm araçlar)Varsayılan: JWT belirteçlerini (
. ile ayrılmış üç base64url segmenti) gizler.
Parametre yok.
sanitize-api-keys
Olay: PostToolUse (tüm araçlar)Varsayılan: Yaygın API anahtar biçimlerini gizler: Anthropic (
sk-ant-), OpenAI (sk-), GitHub PAT’ler (ghp_), AWS erişim anahtarları (AKIA), Stripe anahtarları (sk_live_, sk_test_) ve Google API anahtarları (AIza).
Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
additionalPatterns | { regex: string; label: string }[] | [] | Gizli olarak kabul edilecek ek regex desenleri. |
sanitize-connection-strings
Olay: PostToolUse (tüm araçlar)Varsayılan: Gömülü kimlik bilgileri içeren veritabanı bağlantı dizelerini gizler (örn.
postgresql://user:password@host/db).
Parametre yok.
sanitize-private-key-content
Olay: PostToolUse (tüm araçlar)Varsayılan: PEM bloklarını (
-----BEGIN PRIVATE KEY-----, -----BEGIN RSA PRIVATE KEY----- vb.) gizler.
Parametre yok.
sanitize-bearer-tokens
Olay: PostToolUse (tüm araçlar)Varsayılan:
Authorization: Bearer <token> başlıklarını gizler; belirteç 20 veya daha fazla karakterdir.
Parametre yok.
Ortam
Aracılar tarafından okunan veya açığa çıkarılan hassas ortam yapılandırmasını korur.block-env-files
Olay: PreToolUse (Bash, Read)Varsayılan:
cat .env, Read araç çağrıları (dosya yolu olarak .env ile) vb. aracılığıyla .env dosyalarını okumayı reddeder.
.envrc veya diğer ortam-ilgili dosyaları engellemiyor — yalnızca tam olarak .env adlandırılan dosyaları.
Parametre yok.
protect-env-vars
Olay: PreToolUse (Bash)Varsayılan: Ortam değişkenlerini yazdıran komutları reddeder:
printenv, env, echo $VAR.
Parametre yok.
Dosya erişimi
Aracıları proje sınırları içinde çalışmaya ve hassas dosyalardan uzak tutmaya devam eder.block-read-outside-cwd
Olay: PreToolUse (Read, Bash)Varsayılan: Proje kökünün dışında dosya okumayı reddeder. Sınır
CLAUDE_PROJECT_DIR (Claude Code tarafından oturum başına bir kez belirlenir) olup, söz konusu değişken ayarlanmadığında oturum’ın geçerli çalışma dizinine geri dönüş yapılır. Canlı cwd yerine proje kökü kullanımı, Claude bir alt dizine cd yaptığında bile sınırın kararlı kalması demektir.
Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
allowPaths | string[] | [] | Proje kökünün dışında olsa bile izin verilen kesinlik yol ön ekleri. |
block-secrets-write
Olay: PreToolUse (Write, Edit)Varsayılan: Özel anahtarlar ve sertifikalar için yaygın olarak kullanılan dosyalara yazılmasını engeller:
id_rsa, id_ed25519, *.key, *.pem, *.p12, *.pfx.
Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
additionalPatterns | string[] | [] | Engelleme yapılacak ek dosya adı desenleri (glob-stili). |
Git
Kazara itme, zorlamaya itme ve geri almesi zor olan dal hatalarını engeller.block-push-master
Olay: PreToolUse (Bash)Varsayılan:
git push origin main ve git push origin master komutlarını reddeder.
Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
protectedBranches | string[] | ["main", "master"] | Doğrudan itilemeyen dal adları. |
block-work-on-main
Olay: PreToolUse (Bash)Varsayılan: Çalışma ağacı
main veya master üzerindeyken git commit, git merge, git rebase ve git cherry-pick komutlarını reddeder. Dal oluşturma ve geçiş (git checkout, git checkout -b, git switch, git switch -c) etkilenmemiş.
Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
protectedBranches | string[] | ["main", "master"] | commit/merge/rebase/cherry-pick’inin reddedildiği dal adları. |
block-force-push
Olay: PreToolUse (Bash)Varsayılan:
git push --force ve git push -f komutlarını reddeder.
İlkeye özgü parametre yok. Alternatif önerileri sunmak için çapraz kesit hint özelliğini kullanın:
warn-git-amend
Olay: PreToolUse (Bash)Varsayılan:
git commit --amend çalıştırırken Claude’u dikkatli ilerlemeye talimat verir. Komutu engellemiyor.
Parametre yok.
warn-git-stash-drop
Olay: PreToolUse (Bash)Varsayılan:
git stash drop çalıştırmadan önce Claude’u onay vermeye talimat verir. Komutu engellemiyor.
Parametre yok.
warn-all-files-staged
Olay: PreToolUse (Bash)Varsayılan:
git add -A veya git add . çalıştırırken Claude’u sahnelediklerini gözden geçirmeye talimat verir. Komutu engellemiyor.
Parametre yok.
Veritabanı
Yıkıcı SQL işlemlerini veritabanınıza karşı yürütülmesinden önce yakalar.warn-destructive-sql
Olay: PreToolUse (Bash)Varsayılan:
DROP TABLE, DROP DATABASE veya WHERE cümlesi olmayan DELETE içeren SQL çalıştırmadan önce Claude’u onay vermeye talimat verir.
Parametre yok.
warn-schema-alteration
Olay: PreToolUse (Bash)Varsayılan:
ALTER TABLE deyimleri çalıştırmadan önce Claude’u onay vermeye talimat verir.
Parametre yok.
Uyarılar
Aracılara potansiyel olarak riskli ancak yıkıcı olmayan işlemlerden önce ek bağlam verir.warn-large-file-write
Olay: PreToolUse (Write)Varsayılan: 1024 KB’den daha büyük dosyalar yazılmadan önce Claude’u onay vermeye talimat verir. Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
thresholdKb | number | 1024 | Uyarı verilen dosya boyutu eşiği kilobayt cinsinden. |
Kanca işleyicisi yüklerde 1 MB stdin sınırı uygular. Bu ilkeyi küçük içerikle test etmek için
thresholdKb öğesini 1024’ün çok altında bir değere ayarlayın.warn-package-publish
Olay: PreToolUse (Bash)Varsayılan:
npm publish çalıştırmadan önce Claude’u onay vermeye talimat verir.
Parametre yok.
warn-background-process
Olay: PreToolUse (Bash)Varsayılan:
nohup, &, disown veya screen aracılığıyla arka plan işlemleri başlatırken Claude’u dikkatli olmaya talimat verir.
Parametre yok.
warn-global-package-install
Olay: PreToolUse (Bash)Varsayılan: Sanal ortam olmadan
npm install -g, yarn global add veya pip install çalıştırmadan önce Claude’u onay vermeye talimat verir.
Parametre yok.
Paket yöneticileri
Aracının kullanmasına izin verilen paket yöneticisini zorunlu kılar.prefer-package-manager
Olay: PreToolUse (Bash)Varsayılan: Devre dışı. Etkinleştirildiğinde,
allowed listesinde olmayan herhangi bir paket yöneticisi komutunu engeller ve Claude’u komutu izin verilen bir yöneticisi kullanarak yeniden yazması için söyler.
Algılar: pip, pip3, python -m pip, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo.
| Parametre | Tür | Varsayılan | Açıklama |
|---|---|---|---|
allowed | string[] | [] | İzin verilen paket yöneticisi adları. Bu listeye girmeyen algılanan yöneticiler engellenir. Boş olduğunda, ilke boştadır. |
blocked | string[] | [] | Yerleşik listeyi aşan engelleme yapılacak ek yönetici adları (örn. ['pdm', 'pipx']). |
blocked özelliğini kullanın.
Örnek yapılandırma:
pip install flask ve pdm install flask ikisi de reddedilir ve Claude’a bunun yerine uv veya bun kullanması söylenir. uv install flask gibi komutlar izin verilir çünkü uv izin listesindedir ve ilk olarak kontrol edilir.
AI davranışı
Aracıların takılı kalması veya beklenmedik şekilde davranması durumunda algılar.warn-repeated-tool-calls
Olay: PreToolUse (tüm araçlar)Varsayılan: Aynı araç 3 veya daha fazla kez özdeş parametrelerle çağrıldığında Claude’u yeniden düşünmeye talimat verir — bu sık sık aracının döngüde takılı kaldığının bir işaretidir. Parametre yok.
İş akışı
Disiplinli bir oturum sonu iş akışını zorunlu kılar. Bu ilkeler Stop olayında çalışır ve aracının her koşul karşılanana kadar durmasını engeller. Doğal bir bağımlılık zincirini takip ederler: commit → push → PR → CI. Bir ilke reddederse, zincirdeki sonraki ilkeler atlanır (deny kısa devre yapar). Tüm iş akışı ilkeleri fail-open özelliğine sahiptir: gerekli araç kullanılamıyorsa (örn.gh yüklü değil, git uzak yok), ilke neden kontrol atlandığını açıklayan bilgilendirici bir mesajla izin verir.
CLI başına Stop semantiği
Stop uygulaması, yedi desteklenen CLI arasında biraz farklı görünür çünkü her biri farklı bir aracı bitti kanca sözleşmesi sunar. Sonuç aynıdır — aracı bir iş akışı kapısı başarısız olurken durma yolundan çekilemez — ama mekanikler farklıdır. Aşağıdaki tablo özeti verir; yalnızca Pi, birrequire-*-before-stop ilkesini etkinleştirmeden önce anlaşılmaya değer kullanıcı tarafından görülen bir anlama sahiptir.
| CLI | Kapı ne zaman çalışır | Ne görürsünüz |
|---|---|---|
| Claude Code | Aynı aracı döngüsü, hemen | Claude çalışmaya devam eder — sorunu düzeltir, sonra yeniden bitirmeyi dener. Sizin için görünen kesinti yok. |
| Codex | Aynı aracı döngüsü, hemen | Claude ile aynı. |
| GitHub Copilot CLI | Aynı aracı döngüsü, hemen | Claude ile aynı (Copilot’un {decision:"block", reason} yeniden deneme kanalını kullanır — Copilot CLI 1.0.41’e karşı ampirik olarak doğrulanmıştır). |
| Cursor Agent | Aynı aracı döngüsü, hemen | Claude ile aynı (Cursor’ın {followup_message} kanalını kullanır — loop_limit kadar sınırlı, varsayılan 5 yeniden deneme). |
| Gemini CLI | Aynı aracı döngüsü, hemen | Claude ile aynı (Gemini’nin AfterAgent üzerinde {decision:"block", reason} kanalını kullanır). |
| OpenCode | Aynı aracı döngüsü, hemen | Claude ile aynı (OpenCode’un client.session.prompt(...) SDK çağrısını hookSpecificOutput.additionalContext aracılığıyla yönlendirilmiş şekilde kullanır). |
| Pi (pi-coding-agent) | Sonraki kullanıcı sırası | Pi görünür şekilde durur kapı çalışırken — aracı döngüsü çıkar ve istemle dönersiniz. Kapı daha sonra bir sonraki istem gönderdiğinizde çalışır: failproofai bir MANDATORY ACTION REQUIRED yönergesi bu dönüşün sistem istemine hazırlar, LLM’ye iş akışı adımını (commit, push, vb.) istediğiniz şeyden önce tamamlamayı talimat verir. |
Pi sınırlaması. Pi’nin
AgentEndEvent (Claude’un Stop kancasının eşdeğeri), bir Sonuç türü yok — Pi’nin aracı döngüsü çıktığında bu çalışır. Pi, Claude / Copilot / Cursor / Gemini / OpenCode’un yapabildiği şekilde aynı döngüyü yeniden denemek için zorlanamaz. failproofai kapıyı Pi’nin before_agent_start olayına kaydırır (sonraki kullanıcı istemi sonra çalışır) böylece iş akışı kontrolü yine uygulanır, sadece geçerli değil sonraki dönüş üzerinde.Pratik olarak bunun anlamı:- Pi durduğunda, ret nedeni Pi oturum kimliğine göre bellek içinde yakalanır. Aynı Pi sürecinde gönderdiğiniz çok sonraki istem bunu boşaltır: LLM sistem isteminin üstünde
MANDATORY ACTION REQUIREDyönergesi görür, taahhüt eder (veya iter / PR açar / CI’nin bitmesini bekler) ve sonra istediğiniz şeyler ile devam eder. Yakalanan ret nedeni tek çekişli — boşaltıldıktan sonra kapı temizlenir. - Kapı Pi’nin süreç yaşam döngüsüne bağlıdır. Pi’yi
Ctrl+Cyaparsanız veya sırasında çıkarsanız, bellek içi giriş süreçle birlikte bırakılır ve kapı kaçırılır. Claude, Copilot, Cursor, Gemini ve OpenCode’un aynı bağlı durumu vardır (aracıyı öldür ve kapı kaçırıldı) — Pi sadece onu daha görünür kılar çünkü aracı kapı çalışmadan önce görünür şekilde çıkar. - Bekleyen bir ret de herhangi bir nedenden
session_shutdownüzerinde temizlenir (new/resume/fork/quit), bu nedenle aynı Pi sürecinde başlatılan yeni bir oturuma adli bir oturumdan kalmış bir kapı sızmaması.
Stop ilkelerinizi diğer altı desteklenen CLI’sinin herhangi biri altında çalıştırın. Pi upstream’ini gelecekteki bir Sonuç türü için AgentEndEvent izleyen bir şekilde takip ediyoruz; bu boşluğu kapatmamıza izin verirdi.require-commit-before-stop
Olay: StopVarsayılan: İşlenmemiş değişiklikler (değiştirilmiş, hazırlanmış veya izlenmeyen dosyalar) olduğunda durmasını reddeder. Çalışma dizini temiz olduğunda bilgilendirici bir mesaj döndürür. Parametre yok.
require-push-before-stop
Olay: StopVarsayılan: İtilmemiş commits olduğunda veya geçerli dal hiçbir uzak izleme dalına sahip olmadığında durmasını reddeder. Gerektiğinde bir izleme dalı oluşturmak için
git push -u önerir. Hiçbir uzak yapılandırılmadığında açık olarak başarısız olur.
Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
remote | string | "origin" | İtilecek uzak ad. |
require-pr-before-stop
Olay: StopVarsayılan: Geçerli dal için hiçbir pull isteği yok olduğunda veya varolan PR birleştirilmeden kapatıldığında durmasını reddeder. Claude’u
gh pr create ile bir PR oluşturması talimat verir. PR birleştirildiğinde, ilke izin verir (çalışma sevk edilmiştir) ve mesaj dal (git checkout main && git pull) kapatması için ipucu verir.
Parametre yok.
Bu ilke GitHub CLI (
gh) yüklü ve doğrulanmış olmasını gerektirir.
Pull isteklerine okuma erişimi için repo kapsamına sahip bir kişisel erişim belirteci ile gh auth login çalıştırın. gh yüklü değilse veya doğrulanmazsa, ilke açık olarak başarısız olur ve nedeni Claude’a raporlar.require-no-conflicts-before-stop
Olay: StopVarsayılan: Geçerli dal temel dala temiz şekilde birleşemediğinde durmasını reddeder. İlke ilk olarak dal için GitHub’da bir
OPEN PR olduğunu onaylar — bir tane olmadan, birleştirme hedefi olmadığından tüm ilke kısa devre ile izin verir. OPEN PR doğrulandıktan sonra, iki bağımsız sonda çalışır:
- Yerel —
git merge-tree --write-tree --name-only origin/<baseBranch> HEAD. Çatışmada, ret mesajı çatışan dosyaları adlandırır; bu nedenle Claude tam olarak hangi dosyaları çözeceğini bilir. - GitHub —
gh pr view --json mergeable,statesonucunu zaten önceden belirlenmiş şekilde yeniden kullanır. Eski bir yerelorigin/<baseBranch>kaçıracağı çatışmaları yakalar (örn. birisi son alma işlemimainüzerinde çatışan bir PR açtığından beri). BirCONFLICTINGsonuç reddeder. BirUNKNOWNsonuç da reddeder ve Claude’u ~10 saniye bekletmeye ve durma denemesinden önce yeniden kontrol etmeye talimat verir — bu yanlış negatifleri engeller; GitHub yeniden hesaplarken.
gh yüklü değil, dal için PR yok, PR’ın durumu OPEN değil (örn. MERGED, CLOSED) veya gh pr view ayrıştırılamaz çıktı döndürdü. Ayrıca açık olarak başarısız olur; origin/<baseBranch> eksik olduğunda veya temel dışında ileriye gidiş yok — bu Katman 1 geri dönüşleri yine de yeniden konumlandırılan PR birleşebilirliği danışmak önce izin verir.
Parametreler:
| Param | Tür | Varsayılan | Açıklama |
|---|---|---|---|
baseBranch | string | "main" | Çatışmaları kontrol etmek için temel dal. |
Bu ilke GitHub CLI (
gh) gerektirir. İlke bir OPEN PR olduğunu onaylamak için gh pr view kulllanır — gh olmadan, ilke kısa devre ile izin verir. gh auth login öğesini pull isteklerine okuma erişimi için repo kapsamına sahip bir kişisel erişim belirteci ile çalıştırın.require-ci-green-before-stop
Olay: StopVarsayılan: CI kontrolleri geçerli dal üzerinde başarısız olduğunda veya çalışırken durmasını reddeder. Hem GitHub Actions iş akışı çalıştırmaları hem de üçüncü taraf bot kontrolleri (örn. CodeRabbit, SonarCloud, Codecov) kontrol eder.
skipped, cancelled ve neutral sonuçları başarısız olarak değerlendirir (ikinci işlem örn. Socket Güvenliği dış katkı PR’leri hakkında uyarılar, uygulama kasıtlı olarak başarısız yerine nötr raporları) İzin verdiğinde tüm kontrolleri geçerse bilgilendirici bir mesaj döndürür.
Parametre yok.
Bu ilke GitHub CLI (
gh) yüklü ve doğrulanmış olmasını gerektirir.
gh auth login öğesini Actions iş akışı çalıştırmaları ve Kontroller API’sine okuma erişimi için repo kapsamına sahip bir kişisel erişim belirteci ile çalıştırın. gh yüklü değilse veya doğrulanmazsa, ilke açık olarak başarısız olur ve nedeni Claude’a raporlar.Bireysel ilkeleri devre dışı bırakma
YapılandırmanızdakienabledPolicies öğesinden belirli bir ilkeyi kaldırın veya pano’nun İlkeler sekmesinde kapatın.
enabledPolicies öğesinde listelenmemiş ilkeler, policyParams girdileri bulunsa bile çalışmaz.
