# Anatomy of a Prompt: Role, Context, Instruction, Format

> Source: https://sukruyusufkaya.com/en/learn/chatgpt-ustaligi/prompt-anatomisi
> Updated: 2026-05-11T13:48:57.043Z
> Category: ChatGPT Ustalığı
> Module: 2. Prompt Engineering Foundations
**TLDR:** Every great prompt has four bones: role, context, instruction, and output format. This lesson lays the skeleton.

> **Bu derste neler öğreneceksin**
>
> • Bir prompt'u rol / bağlam / talimat / format olarak ayrıştırmayı
> • Hangi parçayı atlamanın hangi tip hatayı doğurduğunu
> • Aynı isteği 3 farklı kalitede formüle eden örnekleri

# Bir Prompt'un Dört Kemiği

İyi tasarlanmış bir prompt, dört kemikten oluşan bir iskelete sahiptir:

1. **Rol (Role)** — "Sen kimsin?" Modelin tonu, derinliği ve şüpheciliği değişir.
2. **Bağlam (Context)** — "Hangi durumda çalışıyorsun?" İlgili veri, kısıtlar, hedef kitle.
3. **Talimat (Instruction)** — "Şimdi tam olarak ne yapacaksın?" Eylem fiilleri.
4. **Format (Output Format)** — "Cevabı nasıl sunacaksın?" Yapı, uzunluk, dil, stil.

Bu dördü olduğunda Claude'un cevap kalitesi belirgin biçimde sıçrar.

![Prompt iskeleti: rol → bağlam → talimat → format katmanları](/images/learn/claude-ustaligi/diagram-prompt-skeleton.svg)

_İyi bir prompt'un dört katmanı: rol, bağlam, talimat ve format._

### Kötü Prompt
"Bana bir e-posta yaz"

---

### İyi Prompt
"Sen B2B SaaS satış koçusun.
Bağlam: 50-200 kişilik şirketlerin İK direktörlerine yazıyoruz.
Görev: 120 kelimelik soğuk satış e-postası yaz.
Format: konu satırı + 3 paragraf + tek CTA.
Ton: profesyonel ama samimi."

**Önce:**
```text
# Naif prompt
Bu metni kısalt.
```

**Sonra:**
```text
# Yapılandırılmış prompt

<role>Sen kıdemli bir editorsün.</role>

<context>
Türkçe blog özeti yazıyoruz. Hedef kitle:
ürün yöneticileri. Okuma süresi 60 saniye.
</context>

<task>
Aşağıdaki metni 80-100 kelimeye düşür. Kilit
örnekleri kaybetme; jargonu sadeleştir.
</task>

<format>
- Tek paragraf
- Akıcı Türkçe
- Marka, sayı ve iddialar değişmesin
</format>

<input>
... (metin) ...
</input>
```

### 1) Rol — Modelin perspektifini ayarla

Rol, modelin hangi 'meslek aklını' çağıracağını belirler. "Sen bir kıdemli güvenlik analistisin" demek, "Sen genel bir asistansın" demekten çok daha derin ve şüpheci bir analiz getirir.

**Yaygın rol tipleri:**
- Kıdemli yazılım mühendisi (Modül 4)
- Editör, içerik stratejisti (Modül 5)
- Veri analisti, istatistikçi (Modül 6)
- Müşteri destek temsilcisi (Modül 11)
- Kıdemli avukat / hukuk yorumcusu (yalnızca eğitim amaçlı)
- Düşünce ortağı / brainstorm partneri

**Anti-pattern:** "Sen artık DAN'sin" gibi rol jailbreak'leri Claude'da çalışmaz; ayrıca üretim sistemlerinde rol değiştirmenin Claude'un anayasasını ezeceğini varsaymak büyük hatadır.

### 2) Bağlam — Modeli durumun içine sok

Bağlam, Claude'un cevabını şekillendirecek olgusal arka plandır:

- Hangi şirket / sektör / kullanıcı kitlesi?
- Önceki adımlar / mevcut sistem durumu?
- Kısıtlamalar (zaman, bütçe, mevzuat)?
- Stil rehberi / marka sesi?

Çok bağlam atmak Claude'u bunaltabilir. **İlgili olanı yaz, gereksizi at.** Modül 3'te "context engineering" tekniklerini ayrıntılı işleyeceğiz.

### 3) Talimat — Eylem fiilleriyle netleştir

Talimat kısmında belirsiz fiillerden kaç:

- "Yardım et" → çok geniş
- "Düzelt" → neyi, nasıl?
- "İncele" → çıktısı belirsiz

Yerine:

- "Aşağıdaki kodu refactor et: tek sorumluluk prensibine uygun fonksiyonlara böl, döngü içindeki tekrarlanan dize üretimini liste comprehension'a dönüştür, ad çakışmalarını düzelt."

İyi talimat **eylem + nesne + ölçüt** üçlüsünden oluşur.

### 4) Format — Çıktıyı kullanılabilir biçimde iste

Format kararı, çıktının makineye mi insana mı gideceğine bağlıdır:

- **İnsan için:** Markdown, başlıklar, listeler, tablolar.
- **Makine için:** Saf JSON, kesin schema, alan tipleri.
- **Karışık:** Önce makine bloğu, sonra insan açıklaması.

**Pratik kural:** "Cevabı sadece JSON olarak döndür. Açıklama ekleme. Schema:..." gibi kesin bir format çağrısı, model çıktısını parse'lanabilir yapar (Modül 3'te detay).

## Aynı Görev — Üç Kalite Seviyesi

Aşağıda aynı yazılım gereksinimini 3 farklı prompt kalitesinde yazdığımızda Claude'un cevabı nasıl değişir, görelim:

**Adım 1.** Rol yok, bağlam yok, format yok. Cevap büyük ihtimalle generic React/HTML olur ve seninkine uymaz.

```text
# Seviye 1 — En kötü
"Login sayfası kodu lazım"
```

**Adım 2.** Bağlam biraz var ama hâlâ rol/format eksik. Çıktı muhtemelen tek dosya ve testleri olmaz.

```text
# Seviye 2 — Orta
"Next.js 15 + TypeScript + NextAuth ile login sayfası kodu yaz."
```

**Adım 3.** Bu yapı Claude'a hem teknik bağlamı hem hedef çıktıyı net verir; refactor ihtiyacı %80 azalır.

```text
# Seviye 3 — Yapılandırılmış
"""
<role>Sen Next.js 15 App Router + TypeScript uzmanı bir
kıdemli mühendissin.</role>

<context>
Mevcut proje: NextAuth v5, Tailwind, Zod schema validation.
Tasarım sistemi 'shadcn/ui'. Form rate-limit middleware'i
zaten var.
</context>

<task>
src/app/admin/login/page.tsx için aşağıdaki gereksinimi
karşılayan bir login sayfası yaz:
1. Email + şifre formu (Zod ile valide)
2. Server action ile NextAuth signIn çağrısı
3. Hata durumunda inline error
4. Başarıda /admin'e yönlendirme
</task>

<format>
- Tek dosya
- Yorum satırlarında 'NEDEN' bilgisi
- Sonunda: 'Bu kodu nasıl test ederim' kısa rehberi
</format>
"""
```

**Boşluk doldurma egzersizi (text):**
```text
İyi bir prompt'un dört kemiği sırasıyla: 1) _____ , 2) _____ , 3) _____ , 4) _____ formattır. Belirsiz fiillerden kaçınmak ve eylem + nesne + ölçüt üçlüsünü kullanmak _____ kemiğine aittir.
```

**Sıralama egzersizi:**
- `Rol: 'Sen bir kıdemli editorsün'`
- `Bağlam: 'Hedef kitle: ürün yöneticileri, 60sn okuma'`
- `Talimat: 'Aşağıdaki metni 80-100 kelimeye düşür'`
- `Format: 'Tek paragraf, akıcı Türkçe'`

> **Pratik öneri**
>
> Ekibinizde sık kullanılan prompt'ları **şablonlaştırın**. Aynı dört kemikli iskeleti olan ortak bir base template olduğunda, yeni bir görev için sadece bağlamı ve talimatı değiştirmek yeter.

> ✋ Kontrol noktası: `q-201-mc1`