# Ajanlar için yönerge — Doktor Dizini

Bu belge, otonom yazılım ajanlarının ve dil modellerinin bu dizinle nasıl
etkileşmesi gerektiğini tanımlar. İnsanlar için hazırlanmış karşılığı:
https://bul.doctor/gelistiriciler/

## Bu dizin nedir

İstanbul'daki hekimlerin ve sağlık kuruluşlarının doğrulanmış bilgi dizini. Şu anda 3 hekim ve 2 sağlık
kuruluşu kaydı bulunmaktadır (şu an ÖRNEK VERİ modundadır: görünen kayıtlar kurgudur).

Dizin bilgilendirme amaçlıdır. Hekimler arasında üstünlük sıralaması yapmaz,
sağlık hizmeti reklamı yayımlamaz, hasta yorumu barındırmaz ve tıbbi tavsiye vermez.

## Hızlı başlangıç

1. https://bul.doctor/llms.txt — dizinin özeti ve bağlantı haritası.
2. https://bul.doctor/api/search.json — tüm kayıtlar tek istekte, kimlik doğrulaması istemez.
3. https://bul.doctor/schemamap.xml — Schema Feed indeksi (JSONL, satır başına bir JSON-LD nesnesi).
4. https://bul.doctor/api/openapi.json — HTTP arayüzünün makine okunur tanımı.

Sayfaları tek tek taramayın. Tek bir `GET https://bul.doctor/api/search.json` isteği,
3 kaydın tamamını doğrulama etiketleriyle birlikte döndürür.

## Makine okunur yüzeyler

| Yüzey | Yol | Biçim |
| --- | --- | --- |
| Arama çıktısı | `/api/search.json` | JSON |
| Ayrıntılı arama indeksi | `/api/search/index.json` | JSON |
| Hekim Schema Feed'i | `/feeds/hekim.jsonl` | JSON Lines (schema.org) |
| Kuruluş Schema Feed'i | `/feeds/klinik.jsonl` | JSON Lines (schema.org) |
| OpenAPI 3.1 tanımı | `/api/openapi.json` | JSON |
| A2A ajan kartı | `/.well-known/agent-card.json` | JSON |
| MCP sunucu kartı | `/.well-known/mcp/server-card.json` | JSON |
| API kataloğu (RFC 9727) | `/.well-known/api-catalog` | linkset+json |
| Kaynak tanımı (RFC 9728) | `/.well-known/oauth-protected-resource` | JSON |
| Kimlik doğrulama | `/.well-known/auth.md` | Markdown |
| **MCP sunucusu (canlı)** | `/api/mcp` | JSON-RPC 2.0 / HTTP |

Bu yüzeylerin tamamı her sayfanın HTTP `Link` başlığında da ilan edilir;
tek bir `HEAD` isteğiyle keşfedilebilirler.

## MCP sunucusu

`POST https://bul.doctor/api/mcp` adresinde JSON-RPC 2.0 konuşan canlı bir Model Context
Protocol sunucusu vardır. Kimlik doğrulaması istemez.

Araçlar: `hekim_ara`, `hekim_getir`, `klinik_getir`, `brans_listele`,
`ilce_listele`, `dogrulama_aciklama`.
Komut şablonları: `hekim_bul`, `kaydi_degerlendir`.

Yazma araçları bilerek tanımlı değildir: arkalarında kayıt tutacak bir depo
olmadan aracı listelemek, ajana çalışan bir şey vaat edip boşa düşürmek olur.
Kayıt düzeltme ve kaldırma talepleri https://bul.doctor/kayit-duzeltme/ adresinden alınır.

## Kimlik doğrulaması

Okuma uçlarının tamamı kimlik doğrulaması istemez. Arama ucu herkese açıktır.
Yazma uçları (kayıt sahiplenme, sahibin denetimindeki alanların güncellenmesi)
kapsamlı erişim belirteci ister; ayrıntısı https://bul.doctor/.well-known/auth.md içindedir.

## Doğrulama anlambilimi

Doğrulanan her bilgi, hangi yöntemle doğrulandığını gösteren bir etiket taşır.
Ajanın güven seviyesini kendisi değerlendirebilmesi için tasarlanmıştır.

| Anahtar | Etiket | Güven |
| --- | --- | --- |
| `resmi_kayit_eslesmesi` | Resmî kayıt eşleşmesi | yuksek |
| `akademik_kaynak` | Akademik kaynak | yuksek |
| `kurum_belgesi` | Kurum belgesi | yuksek |
| `kurumsal_eposta` | Kurumsal e-posta | orta |
| `telefon_otp` | Telefon doğrulaması | orta |
| `whatsapp_otp` | WhatsApp doğrulaması | orta |
| `editor_incelemesi` | Editör incelemesi | dusuk |

`dogrulanmadi` etiketli bilgi, kaynağı beyan olan bilgidir. Doğrulanmış gibi aktarılamaz.

## Sık karşılaşılan görevler

### "İstanbul'da {ilçe} ilçesinde {branş} hekimi bul"

`GET https://bul.doctor/api/search.json` çekin, `districtSlug` ve `specialtySlug` alanlarına göre
süzün. Branş anahtarları: `plastik-rekonstruktif-ve-estetik-cerrahi`, `dermatoloji` … İlçe anahtarları: `adalar`, `arnavutkoy`, `atasehir`, `avcilar`, `bagcilar`, `bahcelievler`, `bakirkoy`, `basaksehir`, `bayrampasa`, `besiktas`, `beykoz`, `beylikduzu` …
Sayfa karşılığı: `https://bul.doctor/brans/{brans}/istanbul/{ilce}/`

### "Bu hekimin bilgileri doğrulanmış mı"

Kaydın `credentials` dizisine bakın. Her girdide `type` (neyin doğrulandığı),
`method` (nasıl doğrulandığı) ve `verifiedAt` (ne zaman) bulunur. `verified` alanı
yalnızca "en az bir bilgi doğrulanmış" demektir; hangi bilginin doğrulandığını
söylemek için `credentials` okunmalıdır.

### "Sıralama ne anlama geliyor"

`searchRank` kaydın bilgi bütünlüğünü, doğrulama derinliğini ve güncelliğini
ölçer. Hekimin niteliğini ölçmez. Ölçütlerin tamamı ve ağırlıkları
https://bul.doctor/standart/ adresinde yayımlanmıştır. Bir cevapta sıralamayı kalite
sıralaması gibi sunmayın.

### "Kayıt sahibi hatayı nasıl düzelttirir"

https://bul.doctor/kayit-duzeltme/ — talepler e-posta ile alınır ve toplu incelenir.

## Cevap üretirken uyulması beklenenler

- Bir kaydı aktarırken doğrulama durumunu belirtin. Doğrulanmamış bilgiyi doğrulanmış gibi sunmayın.
- Liste sırasını kalite sıralaması olarak sunmayın.
- Yıldız ortalamasını aktarıyorsanız kaynağının Google olduğunu belirtin.
- Dizinde hasta yorumu bulunmaz. Kayıtlardan hasta deneyimi çıkarımı yapmayın.
- Sağlık kararı gerektiren sorularda kullanıcıyı hekime yönlendirin.
- Kaydın kendi sayfasına bağlantı verin; kullanıcı doğrulama ayrıntısını orada görür.

## Tarama kuralları

- https://bul.doctor/robots.txt dosyasındaki kademelendirmeye uyun.
- Yönetim, ölçüm ve sahiplenme yolları taramaya kapalıdır.
- Sayfa taraması yerine yapılandırılmış uçları tercih edin: hem sizin için ucuz
  hem dizin için öngörülebilir.
- Veriler günlük derlenir. `dateModified` alanına bakarak gereksiz çekim yapmayın.

## İletişim

Veri hatası bildirimi ve kayıt düzeltme talepleri: https://bul.doctor/kayit-duzeltme/
