> 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/62141017.md).

# Klasörlerimi Özelliklere Değil Kararlara Göre Diziyorum

![](/files/8Mjh4Msr4ezM1XSqo8Vd)

Yapay zekayla kod yazarken bir şey fark ettim. **Eklemesi kolay, çıkarması zor.** Bir özellik istiyorsun, hop, geldi. Ama o özelliği kaldırmak istediğinde, bağımlılıklar her yerde.

Önce feature-bazlı klasör yapısıyla çalışıyordum. Her özellik bir klasör. Klasik. Ama bir süre sonra şunu gördüm: aynı kararı tekrar tekrar veriyorum. Mesela bir panel tasarımı yapmışım clipboard için. Command bar'da da aynı paneli istiyorum. Yeni baştan yapmam mı gerekiyor? Yoksa eski koddan import mu edeyim?

Sorun şuydu: feature'lar karar'ları içine alıyordu. Karar feature'ın hizmetkarı oluyordu. **Oysa kararlar feature'lardan daha temel bir şey.**

Sonra decision-based architecture'a geçtim. **Klasörler artık feature değil, decision.** "Panel tasarımı" diye bir hücre. "Renk seçimi" diye bir hücre. "Aksiyon dispatch" diye bir hücre. **Her hücre kendi authority'sini manifest ediyor: burada şu konuda karar verilir.**

Bunun bir sonucu var: **bir hücreyi sildiğinde, ona bağlı her şey silinmiş oluyor.** Çünkü bağımlılık decision'a, decision'ı kullanan feature'a değil.

Sonra başka bir şey daha gördüm. Sistemin amacı nedir? **Bir sistemin var olma sebebi, sonunda bir aksiyon üretmesi.** O zaman bütün sistem aksiyona bağlanmalı.

Ama önemli bir nokta: aksiyon, dışarıdan eklenen bir özelliğin sistemi kendine çekmemeli. Aksiyon, "ben bu command bar'da gözükürüm" diye projection vermeli. **Contract aksiyonun kendisinden geliyor, dışarıdan değil.**

Sonra şunu fark ettim: aksiyon güzel, sistemin amacı bu. Ama aksiyon bir decision'dan çıkar. Birinin karar vermesi lazım ki aksiyon ortaya çıksın. Agent karar veriyorsa, agent'in decision'lara erişimi olmalı. **O zaman file system decision olsun.**

Şöyle bir zincir oluştu sonunda:

* Sistem aksiyonlara bağlanır
* Agent decision'lara bağlanır
* Decision'lar authority hücrelerinde durur
* Authority hücrelerini insan manifest eder

Bir adım daha gittim. Authority neden var? Bir intent için, bir niyet için. **Ama agent niyet bilmez; niyet insana aittir. Sistemde saklanmaz, insan üretir.**

İnsan neden niyet üretir? **Durum değişir, observe edersin, niyete ulaşırsın.**

**Son zincir şu: state-change → intent → decision → action.**

Bu sıradan bir mimari değil aslında. Bir epistemoloji. **İnsanın iç-durumundan dış-aksiyona nasıl geçtiğinin haritası.** Üstelik kod olarak yazıldığı için, teoriyi her gün uyguluyorum.

Hâlâ refactor ediyorum. Çünkü her yeni karar zincirin bir yerinde sırıtıyor, oranın daha doğru bir yapısı var.


---

# 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:

```
GET https://docs.yemreak.com/contents/62141017.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
