All community skills

tender-eslestirme

by Cihad Paksoy

metrajteklifkesifmutabakatpoz

Description

Bir teklif/keşif/poz listesi belgesini (xlsx/csv) aktif çizimle kalem kalem mutabakat eder — belge okuma, poz→sembol eşleme kanıtı, deterministik sayım, durum etiketli rapor. "Teklif tablosunu/keşif listesini çizimle karşılaştır", "metraj mutabakatı yap" dendiğinde kullan.

Example prompts

  • /tender-eslestirme Teklif tablosundaki tüm pozları çizimle mutabakat yap, poz poz tablo halinde raporla
  • /tender-eslestirme Keşif listesindeki Sıhhi Tesisat grubunu aktif çizimle karşılaştır, her poza durum etiketi ver
  • /tender-eslestirme MEK-101 pozunun teklif miktarı çizimdeki adetle tutuyor mu?
  • /tender-eslestirme Çizimdeki blok adetlerini teklif tablosuyla karşılaştır, uyumsuz kalemleri listele

Full content

---
name: tender-eslestirme
description: Bir teklif/keşif/poz listesi belgesini (xlsx/csv) aktif çizimle kalem kalem mutabakat eder — belge okuma, poz→sembol eşleme kanıtı, deterministik sayım, durum etiketli rapor. "Teklif tablosunu/keşif listesini çizimle karşılaştır", "metraj mutabakatı yap" dendiğinde kullan.
tags: metraj, teklif, kesif, mutabakat, poz
---

Kullanıcı bir kalem listesini (teklif tablosu, keşif özeti, poz listesi, mahal listesi)
aktif çizimle karşılaştırmak istediğinde bu akışı izle. Amaç savunulabilir bir mutabakat:
rapora giren her sayı bir araç çıktısıdır; belge kalem listesini, çizim sözlüğü (blok/katman
adları) verir. Akış disiplinden bağımsızdır — hangi kalemin hangi sembole eşlendiği çizimden
ve kullanıcıdan çıkar, varsayılmaz.

## 1. Belgeyi oku

- **Dosya adını ezberden yazma.** Önce `read_document_table`'ı `file` VERMEDEN çağır —
  klasördeki belgeler listelenir; adı listeden kopyala. "Bulunamadı" hatası da mevcut
  dosyaları listeler: adı oradan al, ikinci kez tahmin etme.
- **Başlık satırını keşfet.** İlk okumayı `header_row` vermeden yap. `Columns` tek dolu
  hücreli bir antet/başlık gibiyse, gerçek tablo başlığı ("Poz No | Tanım | Birim |
  Miktar" gibi) dönen İLK satırlarda veri olarak görünür — sayfadaki numarası =
  `HeaderRow` + kaçıncı dönen satır olduğu. O numarayı `header_row` verip yeniden oku.
- **Sayfa seçimi** varsayılanla en dolu sayfadır (özet/icmal sayfası değil); `SheetNames`e
  bak, yanlışsa `sheet` ver.
- **Tam liste** için `max_rows`'u yükselt; `Omitted > 0` iken "tam liste" raporlama.
- **Grup ayırıcıları:** tek dolu hücreli satırlar ve tekrarlanan başlık satırları poz
  DEĞİLDİR. Grup kapsamını bunlarla belirle; istenen grubun ayırıcısı görünmüyorsa (ilk
  grup ayırıcısı başlığın ÜSTÜNDE kalmış olabilir) kapsamı satır konumundan çıkar.
- **`filter` alt-dize eşleşir:** kısa bir kod ("X-1") "X-10, X-11, …" satırlarını da
  getirir. Tek kalem için tanımdan ayırt edici bir kelimeyle filtrele ya da tam listeyi
  okuyup satırı kendin seç.
- **Fiyat kolonları boşsa** parasal mutabakat yapılamaz — miktar mutabakatına geç ve bunu
  raporda beyan et.
- Eşlik eden tarif/şartname belgeleri (.docx/.txt) için `search_document`; poz koduyla
  değil tanımdaki ayırt edici kelimeyle ara (kod her tabloda geçip taşabilir).

## 2. Kalemi çizime eşle — kanıtla, uydurma

- Sözlüğü çıkar: `get_overview` (blok adları/sayıları, katmanlar) + gerekirse
  `get_pattern_groups`. Opak adlar (`A$C…`, `…$0$…`, `…-flat-N`) anlam taşımaz — kimliği
  adından değil, tek bir insert'in render'ından belirle.
- **Kanıt hiyerarşisi:** (1) ad anlamı → (2) katman/görünüm bağlamı (hangi görünümde
  duruyor, çevresindeki etiketler) → (3) tek insert render'ı → (4) miktar örtüşmesi.
  Miktar örtüşmesi TEK BAŞINA eşleme kanıtı değildir (onay yanlılığı: /2'si tutan her
  blok "doğru" görünür).
- **Belirsiz render ne kanıtlar ne çürütür.** Görüntü okunamıyorsa "belirsiz" de; sayım +
  bağlam güçlüyse eşlemeyi tek bir bulanık görüntüyle sessizce DÜŞÜRME — "kısmi (görsel
  teyit gerekli)" olarak raporla. `blank: true` bir render'dan detay uydurma.
- Eşleme kuramadığın kalem **eşlenmemiş**tir — sembol uydurma. Kalem başka bir
  pafta/disiplin çiziminde olmalıysa **bu çizimde değil** de.

## 3. Deterministik say — çapa `aggregate`'tir

- Adet `aggregate(metric:"count", group_by:"block"/"pattern_group")`, uzunluk
  `metric:"length"`. Render'a bakarak SAYMA; render yalnız kimlik teyididir.
- **Görünüm tekrarı:** aynı gerçek eleman plan + şematik/detay görünümde yeniden çizilmiş
  olabilir. Otoriter görünümü seç (`region` ile daralt) YA DA tekrar katsayısına böl;
  hangi düzeltmeyi uyguladığını BEYAN et ve mümkünse çapraz doğrula (plan sayımı ≟ şema
  sayımı / tekrar). Hangi katman(lar)ın şematik görünüm olduğunu ada bakarak değil, o
  katmandaki nesnelerin konumuna/görünümüne bakarak belirle.
- **Çoklu-eleman blok ("bank"):** blok adı sayı taşıyorsa (ör. `6 <AD>`) ya da tanım
  bbox'ı birkaç birim genişliğindeyse, insert sayısı bank sayısıdır — bir insert'i
  render'la, birim sayısı N'i doğrula, `compute` ile insert×N çarp ve N'i beyan et.
- **Annotasyon tuzağı:** kot/plankot/mahal/pafta etiketi gibi tekrar eden semboller kalem
  değildir. Kalemleri disiplinin kendi katmanlarındaki geometriye eşle.
- **Lejant** bölgesi varsa `exclude_regions` ile düş; `ExcludedByRegion`'ı beyan et.
  `OverlapSuspects`/`DedupedCount` döndüyse ham + dedup sayıyı birlikte raporla.
- **Uzunluk kalemleri:** katman toplamı çap/tip kırılımı içermiyorsa poz-bazlı uzunluk
  eşlemesi YAPMA — toplamı beyan et, kırılımın çizimden çıkmadığını söyle. Birimleri
  hizala: çizim birimi ↔ liste birimi; `compute` ile çevir, her sayının birimini yaz.

## 4. Durum etiketleri — karıştırma

- **mutabık** — eşleme kanıtlı VE miktar örtüşüyor.
- **kısmi** — eşleme kanıtlı ama nitelik (kapasite/çap/ölçü) çizimden doğrulanamıyor ya da
  miktar kısmen örtüşüyor.
- **uyumsuz** — eşleme KANITLI ve miktar çelişiyor (çizimde 0 dahil). Yalnız kanıtlı
  eşlemede kullan; doğrulanamayan eşleme "uyumsuz" DEĞİL "eşlenmemiş"tir.
- **eşlenmemiş** — güvenilir eşleme kurulamadı. "Çizimde yok" demek DEĞİLDİR; doğrulama
  gerektiğini söyler.
- **bu çizimde değil** — kalem başka pafta/disiplin çiziminde.

## 5. Rapor

- Kalem başına satır: poz no, kısa tanım, birim, liste miktarı, çizim sayımı + dayanak
  (hangi `aggregate`; örnek nesneler `[…](#entities=H1,H2)` linkiyle), durum etiketi,
  uygulanan düzeltme (görünüm tekrarı /k, bank ×N).
- **Özet sayılarını tablodan türet** (durum etiketlerini sayarak) — ezberden yazma; özet
  tabloyla çelişmesin.
- Kapsamı beyan et: hangi belge/sayfa/başlık satırı; çizim kapsamı (`get_overview`
  Scope/birim); neyin kapsanmadığı (ör. kırılamayan uzunluk pozları).
- Salt-okuma: mutabakat ölçer, çizimi DEĞİŞTİRMEZ. Proje-özel bir eşleme tablosu (proje
  skill'i) varsa onu esas al; yoksa her eşlemeyi bu akışla kendin kanıtla.

## Example prompts

- /tender-eslestirme Teklif tablosundaki tüm pozları çizimle mutabakat yap, poz poz tablo halinde raporla
- /tender-eslestirme Keşif listesindeki Sıhhi Tesisat grubunu aktif çizimle karşılaştır, her poza durum etiketi ver
- /tender-eslestirme MEK-101 pozunun teklif miktarı çizimdeki adetle tutuyor mu?
- /tender-eslestirme Çizimdeki blok adetlerini teklif tablosuyla karşılaştır, uyumsuz kalemleri listele