Gauntlet — Beşli Kırmızı Takım / The Gauntlet — 5-Agent Red Team
TR: Bir projeyi BEŞ bağımsız kırmızı-takım ajanıyla paralel olarak, beş farklı saldırı merceğinden "her olası yoldan" kırmaya çalışır. Her ajan somut, yeniden üretilebilir kanıt üretir (teorik değil); her bulguya önem derecesi + dosya konumu + önerilen düzeltme ekler. Sonuçlar tek bir önem-sıralı rapora birleşir ve dürüst bir karar verilir: gerçekten engelleyici bir açık yoksa bunu açıkça söyler, sorun uydurmaz.
EN: Attacks a project from FIVE independent red-team agents in parallel, each with a distinct attack lens, to break it "in all possible ways." Every agent produces concrete, reproducible evidence (not theory), with severity + file location + suggested fix. Results merge into one severity-ranked report with an honest verdict: if there are no blocking gaps, it says so plainly instead of inventing issues.
0) Kapsam ve GÜVENLİK / Scope & SAFETY (zorunlu / mandatory)
TR — Önce bunları doğrula, sonra başla:
- İLK ADIM — yetki sorusu (zorunlu): Başlamadan önce kullanıcıya AÇIKÇA sor: "Bu projenin sahibi/yetkilisi misin ve güvenlik testi yapılmasını onaylıyor musun? (evet/hayır)" — net "evet" gelmeden devam etme.
- Bu skill YALNIZCA kullanıcının sahibi olduğu / kontrol ettiği bir proje üzerinde çalışır.
- Ajanlar güvenli prob yapar: deneme betiklerini yalnızca
/tmp altında oluşturur; hedef projeyi veya sistemi değiştirmez (yazma/silme/taşıma yok), git durumunu bozmaz.
- Gerçek sömürü yok: üçüncü taraf sistemlere, canlı/uzak servislere veya başkasının altyapısına saldırılmaz; ağ isteği yalnızca açıkça izin verilen yerel hedeflere.
- Veri sızdırma yok: sırlar, tokenlar, müşteri verisi maskelenir (
AKIA****, sk-****); maskeleme hem ajanlara verilen bağlamda hem de son raporda uygulanır (gerçek değerler alt-ajanların istemine asla konmaz); dışarı gönderilmez.
- Yıkıcı testler (fork-bomb, disk doldurma, gerçek DoS) çalıştırılmaz — yalnızca tarif edilir ve küçük, sınırlı bir kanıtla gösterilir.
- Kullanıcı izni olmadan paket kurulmaz; ağ erişimi gerekiyorsa önce sor.
EN — Verify first, then begin:
- FIRST STEP — authorization question (mandatory): Before starting, EXPLICITLY ask the user: "Do you own/control this project and authorize a security test? (yes/no)" — do not proceed without a clear "yes".
- Runs ONLY against a project the user owns / controls.
- Agents probe safely: throwaway scripts live only under
/tmp; the target project and the system are never mutated (no writes/deletes/moves), git state is left untouched.
- No real exploitation: never attack third-party systems, live/remote services, or anyone else's infrastructure; network calls only to explicitly-permitted local targets.
- No data exfiltration: secrets, tokens, customer data are masked (
AKIA****, sk-****); masking applies both in the context passed to agents and in the final report (real values are never placed into a sub-agent's prompt), never sent anywhere.
- Destructive tests (fork bombs, disk-filling, real DoS) are described, not executed — demonstrate with a small, bounded proof only.
- Install no packages without consent; if network access is needed, ask first.
Bu güvenlik kuralları her alt-ajana da aynen iletilir. / These safety rules are passed verbatim into every sub-agent.
1) Keşif / Recon — saldırı yüzeyini haritala / map the attack surface
TR: Ajanları başlatmadan önce hedefi hızlıca tanı (yalnızca okuma):
- Proje türü ve dili: manifest dosyaları (
package.json, requirements.txt, pyproject.toml, go.mod, Cargo.toml, pom.xml, composer.json, Gemfile), Dockerfile, CI (.github/workflows), IaC (*.tf, k8s, docker-compose.yml).
- Giriş noktaları: HTTP route/handler, CLI, kuyruk tüketicileri, public API, webhook'lar.
- Güven sınırları: kullanıcı girdisi, dış servis, dosya/ağ/DB erişimi, auth katmanı.
- Sırlar yüzeyi:
.env*, config, hardcoded anahtar adayları (grep ile, değerler maskeli).
- Git durumu: repo mu? Çok büyükse → değişen/kritik yollara odaklan (
git diff --name-only, son commit'ler, en merkezî modüller).
Bu keşif çıktısını (tür, diller, giriş noktaları, güven sınırları, odak yolları) 5 ajana ortak bağlam olarak ver.
EN: Before launching agents, quickly characterize the target (read-only): project type/language via manifests, Dockerfile, CI, IaC; entry points (HTTP routes/handlers, CLI, queue consumers, public API, webhooks); trust boundaries (user input, external services, file/network/DB, auth layer); secrets surface (.env*, config, hardcoded-key candidates via grep, values masked); git state (is it a repo? if huge → scope to changed/critical paths via git diff --name-only, recent commits, central modules). Feed this recon summary (type, languages, entry points, trust boundaries, focus paths) as shared context to all 5 agents.
2) Beş ajanı PARALEL başlat / Launch EXACTLY 5 agents IN PARALLEL
TR: Task/Agent aracıyla tek seferde, paralel olarak 5 alt-ajan başlat. Her ajana şunları ver: (i) yukarıdaki güvenlik kuralları, (ii) keşif özeti, (iii) yalnızca kendi merceği (mercekler ÇAKIŞMAZ), (iv) zorunlu çıktı sözleşmesi. Her ajan, bulduğu HER sorun için şunu üretmeli:
- Başlık + mercek,
- Önem: Kritik / Yüksek / Orta / Düşük,
- Konum:
dosya:satır (mümkünse),
- Somut yeniden üretim: tam adımlar veya
/tmp altında çalıştırılan küçük, güvenli kanıt (komut + gözlenen çıktı),
- Etki + önerilen düzeltme (mümkünse yama taslağı),
- Güven: doğrulandı / olası / teorik (teorik olanları açıkça işaretle).
Hiçbir şey bulamayan ajan bunu dürüstçe söylemeli — boş bulgu uydurmamalı.
EN: Spawn 5 sub-agents in parallel in a single batch via the Task/Agent tool. Give each: (i) the safety rules above, (ii) the recon summary, (iii) only its own lens (lenses do NOT overlap), (iv) the mandatory output contract. For EVERY issue an agent finds it must produce: title + lens; severity (Critical/High/Medium/Low); location file:line when possible; concrete reproduction (exact steps or a small safe proof run under /tmp — command + observed output); impact + suggested fix (patch sketch if feasible); confidence (confirmed / likely / theoretical — flag theoretical explicitly). An agent that finds nothing must say so honestly — never fabricate findings.
Sınır kuralı / Lens boundary rule: Sırlar/kimlik bilgileri her zaman Mercek 2 (config dosyasında bulunsalar bile); bağımlılık, build/CI ve altyapı yanlış yapılandırması Mercek 5. Çakışmada birleştirme adımı (§3) tekilleştirir. / Secrets/credentials are always Lens 2 (even if found in a config file); dependency, build/CI, and infra misconfiguration are Lens 5. The aggregation step (§3) dedupes any overlap.
Mercek 1 — Enjeksiyon & kod çalıştırma / Injection & code execution
Command/OS injection, SQL/NoSQL injection, eval/exec/pickle ve güvensiz deserialization, template injection (SSTI), path traversal, SSRF, XXE, unsafe reflection. Kullanıcı girdisinin shell/SQL/şablon/dosya yoluna ulaştığı her akışı izle. / Trace every flow where user input reaches a shell, SQL, template, or file path.
Mercek 2 — Kimlik, sırlar & erişim kontrolü / Auth, secrets & access control
Authz bypass / IDOR, eksik veya yanlış yetki kontrolü, hardcoded/exposed secrets & tokens, güvensiz varsayılanlar (debug açık, CORS *, zayıf JWT/secret), privilege escalation, oturum/parola/kripto hataları, .env/config sızıntısı, yetersiz güvenlik loglaması & izleme (OWASP A09).
Mercek 3 — Girdi işleme, sağlamlık & DoS / Input handling, robustness & DoS
Hatalı/boş/aşırı büyük/Unicode/sınır girdiler, çökme & işlenmeyen istisnalar, kaynak tükenmesi (bellek/CPU/dosya tanıtıcı), ReDoS, sınırsız döngü/özyineleme, decompression/upload bombs. Yıkıcı testleri çalıştırma, küçük sınırlı kanıtla göster. / Do not execute destructive tests; show a small bounded proof.
Mercek 4 — Mantık, durum & veri bütünlüğü / Logic, state & data integrity
İş mantığı hataları, yarış koşulları (TOCTOU), off-by-one, yanlış matematik/yuvarlama/para birimi, eşzamanlılık & kilitlenme, idempotency/yeniden deneme hataları, veri bozulması, durum makinesi geçiş hataları, sınır/limit kontrolleri. Öncelik: önce yüksek etkili olanlara odaklan — yarış koşulları, para/matematik hataları ve veri bozulması; off-by-one ve küçük durum hataları ikincildir. / Priority: focus first on high-impact issues — race conditions, money/math errors, and data corruption; off-by-one and minor state bugs are secondary.
Mercek 5 — Bağımlılık, tedarik zinciri, config & dokümantasyon-vs-gerçek / Dependencies, supply chain, config & docs-vs-reality
Bilinen açıklı / sabitlenmemiş (unpinned) bağımlılıklar, riskli transitive deps, sızan/yanlış config & CI sırları, güvensiz build/CI adımları, Docker/IaC yanlış yapılandırması, lisans uyumsuzluğu ve README/dokümanın koddan farkı (var olduğu iddia edilip olmayan ya da farklı davranan özellikler).
3) Birleştirme & DÜRÜST karar / Aggregation & HONEST verdict
TR: Beş ajan dönünce:
- Tekilleştir (dedupe): aynı kök neden farklı merceklerden geldiyse birleştir, hangi merceklerin yakaladığını not et.
- Önem sırala: Kritik → Yüksek → Orta → Düşük. Çakışan önemde en yükseği al.
- Doğrula: "teorik" bulguları ayır; mümkünse yeniden üretimi teyit et, edemezsen "doğrulanmadı" diye işaretle. Yalnızca teorik/doğrulanmamış bulgular kararı tek başına ENGELLEMEZ — "GEÇMEDİ" için doğrulanmış (confirmed) bir Kritik/Yüksek bulgu gerekir; teorik olanlar rapora "incelenmeli" notuyla girer. / Theoretical-only (unverified) findings do NOT block the verdict on their own — a "FAILED" requires a confirmed Critical/High; theoretical ones are listed as "needs review."
- Dürüst karar ver:
- Engelleyici (Kritik/Yüksek) bulgu varsa → "GEÇMEDİ", en kritik N bulgu öne.
- Yoksa → "Engelleyici açık bulunamadı" de; küçük iyileştirmeleri Orta/Düşük olarak listele. Sorun uydurma, yapay güvence verme. Hangi alanların test edildiğini ve sınırlamaları (zaman, kapsam, çalıştırılmayan yıkıcı testler) açıkça yaz.
EN: When all five return: dedupe (merge same root cause across lenses, note which lenses caught it); severity-rank (Critical → High → Medium → Low; on conflict take the highest); validate (separate "theoretical", confirm reproductions where possible else mark "unverified"); give an honest verdict — if any blocking (Critical/High) issue → "FAILED" with top-N up front; otherwise state "No blocking gaps found," list minor improvements as Medium/Low, and do not fabricate or give false assurance. Always state what was covered and the limitations (time, scope, destructive tests not executed).
4) Rapor formatı / Report format (TR + EN)
# 🛡️ Gauntlet Raporu / Gauntlet Report — <proje adı / project>
Tarih/Date: <...> | Kapsam/Scope: <yollar/paths> | Git: <branch/commit veya "non-git">
## Karar / Verdict
<GEÇTİ / GEÇMEDİ — PASS / FAIL> — <tek cümle gerekçe / one-line rationale>
Sayım / Counts: Kritik <n> · Yüksek <n> · Orta <n> · Düşük <n>
## Kritik & Yüksek / Critical & High
### [KRITIK] <başlık / title> (Mercek/Lens 1: Injection)
- Konum / Location: path/to/file.py:42
- Yeniden üretim / Repro: <komut + gözlenen çıktı / command + observed output>
- Etki / Impact: <...>
- Düzeltme / Fix: <yama taslağı / patch sketch>
- Güven / Confidence: doğrulandı / confirmed
## Orta & Düşük / Medium & Low
- [ORTA] <başlık> — <konum> — <kısa not + düzeltme>
- ...
## Kapsam & Sınırlamalar / Coverage & Limitations
- Çalışan mercekler / Lenses run: 1–5
- Çalıştırılmayan / Not executed: <yıkıcı/uzak testler — destructive/remote>
- Sırlar maskeli / Secrets masked: evet / yes
## Sonraki adım / Next step
<Önerilen düzeltme sırası / suggested fix order; "düzelt → yeniden saldır" döngüsü / "fix → re-attack" loop>
5) Düzelt & yeniden saldır (opsiyonel) / Fix & re-attack (optional)
TR: Kullanıcı isterse: en yüksek önemli bulguları düzeltmeyi öner (uygula yalnızca kullanıcı "düzelt" derse — bu skill varsayılan olarak salt-okumadır), sonra aynı 5 ajanı yeniden başlat. "Temiz" (Kritik/Yüksek = 0) olana ya da kullanıcı durana kadar döngüyü tekrarla. Her turda hangi bulguların kapandığını/kaldığını/yeni açıldığını kıyasla.
EN: If the user wants: propose fixes for the highest-severity findings (apply only if the user says "fix" — this skill is read-only by default), then re-launch the same 5 agents. Repeat until "clean" (Critical/High = 0) or the user stops, diffing each round which findings closed / remain / newly opened.
Kenar durumlar / Edge cases
TR:
- Kod projesi değilse (web uygulaması/API/altyapı/IaC): mercekleri uyarla — Mercek 1 endpoint enjeksiyonu & SSRF, Mercek 2 auth/CORS/header/TLS, Mercek 3 hız sınırı/payload limitleri, Mercek 5 bulut/IaC/Docker yanlış yapılandırması ve açık portlar. Çalıştırma değil, yapılandırma & davranış incele.
- Çok büyük repo: değişen veya kritik yollara odaklan (
git diff, giriş noktaları, en merkezî modüller); kapsamı raporda belirt.
- Git olmayan dizin: sorun değil; dosya sistemi taramasına geç, kapsamı "non-git" olarak işaretle.
- Belirsiz / boş hedef: durup netleştir; tahminle saldırma.
- Yapay güvence yok: hiçbir şey bulunamadıysa "bulunamadı" + sınırlamalar yaz; asla sorun icat etme.
EN:
- Not a code project (web app/API/infra/IaC): adapt lenses — Lens 1 endpoint injection & SSRF, Lens 2 auth/CORS/headers/TLS, Lens 3 rate limits/payload caps, Lens 5 cloud/IaC/Docker misconfig & open ports. Inspect configuration & behavior, not execution.
- Very large repo: scope to changed/critical paths (
git diff, entry points, central modules); state the scope in the report.
- Non-git directory: fine — fall back to a filesystem scan, mark scope "non-git".
- Ambiguous/empty target: stop and clarify; never attack on a guess.
- No false assurance: if nothing found, report "none found" + limitations; never invent issues.
1---2name: gauntlet3description: Bir projeyi 5 paralel kırmızı-takım ajanıyla "her yönden" kırmaya çalışır; her ajan farklı bir saldırı merceğiyle somut ve yeniden üretilebilir bulgular çıkarır, sonra hepsi tek bir önem-sıralı dürüst rapora birleşir (açık yoksa "temiz" der, asla uydurmaz). Use when the user wants to red team a project, stress-test or try to break their own code or app, find security or quality gaps, run a 5-agent adversarial audit, or get an honest break-it report — triggers include "red team my project", "try to break this", "find security gaps", "stress test", "adversarial audit", "projeyi kır", "güvenlik açıklarını bul", "kırmızı takım", "her yönden dene", "güvenlik denetimi", "saldırı simülasyonu", "kırmaya çalış".4---56# Gauntlet — Beşli Kırmızı Takım / The Gauntlet — 5-Agent Red Team78**TR:** Bir projeyi BEŞ bağımsız kırmızı-takım ajanıyla paralel olarak, beş farklı saldırı merceğinden "her olası yoldan" kırmaya çalışır. Her ajan **somut, yeniden üretilebilir** kanıt üretir (teorik değil); her bulguya önem derecesi + dosya konumu + önerilen düzeltme ekler. Sonuçlar tek bir önem-sıralı rapora birleşir ve **dürüst bir karar** verilir: gerçekten engelleyici bir açık yoksa bunu açıkça söyler, sorun uydurmaz.910**EN:** Attacks a project from FIVE independent red-team agents in parallel, each with a distinct attack lens, to break it "in all possible ways." Every agent produces **concrete, reproducible** evidence (not theory), with severity + file location + suggested fix. Results merge into one severity-ranked report with an **honest verdict**: if there are no blocking gaps, it says so plainly instead of inventing issues.1112---1314## 0) Kapsam ve GÜVENLİK / Scope & SAFETY (zorunlu / mandatory)1516**TR — Önce bunları doğrula, sonra başla:**17- **İLK ADIM — yetki sorusu (zorunlu):** Başlamadan önce kullanıcıya AÇIKÇA sor: *"Bu projenin sahibi/yetkilisi misin ve güvenlik testi yapılmasını onaylıyor musun? (evet/hayır)"* — net "evet" gelmeden devam etme.18- Bu skill YALNIZCA kullanıcının **sahibi olduğu / kontrol ettiği** bir proje üzerinde çalışır.19- Ajanlar **güvenli prob** yapar: deneme betiklerini yalnızca `/tmp` altında oluşturur; hedef projeyi veya sistemi **değiştirmez** (yazma/silme/taşıma yok), `git` durumunu bozmaz.20- **Gerçek sömürü yok:** üçüncü taraf sistemlere, canlı/uzak servislere veya başkasının altyapısına saldırılmaz; ağ isteği yalnızca açıkça izin verilen yerel hedeflere.21- **Veri sızdırma yok:** sırlar, tokenlar, müşteri verisi **maskelenir** (`AKIA****`, `sk-****`); maskeleme hem **ajanlara verilen bağlamda** hem de **son raporda** uygulanır (gerçek değerler alt-ajanların istemine asla konmaz); dışarı gönderilmez.22- Yıkıcı testler (fork-bomb, disk doldurma, gerçek DoS) **çalıştırılmaz** — yalnızca tarif edilir ve küçük, sınırlı bir kanıtla gösterilir.23- Kullanıcı izni olmadan paket kurulmaz; ağ erişimi gerekiyorsa önce sor.2425**EN — Verify first, then begin:**26- **FIRST STEP — authorization question (mandatory):** Before starting, EXPLICITLY ask the user: *"Do you own/control this project and authorize a security test? (yes/no)"* — do not proceed without a clear "yes".27- Runs ONLY against a project the user **owns / controls**.28- Agents **probe safely**: throwaway scripts live only under `/tmp`; the target project and the system are **never mutated** (no writes/deletes/moves), `git` state is left untouched.29- **No real exploitation:** never attack third-party systems, live/remote services, or anyone else's infrastructure; network calls only to explicitly-permitted local targets.30- **No data exfiltration:** secrets, tokens, customer data are **masked** (`AKIA****`, `sk-****`); masking applies both **in the context passed to agents** and **in the final report** (real values are never placed into a sub-agent's prompt), never sent anywhere.31- Destructive tests (fork bombs, disk-filling, real DoS) are **described, not executed** — demonstrate with a small, bounded proof only.32- Install no packages without consent; if network access is needed, ask first.3334> Bu güvenlik kuralları her alt-ajana da aynen iletilir. / These safety rules are passed verbatim into every sub-agent.3536---3738## 1) Keşif / Recon — saldırı yüzeyini haritala / map the attack surface3940**TR:** Ajanları başlatmadan önce hedefi hızlıca tanı (yalnızca okuma):41- **Proje türü ve dili:** manifest dosyaları (`package.json`, `requirements.txt`, `pyproject.toml`, `go.mod`, `Cargo.toml`, `pom.xml`, `composer.json`, `Gemfile`), `Dockerfile`, CI (`.github/workflows`), IaC (`*.tf`, `k8s`, `docker-compose.yml`).42- **Giriş noktaları:** HTTP route/handler, CLI, kuyruk tüketicileri, public API, webhook'lar.43- **Güven sınırları:** kullanıcı girdisi, dış servis, dosya/ağ/DB erişimi, auth katmanı.44- **Sırlar yüzeyi:** `.env*`, config, hardcoded anahtar adayları (`grep` ile, değerler maskeli).45- **Git durumu:** repo mu? Çok büyükse → değişen/kritik yollara odaklan (`git diff --name-only`, son commit'ler, en merkezî modüller).4647Bu keşif çıktısını (tür, diller, giriş noktaları, güven sınırları, odak yolları) **5 ajana ortak bağlam** olarak ver.4849**EN:** Before launching agents, quickly characterize the target (read-only): project type/language via manifests, `Dockerfile`, CI, IaC; entry points (HTTP routes/handlers, CLI, queue consumers, public API, webhooks); trust boundaries (user input, external services, file/network/DB, auth layer); secrets surface (`.env*`, config, hardcoded-key candidates via `grep`, values masked); git state (is it a repo? if huge → scope to changed/critical paths via `git diff --name-only`, recent commits, central modules). Feed this recon summary (type, languages, entry points, trust boundaries, focus paths) as **shared context to all 5 agents.**5051---5253## 2) Beş ajanı PARALEL başlat / Launch EXACTLY 5 agents IN PARALLEL5455**TR:** Task/Agent aracıyla **tek seferde, paralel olarak 5 alt-ajan** başlat. Her ajana şunları ver: (i) yukarıdaki güvenlik kuralları, (ii) keşif özeti, (iii) yalnızca kendi merceği (mercekler ÇAKIŞMAZ), (iv) zorunlu çıktı sözleşmesi. Her ajan, bulduğu HER sorun için şunu üretmeli:56- **Başlık** + **mercek**,57- **Önem:** Kritik / Yüksek / Orta / Düşük,58- **Konum:** `dosya:satır` (mümkünse),59- **Somut yeniden üretim:** tam adımlar veya `/tmp` altında çalıştırılan küçük, güvenli kanıt (komut + gözlenen çıktı),60- **Etki** + **önerilen düzeltme** (mümkünse yama taslağı),61- **Güven:** doğrulandı / olası / teorik (teorik olanları açıkça işaretle).6263Hiçbir şey bulamayan ajan bunu dürüstçe söylemeli — boş bulgu uydurmamalı.6465**EN:** Spawn **5 sub-agents in parallel in a single batch** via the Task/Agent tool. Give each: (i) the safety rules above, (ii) the recon summary, (iii) only its own lens (lenses do NOT overlap), (iv) the mandatory output contract. For EVERY issue an agent finds it must produce: **title + lens**; **severity** (Critical/High/Medium/Low); **location** `file:line` when possible; **concrete reproduction** (exact steps or a small safe proof run under `/tmp` — command + observed output); **impact + suggested fix** (patch sketch if feasible); **confidence** (confirmed / likely / theoretical — flag theoretical explicitly). An agent that finds nothing must say so honestly — never fabricate findings.6667> **Sınır kuralı / Lens boundary rule:** Sırlar/kimlik bilgileri **her zaman Mercek 2** (config dosyasında bulunsalar bile); bağımlılık, build/CI ve altyapı yanlış yapılandırması **Mercek 5**. Çakışmada birleştirme adımı (§3) tekilleştirir. / Secrets/credentials are **always Lens 2** (even if found in a config file); dependency, build/CI, and infra misconfiguration are **Lens 5**. The aggregation step (§3) dedupes any overlap.6869### Mercek 1 — Enjeksiyon & kod çalıştırma / Injection & code execution70Command/OS injection, SQL/NoSQL injection, `eval`/`exec`/`pickle` ve güvensiz deserialization, template injection (SSTI), path traversal, SSRF, XXE, unsafe reflection. Kullanıcı girdisinin shell/SQL/şablon/dosya yoluna ulaştığı her akışı izle. / Trace every flow where user input reaches a shell, SQL, template, or file path.7172### Mercek 2 — Kimlik, sırlar & erişim kontrolü / Auth, secrets & access control73Authz bypass / IDOR, eksik veya yanlış yetki kontrolü, hardcoded/exposed secrets & tokens, güvensiz varsayılanlar (debug açık, CORS `*`, zayıf JWT/secret), privilege escalation, oturum/parola/kripto hataları, `.env`/config sızıntısı, yetersiz güvenlik loglaması & izleme (OWASP A09).7475### Mercek 3 — Girdi işleme, sağlamlık & DoS / Input handling, robustness & DoS76Hatalı/boş/aşırı büyük/Unicode/sınır girdiler, çökme & işlenmeyen istisnalar, kaynak tükenmesi (bellek/CPU/dosya tanıtıcı), ReDoS, sınırsız döngü/özyineleme, decompression/upload bombs. Yıkıcı testleri **çalıştırma**, küçük sınırlı kanıtla göster. / Do not execute destructive tests; show a small bounded proof.7778### Mercek 4 — Mantık, durum & veri bütünlüğü / Logic, state & data integrity79İş mantığı hataları, yarış koşulları (TOCTOU), off-by-one, yanlış matematik/yuvarlama/para birimi, eşzamanlılık & kilitlenme, idempotency/yeniden deneme hataları, veri bozulması, durum makinesi geçiş hataları, sınır/limit kontrolleri. **Öncelik:** önce yüksek etkili olanlara odaklan — yarış koşulları, para/matematik hataları ve veri bozulması; off-by-one ve küçük durum hataları ikincildir. / **Priority:** focus first on high-impact issues — race conditions, money/math errors, and data corruption; off-by-one and minor state bugs are secondary.8081### Mercek 5 — Bağımlılık, tedarik zinciri, config & dokümantasyon-vs-gerçek / Dependencies, supply chain, config & docs-vs-reality82Bilinen açıklı / sabitlenmemiş (unpinned) bağımlılıklar, riskli transitive deps, sızan/yanlış config & CI sırları, güvensiz build/CI adımları, Docker/IaC yanlış yapılandırması, lisans uyumsuzluğu ve **README/dokümanın koddan farkı** (var olduğu iddia edilip olmayan ya da farklı davranan özellikler).8384---8586## 3) Birleştirme & DÜRÜST karar / Aggregation & HONEST verdict8788**TR:** Beş ajan dönünce:891. **Tekilleştir (dedupe):** aynı kök neden farklı merceklerden geldiyse birleştir, hangi merceklerin yakaladığını not et.902. **Önem sırala:** Kritik → Yüksek → Orta → Düşük. Çakışan önemde en yükseği al.913. **Doğrula:** "teorik" bulguları ayır; mümkünse yeniden üretimi teyit et, edemezsen "doğrulanmadı" diye işaretle. **Yalnızca teorik/doğrulanmamış bulgular kararı tek başına ENGELLEMEZ** — "GEÇMEDİ" için doğrulanmış (confirmed) bir Kritik/Yüksek bulgu gerekir; teorik olanlar rapora "incelenmeli" notuyla girer. / Theoretical-only (unverified) findings do NOT block the verdict on their own — a "FAILED" requires a *confirmed* Critical/High; theoretical ones are listed as "needs review."924. **Dürüst karar ver:**93 - Engelleyici (Kritik/Yüksek) bulgu varsa → **"GEÇMEDİ"**, en kritik N bulgu öne.94 - Yoksa → **"Engelleyici açık bulunamadı"** de; küçük iyileştirmeleri Orta/Düşük olarak listele. **Sorun uydurma, yapay güvence verme.** Hangi alanların test edildiğini ve sınırlamaları (zaman, kapsam, çalıştırılmayan yıkıcı testler) açıkça yaz.9596**EN:** When all five return: **dedupe** (merge same root cause across lenses, note which lenses caught it); **severity-rank** (Critical → High → Medium → Low; on conflict take the highest); **validate** (separate "theoretical", confirm reproductions where possible else mark "unverified"); **give an honest verdict** — if any blocking (Critical/High) issue → **"FAILED"** with top-N up front; otherwise state **"No blocking gaps found,"** list minor improvements as Medium/Low, and **do not fabricate or give false assurance.** Always state what was covered and the limitations (time, scope, destructive tests not executed).9798---99100## 4) Rapor formatı / Report format (TR + EN)101102```103# 🛡️ Gauntlet Raporu / Gauntlet Report — <proje adı / project>104Tarih/Date: <...> | Kapsam/Scope: <yollar/paths> | Git: <branch/commit veya "non-git">105106## Karar / Verdict107<GEÇTİ / GEÇMEDİ — PASS / FAIL> — <tek cümle gerekçe / one-line rationale>108Sayım / Counts: Kritik <n> · Yüksek <n> · Orta <n> · Düşük <n>109110## Kritik & Yüksek / Critical & High111### [KRITIK] <başlık / title> (Mercek/Lens 1: Injection)112- Konum / Location: path/to/file.py:42113- Yeniden üretim / Repro: <komut + gözlenen çıktı / command + observed output>114- Etki / Impact: <...>115- Düzeltme / Fix: <yama taslağı / patch sketch>116- Güven / Confidence: doğrulandı / confirmed117118## Orta & Düşük / Medium & Low119- [ORTA] <başlık> — <konum> — <kısa not + düzeltme>120- ...121122## Kapsam & Sınırlamalar / Coverage & Limitations123- Çalışan mercekler / Lenses run: 1–5124- Çalıştırılmayan / Not executed: <yıkıcı/uzak testler — destructive/remote>125- Sırlar maskeli / Secrets masked: evet / yes126127## Sonraki adım / Next step128<Önerilen düzeltme sırası / suggested fix order; "düzelt → yeniden saldır" döngüsü / "fix → re-attack" loop>129```130131---132133## 5) Düzelt & yeniden saldır (opsiyonel) / Fix & re-attack (optional)134135**TR:** Kullanıcı isterse: en yüksek önemli bulguları düzeltmeyi öner (uygula yalnızca kullanıcı "düzelt" derse — bu skill varsayılan olarak salt-okumadır), sonra **aynı 5 ajanı yeniden başlat**. "Temiz" (Kritik/Yüksek = 0) olana ya da kullanıcı durana kadar döngüyü tekrarla. Her turda hangi bulguların kapandığını/kaldığını/yeni açıldığını kıyasla.136137**EN:** If the user wants: propose fixes for the highest-severity findings (apply only if the user says "fix" — this skill is read-only by default), then **re-launch the same 5 agents**. Repeat until "clean" (Critical/High = 0) or the user stops, diffing each round which findings closed / remain / newly opened.138139---140141## Kenar durumlar / Edge cases142143**TR:**144- **Kod projesi değilse** (web uygulaması/API/altyapı/IaC): mercekleri uyarla — Mercek 1 endpoint enjeksiyonu & SSRF, Mercek 2 auth/CORS/header/TLS, Mercek 3 hız sınırı/payload limitleri, Mercek 5 bulut/IaC/Docker yanlış yapılandırması ve açık portlar. Çalıştırma değil, yapılandırma & davranış incele.145- **Çok büyük repo:** değişen veya kritik yollara odaklan (`git diff`, giriş noktaları, en merkezî modüller); kapsamı raporda belirt.146- **Git olmayan dizin:** sorun değil; dosya sistemi taramasına geç, kapsamı "non-git" olarak işaretle.147- **Belirsiz / boş hedef:** durup netleştir; tahminle saldırma.148- **Yapay güvence yok:** hiçbir şey bulunamadıysa "bulunamadı" + sınırlamalar yaz; asla sorun icat etme.149150**EN:**151- **Not a code project** (web app/API/infra/IaC): adapt lenses — Lens 1 endpoint injection & SSRF, Lens 2 auth/CORS/headers/TLS, Lens 3 rate limits/payload caps, Lens 5 cloud/IaC/Docker misconfig & open ports. Inspect configuration & behavior, not execution.152- **Very large repo:** scope to changed/critical paths (`git diff`, entry points, central modules); state the scope in the report.153- **Non-git directory:** fine — fall back to a filesystem scan, mark scope "non-git".154- **Ambiguous/empty target:** stop and clarify; never attack on a guess.155- **No false assurance:** if nothing found, report "none found" + limitations; never invent issues.