PROMPT KARTI

Claude Code · Spark · Gemini · ChatGPT · Cowork — alanları doldur, kopyala, yapıştır

1 · DEĞİŞTİRİLECEK ALANLAR

Yalnız burayı doldur. Aşağıdaki bütün promptlar anında güncellenir.

Slug dosya adlarında geçen küçük harfli addır: sanliurfa, finger-lakes. Emin değilsen ls HR-Analysis-Scraper-Data/dokum/ | grep <tarih>.
Ortam bütün promptların yolunu değiştirir: Local'de kök /Users/b./Desktop/Personal-HR Analysis ve döküm HR-Analysis-Scraper-Data/dokum/; Cloud'da kök . (repo köki) ve döküm HR-Analysis-Scraper-Data/dokum-cloud/<tarih>/. Ayrıntı aşağıdaki ORTAM bölümünde.
Tarih sayfa açıldığında bugüne ayarlanır; gece çekimi ya da yarının kartı için Yarın düğmesine bas.
Kapsam ile Seçili koşular aynı şey değildir: Kapsam analiz bloklarının başlığına yazılan cümledir (bütün koşular, tek rapor) ve raporun kapsam notunu belirler; Seçili koşular yalnız CC-5 bloğunda kullanılan koşu aralığıdır (3-8) ve hr-tekatis.py --kosular parametresine birebir gider. Tam kart çalışıyorsan ikincisine dokunma.
Prompt dosyası yurt dışında ülkeye göre seçilir: ABD ve Kanada bir dosya, diğer bütün ülkeler öteki. Yürürlüğü diskten doğrula: ls HR-Analysis-Promptlar/atyarisi-*v*.md

1B · ORTAM — LOCAL Mİ, CLOUD MU

Aynı kart analizini iki yerde koşabilirsin. Fark yalnız yollarda ve çekim yapılıp yapılamamasında.

neLocal · MacCloud · claude.ai/code
kök/Users/b./Desktop/Personal-HR Analysis. (repo köki)
dökümHR-Analysis-Scraper-Data/dokum/ — tam korpus, 1,1 GBHR-Analysis-Scraper-Data/dokum-cloud/<GG-AA-YYYY>/ — günün dilimi
dilimde ne varhepsi: ANALIZ · DETAY · .jsonANALIZ + DETAY; .json YOK
üretim DB'si · raw/var (374 MB · 515 MB)YOK — GitHub'ın dosya sınırı 100 MB
çekim / tazelemekoşarKOŞMAZ

Cloud'da KOŞAN bloklar: CC-1 · CC-5 · CC-6 · CC-7 · CC-8 · CC-9 — hepsi yalnız dökümü ve raporu okur.

Cloud'da KOŞMAYAN bloklar: CC-2 · CC-3 · CC-4 · CC-10 — içlerinde çekim var (hr-cek.py, scraper-v2.py). CC-3'ün .json damga satırı da koşmaz, dilimde .json yoktur. Bu dört blok için Local'e geç.

Dilim local'de üretilir, cloud'a push ile gider: python3 HR-Analysis-Urun/hr/hr-cloud-hazirla.py → git add HR-Analysis-Scraper-Data/dokum-cloud && git commit -m "data: cloud dilimi" && git push. Varyantlar ve sıra kuralı KOMUT KARTI 1.1'de. ⚠ Tazelemeden SONRA üret, yoksa cloud'a eski döküm gider.

CLOUD'DA İKİ KURAL — çakışmayı bunlar önler.

kuralnedennasıl
Çıktı adına -cloud ekiAynı kartı local'de de analiz edersen iki taraf aynı dosya adını yazar; biri ötekini ezer ya da git pull'da çakışır. Repo bu sorunu paralel üretimde kaynak ekiyle çözüyor (-spark dosyaları).Kendiliğinden oluyor: Ortam = Cloud seçildiğinde bütün çıktı adları -cloud eki alır — analiz .md ve .html, prompt notu, fark dosyası, kupon, denetim. Local'de ek boştur, adlar bugünküyle aynı kalır.
Ayrı dal + commit + pushCloud sandbox'ı kapanınca yazdığı dosya kaybolur; sana ancak git ile gelir. Aynı dalda iki yerden commit'lemek de ayrışma üretir.Cloud oturumuna söyle: kendi dalında çalış, bitirince commit + push et, dal adını yaz. Sonra local'de git pull ya da PR. Ölçülen örnek: 25.09 İstanbul analizi claude/brave-gates-00rxd4 dalından PR #1 ile geldi.

⚠ Cloud oturumu kendi dalına geçtiğinde yerel dalın onun çizgisine kayabilir; git pull sonrası git log --oneline -3 ile nerede olduğuna bak. Kendi commit'in kaybolmuş görünürse silinmemiştir, origin/<dal>'da durur, git merge origin/<dal> geri getirir.

2 · HANGİ PROMPTU KULLANACAĞIM

Üç soru, tek cevap. Karar veremiyorsan tabloya bak.

SORU 1 — Elimde ne var?

durumblokneden
Döküm hazır, saat erken, kartın tamamı lazımCC-1günlük iş budur
Döküm yok ya da çok eskiCC-2önce çeker, sonra analiz eder; çekim düşerse analize geçmez
Kartın ilk koşuları koşulduCC-3koşulmuş ayağı kapsam dışı bırakır, kapanmış altılıya öneri yazmaz
Rapor var, at çıktı / jokey değiştiCC-4raporu yeniden yazdırmaz, yalnız farkı ölçer
Yalnız birkaç koşu lazımCC-5kapsamı daraltır, altılı önerisini kapatır

SORU 2 — Kart nerede?

Yurt içiyse yukarıdaki bloklar yeter. Yurt dışıysa CC-6 kullan: ülkeye göre doğru prompt dosyasını seçtirir ve yurt dışında ölçülmüş en büyük hatayı (başka atın derecesini bu ata yazma) ayrıca kapatır.

SORU 3 — Analizden sonra ne yapacağım?

durumblok
Ölçüm geldi, kupon kurulacakCC-7
Kupon kurulmuş, doğru mu diye baktıracağımCC-8
Rapor geldi, güvenilir mi bilmiyorumCC-9
Gün bitti, HTML ve teslimCC-10
İkinci bir motorun görüşü lazım4. bölüm

Kısa yol: normal bir günde sırası CC-1 → CC-9 → CC-7 → CC-10. Geç kalmışsan CC-1 yerine CC-3, kart elinde yoksa CC-2.

3 · CLAUDE CODE PROMPTLARI

Terminale yapıştırılır. Hepsi HTML üretir, hiçbiri PDF üretmez. Kutuya tıklarsan tamamı seçilir.

CC-1 · TAM KART günlük iş · döküm hazır

Kart tablosunu ve kanıt durumunu prompt kendisi ölçer, hipodrom başına ayrı prompt yazmaya gerek yok. İçinde veri izolasyonu kapısı var.

{{KART}} {{TARIHN}} — TAM KART ANALİZİ

## PROMPT — KURALIN TEK KAYNAĞI
{{KOK}}/HR-Analysis-Promptlar/{{PROMPTDOSYA}}
Baştan sona oku, özetleme. Değişiklik günlüğü OKUNMAZ. Sürümü diskten doğrula:
  ls {{KOK}}/HR-Analysis-Promptlar/atyarisi-*v*.md
Yurt dışı kartlarında iki dosya da aynı numarayı taşır (bugün v7.1, önceki v7.0): ABD ve Kanada → -abd-canada, diğer her ülke → -hepsi.
"En yüksek numara" tek başına AYIRT ETMEZ, önce ülke eki seçilir.

## ÇALIŞTIRMA DEĞİŞKENLERİ
Kart: {{KART}} | Ülke: {{ULKE}} | Tarih: {{TARIHN}} | Kapsam: {{KAPSAM}}

## VERİ KAYNAĞI — TEK KAYNAK
{{DOKUM}}/{{SLUG}}-veri-{{TARIH}}-v2-ANALIZ.md
DETAY bütün olarak OKUNMAZ · .json HİÇ AÇILMAZ · siteye GİRİLMEZ · dış kaynak YOK.
Adı doğrula: ls -la "{{DOKUM}}/" | grep {{TARIH}}
Döküm yoksa DUR ve söyle. Üretim saatini beyanına yaz; ilk koşuya 8 saatten fazla varsa
"döküm eski, tazeleme gerekebilir" satırını ekle ve devam et.

## ZAMAN KAPISI
Başlarken saati al. Başlamış koşu kapsam dışıdır: analiz edilmez, AYAK PLANI'na ve altılı önerisine
girmez, tek satır not düşülür. Sonucu okunmaz, aranmaz. İlk ayağı koşulmuş altılı KAPANMIŞTIR.

## VERİ İZOLASYONU — ÖNCE AYIKLA, SONRA YAZ (21.09 ölçümü)
Ölçüldü: harici motor raporlarında bir ata yazılan derecelerin %45'e kadarı **başka bir atın**
derecesiydi, %80'e kadarı dökümde hiç yoktu. Bu kapı onun içindir.
1. Bir koşuyu yazmadan önce o koşunun VERİ KARTINI çıkar: her at için **yalnız kendi döküm bloğundan**
   tarih · hipodrom · mesafe · zemin · derece · sıra · boy farkı · kilo · jokey. Boş alan `KAYNAKTA YOK`.
2. Analiz cümlelerindeki her sayı bu karttan gelir. Başka atın satırından sayı taşınmaz.
3. **ORTAK KOŞU satırından derece alınmaz.** O satır sıra ve kadro bilgisidir; derece ancak atın kendi
   bloğunda yazılıysa kullanılır. Bulaşmanın ana kanalı budur.
4. Kıyas cümlesi kurarsan rakip atı adıyla an: `ikinciye 0,73 sn (13 ŞİMENDİFER)`. Adı anılmayan
   rakip derecesi bulaşma sayılır.
5. **DERECE, ATIN KENDİ ALANINDAN YAZILIR (22.09 ölçümü).** Atın kendi `derece` alanı `KAYNAKTA YOK` ise
   o at için derece YAZILMAZ; yerine kaynağın verdiği ilişki yazılır: `kazanana 8 boy` · `kazanana 0,42 sn`.
   `kazanan_derece` o atın derecesi değildir; kullanılacaksa sahibi adıyla anılır: `koşuyu 1.12.13 ile kazanan at`.
   Gerekçe derece üzerine kurulacaksa o derece atın KENDİ derecesi olmak zorundadır, değilse o gerekçe derece üzerine kurulmaz.
   Ölçü: yurt dışı raporlarında yazılan derecelerin %26,9'u (boru hattı) ve %33,5'i (harici motor) kazananın derecesiydi.
6. **Derece yazılan her cümlede MESAFE de yazılır.** Mesafe, uydurmanın en ucuz yakalayıcısıdır.
6b. **SATIR BÜTÜNLÜĞÜ (23.09 ölçümü).** Bir geçmiş koşudan alıntı yapılırken tarih · hipodrom · mesafe · zemin ·
   sıra/kadro · derece · boy farkı · kilo · jokey **aynı satırdan** gelir, farklı satırlardan alan birleştirilmez.
   Her geçmiş koşu cümlesi en az **üçlü kimlik** taşır: `tarih + mesafe + sıra/kadro` (örnek: `12.08 Pinjarra 1200 m, 2/10`).
   Üçlüden biri kaynakta yoksa cümle KURULMAZ. Jokey adı o satırın jokey alanından alınır, atın bugünkü
   deklare jokeyinden değil. Ortak koşu satırı geçmiş koşu kaydı değildir; oradan yalnız sıra ve rakip kıyası alınır.
7. Teslimden önce **bütün** derece değerlerini kendi atının alanında ara, örnekleme yapma. Kapanışa tek satır:
   `SAYI İZİ: <toplam> değerin <n> tanesi izsizdi, <m> düzeltildi`. Hiçbir yerde olmayan değerin satırı silinir.
8. Aynı taramada her geçmiş koşu cümlesinin **üçlü kimliğini** (tarih + mesafe + sıra/kadro) atın KENDİ
   tablosunda ara; üçü aynı satırda bulunmuyorsa cümle yanlıştır, düzelt ya da sil. İkinci kapanış satırı:
   `SATIR İZİ: <toplam cümle> cümlenin <n> tanesi doğrulandı, <m> düzeltildi`.

## KART ÖLÇÜMÜ — SEN ÖLÇ, BEN YAZMIYORUM
Analize başlamadan önce dökümün DURUM RAPORU ve koşu başlıklarından ölç ve tek blok hâlinde yaz:
koşu tablosu (no · saat · mesafe/pist · şart · kadro · tabela tavanı · pist-mesafe tekeli olan at sayısı) ·
kanıt durumu (veri doluluğu, ULAŞILAMADI, galop ve HP doluluğu, firster sayısı, jokey kaynağı, [AY]/[HIP] sayısı) ·
kartın özellikleri (kaç zemin, aynı kalıptan kaç koşu, kadrosu 13+ kaç koşu, en dar koşu) ·
bahis programı (`meta.bahis_programi` alanından, ezberden değil).

## DERİNLİK — KADRODAN TÜRER
Her koşuda: GANYAN gerekçesi en az üç ölçülen alana dayanır ve her alanın sayısı yazılır · TABELA'daki her atın
yanında en az bir sayı olur · kadro HP medyanı hesaplanır ve kaç atla hesaplandığı yazılır · GÖZDEN KAÇANLAR'a
en az bir at, kadro 13 ve üzeriyse iki at girer · pist-mesafe tekeli olan her at için o pist-mesafedeki kazanma
sayısı, son derecesi ve bugünkü kilosu yazılır · firster atlar için son 3 galop (tarih · tesis · son 400) yazılır
(yurt içi kaynağında iş mesafesi ve iş derecesi yoktur, istenmez; prompt 3.2).
Teslimden önce say: koşu sayısı × 6 bahis kalemi (prompt 10.2(1): Ganyan · İlk 2 · İlk 3 · TABELA · Sıralı 3'lü · Sıralı 5'li;
kadro 5 attan azsa Sıralı 5'li yerine tek cümle gerekçe). Eksikse teslim etme, sayımı yaz.
"Benzer şekilde", "aynı mantıkla", "diğer koşularda da geçerli" YASAK; aynı kalıptaki koşular ayrı ayrı yazılır.

## ÜRETİM DÜZENİ
Koşu koşu yaz, her koşuyu bitirdiğinde **dosyaya işle**, sonra sonrakine geç. Kartı tek geçişte üretme.
Her koşunun sonunda tek satır sayım: `KOTA K<N>: tabela satırı <x> · gözden kaçan <y> · ganyan gerekçesinde ölçülen alan <z>`.

## BARIŞ KARARI 12.09 — PROMPTTA 10.2, BU BLOK ATIFTIR
1. PDF ÜRETME.
2. Her koşuda GANYAN + İLK 2 + İLK 3 ayrı ayrı, rol kilidi geçerli (bir at tek rol).
3. Sürpriz prompt 3.9'a göre yazılır, zorunlu değildir, koşu başına en fazla bir.
4. AYAK PLANI prompt Bölüm 7'ye göre, okunabilirlik FARK BEYANI'ndan.
5. ALTILI GANYAN ÖNERİSİ: açık olan her altılı için (a) 6'lı ganyan kolonu, her ayakta tek at;
   (b) aynı altılının 3'lü ve 5'li genişletmesi, hangi ayakta hangi at eklenir. Atlar yalnız o koşunun
   kendi Nihai Karar listelerinden kopyalanır, yeni seçim yapılmaz.
6. TL, bütçe, kombinasyon adedi ve kupon YAZILMAZ. Onlar kupon masasının işidir.
7. Raporun sonunda tek satır: hangi ayak en kırılgan, neden.

## ÇIKTI
1. `{{KOK}}/HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}{{EK}}.md` — klasör yoksa oluştur.
2. AYRI dosya: `{{KOK}}/HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-PROMPT-NOTU-v<SÜRÜM>-{{TARIH}}{{EK}}.md`,
   en fazla 15 madde (ÇELİŞKİ / BELİRSİZ / UYGULANAMADI / EKSİK). Rapora prompt notu yazma.
3. HTML zorunlu, elle yazılmaz:
   cd "{{KOK}}" && python3 HR-Analysis-Urun/hr/hr-goster.py "HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}{{EK}}.md" -o "HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}{{EK}}.html"
4. Kapanış mesajı tek blok: rapor yolu · HTML yolu · kaç koşu yazıldı · `AT BAZLI İZ: n/10` · `KOTA: x/y` ·
   `SÜRPRİZ: n/N koşu` · `DERECE KOLU BOŞ: n at` ·
   prompt notu madde sayısı · DUR koşulu nerede. PDF YOK.

## YASAKLAR
Siteye girme · koşu sonucu arama · promptu değiştirme veya özetleme · dökümde olmayan veri üretme ·
başka atın sayısını bu ata yazma · ORTAK KOŞU satırından derece alma · sonuç yanlılığı ·
rapora AGF, oran, piyasa, TL veya kupon yazma · önceki gün raporunu veya dökümünü açma ·
DETAY dosyasını bütün olarak okuma · .json açma · varsayılanda PDF üretme · yatay çizgide `---` (yerine `***`).
CC-2 · ÖNCE ÇEK, SONRA ANALİZ döküm yok veya eskiYALNIZ LOCAL · çekim var

Çekimi ve analizi tek oturumda yapar. Altında tek komutluk zincir alternatifi de var.

{{KART}} {{TARIHN}} — ÖNCE ÇEK, SONRA ANALİZ ET

Döküm yok ya da eski. İki adım, sırayla, ikisini de sen yap.

## ADIM 1 — ÇEKİM
cd "{{KOK}}"
python3 HR-Analysis-Urun/hr/hr-cek.py liste -t {{TARIH}}        # kart bugünün listesinde mi, adı nasıl yazılmış
python3 HR-Analysis-Urun/hr/hr-cek.py tazele -t {{TARIH}} {{SLUG}}
Kart listede yoksa DUR ve söyle, ad uydurma.
Çekim bitince üç dosyayı doğrula (-v2-ANALIZ.md · -v2-DETAY.md · -v2.json):
  ls -la "{{DOKUM}}/" | grep {{TARIH}}
Koşu bazlı tazeleme gerekiyorsa tarih biçimi DEĞİŞİR (YYYY-AA-GG):
  cd "{{KOK}}/HR-Analysis-Scraper" && .venv/bin/python3 scraper-v2.py --tarih {{TARIHISO}} --hipodrom {{KART}} --kosu <N>

## ADIM 2 — ANALİZ
Çekim başarılıysa "TAM KART ANALİZİ" bloğunun tamamını uygula: prompt seçimi · veri izolasyonu ·
kart ölçümü · derinlik · üretim düzeni · Barış kararı · çıktı · yasaklar.
Çekim başarısızsa analiz YAPMA, hatayı olduğu gibi yaz ve DUR.

## TEK KOMUTLUK ALTERNATİF
Tazele, analiz et ve teslim et zincirini araç da koşar:
  {{KOK}}/HR-Analysis-Urun/hr/hr-simdi.sh -t {{TARIH}} {{SLUG}}
Bu zincir boru hattının kendi promptunu kullanır; elle prompt yapıştırmak istemiyorsan bunu çalıştır.
CC-3 · GEÇ KALINMIŞ KART kartın bir kısmı koşulduYALNIZ LOCAL · çekim var

Saatleri dökümden okur, koşulmuş ayağı dışarıda bırakır, kapanmış altılıya öneri yazmaz.

{{KART}} {{TARIHN}} — GEÇ KALINMIŞ KART, KALAN KOŞULAR

## İLK İŞ — ZAMAN KAPISI
cd "{{KOK}}"
date +%H:%M
# ⚠ YALNIZ LOCAL — cloud diliminde .json YOKTUR (dilim: ANALIZ + DETAY):
python3 -c "import json;d=json.load(open('HR-Analysis-Scraper-Data/dokum/{{SLUG}}-veri-{{TARIH}}-v2.json',encoding='utf-8'));print(d['meta'].get('bahis_programi'));print([(k['no'],k['saat']['deger']) for k in d['kosular']])"
Saatleri buradan oku, ezberden yazma.
- Koşulmuş koşular: analiz edilmez, sonuçları okunmaz, aranmaz, gerekçe yapılmaz.
- Kalan koşular: TAM analiz, kısaltma yok.
- İlk ayağı koşulmuş altılı KAPANMIŞTIR, onun için öneri üretilmez; açık kalan bahis varsa yalnız ona yazılır.
Raporun başına KAPSAM NOTU: hangi koşular kapsam dışı, hangi bahisler kapalı, saat kaç.

## PROMPT VE VERİ
{{KOK}}/HR-Analysis-Promptlar/{{PROMPTDOSYA}} — baştan sona oku.
{{DOKUM}}/{{SLUG}}-veri-{{TARIH}}-v2-ANALIZ.md — tek kaynak.
Döküm ilk koşudan çok önce üretildiyse: python3 HR-Analysis-Urun/hr/hr-cek.py tazele -t {{TARIH}} {{SLUG}}

## VERİ İZOLASYONU — ÖNCE AYIKLA, SONRA YAZ (21.09 ölçümü)
Ölçüldü: harici motor raporlarında bir ata yazılan derecelerin %45'e kadarı **başka bir atın**
derecesiydi, %80'e kadarı dökümde hiç yoktu. Bu kapı onun içindir.
1. Bir koşuyu yazmadan önce o koşunun VERİ KARTINI çıkar: her at için **yalnız kendi döküm bloğundan**
   tarih · hipodrom · mesafe · zemin · derece · sıra · boy farkı · kilo · jokey. Boş alan `KAYNAKTA YOK`.
2. Analiz cümlelerindeki her sayı bu karttan gelir. Başka atın satırından sayı taşınmaz.
3. **ORTAK KOŞU satırından derece alınmaz.** O satır sıra ve kadro bilgisidir; derece ancak atın kendi
   bloğunda yazılıysa kullanılır. Bulaşmanın ana kanalı budur.
4. Kıyas cümlesi kurarsan rakip atı adıyla an: `ikinciye 0,73 sn (13 ŞİMENDİFER)`. Adı anılmayan
   rakip derecesi bulaşma sayılır.
5. **DERECE, ATIN KENDİ ALANINDAN YAZILIR (22.09 ölçümü).** Atın kendi `derece` alanı `KAYNAKTA YOK` ise
   o at için derece YAZILMAZ; yerine kaynağın verdiği ilişki yazılır: `kazanana 8 boy` · `kazanana 0,42 sn`.
   `kazanan_derece` o atın derecesi değildir; kullanılacaksa sahibi adıyla anılır: `koşuyu 1.12.13 ile kazanan at`.
   Gerekçe derece üzerine kurulacaksa o derece atın KENDİ derecesi olmak zorundadır, değilse o gerekçe derece üzerine kurulmaz.
   Ölçü: yurt dışı raporlarında yazılan derecelerin %26,9'u (boru hattı) ve %33,5'i (harici motor) kazananın derecesiydi.
6. **Derece yazılan her cümlede MESAFE de yazılır.** Mesafe, uydurmanın en ucuz yakalayıcısıdır.
6b. **SATIR BÜTÜNLÜĞÜ (23.09 ölçümü).** Bir geçmiş koşudan alıntı yapılırken tarih · hipodrom · mesafe · zemin ·
   sıra/kadro · derece · boy farkı · kilo · jokey **aynı satırdan** gelir, farklı satırlardan alan birleştirilmez.
   Her geçmiş koşu cümlesi en az **üçlü kimlik** taşır: `tarih + mesafe + sıra/kadro` (örnek: `12.08 Pinjarra 1200 m, 2/10`).
   Üçlüden biri kaynakta yoksa cümle KURULMAZ. Jokey adı o satırın jokey alanından alınır, atın bugünkü
   deklare jokeyinden değil. Ortak koşu satırı geçmiş koşu kaydı değildir; oradan yalnız sıra ve rakip kıyası alınır.
7. Teslimden önce **bütün** derece değerlerini kendi atının alanında ara, örnekleme yapma. Kapanışa tek satır:
   `SAYI İZİ: <toplam> değerin <n> tanesi izsizdi, <m> düzeltildi`. Hiçbir yerde olmayan değerin satırı silinir.
8. Aynı taramada her geçmiş koşu cümlesinin **üçlü kimliğini** (tarih + mesafe + sıra/kadro) atın KENDİ
   tablosunda ara; üçü aynı satırda bulunmuyorsa cümle yanlıştır, düzelt ya da sil. İkinci kapanış satırı:
   `SATIR İZİ: <toplam cümle> cümlenin <n> tanesi doğrulandı, <m> düzeltildi`.

## KART ÖLÇÜMÜ — SEN ÖLÇ, BEN YAZMIYORUM
Analize başlamadan önce dökümün DURUM RAPORU ve koşu başlıklarından ölç ve tek blok hâlinde yaz:
koşu tablosu (no · saat · mesafe/pist · şart · kadro · tabela tavanı · pist-mesafe tekeli olan at sayısı) ·
kanıt durumu (veri doluluğu, ULAŞILAMADI, galop ve HP doluluğu, firster sayısı, jokey kaynağı, [AY]/[HIP] sayısı) ·
kartın özellikleri (kaç zemin, aynı kalıptan kaç koşu, kadrosu 13+ kaç koşu, en dar koşu) ·
bahis programı (`meta.bahis_programi` alanından, ezberden değil).

## DERİNLİK — KADRODAN TÜRER
Her koşuda: GANYAN gerekçesi en az üç ölçülen alana dayanır ve her alanın sayısı yazılır · TABELA'daki her atın
yanında en az bir sayı olur · kadro HP medyanı hesaplanır ve kaç atla hesaplandığı yazılır · GÖZDEN KAÇANLAR'a
en az bir at, kadro 13 ve üzeriyse iki at girer · pist-mesafe tekeli olan her at için o pist-mesafedeki kazanma
sayısı, son derecesi ve bugünkü kilosu yazılır · firster atlar için son 3 galop (tarih · tesis · son 400) yazılır
(yurt içi kaynağında iş mesafesi ve iş derecesi yoktur, istenmez; prompt 3.2).
Teslimden önce say: koşu sayısı × 6 bahis kalemi (prompt 10.2(1): Ganyan · İlk 2 · İlk 3 · TABELA · Sıralı 3'lü · Sıralı 5'li;
kadro 5 attan azsa Sıralı 5'li yerine tek cümle gerekçe). Eksikse teslim etme, sayımı yaz.
"Benzer şekilde", "aynı mantıkla", "diğer koşularda da geçerli" YASAK; aynı kalıptaki koşular ayrı ayrı yazılır.

## ÜRETİM DÜZENİ
Koşu koşu yaz, her koşuyu bitirdiğinde **dosyaya işle**, sonra sonrakine geç. Kartı tek geçişte üretme.
Her koşunun sonunda tek satır sayım: `KOTA K<N>: tabela satırı <x> · gözden kaçan <y> · ganyan gerekçesinde ölçülen alan <z>`.

## BARIŞ KARARI 12.09 — PROMPTTA 10.2, BU BLOK ATIFTIR
1. PDF ÜRETME.
2. Her koşuda GANYAN + İLK 2 + İLK 3 ayrı ayrı, rol kilidi geçerli (bir at tek rol).
3. Sürpriz prompt 3.9'a göre yazılır, zorunlu değildir, koşu başına en fazla bir.
4. AYAK PLANI prompt Bölüm 7'ye göre, okunabilirlik FARK BEYANI'ndan.
5. ALTILI GANYAN ÖNERİSİ: açık olan her altılı için (a) 6'lı ganyan kolonu, her ayakta tek at;
   (b) aynı altılının 3'lü ve 5'li genişletmesi, hangi ayakta hangi at eklenir. Atlar yalnız o koşunun
   kendi Nihai Karar listelerinden kopyalanır, yeni seçim yapılmaz.
6. TL, bütçe, kombinasyon adedi ve kupon YAZILMAZ. Onlar kupon masasının işidir.
7. Raporun sonunda tek satır: hangi ayak en kırılgan, neden.

## ÇIKTI
1. `{{KOK}}/HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}{{EK}}.md` — klasör yoksa oluştur.
2. AYRI dosya: `{{KOK}}/HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-PROMPT-NOTU-v<SÜRÜM>-{{TARIH}}{{EK}}.md`,
   en fazla 15 madde (ÇELİŞKİ / BELİRSİZ / UYGULANAMADI / EKSİK). Rapora prompt notu yazma.
3. HTML zorunlu, elle yazılmaz:
   cd "{{KOK}}" && python3 HR-Analysis-Urun/hr/hr-goster.py "HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}{{EK}}.md" -o "HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}{{EK}}.html"
4. Kapanış mesajı tek blok: rapor yolu · HTML yolu · kaç koşu yazıldı · `AT BAZLI İZ: n/10` · `KOTA: x/y` ·
   `SÜRPRİZ: n/N koşu` · `DERECE KOLU BOŞ: n at` ·
   prompt notu madde sayısı · DUR koşulu nerede. PDF YOK.

## YASAKLAR
Siteye girme · koşu sonucu arama · promptu değiştirme veya özetleme · dökümde olmayan veri üretme ·
başka atın sayısını bu ata yazma · ORTAK KOŞU satırından derece alma · sonuç yanlılığı ·
rapora AGF, oran, piyasa, TL veya kupon yazma · önceki gün raporunu veya dökümünü açma ·
DETAY dosyasını bütün olarak okuma · .json açma · varsayılanda PDF üretme · yatay çizgide `---` (yerine `***`).
CC-4 · SON DAKİKA DEĞİŞİKLİĞİ rapor var, kart değiştiYALNIZ LOCAL · çekim var

Çıkan at, jokey ya da kilo değişikliğinde. Rapor damgalıdır, yeniden yazılmaz.

{{KART}} {{TARIHN}} — SON DAKİKA DEĞİŞİKLİĞİ, FARK RAPORU

Rapor zaten var. Rapor YENİDEN YAZILMAZ, hüküm baştan kurulmaz. İş, değişeni ölçmektir.

## ADIM 1 — TAZELE VE FARKI ÇIKAR
cd "{{KOK}}"
python3 HR-Analysis-Urun/hr/hr-cek.py tazele -t {{TARIH}} {{SLUG}}
python3 HR-Analysis-Urun/hr/hr-fark.py --kok . --kart {{SLUG}} --tarih {{TARIH}}
(ilk kez çalıştırıyorsan tabanı sabitle: aynı komuta --taban-al ekle)

## ADIM 2 — NE DEĞİŞTİ, NE ETKİLER
Yalnız DEĞİŞENİ yaz, değişmeyen koşu için tek kelime: değişmedi.
- ÇIKAN AT: rapordaki listelerde YAZILI KALIR, yalnız altılı önerisinden düşer. Yerine at EKLENMEZ.
- Jokey değişikliği, kilo değişikliği, zemin haberi: FARK RAPORU'na not düşülür, ayak yeniden okunmaz,
  rol ve güven değişmez.
- Her değişiklik için sabah raporunda hangi hükmü ilgilendirdiği tek satırlık ATIF olarak yazılır.
  Bu bilgi notudur, "artık şu olmalı" biçiminde YAZILMAZ.
- Kadro değişmişse kupon masasına tek satır uyarı yaz: hangi ayakta kaç at kaldı.

## ÇIKTI
{{KOK}}/HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-fark-{{TARIH}}-<HHMM>{{EK}}.md
Kaynak damgası: iki döküm damgası, fark komutunun çıktısı, date. Ana rapora DOKUNMA. PDF YOK.
CC-5 · SEÇİLİ KOŞULAR tek koşu veya aralık

Kapsam altılıyı kapsamıyorsa altılı önerisi üretilmez.

{{KART}} {{TARIHN}} — SEÇİLİ KOŞULAR ({{KOSULAR}})

## PROMPT VE VERİ
{{KOK}}/HR-Analysis-Promptlar/{{PROMPTDOSYA}} — baştan sona oku, tek kural kaynağı budur.
{{DOKUM}}/{{SLUG}}-veri-{{TARIH}}-v2-ANALIZ.md — tek veri kaynağı.

## KAPSAM
Yalnız {{KOSULAR}}. koşular. Kapsam dışı koşu için tek satır bile yazma, "diğerleri de benzer" deme.
Rapora KAPSAM NOTU yaz. Kapsam altılının tamamını kapsamıyorsa ALTILI ÖNERİSİ ÜRETİLMEZ, sebebi yazılır.
Kapsıyorsa Barış kararının 5. maddesi uygulanır.

Motoru elle kurmak istersen (bölme ve model seçimi yapar):
cd "{{KOK}}" && python3 HR-Analysis-Urun/hr/hr-tekatis.py --kok . --gorev <görev.md> --dokum "{{DOKUM}}/{{SLUG}}-veri-{{TARIH}}-v2-ANALIZ.md" --kosular {{KOSULAR}}

## VERİ İZOLASYONU — ÖNCE AYIKLA, SONRA YAZ (21.09 ölçümü)
Ölçüldü: harici motor raporlarında bir ata yazılan derecelerin %45'e kadarı **başka bir atın**
derecesiydi, %80'e kadarı dökümde hiç yoktu. Bu kapı onun içindir.
1. Bir koşuyu yazmadan önce o koşunun VERİ KARTINI çıkar: her at için **yalnız kendi döküm bloğundan**
   tarih · hipodrom · mesafe · zemin · derece · sıra · boy farkı · kilo · jokey. Boş alan `KAYNAKTA YOK`.
2. Analiz cümlelerindeki her sayı bu karttan gelir. Başka atın satırından sayı taşınmaz.
3. **ORTAK KOŞU satırından derece alınmaz.** O satır sıra ve kadro bilgisidir; derece ancak atın kendi
   bloğunda yazılıysa kullanılır. Bulaşmanın ana kanalı budur.
4. Kıyas cümlesi kurarsan rakip atı adıyla an: `ikinciye 0,73 sn (13 ŞİMENDİFER)`. Adı anılmayan
   rakip derecesi bulaşma sayılır.
5. **DERECE, ATIN KENDİ ALANINDAN YAZILIR (22.09 ölçümü).** Atın kendi `derece` alanı `KAYNAKTA YOK` ise
   o at için derece YAZILMAZ; yerine kaynağın verdiği ilişki yazılır: `kazanana 8 boy` · `kazanana 0,42 sn`.
   `kazanan_derece` o atın derecesi değildir; kullanılacaksa sahibi adıyla anılır: `koşuyu 1.12.13 ile kazanan at`.
   Gerekçe derece üzerine kurulacaksa o derece atın KENDİ derecesi olmak zorundadır, değilse o gerekçe derece üzerine kurulmaz.
   Ölçü: yurt dışı raporlarında yazılan derecelerin %26,9'u (boru hattı) ve %33,5'i (harici motor) kazananın derecesiydi.
6. **Derece yazılan her cümlede MESAFE de yazılır.** Mesafe, uydurmanın en ucuz yakalayıcısıdır.
6b. **SATIR BÜTÜNLÜĞÜ (23.09 ölçümü).** Bir geçmiş koşudan alıntı yapılırken tarih · hipodrom · mesafe · zemin ·
   sıra/kadro · derece · boy farkı · kilo · jokey **aynı satırdan** gelir, farklı satırlardan alan birleştirilmez.
   Her geçmiş koşu cümlesi en az **üçlü kimlik** taşır: `tarih + mesafe + sıra/kadro` (örnek: `12.08 Pinjarra 1200 m, 2/10`).
   Üçlüden biri kaynakta yoksa cümle KURULMAZ. Jokey adı o satırın jokey alanından alınır, atın bugünkü
   deklare jokeyinden değil. Ortak koşu satırı geçmiş koşu kaydı değildir; oradan yalnız sıra ve rakip kıyası alınır.
7. Teslimden önce **bütün** derece değerlerini kendi atının alanında ara, örnekleme yapma. Kapanışa tek satır:
   `SAYI İZİ: <toplam> değerin <n> tanesi izsizdi, <m> düzeltildi`. Hiçbir yerde olmayan değerin satırı silinir.
8. Aynı taramada her geçmiş koşu cümlesinin **üçlü kimliğini** (tarih + mesafe + sıra/kadro) atın KENDİ
   tablosunda ara; üçü aynı satırda bulunmuyorsa cümle yanlıştır, düzelt ya da sil. İkinci kapanış satırı:
   `SATIR İZİ: <toplam cümle> cümlenin <n> tanesi doğrulandı, <m> düzeltildi`.

## KART ÖLÇÜMÜ — SEN ÖLÇ, BEN YAZMIYORUM
Analize başlamadan önce dökümün DURUM RAPORU ve koşu başlıklarından ölç ve tek blok hâlinde yaz:
koşu tablosu (no · saat · mesafe/pist · şart · kadro · tabela tavanı · pist-mesafe tekeli olan at sayısı) ·
kanıt durumu (veri doluluğu, ULAŞILAMADI, galop ve HP doluluğu, firster sayısı, jokey kaynağı, [AY]/[HIP] sayısı) ·
kartın özellikleri (kaç zemin, aynı kalıptan kaç koşu, kadrosu 13+ kaç koşu, en dar koşu) ·
bahis programı (`meta.bahis_programi` alanından, ezberden değil).

## DERİNLİK — KADRODAN TÜRER
Her koşuda: GANYAN gerekçesi en az üç ölçülen alana dayanır ve her alanın sayısı yazılır · TABELA'daki her atın
yanında en az bir sayı olur · kadro HP medyanı hesaplanır ve kaç atla hesaplandığı yazılır · GÖZDEN KAÇANLAR'a
en az bir at, kadro 13 ve üzeriyse iki at girer · pist-mesafe tekeli olan her at için o pist-mesafedeki kazanma
sayısı, son derecesi ve bugünkü kilosu yazılır · firster atlar için son 3 galop (tarih · tesis · son 400) yazılır
(yurt içi kaynağında iş mesafesi ve iş derecesi yoktur, istenmez; prompt 3.2).
Teslimden önce say: koşu sayısı × 6 bahis kalemi (prompt 10.2(1): Ganyan · İlk 2 · İlk 3 · TABELA · Sıralı 3'lü · Sıralı 5'li;
kadro 5 attan azsa Sıralı 5'li yerine tek cümle gerekçe). Eksikse teslim etme, sayımı yaz.
"Benzer şekilde", "aynı mantıkla", "diğer koşularda da geçerli" YASAK; aynı kalıptaki koşular ayrı ayrı yazılır.

## ÜRETİM DÜZENİ
Koşu koşu yaz, her koşuyu bitirdiğinde **dosyaya işle**, sonra sonrakine geç. Kartı tek geçişte üretme.
Her koşunun sonunda tek satır sayım: `KOTA K<N>: tabela satırı <x> · gözden kaçan <y> · ganyan gerekçesinde ölçülen alan <z>`.

## BARIŞ KARARI 12.09 — PROMPTTA 10.2, BU BLOK ATIFTIR
1. PDF ÜRETME.
2. Her koşuda GANYAN + İLK 2 + İLK 3 ayrı ayrı, rol kilidi geçerli (bir at tek rol).
3. Sürpriz prompt 3.9'a göre yazılır, zorunlu değildir, koşu başına en fazla bir.
4. AYAK PLANI prompt Bölüm 7'ye göre, okunabilirlik FARK BEYANI'ndan.
5. ALTILI GANYAN ÖNERİSİ: açık olan her altılı için (a) 6'lı ganyan kolonu, her ayakta tek at;
   (b) aynı altılının 3'lü ve 5'li genişletmesi, hangi ayakta hangi at eklenir. Atlar yalnız o koşunun
   kendi Nihai Karar listelerinden kopyalanır, yeni seçim yapılmaz.
6. TL, bütçe, kombinasyon adedi ve kupon YAZILMAZ. Onlar kupon masasının işidir.
7. Raporun sonunda tek satır: hangi ayak en kırılgan, neden.

## ÇIKTI
1. `{{KOK}}/HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}{{EK}}.md` — klasör yoksa oluştur.
2. AYRI dosya: `{{KOK}}/HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-PROMPT-NOTU-v<SÜRÜM>-{{TARIH}}{{EK}}.md`,
   en fazla 15 madde (ÇELİŞKİ / BELİRSİZ / UYGULANAMADI / EKSİK). Rapora prompt notu yazma.
3. HTML zorunlu, elle yazılmaz:
   cd "{{KOK}}" && python3 HR-Analysis-Urun/hr/hr-goster.py "HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}{{EK}}.md" -o "HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}{{EK}}.html"
4. Kapanış mesajı tek blok: rapor yolu · HTML yolu · kaç koşu yazıldı · `AT BAZLI İZ: n/10` · `KOTA: x/y` ·
   `SÜRPRİZ: n/N koşu` · `DERECE KOLU BOŞ: n at` ·
   prompt notu madde sayısı · DUR koşulu nerede. PDF YOK.

## YASAKLAR
Siteye girme · koşu sonucu arama · promptu değiştirme veya özetleme · dökümde olmayan veri üretme ·
başka atın sayısını bu ata yazma · ORTAK KOŞU satırından derece alma · sonuç yanlılığı ·
rapora AGF, oran, piyasa, TL veya kupon yazma · önceki gün raporunu veya dökümünü açma ·
DETAY dosyasını bütün olarak okuma · .json açma · varsayılanda PDF üretme · yatay çizgide `---` (yerine `***`).
CC-6 · YURT DIŞI KART ülke ikili seçimi + bulaşma kapısı

Önce ülke, sonra numara. Yurt dışında ölçülen en büyük hata veri bulaşmasıdır, bu blok onu ayrıca kapatır.

{{KART}} {{TARIHN}} — YURT DIŞI KART ANALİZİ

## PROMPT — ÖNCE ÜLKE, SONRA NUMARA
Ülke: {{ULKE}}
ABD ve Kanada → {{KOK}}/HR-Analysis-Promptlar/atyarisi-YURTDISI-v7.1-abd-canada.md
Diğer bütün ülkeler → {{KOK}}/HR-Analysis-Promptlar/atyarisi-YURTDISI-v7.1-hepsi.md
Bu kart için okunacak dosya: {{KOK}}/HR-Analysis-Promptlar/{{PROMPTDOSYA}}
Açtığında ülke tablosuyla doğrula, tutmuyorsa DUR. Yürürlüğü teyit et:
  ls -la {{KOK}}/HR-Analysis-Promptlar/atyarisi-YURTDISI-*.md

## ÇALIŞTIRMA DEĞİŞKENLERİ
Kart: {{KART}} | Ülke: {{ULKE}} | Tarih: {{TARIHN}} | Kapsam: {{KAPSAM}}

## VERİ KAYNAĞI — TEK KAYNAK
{{DOKUM}}/{{SLUG}}-veri-{{TARIH}}-v2-ANALIZ.md

## 🔴 YURT DIŞINA ÖZGÜ — EN SIK HATA BURADA
Ölçüldü (19-21.09): yurt dışı kartlarında bir ata yazılan derecelerin %45'e kadarı başka atın derecesi,
%80'e kadarı dökümde hiç yok. Sebebi yapısal: bu kartlarda geçmiş kayıt HP doluluğu %49-62, yani derecelerin
yarısı KAYNAKTA YOK, buna karşılık ORTAK KOŞU satırı birden çok atı tek satırda sıralıyor.
- Bir atın derecesi kendi bloğunda yoksa `KAYNAKTA YOK` yazılır. ORTAK KOŞU satırından derece ALINMAZ.
- Galop yalnız bazı ülkelerde yayımlanır; yokluğu at aleyhine gerekçe DEĞİLDİR.
- Boy farkı çoğu ülkede yayımlanmaz; yoksa boy cümlesi kurulmaz.
- Kadro sığsa (≤8) tam liste ucuzdur, ayak genişliği buna göre okunur.
- Devir tutarı bilgi satırıdır, gerekçe değildir. 999,99 tek başına sığ havuz kanıtı değildir.
- İki altılının AGF'i ayrıdır, karıştırılmaz. AGF analiz raporuna girmez.

## VERİ İZOLASYONU — ÖNCE AYIKLA, SONRA YAZ (21.09 ölçümü)
Ölçüldü: harici motor raporlarında bir ata yazılan derecelerin %45'e kadarı **başka bir atın**
derecesiydi, %80'e kadarı dökümde hiç yoktu. Bu kapı onun içindir.
1. Bir koşuyu yazmadan önce o koşunun VERİ KARTINI çıkar: her at için **yalnız kendi döküm bloğundan**
   tarih · hipodrom · mesafe · zemin · derece · sıra · boy farkı · kilo · jokey. Boş alan `KAYNAKTA YOK`.
2. Analiz cümlelerindeki her sayı bu karttan gelir. Başka atın satırından sayı taşınmaz.
3. **ORTAK KOŞU satırından derece alınmaz.** O satır sıra ve kadro bilgisidir; derece ancak atın kendi
   bloğunda yazılıysa kullanılır. Bulaşmanın ana kanalı budur.
4. Kıyas cümlesi kurarsan rakip atı adıyla an: `ikinciye 0,73 sn (13 ŞİMENDİFER)`. Adı anılmayan
   rakip derecesi bulaşma sayılır.
5. **DERECE, ATIN KENDİ ALANINDAN YAZILIR (22.09 ölçümü).** Atın kendi `derece` alanı `KAYNAKTA YOK` ise
   o at için derece YAZILMAZ; yerine kaynağın verdiği ilişki yazılır: `kazanana 8 boy` · `kazanana 0,42 sn`.
   `kazanan_derece` o atın derecesi değildir; kullanılacaksa sahibi adıyla anılır: `koşuyu 1.12.13 ile kazanan at`.
   Gerekçe derece üzerine kurulacaksa o derece atın KENDİ derecesi olmak zorundadır, değilse o gerekçe derece üzerine kurulmaz.
   Ölçü: yurt dışı raporlarında yazılan derecelerin %26,9'u (boru hattı) ve %33,5'i (harici motor) kazananın derecesiydi.
6. **Derece yazılan her cümlede MESAFE de yazılır.** Mesafe, uydurmanın en ucuz yakalayıcısıdır.
6b. **SATIR BÜTÜNLÜĞÜ (23.09 ölçümü).** Bir geçmiş koşudan alıntı yapılırken tarih · hipodrom · mesafe · zemin ·
   sıra/kadro · derece · boy farkı · kilo · jokey **aynı satırdan** gelir, farklı satırlardan alan birleştirilmez.
   Her geçmiş koşu cümlesi en az **üçlü kimlik** taşır: `tarih + mesafe + sıra/kadro` (örnek: `12.08 Pinjarra 1200 m, 2/10`).
   Üçlüden biri kaynakta yoksa cümle KURULMAZ. Jokey adı o satırın jokey alanından alınır, atın bugünkü
   deklare jokeyinden değil. Ortak koşu satırı geçmiş koşu kaydı değildir; oradan yalnız sıra ve rakip kıyası alınır.
7. Teslimden önce **bütün** derece değerlerini kendi atının alanında ara, örnekleme yapma. Kapanışa tek satır:
   `SAYI İZİ: <toplam> değerin <n> tanesi izsizdi, <m> düzeltildi`. Hiçbir yerde olmayan değerin satırı silinir.
8. Aynı taramada her geçmiş koşu cümlesinin **üçlü kimliğini** (tarih + mesafe + sıra/kadro) atın KENDİ
   tablosunda ara; üçü aynı satırda bulunmuyorsa cümle yanlıştır, düzelt ya da sil. İkinci kapanış satırı:
   `SATIR İZİ: <toplam cümle> cümlenin <n> tanesi doğrulandı, <m> düzeltildi`.

## KART ÖLÇÜMÜ — SEN ÖLÇ, BEN YAZMIYORUM
Analize başlamadan önce dökümün DURUM RAPORU ve koşu başlıklarından ölç ve tek blok hâlinde yaz:
koşu tablosu (no · saat · mesafe/pist · şart · kadro · tabela tavanı · pist-mesafe tekeli olan at sayısı) ·
kanıt durumu (veri doluluğu, ULAŞILAMADI, galop ve HP doluluğu, firster sayısı, jokey kaynağı, [AY]/[HIP] sayısı) ·
kartın özellikleri (kaç zemin, aynı kalıptan kaç koşu, kadrosu 13+ kaç koşu, en dar koşu) ·
bahis programı (`meta.bahis_programi` alanından, ezberden değil).

## DERİNLİK — KADRODAN TÜRER
Her koşuda: GANYAN gerekçesi en az üç ölçülen alana dayanır ve her alanın sayısı yazılır · TABELA'daki her atın
yanında en az bir sayı olur · kadro HP medyanı hesaplanır ve kaç atla hesaplandığı yazılır · GÖZDEN KAÇANLAR'a
en az bir at, kadro 13 ve üzeriyse iki at girer · pist-mesafe tekeli olan her at için o pist-mesafedeki kazanma
sayısı, son derecesi ve bugünkü kilosu yazılır · firster atlar için son galop tarihi, iş mesafesi ve süresi yazılır.
Teslimden önce say: koşu sayısı × 6 bahis kalemi (prompt 10.2(1): Ganyan · İlk 2 · İlk 3 · TABELA · Sıralı 3'lü · Sıralı 5'li;
kadro 5 attan azsa Sıralı 5'li yerine tek cümle gerekçe). Eksikse teslim etme, sayımı yaz.
"Benzer şekilde", "aynı mantıkla", "diğer koşularda da geçerli" YASAK; aynı kalıptaki koşular ayrı ayrı yazılır.

## ÜRETİM DÜZENİ
Koşu koşu yaz, her koşuyu bitirdiğinde **dosyaya işle**, sonra sonrakine geç. Kartı tek geçişte üretme.
Her koşunun sonunda tek satır sayım: `KOTA K<N>: tabela satırı <x> · gözden kaçan <y> · ganyan gerekçesinde ölçülen alan <z>`.

## BARIŞ KARARI 12.09 — PROMPTTA 10.2, BU BLOK ATIFTIR
1. PDF ÜRETME.
2. Her koşuda GANYAN + İLK 2 + İLK 3 ayrı ayrı, rol kilidi geçerli (bir at tek rol).
3. Sürpriz prompt 3.9'a göre yazılır, zorunlu değildir, koşu başına en fazla bir.
4. AYAK PLANI prompt Bölüm 7'ye göre, okunabilirlik FARK BEYANI'ndan.
5. ALTILI GANYAN ÖNERİSİ: açık olan her altılı için (a) 6'lı ganyan kolonu, her ayakta tek at;
   (b) aynı altılının 3'lü ve 5'li genişletmesi, hangi ayakta hangi at eklenir. Atlar yalnız o koşunun
   kendi Nihai Karar listelerinden kopyalanır, yeni seçim yapılmaz.
6. TL, bütçe, kombinasyon adedi ve kupon YAZILMAZ. Onlar kupon masasının işidir.
7. Raporun sonunda tek satır: hangi ayak en kırılgan, neden.

## ÇIKTI
1. `{{KOK}}/HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}{{EK}}.md` — klasör yoksa oluştur.
2. AYRI dosya: `{{KOK}}/HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-PROMPT-NOTU-v<SÜRÜM>-{{TARIH}}{{EK}}.md`,
   en fazla 15 madde (ÇELİŞKİ / BELİRSİZ / UYGULANAMADI / EKSİK). Rapora prompt notu yazma.
3. HTML zorunlu, elle yazılmaz:
   cd "{{KOK}}" && python3 HR-Analysis-Urun/hr/hr-goster.py "HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}{{EK}}.md" -o "HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}{{EK}}.html"
4. Kapanış mesajı tek blok: rapor yolu · HTML yolu · kaç koşu yazıldı · `AT BAZLI İZ: n/10` · `KOTA: x/y` ·
   `SÜRPRİZ: n/N koşu` · `DERECE KOLU BOŞ: n at` ·
   prompt notu madde sayısı · DUR koşulu nerede. PDF YOK.

## YASAKLAR
Siteye girme · koşu sonucu arama · promptu değiştirme veya özetleme · dökümde olmayan veri üretme ·
başka atın sayısını bu ata yazma · ORTAK KOŞU satırından derece alma · sonuç yanlılığı ·
rapora AGF, oran, piyasa, TL veya kupon yazma · önceki gün raporunu veya dökümünü açma ·
DETAY dosyasını bütün olarak okuma · .json açma · varsayılanda PDF üretme · yatay çizgide `---` (yerine `***`).
CC-7 · KUPON MASASI ölçüm geldiyse

Beş alan senden gelir, bütçe önerilmez. Ölçüm yoksa bant verilmez. Çıktı adı -claude-code ile biter.

KUPON MASASI — {{KART}} {{TARIHN}}

Kupon kuralları bu mesajda DEĞİL, dosyalarda. Sırayla oku, sonra kur.

## OKU
1. Şablon: {{KOK}}/HR-Analysis-Claude-Code-Gorevleri/00-KUPON-MASASI-GOREV-SABLONU.md
2. Kural kitabı: {{KOK}}/HR-Analysis-Promptlar/atyarisi-KUPON-MASASI-v1.md (en yüksek numaralı)
   Özellikle İ1 (ekle, çıkarma) · İ2 (tek at kapısı) · İ3 (genişlik) · İ4 (piyasa sigortası) ·
   İ5 (sürpriz korunur) · 0.5 (bütçe kullanıcının) · 0.7 (oran olgunluk okuması) · 4. bölüm (alternatifler).
3. O günün KOL 4 ölçümü: {{KOK}}/HR-Analysis-Scraper-Data/ara-calisma/OLCUM-<KART>-*-{{TARIH}}.md
   Ölçüm yoksa DUR ve söyle. Bantsız kupon kurulmaz, başka hipodromun bandı taşınmaz.
4. AYAK PLANI: {{KOK}}/HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}{{EK}}.md
   Atlar yalnız buradan ve raporun sırasıyla. Listede olmayan at yazılmaz.
5. AGF, en yenisi: ls -t {{DOKUM}}/{{SLUG}}-agf-{{TARIH}}-*.md | head -1
   Yoksa tek satır: AGF KAYNAKTA YOK, sıralamayı çekirdek liste yapıyor. Yokluk "AGF düşük" değildir.

## BENİM DOLDURACAĞIM ALANLAR
KART: {{SLUG}} | TARİH: {{TARIH}} | HANGİ BAHİS: <1. altılı / 2. altılı / 7'li plase>
BÜTÇE BANTLARI VE KUPON SAYISI: <ör. 1.800-2.800 TL 3 kupon · 1.200-1.800 TL 2 kupon · 1.200 altı 2 kupon>
EK İSTEK: <tek atla risk + sigortalı eşi · piyasanın oynamadığı ölçülmüş atlar · yok>
Bütçe boşsa SORULUR, önerilmez, uydurulmaz (kural kitabı 0.5).

## İLK İŞ — ZAMAN KAPISI
date +%H:%M ve dökümün meta.bahis_programi alanı. İlk ayağı koşulmuş bahis KAPANMIŞTIR, kurgu üretilmez.

## NASIL YAZILACAK
Her kupon için: genişlik dizisi · ayak ayak at numarası ve adı · kolon · TL (birim 1,25 TL, ekran teyidi) ·
kaba kapsama (üst sınır şerhiyle, ölçümün kendi sayılarından) · bant altı kalan ayaklar · en kırılgan ayak ·
hangi senaryoda tutar. Kaba kapsama ihtimal gibi sunulmaz. Aynı ayakta aynı tek at iki kuponda yazılmaz.
Kapsama sayıları iki taban varsa AYRI sütun yazılır, ortalaması alınmaz.

## ÇIKTI
{{KOK}}/HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-kupon-<BAHİS>-{{TARIH}}-<HHMM>-claude-code{{EK}}.md
Kaynak damgası (okunan dosyalar, AGF saati, date, hangi bahis açık) + DEĞİŞİKLİK DEFTERİ. PDF üretilmez.
HTML: python3 HR-Analysis-Urun/hr/hr-goster.py <yukarıdaki .md> -o <aynı ad>.html
CC-8 · KUPONU DEĞERLENDİR elimde kurulmuş kupon var

Yeni kupon kurmaz. Aritmetiği, rapora uyumu ve kırılganlığı denetler, aynı bütçeyle en fazla üç takas önerir.

KUPONU DEĞERLENDİR — {{KART}} {{TARIHN}}

Elimde kurulmuş bir kupon var. Yeni kupon KURMA, bunu değerlendir.
Kural kitabının 9. bölümü ("KUPONU DEĞERLENDİR") bu işin kuralıdır:
{{KOK}}/HR-Analysis-Promptlar/atyarisi-KUPON-MASASI-v1.md

## KUPON (ekran görüntüsünden ya da elle)
AYAK 1: ...
AYAK 2: ...
(altı ayağın hepsi)

## SIRA
1. Okuduğun her ayağı `AYAK N: 3, 7, 9` biçiminde geri yaz. Okunamayanı `OKUNAMADI` işaretle, TAHMİN ETME.
   İkiden fazla okunamayan varsa yeni görüntü iste.
2. **Aritmetik:** kombinasyon × birim (1,25 TL). Ekranla çelişirse EKRAN KAZANIR.
3. **Rapora uyum envanteri:** her at hangi rolde (Ganyan / İlk 2 / İlk 3 / Sürpriz / Tavan dışı),
   rapor dışı at var mı, çıkan at kalmış mı.
   Kaynak: {{KOK}}/HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}{{EK}}.md
4. **Kırılganlık:** en kırılgan ayak hangisi, tek atlı ayak varsa İ2 kapısının üç şartı sağlanıyor mu.
5. **Takas:** YALNIZ aynı bütçeyle en fazla üç takas, her birinin maliyet farkıyla.
   Bütçe büyüten öneri YAZILMAZ.

Çıktı sohbete yazılır; dosya istersen söylerim. PDF üretilmez.
CC-9 · RAPOR DENETİMİ rapor güvenilir mi

Hangi motor üretirse üretsin. Sayı izi (uydurma) ve at bazlı iz (bulaşma) ölçer, kupona girip giremeyeceğine hüküm verir.

RAPOR DENETİMİ — {{KART}} {{TARIHN}}

Bir rapor üretildi (hangi motor olursa olsun). Analizi yeniden YAPMA, yalnız denetle.

## DENETLENECEK DOSYALAR
Rapor: {{KOK}}/HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}*.md  (hepsini listele, hangisini
denetlediğini yaz)
Döküm: {{DOKUM}}/{{SLUG}}-veri-{{TARIH}}-v2-ANALIZ.md (ve gerekirse -DETAY.md)

## 1 · SAYI İZİ (uydurma yakalama)
Raporda geçen bütün derece değerlerini çıkar (`1.27.26` · `1:27.26` · `2,03,48` biçimleri) ve dökümde ara.
Karşılaştırmayı **yalnız rakamlar** üzerinden yap, ayırıcıları at, yoksa yanlış alarm çıkar.
Çıktı: `SAYI İZİ: <izli>/<toplam> · izsiz <n>` ve izsiz her değer için satır ve bağlamı.

## 2 · DERECE SAHİBİ (en sık hata) + AT BAZLI İZ
Her sayının, yazıldığı **atın kendi döküm bloğunda** geçip geçmediğine bak. Üç sonuç:
kendi bloğunda · başka atın bloğunda (BULAŞMA) · hiçbir yerde (UYDURMA).
Muafiyet: koşu düzeyi türetilmiş bloklardan (PİST-MESAFE TEKELİ, ORTAK KOŞU) gelen sayılar ve
aynı cümlede ADIYLA anılan rakibin derecesi bulaşma sayılmaz.
Ayrıca her derece için sahibini ayır: atın KENDİ derecesi mi, yoksa o koşuyu KAZANAN atın derecesi mi.
Kazananın derecesi ata yapıştırılmışsa bu ayrı bir hatadır ve ölçüldü: yurt dışı raporlarında boru hattı %26,9,
harici motor %33,5. Cümlede kazanan adıyla anılıyorsa muaf.
Çıktı: `DERECE SAHİBİ: kendi %x · kazananın %y` ve `AT BAZLI İZ: kendi %a · bulaşma %b · uydurma %c`,
ilk beş örnekle.
Ölçülmüş kıyas: boru hattı raporlarında kendi bloğu %85-100 ve uydurma %0; harici motorlarda
yurt içi %81-87, yurt dışı %13-23'e kadar düşüyor.

## 3 · ÜÇLÜ KİMLİK (satır bütünlüğü)
Her geçmiş koşu cümlesinden `tarih + mesafe + sıra/kadro` üçlüsünü çıkar ve atın KENDİ geçmiş koşu tablosunda
**aynı satırda** ara. Üç sonuç: aynı satırda · atın başka satırında · başka atta ya da hiçbir yerde.
Ölçülmüş kıyas (23.09): boru hattı raporlarında tarih izi %96-98, harici motorda %35-88; en kötü kartta bir
cümlede beş alanın beşi birden yanlıştı (tarih, kadro, derece, boy farkı, jokey).
⚠ Tarih ayrıştırmasında tuzak: `1.15.44` gibi derece değerlerinin içinden `15.44` tarih gibi okunur, ele.
Çıktı: `SATIR İZİ: kendi satırında %x · atın başka satırında %y · başka atta ya da yok %z`, ilk beş örnekle.

## 4 · BÖLÜM VE KOTA
Promptun istediği bölümler tam mı (TABELA · Karar Öncesi Özet · Nihai Karar · Start Öncesi Dikkat ·
AYAK PLANI · Özet Tablo · GÖZDEN KAÇANLAR · Açıklamalar · Makine Okur · ÖZ DENETİM · ÜRETEN).
Koşu başına tabela satırı, gözden kaçan sayısı ve tablo dışı karakter.
İşaret ve rol (v12.2 / v7.1): kanıt yetersiz satırı ⚪ (🟡 değil) · sürpriz zorunlu değil, yazılmışsa yalnız
🟣🟢 [KAZANABİLİR SÜRPRİZ] ya da 🟣🟡 [İLK 2 SÜRPRİZİ], etiketsiz sürpriz ihlaldir · her kanıtlı atın rol hücresinde S1/S2/S3
(firster'da `seviye: uygulanamaz`), Ganyan olmayan S1/S2 atta `kazanma ihtimali var` · SİSTEM ADAYI satırı BEKLENMEZ,
varsa eski sürüm izidir · Karar Öncesi Özet yurt içinde dört, yurt dışında üç sabit satır (+ koşullu beyan), Sınıf hareketi
satırı yok · bahis kalemleri 10.2(1)'in altısı: Ganyan · İlk 2 · İlk 3 · TABELA · Sıralı 3'lü · Sıralı 5'li.
Kapanış sayaçları: `SÜRPRİZ: n/N koşu` ve `DERECE KOLU BOŞ: n at` yoksa ✗ yaz.
🟣 tutarlılığı: sürpriz yazmamak hata değildir; hata, seçilmiş 🟣 işaretinin TABELA, Nihai Karar sürpriz satırı ve
Özet Tablo arasında kaybolması ya da tip / kanıt / çürüten şart satırının eksik olmasıdır. Hedef %100 eşleşme; sürpriz
yazılmayan koşu ✗ DEĞİLDİR.
Tarih dizilimi: TABELA hücresinde ≥3 tarih dizilimi sayılır (prompt: "Tarih dökümü LİSTELENMEZ"), koşu numarasıyla
beyan edilir: `TARİH DİZİLİMİ: K3 ×2 · K7 ×1`.
Beyansız elle hesap: dökümde ham karşılığı olmayan türetilmiş saniye farkı (`6,29 sn` gibi) "elle hesaplandı" beyanı
taşımıyorsa sayılır. Derece kolu boş atta `kazanana_fark_sn` ile derece kurulmuşsa ayrı ve daha ağır hatadır,
`DERECE KOLU BOŞ` sayacıyla çapraz kontrol edilir.
Yeni biçimler (v12.2 / v7.1): geçmiş koşu cümlesi `[gg.aa.yyyy · hipodrom · mesafe · sıra/kadro · tablo]` çapasıyla
başlar, türetilmiş satırda son kelime `mesafe izi` / `ortak tablo`; çapasız derece cümlesi ✗ · rakip derecesi
`rakip 5: 0.48.33` biçiminde özneli, öznesiz başka at derecesi bulaşmadır · Nihai Karar ganyan bloğu TABELA cümlesini
yeniden kurmaz, `kanıt: TABELA n` atfı yazar · sıralı kurgu 2-4, aynı at dizilişinin tekrarı kurgu sayılmaz.
Araç: python3 {{KOK}}/HR-Analysis-Urun/hr/hr-denetle.py -t {{TARIH}}

## ÇIKTI
{{KOK}}/HR-Analysis-Scraper-Data/ara-calisma/DENETIM-{{SLUG}}-{{TARIH}}-<HHMM>{{EK}}.md
Sonunda tek cümle hüküm: bu rapor kupona girebilir mi, giremezse hangi kalem yüzünden.
Raporu DÜZELTME, yalnız denetle ve raporla.
CC-10 · GÜN SONU denetim, HTML, teslimYALNIZ LOCAL · çekim var

Rapor bittikten sonra. HTML elle yazılmaz, hr-goster.py sıfır jeton harcar.

GÜN SONU — DENETİM, HTML, TESLİM ({{TARIHN}})

cd "{{KOK}}"

# 1 · rapor yarım mı tam mı
python3 HR-Analysis-Urun/hr/hr-denetle.py -t {{TARIH}}

# 2 · eksik kalanı yeniden koş (yarım raporu arşivler, silmez)
HR-Analysis-Urun/hr/hr-yenile.sh -t {{TARIH}} {{SLUG}}

# 3 · HTML üret (elle HTML yazılmaz, sıfır jeton)
python3 HR-Analysis-Urun/hr/hr-goster.py "HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}{{EK}}.md" -o "HR-Analysis-Raporlar/{{TARIH}}/{{SLUG}}-analiz-{{TARIH}}{{EK}}.html"

# 4 · günü tek dosyada paketle, telefona gönder
python3 HR-Analysis-Urun/hr/hr-artifact.py -t {{TARIH}}
python3 HR-Analysis-Urun/hr/hr-teslim.py -t {{TARIH}}

# 5 · parçalı rapor varsa birleştir
python3 HR-Analysis-Urun/hr/hr-birlestir.py {{SLUG}} -t {{TARIH}}

# 6 · sonuçları çek (koşular bitince)
python3 HR-Analysis-Urun/hr/hr-cek.py sonuc -t {{TARIH}}

4 · HARİCİ MOTORLAR

Kural metni emir dosyalarındadır; burada yalnız emrin en başına yapıştırılan başlık bloğu var.

motoremir dosyasınasıl
Sparkgeminispark-gorev-yurtiçi.md · -yurtdışı.mdDosya sistemi var: emri, promptu ve dökümü kendi okur, HTML'i kendi üretir.
Gemini Chatgemini-gorev-yurtiçi.md · -yurtdışı.mdSohbete iki dosya yüklenir: prompt + -v2-ANALIZ.md. HTML komutunu kapanışa yazar.
ChatGPTgptchat-gorev-yurtiçi.md · -yurtdışı.mdGemini Chat ile aynı.
Coworkgptcowork-gorev-yurtiçi.md · -yurtdışı.mdDosya sistemi var, Spark gibi.

Klasör: HR-Analysis-Harici-Motor-Gorevleri/. Emir dosyasını elle değiştirme.

BAŞLIK BLOĞU emrin en başına yapıştır

Dört motorda da aynı blok. Emrin 0. bölümü "en başa yazılan geçerlidir" der.

HİPODROM: {{KART}}
ÜLKE: {{ULKE}}
PROMPT DOSYASI: {{PROMPTDOSYA}}
TARİH: {{TARIH}}
KAPSAM: {{KAPSAM}}
PDF: ÜRETME
HTML: ÜRET

⚠ BU EMİR 26.09.2026'DA GÜNCELLENDİ (v12.2 / v7.1). Emri baştan sona YENİDEN OKU, özetlenmiş ya da hatırladığın
hâlini kullanma. 4A bölümü (koşu koşu üretim · blok kotası · oran kapısı · sayı izi) ve teslim
kapısının (d) ve (e) maddeleri ZORUNLUDUR.
Kapanış mesajında dört satır bekleniyor: `SAYI İZİ: n/10 bulundu` · `KOTA: x/y` · `SÜRPRİZ: n/N koşu` · `DERECE KOLU BOŞ: n at`.

EK KARAR (bu emrin varsayılanlarını ezer):
- Her koşuda GANYAN + İLK 2 + İLK 3 ayrı ayrı, her birinde en az bir ölçülen sayı.
- Sürpriz prompt 3.9'a göre yazılır, zorunlu değildir, koşu başına en fazla bir. Kadro 13 ve üzeriyse GÖZDEN KAÇANLAR'a en az iki at.
- AYAK PLANI prompt Bölüm 7'ye göre, okunabilirlik FARK BEYANI'ndan.
- ALTILI GANYAN ÖNERİSİ: açık olan her altılı için 6'lı ganyan kolonu ve 3'lü, 5'li genişletmesi.
- TL, bütçe, kombinasyon adedi ve kupon YAZILMAZ.
- Başlamış koşu kapsam dışıdır, ilk ayağı koşulmuş altılı için öneri üretilmez.
- VERİ İZOLASYONU: her sayı yazıldığı atın KENDİ döküm bloğundan gelir. ORTAK KOŞU satırından derece
  alınmaz. Atın derecesi kendi bloğunda yoksa KAYNAKTA YOK yazılır, benzeri uydurulmaz.

5 · DEĞİŞMEZLER

  • Tarih iki biçimde. hr-*.py GG-AA-YYYY, scraper-v2.py YYYY-AA-GG.
  • Yurt dışı iki dosyadır, ikisi de aynı numarayı taşır (yürürlükteki v7.1, önceki v7.0). ABD ve Kanada -abd-canada, diğer her ülke -hepsi. Numara değil, önce ülke eki seçilir.
  • Göreli cd kullanma. hr-*.py kökten, agf-cek.py ve scraper-v2.py scraper klasöründen çalışır.
  • PDF üretilmez, iş emrinde yazsa bile sorulur. HTML elle yazılmaz, hr-goster.py üretir.
  • AGF analiz raporuna girmez, kupon masasında ele alınır. Bülten yokluğu "AGF düşük" demek değildir.
  • Ölçüm yoksa bant verilmez, başka hipodromun bandı taşınmaz.
  • Her sayı kendi atının bloğundan gelir. ORTAK KOŞU satırından derece alınmaz; yoksa KAYNAKTA YOK.
  • İş emri kural içermez, kuralı olan dosyayı okutur. Analizin tek kural kaynağı prompt dosyasıdır.

Günlük komutlar için KOMUT-KARTI.html.

ÜRETEN: KOL 1 · 26.09.2026 · komutlar koddan, prompt dosyaları ls ile doğrulandı · satır bütünlüğü kuralı 23.09, derece yazım kuralı 22.09 ölçümünden geldi (KOL 4, V196-V197) · sürüm listesi v12.2 / v7.1 için hazırlandı, 26.09