> For the complete documentation index, see [llms.txt](https://docs.yemreak.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.yemreak.com/contents/8f49eb5a.md).

# Ekranda Göster, AI Koda Gitsin

![SourceMap inceleme modu: ekrandaki her component adı ve dosya:satırıyla çerçeveleniyor](/files/E9vzUKp1tKArtgYwGlZz)

## Problem: insan koda inmek zorunda kalıyor

Bir masaüstü uygulaması geliştirirken yapay zekâ ile çalışıyorsun. Ekranda bir şey görüyorsun — bir buton yanlış yerde, bir liste kasıyor, bir kart bozuk görünüyor. AI'ya "şunu düzelt" demek istiyorsun.

Ama AI senin gördüğünü göremiyor. Ona tarif etmek için sen koda iniyorsun: hangi dosya, hangi satır, hangi component? Koca repoda arıyorsun. Her seferinde tekrar eden bir el-emeği, bir sürtünme.

Oysa temel ilke şu olmalı: **gördüğün her şey, AI'ya tarif edilebilir olmalı.** Sen ekranda göster, kod-yolu kendiliğinden çıksın.

## Fikir: insan UI katmanında kalsın

İnsan–AI etkileşiminde insanın yeri UI katmanıdır — gözünle gördüğün yüzey. Kod tarafına inmek zorunda kalman senin işin değil, aracın eksikliğidir.

Çözüm basit: UI ile kodu birbirine bağlamak. Ekrandaki her görsel elementin, koddaki konumunu (dosya:satır) taşıması.

Bu yeni bir problem değil. Tarayıcılarda çoktan çözülmüş: "Inspect Element" ile bir web sayfasında herhangi bir öğeye gelirsin, kaynağını görürsün. On yıllardır var. Eksik olan, aynı deneyimin macOS native uygulamalarda olmaması. SourceMap tam olarak bunu yapıyor.

## Nasıl çalışıyor

SwiftUI view'ına bir kez etiket koyuyorsun:

```swift
CartView().sourceMap("cart")
```

Sonrası:

* **⌥I** ile inceleme modunu açıyorsun — ekrandaki her component, adı ve `dosya:satır`'ıyla çerçeveleniyor (yukarıdaki ekran görüntüsü tam olarak bu)
* Fareyi gezdiriyorsun — iç içe geçmiş component'ler zincirleniyor
* **⌥scroll** ile derinliğe iniyorsun, en içteki elementi nişan alıyorsun
* **⌥C** ile `cart — CartView.swift:42` panoya kopyalanıyor

Bu metni doğrudan AI'ya yapıştırıyorsun. Artık AI aramıyor — tam o dosyaya, o satıra gidiyor.

Önemli ayrıntı: `dosya:satır`'ı sen yazmıyorsun. Swift derleyicisinin `#fileID` ve `#line` sabitleri bunu etikete otomatik gömüyor. Etiketi koydun mu, gerisi kendiliğinden gelir; satır numarası elle takip edilmez.

## Tek kimlik, üç yüzey

İşin asıl güzel tarafı: aynı isim üç yerde birebir yaşıyor.

```
EKRAN          KOD                      DOSYA
cart      =    .sourceMap("cart")  =    ...component.Cart.swift
```

Biri değişince diğeri kırılır. İsmi değiştirdin mi, ekranda da kodda da dosyada da senkron olmak zorunda. Yanlış eşleme fiziksel olarak imkânsız — çünkü hepsi tek kaynaktan türüyor.

Altında derin bir tasarım ilkesi var: **hatayı çözmek yerine, hatanın var olmasını engellemek.** İki yeri elle eşleştirirsen er ya da geç kayar. Tek yerden türetirsen kayamaz.

## Neden bu kadar hızlandırıyor

Bir hata gördüğünde döngü şu hale geliyor:

> ekranda elementi göster → `ad — dosya:satır` kopyala → AI'ya ver → AI nokta atışıyla o satıra gider → düzeltir.

Arama yok. Tahmin yok. "Hangi dosyaydı bu?" yok. Ne yaptığını biliyorsun, çünkü gördüğün şey doğrudan koda bağlı. macOS'ta yazılım geliştirme bu yüzden inanılmaz hızlanıyor: insan gözüyle görür ve gösterir, AI koda gider.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.yemreak.com/contents/8f49eb5a.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
