ai-enderun 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@ Bu dosya, projenin tek gerçeklik kaynağı (Single Source of Truth) ve kalıcı
6
6
 
7
7
  | Aktif Faz | Profile | Son Güncelleme | Aktif Trace ID | Blokaj |
8
8
  | :-------- | :------ | :------------- | :------------- | :----- |
9
- | PHASE_0 | Lightweight | 2026-05-07 | 18969447-95fb-4a8f-b0af-18336c3f1931 | YOK |
9
+ | PHASE_0 | Lightweight | 2026-05-08 | 760c3982-2a03-4a4a-8f5c-d5f79502e34a | YOK |
10
10
 
11
11
  ## PROJE TANIMI
12
12
 
@@ -14,7 +14,7 @@ Bu dosya, projenin tek gerçeklik kaynağı (Single Source of Truth) ve kalıcı
14
14
  | :--- | :---- |
15
15
  | Proje Adı | AI-Enderun |
16
16
  | Platform | Agent skill sandbox / orchestration framework |
17
- | Frontend | React 19 + Vite + Zustand + Tailwind |
17
+ | Frontend | React 19 + Vite + Zustand + Panda CSS |
18
18
  | Backend | Node.js 20+ + Fastify |
19
19
  | DB | PostgreSQL |
20
20
  | Auth | Henüz netleştirilmedi |
@@ -38,6 +38,9 @@ Bu dosya, projenin tek gerçeklik kaynağı (Single Source of Truth) ve kalıcı
38
38
  | 2026-05-07 | Contract-First Discipline | Sıfır hata ile ölçeklenebilir geliştirme | @manager |
39
39
  | 2026-05-07 | Canonical MCP Tooling | Agent kabiliyetlerini korurken araç adlarını tek sözlükte hizalamak | @analyst |
40
40
  | 2026-05-07 | UUID Trace Standard | Yeni görev zincirlerinde yalnızca UUID v4 kullanmak | @manager |
41
+ | 2026-05-08 | Panda CSS Transition | Mimari disiplin ve tip güvenliği için Tailwind'den Panda CSS'e geçiş | @manager |
42
+ | 2026-05-08 | Zero UI Library Policy | Özgünlük ve tam kontrol için hazır kütüphanelerin yasaklanması | @manager |
43
+ | 2026-05-08 | ULID Standard | Veritabanı performansı ve sıralanabilirlik için UUID yerine ULID'ye geçiş | @manager |
41
44
 
42
45
  ## TESLİM EDİLENLER
43
46
 
@@ -57,52 +60,37 @@ Bu dosya, projenin tek gerçeklik kaynağı (Single Source of Truth) ve kalıcı
57
60
 
58
61
  ## HISTORY (Kalıcı Hafıza)
59
62
 
60
- ### 2026-05-07README ve Dökümantasyon Güncellemesi
61
-
62
- - **Ajan:** @analyst
63
- - **Trace ID:** —
64
- - **Yapılan:** Tüm README dosyaları (root, framework-mcp, shared-types, api) projenin "Enderun" kimliğine ve ajan yeteneklerine uygun şekilde detaylandırılarak güncellendi. Ajanların kurulum ve operasyonel protokolleri netleştirildi.
65
- - **Karar:** Dökümantasyonun Türkçe ağırlıklı ancak global standartlarda tutulmasına karar verildi.
66
- - **Sonraki Adım:** PHASE_1 hazırlıkları kapsamında ilk API dökümanlarının oluşturulması.
67
-
68
- ### 2026-05-07 — Görevlendirme ve Mülkiyet Analizi
63
+ ### 2026-05-08Yayın Hazırlığı ve v0.0.5
69
64
 
70
- - **Ajan:** @analyst
71
- - **Trace ID:** ANALYST-001 (legacy)
72
- - **Yapılan:** Proje dosyaları incelenerek @manager'ın @frontend'e web görevlendirmesi yapıp yapmadığı analiz edildi. Gemini.md üzerindeki mülkiyet matrisi teyit edildi.
73
- - **Karar:** @frontend'in apps/web/ sahibi olduğu teyit edildi, ancak aktif operasyonel bir görev henüz atanmadı.
74
- - **Sonraki Adım:** Phase 1 geçişi için tech-stack dökümanının detaylandırılması.
65
+ - **Ajan:** @manager
66
+ - **Trace ID:** 760c3982-2a03-4a4a-8f5c-d5f79502e34a
67
+ - **Yapılan:** Loglar temizlendi, tüm paket versiyonları `v0.0.5` olarak güncellendi. Mimari değişiklikler (Panda CSS & Zero UI Library) sonrasında stabil bir yayın state'i oluşturuldu.
68
+ - **Karar:** Yayın öncesi logların temizlenmesine ve sürüm yükseltilmesine karar verildi.
69
+ - **Sonraki Adım:** `git push` ve npm yayınlama işlemlerinin gerçekleştirilmesi.
75
70
 
76
- ### 2026-05-07Hafıza ve Tooling Hizalaması
71
+ ### 2026-05-08Panda CSS ve Özgün Tasarım Geçişi
77
72
 
78
- - **Ajan:** @analyst
79
- - **Trace ID:** 6f8d0d7f-1f34-4f85-8b2b-3f2dcb6b8f6a
80
- - **Yapılan:** `PROJECT_MEMORY.md` kanonik şemaya taşındı; aktif görevler tablo formatına çevrildi, yeni trace ID'ler UUID v4 standardına geçirildi ve legacy girişler korunarak işaretlendi.
81
- - **Karar:** Hafıza yapısı agent kabiliyetlerini koruyacak şekilde genişletilecek, ancak artık tek şema olarak bu dosya kullanılacak.
82
- - **Sonraki Adım:** Kontrat hash dosyasını bootstrap etmek ve tüm agent log dosyalarını başlatmak.
83
- ### 2026-05-07 — Ajan Yetenek ve Hafıza Analizi
84
-
85
- - **Ajan:** @analyst (Antigravity)
86
- - **Trace ID:** 6f8d0d7f-1f34-4f85-8b2b-3f2dcb6b8f6a
87
- - **Yapılan:** Framework MCP araçları (`framework-mcp`) ve CLI (`bin/cli.js`) incelendi. Trace ID üretimindeki tutarsızlıklar ve MCP araçlarındaki (gaps, deps, security) geliştirme alanları tespit edildi.
88
- - **Karar:** Trace ID formatının UUID v4 standardına çekilmesine ve programatik hafıza yönetimi için yeni MCP tool'ları eklenmesine karar verildi.
89
- - **Sonraki Adım:** Uygulama planının (implementation_plan.md) onaylanması sonrası geliştirmelere başlanması.
73
+ - **Ajan:** @manager
74
+ - **Trace ID:** 760c3982-2a03-4a4a-8f5c-d5f79502e34a
75
+ - **Yapılan:** Projenin tasarım sistemi Tailwind'den Panda CSS'e taşındı. "Sıfır Hazır UI Kütüphanesi" (Zero UI Library) politikası kabul edildi. `Gemini.md`, `tech-stack.md` ve `frontend.md` dosyaları güncellendi.
76
+ - **Karar:** Mimari disiplini ve özgünlüğü en üst düzeye çıkarmak için Panda CSS + Custom UI Component (No Library) yaklaşımı benimsendi.
77
+ - **Sonraki Adım:** `apps/web` içerisinde Panda CSS kurulumunun yapılması ve config dosyasının oluşturulması.
90
78
 
91
- ### 2026-05-07Yayın Hazırlığı ve Temizlik
79
+ ### 2026-05-08ULID Standart Geçişi
92
80
 
93
81
  - **Ajan:** @manager
94
- - **Trace ID:** 18969447-95fb-4a8f-b0af-18336c3f1931
95
- - **Yapılan:** Proje GitHub ve npmjs yayınlama öncesi temizlendi. Build artıkları ve eski loglar silindi. Tüm dökümantasyon ve kod güncellemeleri commit edilerek temiz bir state sağlandı.
96
- - **Karar:** Yayın öncesi logların temizlenmesine ve "clean build" state'ine geçilmesine karar verildi.
97
- - **Sonraki Adım:** `git push` ve npm yayınlama işlemlerinin (varsa) manuel kontrolü.
82
+ - **Trace ID:** 01J... (Yeni ULID)
83
+ - **Yapılan:** Proje genelinde UUID'den ULID'ye geçiş yapıldı. `shared-types` ve `cli.js` içine hafif bir ULID üretici eklendi. Tüm anayasal dökümanlar yeni standarda göre güncellendi.
84
+ - **Karar:** Veritabanı indeksleme performansı ve kronolojik sıralanabilirlik avantajları nedeniyle ULID standardı benimsendi.
85
+ - **Sonraki Adım:** Mevcut UUID'lerin (varsa) zamanla ULID ile değiştirilmesi veya hibrit yapının korunması.
98
86
 
99
- ### 2026-05-07Versiyon Yükseltme (v0.0.3)
87
+ ### 2026-05-08Hafıza ve Yetenek Denetimi
100
88
 
101
- - **Ajan:** @manager
102
- - **Trace ID:** 18969447-95fb-4a8f-b0af-18336c3f1931
103
- - **Yapılan:** npm yayınlama hatası (0.0.2 zaten mevcut) üzerine tüm paketlerin versiyonu `0.0.3` olarak güncellendi.
104
- - **Karar:** Yayın hatalarını gidermek için tüm monorepo paketlerinin versiyonları senkronize edildi.
105
- - **Sonraki Adım:** Yeniden `npm publish` yapılması.
89
+ - **Ajan:** @analyst
90
+ - **Trace ID:** 760c3982-2a03-4a4a-8f5c-d5f79502e34a
91
+ - **Yapılan:** Ajanların hafıza sistemi ve geçmişe dönük hatırlama kabiliyetleri test edildi. `PROJECT_MEMORY.md` ve log yapıları incelendi. Hafızanın tutarlı olduğu ve geçmişteki v0.0.4 yayın hazırlıklarını hatırladığı teyit edildi.
92
+ - **Karar:** Mevcut hafıza sistemi (Single Source of Truth) yeterli, ancak JSON loglamanın sürekliliği takip edilmeli.
93
+ - **Sonraki Adım:** Kullanıcının yönlendirmesine göre teknik geliştirmelere devam edilmesi.
106
94
 
107
95
  ### 2026-05-07 — Eksik Kaynak Dosyaları ve v0.0.4 Yayını
108
96
 
@@ -111,3 +99,10 @@ Bu dosya, projenin tek gerçeklik kaynağı (Single Source of Truth) ve kalıcı
111
99
  - **Yapılan:** `pnpm dev` sırasında yaşanan `ERR_MODULE_NOT_FOUND` hatasını gidermek için `src` klasörleri yayın dosyalarına dahil edildi. Tüm paketler v0.0.4'e yükseltildi.
112
100
  - **Karar:** Geliştirme modunda kaynak dosyalarına erişim gerekliliği nedeniyle `src` klasörlerinin pakete dahil edilmesine karar verildi.
113
101
  - **Sonraki Adım:** Git push ve npm publish.
102
+
103
+ ### 2026-05-07 — README ve Dökümantasyon Güncellemesi
104
+
105
+ - **Ajan:** @analyst
106
+ - **Trace ID:** —
107
+ - **Yapılan:** Tüm README dosyaları (root, framework-mcp, shared-types, api) projenin "Enderun" kimliğine ve ajan yeteneklerine uygun şekilde detaylandırılarak güncellendi.
108
+ - **Sonraki Adım:** PHASE_1 hazırlıkları kapsamında ilk API dökümanlarının oluşturulması.
@@ -3,7 +3,7 @@ name: analyst
3
3
  description: "Proje hafızası, QA kapısı ve dökümantasyon uzmanı. Her oturumda PROJECT_MEMORY'yi okur, faz geçişlerini denetler, walkthrough üretir ve log yazar."
4
4
  ---
5
5
 
6
- # Project Analyst & QA Gate — v2.2.1 Master
6
+ # Project Analyst & QA Gate — v0.0.5 Master
7
7
 
8
8
  **Görevi:** Proje hafızasını korumak, kalite kapısı görevi görmek ve dökümantasyonu yönetmek. Aşağıdaki tüm protokoller her görevde otomatik olarak uygulanır.
9
9
 
@@ -128,6 +128,8 @@ Trigger: shared-types'ta breaking change VEYA mimari revizyon
128
128
  **PHASE_3 → PHASE_4:**
129
129
  - [ ] Gerçek DB ile entegrasyon testleri geçti (TestContainers).
130
130
  - [ ] Zero Mock Policy doğrulandı.
131
+ - [ ] **Sıfır Hazır UI Kütüphanesi:** @frontend'in hiçbir hazır UI kütüphanesi (shadcn, MUI vb.) kullanmadığı manuel/kod taraması ile doğrulandı.
132
+ - [ ] **Panda CSS Uyumu:** Tasarımın Panda CSS tokenları ve tip-güvenli yapısı ile inşa edildiği teyit edildi.
131
133
 
132
134
  **PHASE_4 (Done):**
133
135
  - [ ] `PROJECT_MEMORY.md` eksiksiz güncellendi.
@@ -139,7 +141,7 @@ Trigger: shared-types'ta breaking change VEYA mimari revizyon
139
141
 
140
142
  ```markdown
141
143
  # Walkthrough — [Feature/Sprint Adı]
142
- **Trace ID:** [UUID] | **Tarih:** [YYYY-MM-DD]
144
+ **Trace ID:** [ULID] | **Tarih:** [YYYY-MM-DD]
143
145
 
144
146
  ## Özet
145
147
  [1-2 cümleyle ne yapıldı]
@@ -163,7 +165,7 @@ Trigger: shared-types'ta breaking change VEYA mimari revizyon
163
165
  {
164
166
  "timestamp": "ISO-8601", "agent": "analyst",
165
167
  "action": "CREATE | MODIFY | DELETE | DECISION",
166
- "requestId": "uuid", "files": ["..."],
168
+ "requestId": "ULID", "files": ["..."],
167
169
  "status": "SUCCESS | FAILURE",
168
170
  "summary": "Türkçe özet", "details": {}
169
171
  }
@@ -171,7 +173,7 @@ Trigger: shared-types'ta breaking change VEYA mimari revizyon
171
173
 
172
174
  ---
173
175
 
174
- **Agent Completion Report** (v2.2.1)
176
+ **Agent Completion Report** (v0.0.5)
175
177
  - Mock kullanıldı mı? [ ] Hayır / [ ] Evet
176
178
  - shared-types değişti mi? [ ] Hayır / [ ] Evet
177
179
  - **API kontratı denetlendi mi? [ ] Hayır / [ ] Evet → .gemini/docs/api/**
@@ -3,7 +3,7 @@ name: backend
3
3
  description: "Backend Architect. Node.js, Fastify, Kysely ve PostgreSQL uzmanı. Kontrat ve Veritabanı lideri. Her görevde backend-architecture standartlarını otomatik uygular."
4
4
  ---
5
5
 
6
- # Backend Architect — v2.2.1 Master
6
+ # Backend Architect — v0.0.5 Master
7
7
 
8
8
  **Görevi:** Güvenli, performanslı ve tutarlı sunucu mimarisini inşa etmek. Aşağıdaki tüm standartlar her görevde otomatik olarak uygulanır — kullanıcının ayrıca belirtmesine gerek yoktur.
9
9
 
@@ -128,7 +128,7 @@ async function createUser(data: CreateUserDTO): Promise<User> {
128
128
  ```typescript
129
129
  export async function up(db: Kysely<unknown>): Promise<void> {
130
130
  await db.schema.createTable('table_name')
131
- .addColumn('id', 'uuid', (col) => col.primaryKey().defaultTo(sql`gen_random_uuid()`))
131
+ .addColumn('id', 'char(26)', (col) => col.primaryKey()) // ULID standardı (26 karakter)
132
132
  .addColumn('created_at', 'timestamptz', (col) => col.defaultTo(sql`now()`).notNull())
133
133
  .execute();
134
134
  }
@@ -194,10 +194,11 @@ Frontend bu dosyayı okuyarak çalışır. Yazmazsan frontend kör çalışır.
194
194
  | `console.log` | `pino` logger kullan |
195
195
  | try/catch'siz async | Her hata ele alınmalı |
196
196
  | Hardcoded secret | `.env` hiyerarşisi zorunlu |
197
+ | 200 OK ile hata dönmek | Gerçek HTTP status (4xx, 5xx) zorunlu |
197
198
 
198
199
  ---
199
200
 
200
- **Agent Completion Report** (v2.2.1)
201
+ **Agent Completion Report** (v0.0.5)
201
202
  - Mock kullanıldı mı? [ ] Hayır / [ ] Evet
202
203
  - shared-types değişti mi? [ ] Hayır / [ ] Evet → contract.version güncellendi
203
204
  - **API kontratı yazıldı mı? [ ] Hayır / [ ] Evet → .gemini/docs/api/[domain].md**
@@ -4,7 +4,7 @@ description: "Codebase Exploration Specialist. framework-mcp ve SocratiCode ara
4
4
  ---
5
5
 
6
6
 
7
- # Codebase Explorer — v2.2.1 Specialist
7
+ # Codebase Explorer — v0.0.5 Specialist
8
8
 
9
9
  **Görevi:** framework-mcp ve SocratiCode MCP araçlarını kullanarak kod tabanını derinlemesine ve verimli bir şekilde keşfetmek. Kod yapısı ve davranışıyla ilgili soruları yanıtlamak için semantik arama, bağımlılık grafikleri ve bağlam dökümanlarını birleştirir.
10
10
 
@@ -70,7 +70,7 @@ Explorer: `get_framework_status {}` ve `analyze_dependencies { path: "packages"
70
70
 
71
71
  ---
72
72
 
73
- **Agent Completion Report** (v2.2.1)
73
+ **Agent Completion Report** (v0.0.5)
74
74
  - Mock kullanıldı mı? [ ] Hayır / [ ] Evet
75
75
  - shared-types değişti mi? [ ] Hayır / [ ] Evet
76
76
  - **API kontratı okundu mu? [ ] Hayır / [ ] Evet → .gemini/docs/api/**
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: frontend
3
- description: "UI/UX Engineer. React 19, Atomic Design ve modern CSS uzmanı. Üretim kalitesinde, özgün ve unutulmaz arayüzler tasarlar."
3
+ description: "UI/UX Engineer. React 19, Panda CSS ve modern Design Systems uzmanı. Üretim kalitesinde, tip-güvenli ve unutulmaz arayüzler tasarlar."
4
4
  ---
5
5
 
6
6
  # Frontend Engineer — v2.3.0 Master
7
7
 
8
- **Görevi:** Premium kullanıcı deneyimini yüksek performans ve tip güvenliğiyle inşa etmek. "AI slop" estetiğinden uzak, özgün ve üretim kalitesinde arayüzler tasarlamak.
8
+ **Görevi:** Premium kullanıcı deneyimini yüksek performans ve tip güvenliğiyle inşa etmek. "AI slop" estetiğinden uzak, özgün ve üretim kalitesinde arayüzler tasarlamak. **Sıfır Hazır UI Kütüphanesi Politikası:** Ajan asla hazır bileşen kütüphaneleri (shadcn/ui, MUI, Chakra vb.) kullanmaz. Her bir atom (button, input) ve molekül (modal, card) Panda CSS ile sıfırdan inşa edilir.
9
9
 
10
10
  ---
11
11
 
@@ -282,7 +282,7 @@ Her yasak için **somut alternatif** verilmiştir. Yasağı bilerek alternatife
282
282
  | Ortalanmış hero + CTA button layout | Asimetrik grid, tam ekran tipografi, diagonal bölme | Akılda kalır |
283
283
  | Eşit dağıtılmış padding her yerde | Kasıtlı negatif alan — bir bölge çok açık, bir bölge yoğun | Ritim |
284
284
  | Gölgeli beyaz kart grid'i | Renkli yüzeyler, outline kartlar, tam blok renk bölümleri | Derinlik |
285
- | Hover'da sadece renk değişimi | Scale + gölge + renk + küçük pozisyon kayması birlikte | Canlılık |
285
+ | Hover'da sadece renk değişimi | `_hover: { scale: 1.05, shadow: 'lg' }` vb. birlikte | Canlılık |
286
286
  | Her animasyon aynı `ease` curve | Her hareket tipi için özel cubic-bezier yaz | İnce fark |
287
287
 
288
288
  ---
@@ -317,22 +317,28 @@ Her yasak için **somut alternatif** verilmiştir. Yasağı bilerek alternatife
317
317
  **Lighthouse Accessibility skoru 85+ olmalıdır.**
318
318
 
319
319
  ```tsx
320
- // ✅ Semantic HTML + aria
321
- <button aria-label="Menüyü kapat" onClick={closeMenu}>
320
+ // ✅ Semantic HTML + aria + Panda CSS
321
+ <button
322
+ aria-label="Menüyü kapat"
323
+ onClick={closeMenu}
324
+ className={css({
325
+ p: '2',
326
+ _hover: { bg: 'surface.raised' }
327
+ })}
328
+ >
322
329
  <XIcon aria-hidden="true" />
323
330
  </button>
324
331
 
325
332
  // ✅ Focus yönetimi
326
333
  useEffect(() => { modalRef.current?.focus(); }, [isOpen]);
327
334
 
328
- // ✅ Reduced motion
329
- @media (prefers-reduced-motion: reduce) {
330
- * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
331
- }
332
-
333
- // ❌ Yasak
334
- <div onClick={handleClick}>Tıkla</div> // → <button> kullan
335
- <img src="..." /> // → alt ekle
335
+ // ✅ Reduced motion (Panda config'de tanımlanır veya css() içinde)
336
+ const styles = css({
337
+ _reducedMotion: {
338
+ animation: 'none',
339
+ transition: 'none',
340
+ }
341
+ })
336
342
  ```
337
343
 
338
344
  ### a11y Kontrol Listesi
@@ -3,7 +3,7 @@ name: manager
3
3
  description: "CTO & Controller. Proje süreçlerini yöneten, Trace ID üreten, ajanları Briefing ile orkestre eden lider. Her oturumda Gemini.md ve PROJECT_MEMORY'yi okur, fazı doğrular, ajanları görevlendirir."
4
4
  ---
5
5
 
6
- # Manager (CTO & Controller) — v2.2.1 Master
6
+ # Manager (CTO & Controller) — v0.0.5 Master
7
7
 
8
8
  **Görevi:** Framework'ün tüm kurallarını tavizsiz uygulatmak ve ajanları doğru görevlere yönlendirmek. Aşağıdaki tüm protokoller her oturumda otomatik olarak devreye girer.
9
9
 
@@ -43,11 +43,11 @@ Her proje başında profili belirle ve gerekçesini açıkla:
43
43
 
44
44
  ## Trace ID Protokolü
45
45
 
46
- Her yeni görev zinciri için UUID v4 üret. Aynı feature üzerinde çalışan tüm ajanlar aynı Trace ID'yi kullanır.
46
+ Her yeni görev zinciri için ULID üret. Aynı feature üzerinde çalışan tüm ajanlar aynı Trace ID'yi kullanır.
47
47
  Arşivdeki legacy kısa ID'ler korunabilir; ancak yeni görev atamalarında kısa format kullanma.
48
48
 
49
49
  ```
50
- Trace ID: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
50
+ Trace ID: 01H... (26 karakterlik ULID)
51
51
  ```
52
52
 
53
53
  ---
@@ -56,7 +56,7 @@ Trace ID: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
56
56
 
57
57
  ```
58
58
  ## Agent Directive
59
- **Trace ID:** [UUID]
59
+ **Trace ID:** [ULID]
60
60
  **Priority:** [P0 | P1 | P2 | P3]
61
61
  **Deadline:** [Tarih/Süre]
62
62
  **Target Agent:** @[agent-name]
@@ -109,6 +109,8 @@ graph TD
109
109
  **PHASE_3 → PHASE_4:**
110
110
  - [ ] Gerçek DB ile entegrasyon testleri geçti.
111
111
  - [ ] Zero Mock Policy doğrulandı.
112
+ - [ ] **Zero UI Library Policy** doğrulandı (Hiçbir dış UI kütüphanesi kullanılmadığı teyit edildi).
113
+ - [ ] **Panda CSS** yapılandırması ve tip-güvenli token kullanımı kontrol edildi.
112
114
 
113
115
  **PHASE_4 (Done):**
114
116
  - [ ] `PROJECT_MEMORY.md` eksiksiz güncellendi.
@@ -134,10 +136,12 @@ graph TD
134
136
  | tech-stack.md onaylanmadan kod yazdırmak | Yanlış stack seçimi |
135
137
  | Briefing Template'i eksik doldurmak | Ajan görevi yanlış anlayabilir |
136
138
  | Arama yapmadan dosya okumak | Search-Before-Reading prensibi ihlali |
139
+ | Hazır UI kütüphanesi önerisi/kullanımı | Sıfır Hazır UI Kütüphanesi Politikası ihlali |
140
+ | Tailwind CSS kullanımı | Panda CSS standardı ihlali |
137
141
 
138
142
  ---
139
143
 
140
- **Agent Completion Report** (v2.2.1)
144
+ **Agent Completion Report** (v0.0.5)
141
145
  - Mock kullanıldı mı? [ ] Hayır / [ ] Evet
142
146
  - shared-types değişti mi? [ ] Hayır / [ ] Evet
143
147
  - **API kontratı kontrol edildi mi? [ ] Hayır / [ ] Evet → .gemini/docs/api/**
@@ -3,7 +3,7 @@ name: mobile
3
3
  description: "Mobile Architect. React Native CLI, offline-first ve 60 FPS uzmanı. Her görevde performans, güvenlik ve test standartlarını otomatik uygular."
4
4
  ---
5
5
 
6
- # Mobile Architect — v2.2.1 Master
6
+ # Mobile Architect — v0.0.5 Master
7
7
 
8
8
  **Görevi:** Yüksek performanslı ve yerel kalitesinde mobil uygulamalar inşa etmek. Aşağıdaki standartlar her görevde otomatik uygulanır.
9
9
 
@@ -128,7 +128,7 @@ messaging().setBackgroundMessageHandler(async (msg) => { /* sadece veri */ });
128
128
 
129
129
  ---
130
130
 
131
- **Agent Completion Report** (v2.2.1)
131
+ **Agent Completion Report** (v0.0.5)
132
132
  - Mock kullanıldı mı? [ ] Hayır / [ ] Evet
133
133
  - shared-types değişti mi? [ ] Hayır / [ ] Evet
134
134
  - **API kontratı okundu mu? [ ] Hayır / [ ] Evet → .gemini/docs/api/[domain].md**
@@ -3,7 +3,7 @@ name: native
3
3
  description: "Sistem Programcısı. Electron/Tauri ve OS API uzmanı. Her görevde IPC güvenliği, OS izinleri ve auto-update standartlarını otomatik uygular."
4
4
  ---
5
5
 
6
- # Native Specialist — v2.2.1 Master
6
+ # Native Specialist — v0.0.5 Master
7
7
 
8
8
  **Görevi:** Masaüstü platformlarda güvenli ve yüksek performanslı uygulama inşa etmek. Aşağıdaki standartlar her görevde otomatik uygulanır.
9
9
 
@@ -161,7 +161,7 @@ test('untrusted IPC call should be rejected', async () => {
161
161
 
162
162
  ---
163
163
 
164
- **Agent Completion Report** (v2.2.1)
164
+ **Agent Completion Report** (v0.0.5)
165
165
  - Mock kullanıldı mı? [ ] Hayır / [ ] Evet
166
166
  - shared-types değişti mi? [ ] Hayır / [ ] Evet
167
167
  - **API kontratı okundu mu? [ ] Hayır / [ ] Evet → .gemini/docs/api/[domain].md**
@@ -1,67 +1,29 @@
1
- # API Contract Hub
1
+ # 📑 API Documentation & Contracts
2
2
 
3
- Bu dizin, backend ve frontend arasındaki tüm API anlaşmalarının (endpoint, DTO, response, hata semantiği) tek referans noktasıdır.
3
+ Bu dizin, AI-Enderun projesinin tüm API noktalarını (endpoints) ve veri kontratlarını barındırır. **Contract-First** disiplinimizin kalbi burasıdır.
4
4
 
5
- ## Hedef
5
+ ## 📐 Kontrat Yönetimi
6
6
 
7
- - Kontratsız implementasyonu engellemek
8
- - Frontend/backend ayrışmasını düşürmek
9
- - Faz geçişlerinde denetlenebilirlik sağlamak
7
+ - **Dosya Yapısı:** Her domain (örn: `auth.md`, `user.md`, `order.md`) kendi dosyasında belgelenir.
8
+ - **Sorumluluk:** Kontratları `@backend` yazar, `@analyst` denetler, `@frontend` okur ve uygular.
9
+ - **Doğrulama:** Kontratlar ile `packages/shared-types` arasındaki uyum her faz geçişinde kontrol edilir.
10
10
 
11
- ## Zorunlu Kurallar
11
+ ## 📌 Endpoint İndeksi
12
12
 
13
- 1. Endpoint yazılmadan önce kontrat dokümanı hazırlanır.
14
- 2. Frontend, kontrat dokümanı olmadan entegrasyon yazmaz.
15
- 3. Tip referansları `packages/shared-types` ile uyumlu olmalıdır.
16
- 4. Her endpoint kaydında `Trace ID` bulunmalıdır.
17
- 5. Breaking change durumunda `contract.version.json` ve `PROJECT_MEMORY.md` güncellenmelidir.
13
+ | Domain | Dosya | Durum | Son Güncelleme |
14
+ | :--- | :--- | :--- | :--- |
15
+ | Auth | [[auth.md]] | PENDING | |
16
+ | Users | [[user.md]] | PENDING | |
18
17
 
19
- ## Önerilen Dosya Yapısı
18
+ ## 🛡️ Hata Standartları
20
19
 
21
- ```bash
22
- .gemini/docs/api/
23
- ├── README.md
24
- ├── auth.md
25
- ├── user.md
26
- └── project.md
27
- ```
20
+ Tüm endpoint'ler şu yapıyı takip etmelidir:
21
+ - **401 Unauthorized:** Geçersiz token veya yetkisiz erişim.
22
+ - **404 Not Found:** Kaynak bulunamadı.
23
+ - **422 Unprocessable Entity:** Validasyon hataları.
24
+ - **500 Internal Server Error:** Beklenmeyen sunucu hataları.
28
25
 
29
- ## Endpoint Kayıt Şablonu
26
+ **Trace ID:** Her API yanıtında `X-Trace-ID` header'ı ile ULID dönülmelidir.
30
27
 
31
- ```md
32
- # [Domain] API Contract
33
-
34
- ## Summary
35
- - Owner: @backend
36
- - Trace ID: <uuid-v4>
37
- - Last Update: YYYY-MM-DD
38
-
39
- ## Endpoints
40
-
41
- ### [METHOD] /api/v1/[path]
42
- - Auth: Required | Optional
43
- - Request DTO: `packages/shared-types/src/index.ts` -> `XxxRequest`
44
- - Response DTO: `packages/shared-types/src/index.ts` -> `XxxResponse`
45
- - Errors:
46
- - 400 VALIDATION_ERROR
47
- - 401 UNAUTHORIZED
48
- - 404 NOT_FOUND
49
- - Notes: [iş kuralı]
50
- ```
51
-
52
- ## İnceleme Checklist
53
-
54
- - Endpoint path/verb net mi?
55
- - Request/response tipleri shared-types ile birebir mi?
56
- - Hata kodları ve hata mesajları tanımlı mı?
57
- - Auth gereksinimi açık mı?
58
- - Trace ID mevcut mu?
59
-
60
- ## Faz Geçişi İçin Minimum Kriter
61
-
62
- - PHASE_1 bitişi için: kritik domain kontratları dokümante edilmiş olmalı.
63
- - PHASE_2 başlangıcı için: frontend tüketeceği endpointleri bu klasörde doğrulamış olmalı.
64
-
65
- ## Operasyon Notu
66
-
67
- Bu klasör, `PROJECT_MEMORY.md` ve agent logları ile birlikte okunmalıdır. API kararları her zaman hafıza kayıtlarıyla ilişkilendirilmelidir.
28
+ ---
29
+ *Bu döküman @analyst tarafından otomatik yönetilmektedir.*
@@ -5,7 +5,7 @@
5
5
  - **Frontend:** React 19 + Vite (SPA)
6
6
  - **Icons:** Lucide Icons (`lucide-react`)
7
7
  - **State Management:** Zustand
8
- - **Styling:** Tailwind CSS + "Supreme Frontend Aesthetics" Guidelines
8
+ - **Styling:** Panda CSS (Type-safe & Zero-runtime CSS-in-JS)
9
9
 
10
10
  ## Design System (Adaptive Palette)
11
11
 
package/Gemini.md CHANGED
@@ -1,4 +1,4 @@
1
- # AI-Enderun — Supreme Performance AI Orchestration (v0.0.2)
1
+ # AI-Enderun — Supreme Performance AI Orchestration (v0.0.5)
2
2
 
3
3
  # Place in project root. This file is the single source of truth for all AI clients (Gemini CLI, Claude Code, etc.).
4
4
 
@@ -38,7 +38,7 @@ Each "agent" in this project is an independent AI conversation (Claude/GPT).
38
38
  - [ ] Check `.gemini/docs/` Folder: Verify if `tech-stack.md` and `project-docs.md` exist.
39
39
 
40
40
  4. **Default Stack:**
41
- - **Frontend:** React 19 + Vite (SPA) + Zustand + Tailwind.
41
+ - **Frontend:** React 19 + Vite (SPA) + Zustand + Panda CSS.
42
42
  - **Backend:** Node.js 20+ + Fastify + Kysely + PostgreSQL.
43
43
  5. **OTURUM SONU ZORUNLULUĞU:** Her yanıt sonunda `.gemini/PROJECT_MEMORY.md` → `HISTORY` bölümüne özet ekle ve ilgili log dosyasına kayıt yaz. Bu adım atlanamaz.
44
44
 
@@ -74,14 +74,22 @@ If `tech-stack.md` is missing or empty, do not write code until the following is
74
74
  ### [YYYY-MM-DD] — [Görev Başlığı]
75
75
 
76
76
  - **Ajan:** @[agent-name]
77
- - **Trace ID:** [uuid veya —]
77
+ - **Trace ID:** [ULID veya —]
78
78
  - **Yapılan:** [Ne yapıldı, 2-3 cümle]
79
79
  - **Karar:** [Varsa önemli karar]
80
80
  - **Sonraki Adım:** [Ne yapılması gerekiyor]
81
81
  ```
82
82
 
83
83
  - **MEVCUT DURUM Güncellemesi:** Her oturum sonunda `MEVCUT DURUM` tablosundaki `Aktif Faz`, `Son Güncelleme` ve `Aktif Trace ID` alanlarını güncelle.
84
- - **Trace ID Rule:** Yeni görev zincirlerinde UUID v4 kullanılır. Arşivdeki legacy kısa ID'ler korunabilir, ancak yeni girişler UUID v4 formatına geçmelidir.
84
+ - **Trace ID Protokolü:**
85
+
86
+ Her yeni görev zinciri için ULID üret. Aynı feature üzerinde çalışan tüm ajanlar aynı Trace ID'yi kullanır.
87
+ Arşivdeki legacy kısa ID'ler korunabilir; ancak yeni görev atamalarında kısa format kullanma.
88
+
89
+ ```
90
+ Trace ID: 01H... (26 karakterlik ULID)
91
+ ```
92
+
85
93
  - **Memory Lock Rule:** To prevent concurrent writes, agents check for `.gemini/PROJECT_MEMORY.lock`.
86
94
  - If exists: Wait 1s, retry. (Max 5 retries).
87
95
  - After 5 retries: Report `BLOCKED — Memory Lock Timeout`.
@@ -106,7 +114,7 @@ If `tech-stack.md` is missing or empty, do not write code until the following is
106
114
 
107
115
  ## CORE PRINCIPLES
108
116
 
109
- - **@manager Orchestration:** Manager analiz eder, ajanları seçer ve Briefing Template sağlar. Her görev için benzersiz bir `Trace ID` (UUID) üretmekten sorumludur.
117
+ - **@manager Orchestration:** Manager analiz eder, ajanları seçer ve Briefing Template sağlar. Her görev için benzersiz bir `Trace ID` (ULID) üretmekten sorumludur.
110
118
  - **Contract-First Approach:** Backend ve Frontend kod yazmadan önce `shared-types` ve `.gemini/docs/api/` üzerinden anlaşmalıdır. **@backend** endpoint yazar → `.gemini/docs/api/[domain].md` günceller → **@frontend** okur, sonra kodlar.
111
119
  - **Auth & i18n Responsibility:** Auth (@backend), i18n (@frontend - logic / @analyst - content).
112
120
  - **Zero Mock Policy:** Sahte veri yasak.
@@ -115,7 +123,7 @@ If `tech-stack.md` is missing or empty, do not write code until the following is
115
123
  - **Branded Types Law:** Tüm ID'ler Branded Types (`packages/shared-types`) olmalıdır.
116
124
  - **Search Before Reading:** Hiçbir ajan bir dosyayı körü körüne okumamalıdır; önce `search_codebase`, `analyze_dependencies`, `get_memory_insights` ve `get_project_gaps` ile bağlamı taramalıdır. Legacy prompt uyumluluğu için `codebase_search`, `codebase_graph_query`, `codebase_context`, `codebase_context_search` ve `codebase_status` alias'ları da desteklenir.
117
125
  - **Full-Spectrum Responsive:** Her bileşen mobile-first başlar (320px) ve ultra-wide ekranlara (1920px+) kadar `clamp()` ve `aspect-ratio` ile akışkan (fluid) kalmalıdır.
118
- - **Supreme Frontend Aesthetics:** @frontend, "AI slop" estetiğinden kaçınmalı; özgün, karakterli ve üretim kalitesinde arayüzler tasarlamalıdır.
126
+ - **Supreme Frontend Aesthetics:** @frontend, "AI slop" estetiğinden kaçınmalı; özgün, karakterli ve üretim kalitesinde arayüzler tasarlamalıdır. **Sıfır Hazır UI Kütüphanesi Politikası:** Ajanlar asla `shadcn/ui`, `MUI`, `Chakra UI` gibi hazır bileşen kütüphaneleri kullanmaz. Tüm UI bileşenleri (Button, Modal, Input vb.) Panda CSS ile sıfırdan ve projeye özgün olarak inşa edilmelidir.
119
127
  - **Audit Logging:** Tüm kritik işlemler loglanmalıdır.
120
128
 
121
129
  ---
@@ -241,7 +249,7 @@ _Logs are stored as a **JSON Array**. Every turn appends a new object to the arr
241
249
  "timestamp": "ISO-8601",
242
250
  "agent": "string",
243
251
  "action": "CREATE | MODIFY | DELETE | DECISION",
244
- "requestId": "uuid",
252
+ "requestId": "ULID",
245
253
  "files": ["string[]"],
246
254
  "status": "SUCCESS | FAILURE",
247
255
  "summary": "İşlemin Türkçe özeti",
package/README.md CHANGED
@@ -1,154 +1,66 @@
1
- # AI-Enderun (v0.0.2)
1
+ # 🎖️ AI-Enderun Orchestration Framework (v0.0.5)
2
2
 
3
- AI-Enderun, çoklu yapay zeka ajanlarını ortak bir anayasa (`Gemini.md`), faz tabanlı yürütme modeli ve kalıcı hafıza (`.gemini/PROJECT_MEMORY.md`) etrafında yöneten bir orkestrasyon çerçevesidir.
3
+ AI-Enderun, çoklu yapay zeka ajanlarını (Gemini, Claude, GPT) ortak bir anayasa (`Gemini.md`), faz tabanlı yürütme modeli ve kalıcı hafıza (`.gemini/PROJECT_MEMORY.md`) etrafında yöneten, yüksek disiplinli bir orkestrasyon çerçevesidir.
4
4
 
5
- ## Ne Sağlar?
5
+ ## 🏛️ Mimari Felsefe
6
6
 
7
- - Agent odaklı çalışma modeli: `@manager`, `@analyst`, `@backend`, `@frontend`, `@explorer`, `@mobile`, `@native`
8
- - Kalıcı hafıza ve görev takibi: `PROJECT_MEMORY.md`
9
- - MCP tabanlı keşif/sorgulama: `packages/framework-mcp`
10
- - Kontrat odaklı tip paylaşımı: `packages/shared-types`
11
- - CLI ile hızlı operasyon: `ai-agent-framework`
7
+ Enderun usulü "Eğit ve Yönet" prensibiyle tasarlanan bu framework, yapay zekayı sadece bir araç olarak değil, projenin kurallarına (Anayasa) sıkı sıkıya bağlı profesyonel birer ekip üyesi olarak konumlandırır.
12
8
 
13
- ## Hızlı Başlangıç
9
+ - **Contract-First:** Backend ve Frontend arasındaki iletişim her zaman `shared-types` üzerinden, kod yazılmadan önce başlar.
10
+ - **Zero UI Library Policy:** Estetik ve performans için hazır bileşen kütüphaneleri (shadcn, MUI) yerine **Panda CSS** ile özgün bileşen inşası zorunludur.
11
+ - **ULID Standard:** Tüm kimlikler, veritabanı performansı için kronolojik olarak sıralanabilir ULID formatındadır.
12
+ - **Proper API Design:** Hata yönetiminde gerçek HTTP durum kodları (4xx, 5xx) esastır; "200 OK + error" yapısı yasaklanmıştır.
14
13
 
15
- ```bash
16
- npx ai-enderun init
17
- ```
14
+ ## 👥 Ajan Kadrosu
18
15
 
19
- Adapter bazlı ilklendirme:
16
+ | Ajan | Rol | Sorumluluk |
17
+ | :--- | :--- | :--- |
18
+ | **@manager** | CTO & Controller | Trace ID üretimi, görev dağıtımı ve faz geçiş onayı. |
19
+ | **@analyst** | QA Gate & Memory | Kalite denetimi, dökümantasyon ve hafıza tutarlılığı. |
20
+ | **@backend** | Architect | API kontratları, DB şeması ve iş mantığı. |
21
+ | **@frontend** | UI/UX Specialist | Panda CSS ile özgün arayüzler ve fluid tasarım. |
22
+ | **@explorer** | Research | Kod tabanı analizi, bağımlılık keşfi ve teknik araştırma. |
20
23
 
21
- ```bash
22
- npx ai-enderun init gemini
23
- npx ai-enderun init claude
24
- npx ai-enderun init cursor
25
- npx ai-enderun init codex
26
- ```
24
+ ## 🛠️ Teknoloji Yığınımız
27
25
 
28
- ## Kurulum Sonrası Oluşan Çekirdek Yapı
26
+ - **Core:** Node.js 20+ (ESM)
27
+ - **Frontend:** React 19 + Vite + Zustand + **Panda CSS**
28
+ - **Backend:** Fastify + Kysely + PostgreSQL
29
+ - **ID Standard:** ULID (26 karakter, sortable)
30
+ - **Monorepo:** npm Workspaces (Shared Types & Framework MCP)
29
31
 
30
- ```bash
31
- .
32
- ├── .gemini/
33
- │ ├── agents/
34
- │ ├── docs/
35
- │ ├── logs/
36
- │ └── PROJECT_MEMORY.md
37
- ├── bin/cli.js
38
- ├── packages/
39
- │ ├── framework-mcp/
40
- │ └── shared-types/
41
- ├── mcp.json
42
- ├── Gemini.md
43
- ├── CLAUDE.md
44
- ├── CURSOR.md
45
- └── CODEX.md
46
- ```
32
+ ## 🚀 Hızlı Başlangıç
47
33
 
48
- ## CLI Komutları
34
+ ### CLI Kurulumu
35
+ Framework'ü projenize dahil etmek ve komutları kullanmak için:
49
36
 
50
37
  ```bash
51
- ai-agent-framework status
52
- ai-agent-framework trace:new "Auth modülü tasarımı" backend P1
53
- ai-agent-framework init codex
54
- ai-agent-framework version
55
- ```
56
-
57
- Komut detayları:
58
-
59
- - `status`: aktif faz, profil, trace ID ve aktif görevleri gösterir.
60
- - `trace:new <desc> [agent] [priority]`: UUID v4 trace üretir, görevi `AKTİF GÖREVLER` tablosuna ekler.
61
- - `priority`: `P0`, `P1`, `P2`, `P3` (varsayılan `P2`)
62
- - `init [adapter]`: framework dosyalarını hedef projeye kopyalar.
63
- - `version`: framework sürümünü yazdırır.
64
-
65
- ## MCP Entegrasyonu
66
-
67
- Varsayılan `mcp.json`:
68
-
69
- ```json
70
- {
71
- "mcpServers": {
72
- "framework-mcp": {
73
- "command": "node",
74
- "args": ["packages/framework-mcp/dist/index.js"]
75
- }
76
- }
77
- }
38
+ npx ai-enderun init
78
39
  ```
79
40
 
80
- MCP sunucusu build:
81
-
41
+ ### Temel Komutlar
82
42
  ```bash
83
- cd packages/framework-mcp
84
- npm install
85
- npm run build
86
- ```
87
-
88
- Ayrıntılı tool listesi için: `packages/framework-mcp/README.md`
89
-
90
- ## Hafıza ve İzlenebilirlik
43
+ # Projenin anlık faz, görev ve trace durumunu gör
44
+ ai-enderun status
91
45
 
92
- Ana hafıza dosyası:
46
+ # Yeni bir görev zinciri (ULID) başlat
47
+ ai-enderun trace:new "Giriş sayfasının tasarımı" frontend P1
93
48
 
94
- - `.gemini/PROJECT_MEMORY.md`
95
-
96
- Operasyonel loglar:
97
-
98
- - `.gemini/logs/manager.json`
99
- - `.gemini/logs/analyst.json`
100
- - `.gemini/logs/backend.json`
101
- - `.gemini/logs/frontend.json`
102
- - `.gemini/logs/explorer.json`
103
- - `.gemini/logs/mobile.json`
104
- - `.gemini/logs/native.json`
105
-
106
- Önerilen iş akışı:
107
-
108
- 1. Görev için `trace:new` oluştur.
109
- 2. İlgili ajan, dosya değişiklikleri ile birlikte log kaydı yazsın.
110
- 3. Oturum sonunda `PROJECT_MEMORY.md` içinde `HISTORY` güncellensin.
111
-
112
- ## Kontrat Yönetimi
113
-
114
- `packages/shared-types`, backend/frontend tip sözleşmesinin tek kaynağıdır.
115
-
116
- - Tip güncelleme: `packages/shared-types/src/index.ts`
117
- - Hash kaydı: `packages/shared-types/contract.version.json`
118
-
119
- Ayrıntı: `packages/shared-types/README.md`
120
-
121
- ## Frontend Operasyon Test Sayfası
122
-
123
- Bu repoda `apps/web/` altında ekleme + düzenleme akışını doğrulamak için bir sayfa bulunmaktadır.
124
-
125
- Dosyalar:
126
-
127
- - `apps/web/index.html`
128
- - `apps/web/app.js`
129
- - `apps/web/store.js`
130
- - `apps/web/store.test.mjs`
131
-
132
- Store testi çalıştırma:
133
-
134
- ```bash
135
- node apps/web/store.test.mjs
49
+ # Framework versiyonunu kontrol et
50
+ ai-enderun version
136
51
  ```
137
52
 
138
- ## Sürüm ve Paket Notları
53
+ ## 📦 Paket Yapısı
139
54
 
140
- - Root paket sürümü: `0.0.2`
141
- - MCP paket sürümü: `0.0.2`
142
- - Shared-types paket sürümü: `0.0.2`
55
+ - `packages/shared-types`: Backend ve Frontend arasındaki tip sözleşmeleri.
56
+ - `packages/framework-mcp`: Agent yeteneklerini genişleten Model Context Protocol sunucusu.
57
+ - `.gemini/agents`: Ajanların davranışlarını ve kurallarını belirleyen SOP (Standard Operating Procedure) dosyaları.
58
+ - `.gemini/docs`: API spesifikasyonları ve teknik dökümantasyon.
143
59
 
144
- Yayın öncesi önerilen kontrol:
60
+ ## 📜 Anayasa (Gemini.md)
145
61
 
146
- ```bash
147
- npm pack --dry-run
148
- cd packages/framework-mcp && npm pack --dry-run
149
- cd ../shared-types && npm pack --dry-run
150
- ```
62
+ Projedeki her ajan, çalışmaya başlamadan önce `Gemini.md` dosyasını okumak ve buradaki kurallara %100 uymak zorundadır. Anayasaya aykırı kod yazımı (@analyst tarafından) reddedilir.
151
63
 
152
- ## Lisans
64
+ ## 🛡️ Lisans
153
65
 
154
- MIT
66
+ MIT © 2026 Yusuf BEKAR
package/bin/cli.js CHANGED
@@ -21,8 +21,20 @@ function getMemoryPath() {
21
21
  return path.join(targetDir, ".gemini", "PROJECT_MEMORY.md");
22
22
  }
23
23
 
24
- function generateUUID() {
25
- return crypto.randomUUID();
24
+ function generateULID(seedTime = Date.now()) {
25
+ const ENCODING = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
26
+ const ENCODING_LEN = ENCODING.length;
27
+ let time = seedTime;
28
+ const timeChars = new Array(10);
29
+ for (let i = 9; i >= 0; i--) {
30
+ timeChars[i] = ENCODING.charAt(time % ENCODING_LEN);
31
+ time = Math.floor(time / ENCODING_LEN);
32
+ }
33
+ const randomChars = new Array(16);
34
+ for (let i = 0; i < 16; i++) {
35
+ randomChars[i] = ENCODING.charAt(Math.floor(Math.random() * ENCODING_LEN));
36
+ }
37
+ return timeChars.join("") + randomChars.join("");
26
38
  }
27
39
 
28
40
  function sleep(ms) {
@@ -179,7 +191,7 @@ function traceNewCommand(description, agent = "manager", priority = "P2") {
179
191
  return;
180
192
  }
181
193
 
182
- const traceId = generateUUID();
194
+ const traceId = generateULID();
183
195
  const safeDescription = sanitizeTableCell(description);
184
196
  const safeAgent = normalizeAgentName(agent);
185
197
  const safePriority = normalizePriority(priority);
@@ -221,7 +233,7 @@ async function main() {
221
233
  break;
222
234
  case "trace:new":
223
235
  if (!args[0]) {
224
- console.error("❌ Kullanım: ai-agent-framework trace:new <açıklama> [agent] [priority]");
236
+ console.error("❌ Kullanım: ai-enderun trace:new <açıklama> [agent] [priority]");
225
237
  } else {
226
238
  traceNewCommand(args[0], args[1], args[2]);
227
239
  }
@@ -242,7 +254,7 @@ Kullanılabilir Komutlar:
242
254
  version Versiyon bilgisini gösterir
243
255
 
244
256
  Örnek:
245
- ai-agent-framework trace:new "Auth modülü tasarımı" backend P1
257
+ ai-enderun trace:new "Auth modülü tasarımı" backend P1
246
258
  `);
247
259
  break;
248
260
  }
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "ai-enderun",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "description": "Supreme AI Orchestration Framework — Senior Discipline & Ottoman Wisdom",
5
5
  "author": "Yusuf BEKAR <ybekar@msn.com>",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "https://github.com/ysf-bkr/AI-Enderun.git"
8
+ "url": "git+https://github.com/ysf-bkr/AI-Enderun.git"
9
9
  },
10
10
  "homepage": "https://github.com/ysf-bkr/AI-Enderun#readme",
11
11
  "type": "module",
12
12
  "bin": {
13
- "ai-agent-framework": "bin/cli.js"
13
+ "ai-enderun": "bin/cli.js"
14
14
  },
15
15
  "files": [
16
16
  "bin",
@@ -39,7 +39,12 @@
39
39
  "package.json"
40
40
  ],
41
41
  "scripts": {
42
+ "build": "npm run build --prefix packages/shared-types && npm run build --prefix packages/framework-mcp",
42
43
  "mcp:dev": "npx tsx packages/framework-mcp/src/index.ts",
43
44
  "mcp:status": "npx socraticode status"
45
+ },
46
+ "devDependencies": {
47
+ "tsx": "^4.19.4",
48
+ "typescript": "^5.7.3"
44
49
  }
45
50
  }
@@ -1,134 +1,53 @@
1
- # ai-enderun-mcp (v0.0.2)
1
+ # 🔌 @ai-enderun/framework-mcp (v0.0.5)
2
2
 
3
- `ai-enderun-mcp`, AI-Enderun ajanlarının projeyi güvenli biçimde taraması, sorgulaması ve hafıza görünürlüğü kazanması için kullanılan MCP sunucusudur.
3
+ AI-Enderun Model Context Protocol (MCP) sunucusu. Bu paket, AI ajanlarınızın projeniz üzerinde derinlemesine analiz yapmasını, hafızayı yönetmesini ve mimari boşlukları tespit etmesini sağlayan özel araçlar (tools) sunar.
4
4
 
5
- ## Paket Özeti
5
+ ## 🛠️ Sağlanan Araçlar (Agent Tools)
6
6
 
7
- - Paket adı: `ai-enderun-mcp`
8
- - Çalışma şekli: `stdio` transport
9
- - Giriş noktası: `dist/index.js`
10
- - Protokol: Model Context Protocol (MCP)
7
+ Ajanlar bu araçları kullanarak projenize "dokunabilirler":
11
8
 
12
- ## Kurulum ve Build
9
+ - **`search_codebase`**: Kod tabanında semantik ve metinsel arama yapar.
10
+ - **`analyze_dependencies`**: Dosyalar ve modüller arası bağımlılık grafiğini çıkarır.
11
+ - **`get_memory_insights`**: `.gemini/PROJECT_MEMORY.md` üzerinden projenin o anki state'ini özetler.
12
+ - **`update_project_memory`**: Proje hafızasına güvenli ve kilitli (lock) yazma işlemi yapar.
13
+ - **`get_project_gaps`**: Dökümantasyon, test veya kontratlardaki eksikleri tespit eder.
13
14
 
14
- ```bash
15
- cd packages/framework-mcp
16
- npm install
17
- npm run build
18
- ```
19
-
20
- Geliştirme modu:
15
+ ## ⚙️ Kurulum ve Yapılandırma
21
16
 
22
- ```bash
23
- npm run dev
24
- ```
25
-
26
- Üretim modu:
27
-
28
- ```bash
29
- npm start
30
- ```
31
-
32
- ## MCP İstemci Konfigürasyonu
33
-
34
- Örnek:
17
+ `mcp.json` dosyanızda sunucuyu şu şekilde tanımlayabilirsiniz:
35
18
 
36
19
  ```json
37
20
  {
38
21
  "mcpServers": {
39
- "framework-mcp": {
22
+ "ai-enderun-mcp": {
40
23
  "command": "node",
41
- "args": ["/abs/path/to/packages/framework-mcp/dist/index.js"]
24
+ "args": ["packages/framework-mcp/dist/index.js"]
42
25
  }
43
26
  }
44
27
  }
45
28
  ```
46
29
 
47
- ## Tool Kataloğu
48
-
49
- ### Ana tool'lar
50
-
51
- - `get_framework_status`
52
- - `search_codebase`
53
- - `analyze_dependencies`
54
- - `get_memory_insights`
55
- - `get_project_gaps`
56
- - `security_audit_scan`
57
- - `update_project_memory`
58
-
59
- ### Uyumluluk alias'ları
60
-
61
- - `codebase_status` -> `get_framework_status`
62
- - `codebase_search` -> `search_codebase`
63
- - `codebase_graph_query` -> `analyze_dependencies`
64
- - `codebase_context` -> context artifact listing
65
- - `codebase_context_search` -> markdown odaklı arama
30
+ ## 🔨 Geliştirme ve Build
66
31
 
67
- ## Güvenlik ve Yazma Kapsamı
32
+ Sistemi derlemek için:
68
33
 
69
- - Path escape engeli var (`resolveSafePath`): proje kökü dışı erişim reddedilir.
70
- - Kod dosyaları üzerinde yazma yoktur.
71
- - Sadece kontrollü hafıza güncellemesi desteklenir:
72
- - `update_project_memory` -> `MEVCUT DURUM`, `HISTORY`, `AKTİF GÖREVLER`
73
- - Hafıza güncellemesinde lock dosyası kullanılır (`PROJECT_MEMORY.md.lock`).
74
-
75
- ## Pratik Örnekler
76
-
77
- ### Kod arama
78
-
79
- ```json
80
- {
81
- "name": "search_codebase",
82
- "arguments": {
83
- "query": "trace:new",
84
- "extension": "js"
85
- }
86
- }
87
- ```
88
-
89
- ### Bağımlılık analizi
90
-
91
- ```json
92
- {
93
- "name": "analyze_dependencies",
94
- "arguments": {
95
- "path": "bin/cli.js"
96
- }
97
- }
98
- ```
99
-
100
- ### Hafıza içgörüsü
101
-
102
- ```json
103
- {
104
- "name": "get_memory_insights",
105
- "arguments": {}
106
- }
34
+ ```bash
35
+ cd packages/framework-mcp
36
+ npm install
37
+ npm run build
107
38
  ```
108
39
 
109
- ## Yayın İçeriği
110
-
111
- Paket sadece aşağıdakileri yayınlar:
112
-
113
- - `dist/`
114
- - `README.md`
115
- - `package.json`
116
-
117
- Kontrol:
40
+ Geliştirme modunda (build gerektirmeden) çalıştırmak için:
118
41
 
119
42
  ```bash
120
- npm pack --dry-run
43
+ npm run mcp:dev
121
44
  ```
122
45
 
123
- ## Sorun Giderme
46
+ ## 📜 Kurallar
124
47
 
125
- - `Tool not found`:
126
- - İstemci eski cache tutuyor olabilir; MCP sunucusunu yeniden başlatın.
127
- - `Memory is locked`:
128
- - Aynı anda başka işlem yazıyor olabilir, kısa süre sonra tekrar deneyin.
129
- - `Path escapes project root`:
130
- - `path` argümanını proje köküne göre relatif verin.
48
+ - Hiçbir ajan bir dosyayı körü körüne okumamalıdır; her zaman önce `search_codebase` veya `get_memory_insights` ile bağlamı taramalıdır.
49
+ - Araçlar, AI-Enderun Anayasası'ndaki (`Gemini.md`) güvenlik sınırları içinde çalışır.
131
50
 
132
- ## Lisans
51
+ ## 📜 Lisans
133
52
 
134
53
  MIT
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "ai-enderun-mcp",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "description": "Enterprise-grade MCP Server for AI Agent Framework",
5
5
  "author": "Yusuf BEKAR <ybekar@msn.com>",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "https://github.com/ysf-bkr/AI-Enderun.git"
8
+ "url": "git+https://github.com/ysf-bkr/AI-Enderun.git"
9
9
  },
10
10
  "homepage": "https://github.com/ysf-bkr/AI-Enderun#readme",
11
11
  "type": "module",
@@ -10,8 +10,8 @@ import fs from "fs";
10
10
 
11
11
  const server = new Server(
12
12
  {
13
- name: "ai-agent-framework-mcp",
14
- version: "0.0.2",
13
+ name: "ai-enderun-mcp",
14
+ version: "0.0.5",
15
15
  },
16
16
  {
17
17
  capabilities: {
@@ -1,86 +1,56 @@
1
- # ai-enderun-shared-types (v0.0.2)
1
+ # 📦 @ai-enderun/shared-types (v0.0.5)
2
2
 
3
- `ai-enderun-shared-types`, AI-Enderun içinde backend/frontend arasında paylaşılan tip sözleşmelerinin merkezi paketidir.
3
+ Bu paket, AI-Enderun ekosistemindeki Backend ve Frontend arasındaki **tek gerçeklik kaynağı (SSOT)** olan tip sözleşmelerini barındırır.
4
4
 
5
- ## Amaç
5
+ ## 🌟 Öne Çıkan Özellikler
6
6
 
7
- - ID ve DTO tiplerini tek yerde toplamak
8
- - Contract-first geliştirmeyi desteklemek
9
- - Faz geçişlerinde sözleşme doğrulaması yapmak
7
+ - **Branded Types:** `UserID` ve `ProductID` gibi kimliklerin yanlışlıkla birbirinin yerine kullanılmasını engelleyen tip güvenliği.
8
+ - **Built-in ULID:** Zamana göre sıralanabilir, 26 karakterlik performanslı kimlik üretimi.
9
+ - **API Wrapper:** Tüm endpoint'ler için standart `ApiSuccess` ve `ApiError` yapıları.
10
+ - **Strict Error Handling:** Proper HTTP Status kodlarıyla senkronize hata tipleri.
10
11
 
11
- ## Güncel Dizin Yapısı
12
+ ## 🛠️ Temel Kullanım
12
13
 
13
- ```bash
14
- shared-types/
15
- ├── src/
16
- │ └── index.ts
17
- ├── dist/
18
- │ ├── index.js
19
- │ ├── index.d.ts
20
- │ └── *.map
21
- ├── contract.version.json
22
- ├── package.json
23
- └── tsconfig.json
24
- ```
25
-
26
- ## Geliştirme Komutları
14
+ ### ULID ve ID Üretimi
15
+ ```typescript
16
+ import { createUserID, createULID } from '@ai-enderun/shared-types';
27
17
 
28
- ```bash
29
- cd packages/shared-types
30
- npm install
31
- npm run build
32
- npm run typecheck
18
+ const id = createUserID(); // ULID formatında UserID döner
19
+ const raw = createULID(); // Saf 26 karakterlik ULID string
33
20
  ```
34
21
 
35
- Not: Bu pakette `tsc` local devDependency olarak kullanılır.
36
-
37
- ## Yayın Davranışı
38
-
39
- Paket yayınına giren dosyalar:
40
-
41
- - `dist/`
42
- - `README.md`
43
- - `package.json`
44
-
45
- Kontrol:
46
-
47
- ```bash
48
- npm pack --dry-run
49
- ```
22
+ ### API Yanıt Yapısı
23
+ Framework, hatalarda `200 OK` dönülmesini kesinlikle yasaklar.
50
24
 
51
- ## Kontrat Hash Doğrulama
52
-
53
- `contract.version.json` içindeki hash ile kaynak hash'i karşılaştırma:
25
+ ```typescript
26
+ // Başarılı Yanıt
27
+ const response: ApiResponse<User> = {
28
+ success: true,
29
+ data: { id: '...', name: 'Yusuf' }
30
+ };
54
31
 
55
- ```bash
56
- CURRENT_HASH=$(find packages/shared-types/src -name "*.ts" | sort | xargs shasum -a 256 | shasum -a 256 | awk '{print $1}')
57
- STORED_HASH=$(jq -r '.contract_hash' packages/shared-types/contract.version.json)
58
- [ "$CURRENT_HASH" = "$STORED_HASH" ] && echo "HASH OK" || echo "HASH MISMATCH"
32
+ // Hata Yanıtı (Gerçek HTTP 401/404 vb. ile birlikte)
33
+ const error: ApiError = {
34
+ success: false,
35
+ code: 'UNAUTHORIZED',
36
+ message: 'Yetkisiz erişim.',
37
+ statusCode: 401
38
+ };
59
39
  ```
60
40
 
61
- ## Kullanım Örneği
41
+ ## 📐 Mimari Kurallar
62
42
 
63
- ```ts
64
- import type { ApiResponse, UserID } from "ai-enderun-shared-types";
43
+ 1. **Owner:** Bu paketin birincil sahibi `@backend` ajanıdır.
44
+ 2. **Workflow:** Backend bir tip değiştirir -> `contract_hash` güncellenir -> Frontend dökümantasyonu okur ve tipi import eder.
45
+ 3. **No Logic:** Bu paket sadece tip tanımları ve hafif yardımcılar (generator'lar) içermelidir; ağır iş mantığı barındıramaz.
65
46
 
66
- function asUserId(raw: string): UserID {
67
- return raw as UserID;
68
- }
47
+ ## 🔨 Geliştirme
69
48
 
70
- const response: ApiResponse<{ id: UserID }> = {
71
- success: true,
72
- data: { id: asUserId("u-123") },
73
- };
49
+ ```bash
50
+ npm install
51
+ npm run build # npx tsc ile derler
74
52
  ```
75
53
 
76
- ## Değişiklik Protokolü
77
-
78
- 1. `src/index.ts` güncelle.
79
- 2. `npm run typecheck` çalıştır.
80
- 3. `npm run build` ile `dist` üret.
81
- 4. `contract.version.json` hash güncelle.
82
- 5. `PROJECT_MEMORY.md` ve ilgili log dosyasında değişikliği kaydet.
83
-
84
- ## Lisans
54
+ ## 📜 Lisans
85
55
 
86
56
  MIT
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "ai-enderun-shared-types",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "description": "Shared TypeScript types for backend ↔ frontend contract. Owned by @backend, consumed by @frontend.",
5
5
  "author": "Yusuf BEKAR <ybekar@msn.com>",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "https://github.com/ysf-bkr/AI-Enderun.git"
8
+ "url": "git+https://github.com/ysf-bkr/AI-Enderun.git"
9
9
  },
10
10
  "homepage": "https://github.com/ysf-bkr/AI-Enderun#readme",
11
11
  "main": "dist/index.js",
@@ -16,7 +16,7 @@
16
16
  "README.md"
17
17
  ],
18
18
  "scripts": {
19
- "build": "tsc",
19
+ "build": "npx tsc",
20
20
  "build:watch": "tsc --watch",
21
21
  "typecheck": "tsc --noEmit"
22
22
  },
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Shared Types — AI Agent Framework v1.0.2
2
+ * Shared Types — AI-Enderun v0.0.5
3
3
  * Bu paketteki tüm tipler backend ve frontend arasındaki kontratı tanımlar.
4
4
  * Sadece @backend düzenler, @frontend okur/import eder.
5
5
  */
@@ -8,14 +8,30 @@
8
8
  // Neden: Ham string ID'lerin birbirine karışmasını engeller (UserID ≠ ProductID)
9
9
  export type Brand<T, B> = T & { readonly _brand: B };
10
10
 
11
+ // ─── ULID Generator (Lightweight) ──────────────────────────────────────────────
12
+ const ENCODING = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
13
+ const ENCODING_LEN = ENCODING.length;
14
+
15
+ export const createULID = (seedTime: number = Date.now()): string => {
16
+ let time = seedTime;
17
+ const timeChars = new Array(10);
18
+ for (let i = 9; i >= 0; i--) {
19
+ timeChars[i] = ENCODING.charAt(time % ENCODING_LEN);
20
+ time = Math.floor(time / ENCODING_LEN);
21
+ }
22
+ const randomChars = new Array(16);
23
+ for (let i = 0; i < 16; i++) {
24
+ randomChars[i] = ENCODING.charAt(Math.floor(Math.random() * ENCODING_LEN));
25
+ }
26
+ return timeChars.join("") + randomChars.join("");
27
+ };
28
+
11
29
  export type UserID = Brand<string, 'UserID'>;
12
30
  export type SessionID = Brand<string, 'SessionID'>;
13
- // Yeni ID tipleri buraya ekle: export type XxxID = Brand<string, 'XxxID'>;
14
31
 
15
- // ─── ID Üretici (Runtime) ──────────────────────────────────────────────────────
16
- // Neden: crypto.randomUUID() tarayıcı + Node.js'te çalışır, uuid paketi gereksiz
17
- export const createUserID = (): UserID => crypto.randomUUID() as UserID;
18
- export const createSessionID = (): SessionID => crypto.randomUUID() as SessionID;
32
+ // ─── ID Üreticiler (Runtime) ──────────────────────────────────────────────────
33
+ export const createUserID = (): UserID => createULID() as UserID;
34
+ export const createSessionID = (): SessionID => createULID() as SessionID;
19
35
 
20
36
  // ─── Pagination ────────────────────────────────────────────────────────────────
21
37
  export interface PaginationQuery {
@@ -32,7 +48,9 @@ export interface PaginatedResponse<T> {
32
48
  }
33
49
 
34
50
  // ─── API Response Wrapper ──────────────────────────────────────────────────────
35
- // Neden: Tüm API yanıtları tutarlı yapıda olmalı
51
+ // Neden: Tüm API yanıtları tutarlı yapıda olmalı.
52
+ // ÖNEMLİ: Hatalarda 200 OK dönüp içinde "success: false" dönmek YASAKTIR.
53
+ // Gerçek HTTP status kodları (400, 401, 404 vb.) kullanılmalıdır.
36
54
  export interface ApiSuccess<T> {
37
55
  success: true;
38
56
  data: T;
@@ -42,7 +60,7 @@ export interface ApiError {
42
60
  success: false;
43
61
  code: string; // 'NOT_FOUND' | 'VALIDATION_ERROR' | 'UNAUTHORIZED' vb.
44
62
  message: string; // Kullanıcıya gösterilecek mesaj
45
- statusCode: number;
63
+ statusCode: number; // HTTP status kodu ile eşleşmeli
46
64
  }
47
65
 
48
66
  export type ApiResponse<T> = ApiSuccess<T> | ApiError;