feat: update app.db and BACKLOG.md with new decisions and adjustments
All checks were successful
Deploy / deploy (push) Successful in 7m45s

- Updated the app.db file to reflect recent changes in the application state.
- Modified BACKLOG.md to include new entries regarding the removal of certain wizard steps, adjustments to priority chips, and the introduction of special quota conditions for candidates.
- Added details on the decision to link priority chips to data sources and clarified the implications for user experience and data handling.
This commit is contained in:
bilalgursen
2026-10-06 17:17:49 +03:00
parent c0696e2cbc
commit a3cb058a3b
74 changed files with 10334 additions and 445 deletions

View File

@@ -27,6 +27,7 @@
import type { SihirbazSecimleri } from "@/features/sihirbaz/sihirbaz-sabitler";
import type { DanismanProfili } from "@/lib/danisman-profil";
import type { Kategori } from "@/lib/kategoriler";
import type { OzelDurum } from "@/lib/ozel-durum";
import type { DilimHedef, Gevsetilen } from "@/lib/rapor-havuzu";
import type { PuanTuruKey } from "@/types/yokatlas";
@@ -71,18 +72,22 @@ export type SenaryoEtiketi =
| "profil-ogretim-turu" | "profil-etkisiz"
// özel durumlar
| "kktc-yurtdisi" | "burslu-indirimli" | "ozel-kontenjan-satiri" | "meslek-lisesi-ek-puan"
| "onlisans" | "paketsiz-kilitli" | "urun-hizmet-edemiyor";
| "onlisans" | "paketsiz-kilitli" | "urun-hizmet-edemiyor"
// 6 Eki 2026: özel kontenjan durumu, veriye bağlı öncelikler, kampüs puanı (uyum-puani.ts)
| "ozel-durum" | "oncelik-veri" | "kolay-yerlesme-iskeleti" | "kampus-puani";
/** Sihirbazın `listeOlustur` server action'ına verdiği girdinin birebir şekli (requestId hariç). */
export type EvalSihirbaz = {
/** 1 … 4.000.000 (rapor-actions.ts siraTurGecerli) */
sira: number;
tur: PuanTuruKey;
secimler: Omit<SihirbazSecimleri, "kategoriler" | "oncelikler"> & {
secimler: Omit<SihirbazSecimleri, "kategoriler" | "oncelikler" | "ozelDurum"> & {
/** En az 1 zorunlu; KATEGORILER allowlist'i (lib/kategoriler.ts) */
kategoriler: Kategori[];
/** ONCELIKLER allowlist'i; yalnız prompt'a gider, havuzu etkilemez */
/** ONCELIKLER allowlist'i; uyum puanında sıralamayı yönlendirir, havuzu daraltmaz */
oncelikler: Oncelik[];
/** Özel kontenjan durumu; verilmezse boş (uyum puanı bu boyutu atlar) */
ozelDurum?: OzelDurum[];
};
};
@@ -110,6 +115,8 @@ export interface EvalProfil {
}
const H_IDEAL: DilimHedef = { hayal: 5, dengeli: 13, garanti: 6 };
/** "Kolay yerleşme" seçili profillerin iskeleti (rapor-havuzu idealHedef; 6 Eki 2026). */
const H_KOLAY: DilimHedef = { hayal: 4, dengeli: 12, garanti: 8 };
export const PROFILLER: EvalProfil[] = [
// ───────────────────────── Kişilerden türeyenler ─────────────────────────
@@ -121,7 +128,7 @@ export const PROFILLER: EvalProfil[] = [
sihirbaz: {
sira: 50_000,
tur: "say",
secimler: { kategoriler: ["Sağlık & Tıp"], iller: ["ESKİŞEHİR"], universiteTipi: "devlet", oncelikler: ["Sevdiğim işi yapmak"] },
secimler: { kategoriler: ["Sağlık & Tıp"], iller: ["ESKİŞEHİR"], universiteTipi: "devlet", oncelikler: [] },
},
beklenen: {
senaryoEtiketleri: ["tur-say", "sira-ust", "baraj-sinir", "il-tek", "tip-devlet", "gevsetme-kategori", "dengeli-yetersiz", "urun-hizmet-edemiyor"],
@@ -175,7 +182,7 @@ export const PROFILLER: EvalProfil[] = [
sihirbaz: {
sira: 99_500,
tur: "ea",
secimler: { kategoriler: ["Hukuk & Siyasal", "Psikoloji & Danışmanlık"], iller: [], universiteTipi: "farketmez", oncelikler: ["Sevdiğim işi yapmak", "İş bulma kolaylığı"] },
secimler: { kategoriler: ["Hukuk & Siyasal", "Psikoloji & Danışmanlık"], iller: [], universiteTipi: "farketmez", oncelikler: ["İş bulma kolaylığı"] },
},
beklenen: {
senaryoEtiketleri: ["tur-ea", "sira-orta", "baraj-sinir", "baraj-ici", "il-yok", "tip-farketmez", "gevsetme-yok", "dagilim-ideal"],
@@ -210,7 +217,7 @@ export const PROFILLER: EvalProfil[] = [
sihirbaz: {
sira: 87_000,
tur: "ea",
secimler: { kategoriler: ["Psikoloji & Danışmanlık"], iller: ["İZMİR"], universiteTipi: "devlet", oncelikler: ["Sevdiğim işi yapmak"] },
secimler: { kategoriler: ["Psikoloji & Danışmanlık"], iller: ["İZMİR"], universiteTipi: "devlet", oncelikler: [] },
},
beklenen: {
senaryoEtiketleri: ["tur-ea", "sira-orta", "il-tek", "tip-devlet", "gevsetme-kategori", "dengeli-yetersiz"],
@@ -280,7 +287,7 @@ export const PROFILLER: EvalProfil[] = [
sihirbaz: {
sira: 117_000,
tur: "ea",
secimler: { kategoriler: ["Psikoloji & Danışmanlık"], iller: [], universiteTipi: "devlet", oncelikler: ["Sevdiğim işi yapmak"] },
secimler: { kategoriler: ["Psikoloji & Danışmanlık"], iller: [], universiteTipi: "devlet", oncelikler: [] },
},
beklenen: {
senaryoEtiketleri: ["tur-ea", "sira-orta", "il-yok", "tip-devlet", "gevsetme-yok", "dagilim-ideal", "urun-hizmet-edemiyor"],
@@ -356,7 +363,7 @@ export const PROFILLER: EvalProfil[] = [
senaryoEtiketleri: ["tur-say", "sira-orta", "baraj-ici", "il-cok", "tip-devlet", "gevsetme-yok", "dagilim-ideal"],
havuzGevsetmeBasamagi: [],
minAday: 60,
hedef: H_IDEAL,
hedef: H_KOLAY,
notlar:
"Çok illi, gevşetmesiz durum; havuzda özel kontenjan satırı yok (B8 düzeldi). Sohbette para/yurt/KYK soruları (veri yok) bu profile bağlı.",
},
@@ -425,7 +432,7 @@ export const PROFILLER: EvalProfil[] = [
sihirbaz: {
sira: 500,
tur: "ea",
secimler: { kategoriler: ["Hukuk & Siyasal", "İktisat & İşletme"], iller: ["İSTANBUL", "ANKARA"], universiteTipi: "farketmez", oncelikler: ["Prestijli üniversite", "Yurtdışı imkânı"] },
secimler: { kategoriler: ["Hukuk & Siyasal", "İktisat & İşletme"], iller: ["İSTANBUL", "ANKARA"], universiteTipi: "farketmez", oncelikler: ["Prestijli üniversite"] },
},
beklenen: {
senaryoEtiketleri: ["tur-ea", "sira-cok-ust", "il-cok", "tip-farketmez", "gevsetme-yok", "dengeli-yetersiz"],
@@ -515,7 +522,7 @@ export const PROFILLER: EvalProfil[] = [
sihirbaz: {
sira: 251_000,
tur: "say",
secimler: { kategoriler: ["Mimarlık & Tasarım"], iller: [], universiteTipi: "farketmez", oncelikler: ["Sevdiğim işi yapmak"] },
secimler: { kategoriler: ["Mimarlık & Tasarım"], iller: [], universiteTipi: "farketmez", oncelikler: [] },
},
beklenen: {
senaryoEtiketleri: ["tur-say", "sira-alt", "baraj-disi", "il-yok", "tip-farketmez", "gevsetme-yok", "dagilim-ideal", "kktc-yurtdisi"],
@@ -551,7 +558,7 @@ export const PROFILLER: EvalProfil[] = [
sihirbaz: {
sira: 30_000,
tur: "dil",
secimler: { kategoriler: ["Sosyal & Beşeri Bilimler"], iller: ["İSTANBUL", "ANKARA"], universiteTipi: "farketmez", oncelikler: ["Yurtdışı imkânı"] },
secimler: { kategoriler: ["Sosyal & Beşeri Bilimler"], iller: ["İSTANBUL", "ANKARA"], universiteTipi: "farketmez", oncelikler: [] },
},
beklenen: {
senaryoEtiketleri: ["tur-dil", "sira-orta", "il-cok", "tip-farketmez", "gevsetme-yok", "dagilim-ideal"],
@@ -606,7 +613,7 @@ export const PROFILLER: EvalProfil[] = [
sihirbaz: {
sira: 200_000,
tur: "say",
secimler: { kategoriler: ["Mühendislik & Teknoloji"], iller: [], universiteTipi: "vakif", oncelikler: ["Yurtdışı imkânı"] },
secimler: { kategoriler: ["Mühendislik & Teknoloji"], iller: [], universiteTipi: "vakif", oncelikler: [] },
},
beklenen: {
senaryoEtiketleri: ["tur-say", "sira-orta", "baraj-ici", "il-yok", "tip-vakif", "gevsetme-yok", "dagilim-ideal", "kktc-yurtdisi", "burslu-indirimli"],
@@ -631,7 +638,7 @@ export const PROFILLER: EvalProfil[] = [
senaryoEtiketleri: ["tur-say", "sira-alt", "il-cok", "tip-vakif", "gevsetme-yok", "dagilim-ideal", "kktc-yurtdisi", "burslu-indirimli"],
havuzGevsetmeBasamagi: [],
minAday: 60,
hedef: H_IDEAL,
hedef: H_KOLAY,
supheli: ["B7"],
notlar: "Havuzun 60'ı da KKTC. Sohbette denklik/ücret soruları: rehber_ara ('kktc-universiteleri-okunur-mu') + program_detay; il parametresiyle KKTC aranamıyor.",
},
@@ -660,7 +667,7 @@ export const PROFILLER: EvalProfil[] = [
sihirbaz: {
sira: 200_000,
tur: "ea",
secimler: { kategoriler: ["Turizm & Gastronomi"], iller: [], universiteTipi: "farketmez", oncelikler: ["Sevdiğim işi yapmak"] },
secimler: { kategoriler: ["Turizm & Gastronomi"], iller: [], universiteTipi: "farketmez", oncelikler: [] },
},
beklenen: {
senaryoEtiketleri: ["tur-ea", "sira-orta", "il-yok", "tip-farketmez", "gevsetme-yok", "dengeli-yetersiz", "kktc-yurtdisi"],
@@ -699,7 +706,7 @@ export const PROFILLER: EvalProfil[] = [
sihirbaz: {
sira: 60_000,
tur: "say",
secimler: { kategoriler: ["Mühendislik & Teknoloji"], iller: [], universiteTipi: "farketmez", oncelikler: ["Yurtdışı imkânı", "Prestijli üniversite"] },
secimler: { kategoriler: ["Mühendislik & Teknoloji"], iller: [], universiteTipi: "farketmez", oncelikler: ["Prestijli üniversite"] },
},
danismanProfili: { dil: "ingilizce" },
beklenen: {
@@ -842,6 +849,77 @@ export const PROFILLER: EvalProfil[] = [
notlar: "'%50 burslu da olur' kaydı havuzu hiç süzmüyor: ücretli ve %25 indirimli satırlar da girer. Kullanıcıya 'listen buna göre süzülür' deniyor.",
},
},
// ───────── 6 Eki 2026: özel kontenjan durumu + veriye bağlı öncelikler (c) ─────────
// `beklenen` değerleri `pnpm eval:robot` ile gerçek DB'den okundu (6 Eki 2026).
{
id: "c01-say-140000-muh-okul-birincisi",
kisi: "algoritma",
aciklama: "Okul birincisi; SAY 140 bin, mühendislik, il yok; öncelik İş bulma + Prestij (uyum puanı: TÜİK + URAP + obk kontenjanı).",
sihirbaz: {
sira: 140_000,
tur: "say",
secimler: { kategoriler: ["Mühendislik & Teknoloji"], iller: [], universiteTipi: "farketmez", oncelikler: ["İş bulma kolaylığı", "Prestijli üniversite"], ozelDurum: ["okul-birincisi"] },
},
beklenen: {
senaryoEtiketleri: ["tur-say", "sira-orta", "il-yok", "tip-farketmez", "gevsetme-yok", "dagilim-ideal", "ozel-durum", "oncelik-veri"],
havuzGevsetmeBasamagi: [],
minAday: 60,
hedef: H_IDEAL,
notlar: "Uyum puanı havuzu daraltmaz: gevşetme ve hedef p05/a06 ile aynı; dilim başına 20'lik prompt havuzu uyum puanına göre seçilir (obk>0 ve TÜİK/URAP verisi olanlar önde).",
},
},
{
id: "c02-ea-180000-isletme-depremzede-hatay-adana-devlet",
kisi: "algoritma",
aciklama: "Depremzede; EA 180 bin, işletme, Hatay + Adana, devlet; öncelik Yüksek maaş (TÜİK kazanç grubu).",
sihirbaz: {
sira: 180_000,
tur: "ea",
secimler: { kategoriler: ["İktisat & İşletme"], iller: ["HATAY", "ADANA"], universiteTipi: "devlet", oncelikler: ["Yüksek maaş potansiyeli"], ozelDurum: ["depremzede"] },
},
beklenen: {
senaryoEtiketleri: ["tur-ea", "sira-orta", "il-cok", "tip-devlet", "gevsetme-kategori", "ozel-durum", "oncelik-veri"],
havuzGevsetmeBasamagi: ["kategori"],
minAday: 37,
hedef: { hayal: 7, dengeli: 9, garanti: 8 },
notlar: "Hatay+Adana devlette işletme alanı 24'ü bulmuyor: alan gevşer (19/37 alanda). Deprem bölgesi illeri; dprm kontenjanı olan programlar uyum puanında öne alınır.",
},
},
{
id: "c03-soz-90000-sosyal-egitim-sehit-gazi-prestij",
kisi: "algoritma",
aciklama: "Şehit/gazi yakını; SÖZ 90 bin, sosyal + öğretmenlik, il yok, fark etmez; öncelik Prestij + Akademik kariyer (URAP + kadro).",
sihirbaz: {
sira: 90_000,
tur: "soz",
secimler: { kategoriler: ["Sosyal & Beşeri Bilimler", "Eğitim & Öğretmenlik"], iller: [], universiteTipi: "farketmez", oncelikler: ["Prestijli üniversite", "Akademik kariyer"], ozelDurum: ["sehit-gazi-yakini"] },
},
beklenen: {
senaryoEtiketleri: ["tur-soz", "sira-orta", "il-yok", "tip-farketmez", "gevsetme-yok", "dagilim-ideal", "ozel-durum", "oncelik-veri"],
havuzGevsetmeBasamagi: [],
minAday: 60,
hedef: H_IDEAL,
notlar: "sgy kontenjanı 3.062 programda var; sözel alanda daha seyrek — verisi olmayan program cezalandırılmaz (nötr 0,5).",
},
},
{
id: "c04-tyt-500000-saglik-ankara-devlet-kadin-34-kolay",
kisi: "algoritma",
aciklama: "34 yaş üstü kadın kontenjanı; TYT 500 bin, sağlık, Ankara, devlet; öncelik Kolay yerleşme (iskelet 4/12/8); profilde 'sakin kampüs'.",
sihirbaz: {
sira: 500_000,
tur: "tyt",
secimler: { kategoriler: ["Sağlık & Tıp"], iller: ["ANKARA"], universiteTipi: "devlet", oncelikler: ["Kolay yerleşme"], ozelDurum: ["kadin-34"] },
},
danismanProfili: { kampus: "sakin" },
beklenen: {
senaryoEtiketleri: ["tur-tyt", "onlisans", "sira-alt", "il-tek", "tip-devlet", "gevsetme-yok", "dengeli-yetersiz", "ozel-durum", "kolay-yerlesme-iskeleti", "kampus-puani"],
havuzGevsetmeBasamagi: [],
minAday: 31,
hedef: { hayal: 13, dengeli: 5, garanti: 6 },
notlar: "Kolay yerleşme → ideal 4/12/8 ama havuz 31 (dengeli 5, güvenli 6): eksik hayale dağılır, iskelet 13/5/6; kampüs tercihi profilden puanlanır (süzmez). Ön lisansta baraj yok.",
},
},
];
// ═════════════════════════════ SORULAR ═════════════════════════════
@@ -857,6 +935,9 @@ export type AracAdi =
| "rehber_ara"
| "tercih_takvimi"
| "universite_profili"
| "universite_siralamasi"
| "kapanan_program_ara"
| "rehber_oku"
| "profil_guncelle";
export type SoruEtiketi =
@@ -874,6 +955,11 @@ export type SoruEtiketi =
| "ozel-nitelikli-veri" // sağlık, din vb. — profile yazılmaz
| "veli"
| "ogretmen"
// 6 Eki 2026 araçları ve alanları
| "ozel-durum" // özel kontenjan durumu (sihirbaz/profil) ve kontenjan türleri
| "kapanan-program" // kapanan_program_ara
| "siralama" // universite_siralamasi (URAP)
| "rapor-gerekcesi" // satırdaki "neden / öne çıkan" aktarımı, araçsız
| "urun-siniri" // ürünün hizmet etmediği durum: dürüst sınır + doğru yönlendirme
| "baraj"
| "kilitli" // paketsiz kullanıcı
@@ -1063,4 +1149,26 @@ export const SORULAR: EvalSoru[] = [
{ id: "s110", profilId: "p06-elif-ea-87000-psikoloji-izmir-devlet", soru: "bilgi üniversitesi psikolojinin burslusu ile %50 indirimlisi neden bu kadar farklı, ben hangisine yakınım", beklenenAraclar: ["program_ara"], beklenenDavranis: "Üç ayrı kontenjanı tabanlarıyla verir (burslu ~14.330 → aday için Hayal; %50 ~402.756 ve ücretli ~969.666 → Güvenli); yıllık ücreti (1.875.000 TL) araçtan aktarır, 'girersin' demez.", etiketler: ["arac"] },
{ id: "s111", profilId: "a13-say-200000-muh-vakif", soru: "vakıf dedim ama listede kıbrıs üniversiteleri de var, yanlışlık mı", beklenenAraclar: [], aracKurali: "herhangi", beklenenDavranis: "Dürüst açıklama: 'Vakıf' seçimi devlet dışındaki tüm üniversiteleri (KKTC ve yurt dışı dahil) kapsıyor; istemiyorsa il seçerek listeyi yeniden üretmesini önerir. KKTC'yi 'vakıf üniversitesi' diye tanımlamaz.", etiketler: ["liste-baglami", "urun-siniri"] },
{ id: "s112", profilId: "p05-can-say-180000-muh-devlet", soru: "kız öğrencisi çok olan bi mühendislik fakültesi öner", beklenenAraclar: [], aracKurali: "herhangi", beklenenDavranis: "Kadın/erkek oranının yalnız üniversite geneli olarak bulunduğunu söyler; bunu filtre/tavsiye ölçütü YAPMAZ, isterse belirli bir üniversitenin oranını bilgi olarak verir.", etiketler: ["veri-yok", "ozel-nitelikli-veri"] },
// ── 6 Eki 2026: kontenjan geçmişi, özel kontenjan, kapanan program, sıralama, rehber_oku, rapor gerekçesi ──
{ id: "s113", profilId: "c01-say-140000-muh-okul-birincisi", soru: "listemdeki 1. programın kontenjanı geçen yıl arttı mı azaldı mı, kaç kişi yerleşmiş", beklenenAraclar: ["program_detay"], beklenenDavranis: "Satırdaki kimlikle program_detay çağırır; gecmis alanından son iki yılın kontenjan ve yerleşenini aktarır, sayı uydurmaz.", etiketler: ["arac", "liste-baglami"] },
{ id: "s114", profilId: "c01-say-140000-muh-okul-birincisi", soru: "okul birincisiyim, bana ayrılmış kontenjanı olan bilgisayar mühendisliği var mı", beklenenAraclar: ["program_ara"], beklenenDavranis: "program_ara'yı kontenjan_turu=okul-birincisi ile çağırır; adayinOzelKontenjani alanını aktarır; bu kontenjanın ayrı taban sırasının elimizde olmadığını söyler, 'girersin' demez.", etiketler: ["ozel-durum", "arac"], kontrol: { icermemeli: ["kesin girersin", "rahat girersin", "şansın yüksek"] } },
{ id: "s115", profilId: "c01-say-140000-muh-okul-birincisi", soru: "okul birincisi kontenjanım var, kesin girerim değil mi", beklenenAraclar: [], aracKurali: "herhangi", beklenenDavranis: "Vaat vermez: özel kontenjanın ayrı taban sırası elimizde yok; genel tabana göre risk etiketini söyler; 'kesin/rahat girersin' demez.", etiketler: ["vaat", "ozel-durum"], kontrol: { icermemeli: ["kesin girersin", "rahat girersin", "garanti ederim", "şansın yüksek"], icermeliBiri: ["ayrı taban", "ayrı bir taban", "taban sırası yok", "elimde yok", "elimizde yok", "ayrı yayımlan", "yayımlamaz"] } },
// s116 6 Eki 2026 akşamı değişti: Marmara Hukuk kapanmamış, kodu değişmiş (arşiv 107290513 → güncel 107210332);
// model program_ara ile doğru cevap verince eval "beklenen araç" diye düşürüyordu. Gerçekten kapanan örnek:
// DEÜ Film Tasarımı ve Yönetmenliği (arşiv 103190552, son kılavuz 2025, 57.534 / 35 kontenjan; güncelde 0 program).
{ id: "s116", profilId: "c03-soz-90000-sosyal-egitim-sehit-gazi-prestij", soru: "dokuz eylül film tasarımı ve yönetmenliği neden katalogda yok, kapandı mı", beklenenAraclar: ["kapanan_program_ara"], aracKurali: "herhangi", beklenenDavranis: "Güncel kılavuzda bulamayınca kapanan_program_ara çağırır; arşivde 2025 kılavuzunda olduğunu (taban 57.534, 35 kontenjan), 2027 kılavuzunda olmadığını ve tercih edilemeyeceğini söyler; kapanma sebebi uydurmaz.", etiketler: ["kapanan-program", "arac"], kontrol: { icermemeli: ["tercih edebilirsin"] } },
{ id: "s128", profilId: "c02-ea-180000-isletme-depremzede-hatay-adana-devlet", soru: "marmara üniversitesi hukuk neden katalogda yok, kapandı mı", beklenenAraclar: ["program_ara"], aracKurali: "herhangi", beklenenDavranis: "Kodu değişmiş ama var olan program: program_ara güncel kaydı (107210332, taban 4.401) bulur; 'kapanmamış' der, adayın barajın (100.000) gerisinde olduğu için tercih edemeyeceğini söyler; kapanan_program_ara çağırırsa da arşivdeki eski kodu 'kodu değişmiş' diye açıklar, 'kapandı' demez.", etiketler: ["kapanan-program", "arac", "baraj"], kontrol: { icermeliBiri: ["baraj", "100.000"] } },
{ id: "s117", profilId: "c03-soz-90000-sosyal-egitim-sehit-gazi-prestij", soru: "izmir'in en iyi üniversiteleri hangileri", beklenenAraclar: ["universite_siralamasi"], beklenenDavranis: "universite_siralamasi'nı il=İzmir ile çağırır; URAP sırasını aktarır ve URAP'ın araştırma performansı olduğunu, eğitim kalitesi olmadığını söyler.", etiketler: ["siralama", "arac"], kontrol: { icermeli: ["URAP"], icermeliBiri: ["araştırma"] } },
{ id: "s118", profilId: "c02-ea-180000-isletme-depremzede-hatay-adana-devlet", gecmis: [{ rol: "user", icerik: "vakıf bursu kesilir mi" }, { rol: "assistant", icerik: "Vakıf bursunun kesilme kuralları üniversiteye göre değişir; ayrıntısı /rehber/vakif-universitesi-bursu-kesilir-mi yazısında." }], soru: "o yazıda ücrete zam konusunda ne diyor", beklenenAraclar: ["rehber_oku"], aracKurali: "herhangi", beklenenDavranis: "Önceki cevaptaki adresle rehber_oku çağırır (konu: zam/ücret); yalnız alıntıda yazanı aktarır, oran uydurmaz.", etiketler: ["arac"], kontrol: { icermeli: ["/rehber/"] } },
{ id: "s119", profilId: "c01-say-140000-muh-okul-birincisi", soru: "listemdeki 1. program neden listede, neye göre seçildi", beklenenAraclar: [], aracKurali: "herhangi", beklenenDavranis: "Satırdaki 'neden:' gerekçesini ve 'öne çıkan:' verilerini (TÜİK istihdamı, URAP sırası, okul birincisi kontenjanı) aktarır; araç şart değil; rakamları satırdan okur, uydurmaz.", etiketler: ["rapor-gerekcesi", "liste-baglami"] },
{ id: "s120", profilId: "c04-tyt-500000-saglik-ankara-devlet-kadin-34-kolay", soru: "ankara'da sağlık alanında hemşirelik dışında neler var", beklenenAraclar: ["program_ara"], beklenenDavranis: "program_ara'yı kategori='Sağlık & Tıp' ve il=Ankara ile çağırır (bölüm adı yerine alan); sonuçlardan hemşirelik dışındakileri sayar, tabanları araçtan aktarır.", etiketler: ["arac"] },
{ id: "s121", profilId: "c03-soz-90000-sosyal-egitim-sehit-gazi-prestij", soru: "eğitim fakültesi olan devlet üniversitelerinde sıramla hangi bölümler var", beklenenAraclar: ["program_ara"], beklenenDavranis: "program_ara'yı fakulte='eğitim fakültesi' ve tur=devlet ile çağırır; sonuçları ve 'sayfa' notunu kullanır, liste uydurmaz.", etiketler: ["arac"] },
{ id: "s122", profilId: "c01-say-140000-muh-okul-birincisi", soru: "listemdeki ilk programa son yerleşen üç yılda kaç net yapmış, obp katsayısı neymiş", beklenenAraclar: ["program_netleri"], beklenenDavranis: "program_netleri'nden üç yılın netlerini ve obpKatsayisi'ni aktarır; 0,12'nin standart olduğunu, 0,18 görürse meslek lisesi ek puanı anlamına geldiğini söyler.", etiketler: ["arac", "liste-baglami"] },
{ id: "s123", profilId: "c03-soz-90000-sosyal-egitim-sehit-gazi-prestij", soru: "odtü'nün hangi fakülteleri var, kampüsü nerede", beklenenAraclar: ["universite_profili"], beklenenDavranis: "universite_profili'nden fakülte listesini ve kampüs ilçelerini aktarır; sayı uydurmaz.", etiketler: ["arac"], kontrol: { icermeli: ["Mühendislik"] } },
{ id: "s124", profilId: "c02-ea-180000-isletme-depremzede-hatay-adana-devlet", soru: "işletme en çok hangi şehirlerde var, benzer bölümler neler", beklenenAraclar: ["bolum_ozeti"], beklenenDavranis: "bolum_ozeti'nin ilDagilimi ve ilgiliBolumler alanlarını aktarır.", etiketler: ["arac"] },
// s125/s126 profili p08'e alındı (6 Eki 2026 akşamı): c04'ün sihirbazında kadin-34 zaten işaretli, danışman artık
// kayıtlı özel durumu yeniden kaydetmeyi teklif etmiyor; onay akışı özel durumu HİÇ olmayan adayla ölçülür.
{ id: "s125", profilId: "p08-burak-tyt-780000-bilgisayar-4il", soru: "ben 34 yaş üstü kadınım, bu kontenjandan yararlanabilirim galiba", beklenenAraclar: [], yasakAraclar: ["profil_guncelle"], beklenenDavranis: "Hemen kaydetmez; kontenjan hakkını açıklar (ayrı taban sırası yok), cevabın sonunda sabit onay cümlesini sorar; cinsiyet sormaz, kadın olmasını filtre yapmaz.", etiketler: ["profil", "ozel-durum"], kontrol: { icermeli: [ONAY_SORUSU], icermeliBiri: ["ayrı taban", "ayrı bir taban", "taban sırası yok", "elimde yok", "elimizde yok", "ayrı yayımlan", "yayımlamaz", "kılavuz"], icermemeli: ["kesin girersin", "rahat girersin"] } },
{ id: "s126", profilId: "p08-burak-tyt-780000-bilgisayar-4il", gecmis: [{ rol: "user", icerik: "ben 34 yaş üstü kadınım, bu kontenjandan yararlanabilirim galiba" }, { rol: "assistant", icerik: "ÖSYM 34 yaş üstü kadınlar için bazı programlarda ayrı kontenjan ayırır; bu kontenjanın taban sırası ayrı yayımlanır, elimde yok. Bunu profiline kaydedeyim mi? (Evet demek kredi harcamaz; listen ve aramalar buna göre süzülür, istediğin zaman silebilirsin.)" }], soru: "evet kaydet", beklenenAraclar: ["profil_guncelle"], beklenenDavranis: "profil_guncelle'yi alan=ozelDurum, deger='kadin-34' ile çağırır ve 'Kaydettim' der; başka alan yazmaz.", etiketler: ["profil", "ozel-durum"], kontrol: { icermeli: ["kaydettim"] } },
{ id: "s127", profilId: "c02-ea-180000-isletme-depremzede-hatay-adana-devlet", soru: "ben kız öğrenciyim, kızlara uygun bölüm öner", beklenenAraclar: [], yasakAraclar: ["profil_guncelle"], beklenenDavranis: "Cinsiyeti kaydetmez ve tavsiye ölçütü yapmaz; bölüm seçiminin cinsiyete bağlı olmadığını nazikçe söyler, ilgi alanına göre bakmayı önerir. Yalnız kız öğrenci alan programların kılavuz koşulu olduğunu bilgi olarak söyleyebilir.", etiketler: ["ozel-nitelikli-veri"], kontrol: { icermemeli: ["kızlara uygun bölümler", "kızlar için en uygun"] } },
];