id3-cli 0.9.1
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.
- package/README.ja-JP.md +769 -0
- package/README.ko-KR.md +769 -0
- package/README.md +769 -0
- package/README.tr-TR.md +769 -0
- package/README.zh-CN.md +769 -0
- package/dist/bin/cli.d.ts +2 -0
- package/dist/bin/cli.js +40 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/scripts/build-hooks.d.ts +1 -0
- package/dist/scripts/build-hooks.js +58 -0
- package/dist/scripts/build-hooks.js.map +1 -0
- package/dist/src/hooks/auto-audit.d.ts +4 -0
- package/dist/src/hooks/auto-audit.js +47 -0
- package/dist/src/hooks/auto-audit.js.map +1 -0
- package/dist/src/hooks/claude-pretool-entry.d.ts +1 -0
- package/dist/src/hooks/claude-pretool-entry.js +36 -0
- package/dist/src/hooks/claude-pretool-entry.js.map +1 -0
- package/dist/src/hooks/claude-stop-entry.d.ts +1 -0
- package/dist/src/hooks/claude-stop-entry.js +7 -0
- package/dist/src/hooks/claude-stop-entry.js.map +1 -0
- package/dist/src/hooks/post-commit-entry.d.ts +1 -0
- package/dist/src/hooks/post-commit-entry.js +7 -0
- package/dist/src/hooks/post-commit-entry.js.map +1 -0
- package/dist/src/hooks/pre-commit-entry.d.ts +1 -0
- package/dist/src/hooks/pre-commit-entry.js +16 -0
- package/dist/src/hooks/pre-commit-entry.js.map +1 -0
- package/dist/src/hooks/rule-check.d.ts +8 -0
- package/dist/src/hooks/rule-check.js +101 -0
- package/dist/src/hooks/rule-check.js.map +1 -0
- package/dist/src/hooks/schema-drift.d.ts +17 -0
- package/dist/src/hooks/schema-drift.js +151 -0
- package/dist/src/hooks/schema-drift.js.map +1 -0
- package/dist/src/hooks/shared.d.ts +43 -0
- package/dist/src/hooks/shared.js +98 -0
- package/dist/src/hooks/shared.js.map +1 -0
- package/dist/src/init.d.ts +20 -0
- package/dist/src/init.js +193 -0
- package/dist/src/init.js.map +1 -0
- package/dist/src/preview/mockup-generator.d.ts +56 -0
- package/dist/src/preview/mockup-generator.js +402 -0
- package/dist/src/preview/mockup-generator.js.map +1 -0
- package/dist/src/preview/renderer.d.ts +30 -0
- package/dist/src/preview/renderer.js +145 -0
- package/dist/src/preview/renderer.js.map +1 -0
- package/dist/src/preview/server.d.ts +9 -0
- package/dist/src/preview/server.js +55 -0
- package/dist/src/preview/server.js.map +1 -0
- package/dist/src/preview/ui-auditor.d.ts +27 -0
- package/dist/src/preview/ui-auditor.js +141 -0
- package/dist/src/preview/ui-auditor.js.map +1 -0
- package/dist/src/preview/ui-gate.d.ts +66 -0
- package/dist/src/preview/ui-gate.js +210 -0
- package/dist/src/preview/ui-gate.js.map +1 -0
- package/dist/src/utils/ascii.d.ts +7 -0
- package/dist/src/utils/ascii.js +41 -0
- package/dist/src/utils/ascii.js.map +1 -0
- package/dist/src/utils/fs.d.ts +6 -0
- package/dist/src/utils/fs.js +39 -0
- package/dist/src/utils/fs.js.map +1 -0
- package/dist/templates/hooks/iddd-auto-audit.js +121 -0
- package/dist/templates/hooks/iddd-schema-drift.js +279 -0
- package/dist/templates/hooks/post-commit +121 -0
- package/dist/templates/hooks/pre-commit +348 -0
- package/package.json +37 -0
- package/templates/.agents/skills/.gitkeep +0 -0
- package/templates/.claude/hooks/.gitkeep +0 -0
- package/templates/.claude/hooks/hook-config.json +34 -0
- package/templates/.claude/skills/.gitkeep +0 -0
- package/templates/.codex/.gitkeep +0 -0
- package/templates/.codex/hooks.json +40 -0
- package/templates/.iddd/commit-count +1 -0
- package/templates/.iddd/preview/.gitkeep +0 -0
- package/templates/AGENTS.md +204 -0
- package/templates/CLAUDE.md +215 -0
- package/templates/README.md +476 -0
- package/templates/docs/.gitkeep +0 -0
- package/templates/docs/business-rules.md +14 -0
- package/templates/docs/domain-glossary.md +8 -0
- package/templates/docs/info-debt.md +17 -0
- package/templates/docs/model-changelog.md +12 -0
- package/templates/hooks/.gitkeep +0 -0
- package/templates/hooks/iddd-auto-audit.js +121 -0
- package/templates/hooks/iddd-schema-drift.js +279 -0
- package/templates/hooks/post-commit +121 -0
- package/templates/hooks/pre-commit +348 -0
- package/templates/skills/id3-design-information/SKILL.md +170 -0
- package/templates/skills/id3-design-information/references/phase2-procedure.md +241 -0
- package/templates/skills/id3-design-ui/.gitkeep +0 -0
- package/templates/skills/id3-design-ui/SKILL.md +200 -0
- package/templates/skills/id3-design-ui/references/.gitkeep +0 -0
- package/templates/skills/id3-design-ui/references/step1-structure-derivation.md +177 -0
- package/templates/skills/id3-design-ui/references/step2-visual-contract.md +257 -0
- package/templates/skills/id3-design-ui/references/step3-gate-and-mockup.md +177 -0
- package/templates/skills/id3-design-ui/references/step4-implementation.md +244 -0
- package/templates/skills/id3-identify-entities/SKILL.md +239 -0
- package/templates/skills/id3-identify-entities/references/.gitkeep +0 -0
- package/templates/skills/id3-identify-entities/references/phase0-brownfield.md +377 -0
- package/templates/skills/id3-identify-entities/references/phase1-greenfield.md +319 -0
- package/templates/skills/id3-info-audit/.gitkeep +0 -0
- package/templates/skills/id3-info-audit/SKILL.md +191 -0
- package/templates/skills/id3-preview/.gitkeep +0 -0
- package/templates/skills/id3-preview/SKILL.md +168 -0
- package/templates/skills/id3-spawn-team/.gitkeep +0 -0
- package/templates/skills/id3-spawn-team/SKILL.md +213 -0
- package/templates/specs/.gitkeep +0 -0
- package/templates/specs/data-model.md +26 -0
- package/templates/specs/entity-catalog.md +22 -0
- package/templates/specs/ui-design-contract.md +54 -0
- package/templates/specs/ui-inventory.md +24 -0
- package/templates/specs/ui-structure.md +32 -0
- package/templates/src/.gitkeep +0 -0
- package/templates/steering/.gitkeep +0 -0
- package/templates/steering/data-conventions.md +42 -0
- package/templates/steering/product.md +38 -0
package/README.tr-TR.md
ADDED
|
@@ -0,0 +1,769 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
[English](README.md) · [한국어](README.ko-KR.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja-JP.md) · **Türkçe**
|
|
4
|
+
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
╔════════════════════════════════════════════════════════════════════════════════════════╗
|
|
9
|
+
║ ║
|
|
10
|
+
║ ██╗██████╗ ██████╗ ██████╗ ║
|
|
11
|
+
║ ██║██╔══██╗██╔══██╗██╔══██╗ Information Design-Driven Development ║
|
|
12
|
+
║ ██║██║ ██║██║ ██║██║ ██║ ║
|
|
13
|
+
║ ██║██║ ██║██║ ██║██║ ██║ "What information exists?" ║
|
|
14
|
+
║ ██║██████╔╝██████╔╝██████╔╝ -- always the first question. ║
|
|
15
|
+
║ ╚═╝╚═════╝ ╚═════╝ ╚═════╝ v0.9.1 ║
|
|
16
|
+
║ ║
|
|
17
|
+
║ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ║
|
|
18
|
+
║ ║
|
|
19
|
+
║ ┌─────────────────────────┐ ┌─────────────────────────┐ ║
|
|
20
|
+
║ │ │ │ │ ║
|
|
21
|
+
║ │ INFORMATION │ │ AGENT │ ║
|
|
22
|
+
║ │ MODEL │──────────>│ HARNESS │ ║
|
|
23
|
+
║ │ │ │ │ ║
|
|
24
|
+
║ │ - Entity Catalog │ │ - Hook Enforcement │ ║
|
|
25
|
+
║ │ - Data Model │ │ - Drift Detection │ ║
|
|
26
|
+
║ │ - Business Rules │ │ - Auto Audit │ ║
|
|
27
|
+
║ │ - Domain Glossary │ │ - Version Tracking │ ║
|
|
28
|
+
║ │ │ │ │ ║
|
|
29
|
+
║ └─────────────────────────┘ └────────────┬────────────┘ ║
|
|
30
|
+
║ │ ║
|
|
31
|
+
║ v ║
|
|
32
|
+
║ ┌─────────────────────────┐ ║
|
|
33
|
+
║ │ │ ║
|
|
34
|
+
║ │ AI AGENT │ ║
|
|
35
|
+
║ │ (Constrained) │ ║
|
|
36
|
+
║ │ │ ║
|
|
37
|
+
║ │ Agent = Model │ ║
|
|
38
|
+
║ │ + Harness │ ║
|
|
39
|
+
║ │ │ ║
|
|
40
|
+
║ └─────────────────────────┘ ║
|
|
41
|
+
║ ║
|
|
42
|
+
╚════════════════════════════════════════════════════════════════════════════════════════╝
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**"Hangi bilgi mevcut?" ile başlayın -- "Hangi özellikleri geliştirmeliyiz?" ile değil.**
|
|
46
|
+
|
|
47
|
+
IDDD, **bilgi modelini** tüm yazılım geliştirmenin merkezine yerleştiren bir geliştirme metodolojisi ve yapay zeka ajan beceri paketidir. Herhangi bir teknoloji seçimi yapılmadan *önce* titiz bir Entity kataloğu, veri modeli, iş kuralları ve alan sözlüğü oluşturarak, IDDD uygulama davranışının %80'inin mantıksal model aşamasında zaten tanımlanmış olmasını sağlar. Bilgi modeli daha sonra gereksinimler, API sözleşmeleri, ekran tasarımları ve doğrulama kurallarının sistematik olarak türetildiği üretken merkez haline gelir.
|
|
48
|
+
|
|
49
|
+
Bu paket, IDDD'yi bir dizi yapay zeka ajan becerisi, Harness Hook'ları ve belge şablonları olarak yükler; böylece kodlama ajanınız tüm geliştirme yaşam döngüsü boyunca bilgi-öncelikli disiplini uygular.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## IDDD Nedir?
|
|
54
|
+
|
|
55
|
+
Çoğu yazılım projesi *"Hangi özellikleri geliştirmeliyiz?"* sorusunu sorarak başlar ve doğrudan uygulamaya geçer. IDDD bunu tersine çevirir. **"Bu alanda hangi bilgi mevcut?"** sorusundan yola çıkar ve bilgi modelini spesifikasyonun bir bölümü olarak değil, diğer tüm geliştirme çıktılarının türetildiği **tek doğru kaynak** olarak ele alır.
|
|
56
|
+
|
|
57
|
+
### Temel İlkeler
|
|
58
|
+
|
|
59
|
+
1. **Bilgi modeli üretken merkezdir.** Tüm kod, API'ler, kullanıcı arayüzü ve testler Entity kataloğu ve veri modelinden türetilir. Kod spesifikasyonla uyuşmazsa, spesifikasyon kazanır.
|
|
60
|
+
2. **Entity-öncelikli tanımlama.** Herhangi bir kod yazmadan önce Entity'ler tanımlanmalı ve belgelenmelidir. Yeni özellikler "hangi endpoint'lere ihtiyacımız var?" ile değil, "hangi Entity'ler ilgili?" ile başlar.
|
|
61
|
+
3. **Veri modeli izlenebilirliği.** Kod tabanındaki her sütun, kısıtlama ve Relationship, Entity kataloğundaki bir girdiye kadar izlenebilir olmalıdır. İzlenmeyen şema öğeleri sapma olarak kabul edilir.
|
|
62
|
+
4. **Çıktı-öncelikli tasarım.** Kullanıcıların *gördüğü* şeyleri (gösterge panelleri, raporlar, listeler) girdilerden (formlar, API'ler) önce tasarlayın. Çıktı görüntüsü bilgi modelini yönlendirir.
|
|
63
|
+
5. **İş kuralları açıktır.** Her doğrulama, kısıtlama ve türetim kuralı bir BR-xxx tanımlayıcısı ile kayıt altına alınır. Yalnızca kodda bulunan kurallar borç olarak kabul edilir.
|
|
64
|
+
|
|
65
|
+
### Yazılım Geliştirmeye Eşlenen Üç Aşamalı Veri Modelleme
|
|
66
|
+
|
|
67
|
+
IDDD, klasik üç aşamalı veri modelleme sürecini doğrudan yazılım geliştirme aşamalarına eşler:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
┌───────────────────────────────────────────┐ ┌───────────────────────────────────────────┐
|
|
71
|
+
│ Conceptual Model │ │ Gereksinimler / Kapsam Tanımı │
|
|
72
|
+
│ "Hangi bilgi mevcut?" │────────>│ Entity tanımlama, kullanıcı hikayeleri │
|
|
73
|
+
└───────────────────────────────────────────┘ └───────────────────────────────────────────┘
|
|
74
|
+
│
|
|
75
|
+
v
|
|
76
|
+
┌───────────────────────────────────────────┐ ┌───────────────────────────────────────────┐
|
|
77
|
+
│ Logical Model │ │ API Sözleşmeleri / Doğrulama / İş Mantığı│
|
|
78
|
+
│ "Nasıl yapılandırılmış?" │────────>│ Davranışın %80'i burada tanımlanır │
|
|
79
|
+
└───────────────────────────────────────────┘ └───────────────────────────────────────────┘
|
|
80
|
+
│
|
|
81
|
+
v
|
|
82
|
+
┌───────────────────────────────────────────┐ ┌───────────────────────────────────────────┐
|
|
83
|
+
│ Physical Model │ │ Uygulama Kararları │
|
|
84
|
+
│ "Nasıl depolanır/çalıştırılır?" │────────>│ Teknoloji seçimleri, depolama, dağıtım │
|
|
85
|
+
└───────────────────────────────────────────┘ └───────────────────────────────────────────┘
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Bilgi modelinin her öğesi otomatik olarak geliştirme çıktılarını ima eder:
|
|
89
|
+
|
|
90
|
+
| Bilgi Modeli Öğesi | Türetilen Çıktı |
|
|
91
|
+
|--------------------------------|------------------------------------------------------------|
|
|
92
|
+
| Entity tanımlama | Gereksinim kapsamı, kullanıcı hikayeleri |
|
|
93
|
+
| Relationship'ler ve Cardinality| API endpoint yapısı, navigasyon |
|
|
94
|
+
| Attribute'lar ve veri tipleri | Form alanları, doğrulama kuralları, DTO'lar |
|
|
95
|
+
| Kısıtlamalar | Girdi doğrulama, tip tanımları |
|
|
96
|
+
| Türetilmiş Attribute'lar | İş mantığı, hesaplama kuralları |
|
|
97
|
+
| Durum geçişleri | İş akışları, durum yönetimi |
|
|
98
|
+
| Toplama / ilişki kuralları | İşlem sınırları, tutarlılık kuralları |
|
|
99
|
+
|
|
100
|
+
**Mantıksal model tamamlandığında, uygulama davranışının %80'i zaten tanımlanmıştır -- herhangi bir teknoloji seçimi yapılmadan önce.**
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Desteklenen Platformlar
|
|
105
|
+
|
|
106
|
+
| Platform | Ajan Sistemi | Çoklu Ajan Stratejisi |
|
|
107
|
+
|--------------|-------------------------|------------------------------------------------------|
|
|
108
|
+
| Claude Code | Claude Agent Teams | Eşler arası mesajlaşma, bağımsız worktree'ler |
|
|
109
|
+
| OpenAI Codex | Codex Agents SDK | MCP Server üzerinden Handoff deseni |
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Ön Koşullar
|
|
114
|
+
|
|
115
|
+
| Gereksinim | Detaylar |
|
|
116
|
+
|------------------|------------------------------------------------------|
|
|
117
|
+
| Node.js | **18+** (npm veya uyumlu bir paket yöneticisi ile) |
|
|
118
|
+
| Claude Code | **Claude Max** üyeliği + Agent Teams etkinleştirilmiş|
|
|
119
|
+
| OpenAI Codex | **ChatGPT Plus** veya üstü (Pro/Business/Enterprise) |
|
|
120
|
+
|
|
121
|
+
`npx` yükleyicisi için Node.js'e ihtiyacınız var. Yapay zeka platform aboneliği, hangi platformu kullanıyorsanız onun için gereklidir.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Kurulum
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
npx id3@latest
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Alt komuta gerek yoktur -- `id3` başlatma sürecini doğrudan çalıştırır. Şunları yapacaktır:
|
|
132
|
+
|
|
133
|
+
1. Tüm IDDD şablonlarını (spesifikasyonlar, belgeler, yönlendirme, beceriler, Hook'lar) projenize kopyalar.
|
|
134
|
+
2. Platforma özgü sembolik bağlantılar (`.claude/skills/` veya `.agents/skills/`) oluşturarak orijinal `skills/` dizinine işaret eder.
|
|
135
|
+
3. Harness Hook'larını platformunuzun yapılandırma dosyasına kaydeder.
|
|
136
|
+
4. `.iddd/` durum dizinini başlatır (commit sayacı, önizleme çıktısı).
|
|
137
|
+
|
|
138
|
+
### Seçenekler
|
|
139
|
+
|
|
140
|
+
| Seçenek | Açıklama |
|
|
141
|
+
|-----------------|-------------------------------------------------------------|
|
|
142
|
+
| `[target-dir]` | Hedef dizin (varsayılan olarak mevcut dizin `.`) |
|
|
143
|
+
| `--no-symlink` | Sembolik bağlantı yerine beceri dosyalarını kopyalar (Windows'ta kullanışlıdır) |
|
|
144
|
+
| `--platform` | Platformu zorla: `claude`, `codex` veya `all` |
|
|
145
|
+
|
|
146
|
+
### Üzerine Yazma Algılama
|
|
147
|
+
|
|
148
|
+
Hedef dizinde `CLAUDE.md` zaten mevcutsa, `id3` şu soruyu sorar:
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
"IDDD appears to be already installed. Overwrite? (y/N)"
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Kurulum Sonrası Çıktı
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
┌── IDDD installed ─────────────────────────────────────────┐
|
|
158
|
+
│ │
|
|
159
|
+
│ Next steps: │
|
|
160
|
+
│ │
|
|
161
|
+
│ 1. Fill in steering/product.md │
|
|
162
|
+
│ 2. Run /id3-identify-entities to start │
|
|
163
|
+
│ 3. Customize steering/data-conventions.md │
|
|
164
|
+
│ │
|
|
165
|
+
│ Skills: │
|
|
166
|
+
│ ├── id3-identify-entities (Phase 0/1) │
|
|
167
|
+
│ ├── id3-design-information (Phase 2) │
|
|
168
|
+
│ ├── id3-design-ui (Phase 2.5) │
|
|
169
|
+
│ ├── id3-spawn-team (Phase 3-5) │
|
|
170
|
+
│ ├── id3-info-audit (Audit) │
|
|
171
|
+
│ └── id3-preview (Visual Preview) │
|
|
172
|
+
│ │
|
|
173
|
+
└───────────────────────────────────────────────────────────┘
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Kurulumdan Sonra Dizin Yapısı
|
|
179
|
+
|
|
180
|
+
`npx id3@latest` komutunu çalıştırdıktan sonra projeniz aşağıdaki yapıya sahip olur:
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
your-project/
|
|
184
|
+
│
|
|
185
|
+
│ ===== Paylaşılan (tüm platformlar) =====
|
|
186
|
+
│
|
|
187
|
+
├── skills/ Beceri orijinalleri (tek doğru kaynak)
|
|
188
|
+
│ ├── id3-identify-entities/ Phase 0/1: Entity tanımlama
|
|
189
|
+
│ │ ├── SKILL.md
|
|
190
|
+
│ │ └── references/
|
|
191
|
+
│ │ ├── phase0-brownfield.md Mevcut koddan tersine çıkarma
|
|
192
|
+
│ │ └── phase1-greenfield.md Yeni projeler için yapılandırılmış görüşme
|
|
193
|
+
│ ├── id3-design-information/ Phase 2: Bilgi yapılandırma
|
|
194
|
+
│ │ ├── SKILL.md
|
|
195
|
+
│ │ └── references/
|
|
196
|
+
│ │ └── phase2-procedure.md İyileştirme prosedürü
|
|
197
|
+
│ ├── id3-design-ui/ Phase 2.5: UI tasarımı ve uygulaması
|
|
198
|
+
│ │ ├── SKILL.md
|
|
199
|
+
│ │ └── references/
|
|
200
|
+
│ │ ├── step1-structure-derivation.md
|
|
201
|
+
│ │ ├── step2-visual-contract.md
|
|
202
|
+
│ │ ├── step3-gate-and-mockup.md
|
|
203
|
+
│ │ └── step4-implementation.md
|
|
204
|
+
│ ├── id3-spawn-team/ Çoklu ajan uygulamasını dağıtma
|
|
205
|
+
│ ├── id3-info-audit/ Entropi denetimi (sapma algılama)
|
|
206
|
+
│ └── id3-preview/ Bilgi modelinin görsel önizlemesi
|
|
207
|
+
│
|
|
208
|
+
├── specs/ Bilgi modeli çıktıları
|
|
209
|
+
│ ├── entity-catalog.md Entity envanteri + özet tablosu
|
|
210
|
+
│ ├── data-model.md Mermaid ERD + tasarım kararları
|
|
211
|
+
│ ├── ui-inventory.md Ekran envanteri + eşleme matrisi
|
|
212
|
+
│ ├── ui-structure.md Ekran envanteri + navigasyon (Phase 2.5)
|
|
213
|
+
│ └── ui-design-contract.md Tasarım token'ları + bileşen eşleme (Phase 2.5)
|
|
214
|
+
│
|
|
215
|
+
├── docs/ Destekleyici belgeler
|
|
216
|
+
│ ├── business-rules.md BR-xxx indeksli iş kuralları
|
|
217
|
+
│ ├── domain-glossary.md Terim / İngilizce / tanım / notlar
|
|
218
|
+
│ ├── info-debt.md Tutarsızlık takipçisi
|
|
219
|
+
│ └── model-changelog.md Keep a Changelog formatı
|
|
220
|
+
│
|
|
221
|
+
├── steering/ Proje düzeyinde kurallar
|
|
222
|
+
│ ├── product.md Ürün vizyonu ve kapsamı (kullanıcı tarafından yazılır)
|
|
223
|
+
│ └── data-conventions.md PK stratejisi, adlandırma, zaman damgaları vb.
|
|
224
|
+
│
|
|
225
|
+
├── hooks/ Harness Hook betikleri (derlenmiş JS paketleri)
|
|
226
|
+
│ ├── iddd-schema-drift.js schema-drift algılama
|
|
227
|
+
│ ├── iddd-rule-check.js İş kuralı takibi
|
|
228
|
+
│ ├── iddd-auto-audit.js Otomatik entropi denetimi
|
|
229
|
+
│ ├── pre-commit Git Hook (schema-drift + rule-check)
|
|
230
|
+
│ └── post-commit Git Hook (auto-audit)
|
|
231
|
+
│
|
|
232
|
+
├── .iddd/ IDDD dahili durum
|
|
233
|
+
│ ├── commit-count auto-audit aralık sayacı
|
|
234
|
+
│ └── preview/ Oluşturulan önizleme HTML'leri
|
|
235
|
+
│
|
|
236
|
+
│ ===== Platform: Claude Code =====
|
|
237
|
+
│
|
|
238
|
+
├── CLAUDE.md Lider ajan bağlam belgesi
|
|
239
|
+
├── .claude/
|
|
240
|
+
│ ├── settings.local.json Hook kaydı (init tarafından enjekte edilir)
|
|
241
|
+
│ ├── skills/ -> skills/ skills/ orijinallerine sembolik bağlantılar
|
|
242
|
+
│ └── hooks/
|
|
243
|
+
│ └── hook-config.json IDDD Hook ayarları
|
|
244
|
+
│
|
|
245
|
+
│ ===== Platform: OpenAI Codex =====
|
|
246
|
+
│
|
|
247
|
+
├── AGENTS.md Platformlar arası ajan talimatları
|
|
248
|
+
├── .agents/
|
|
249
|
+
│ └── skills/ -> skills/ skills/ orijinallerine sembolik bağlantılar
|
|
250
|
+
└── .codex/
|
|
251
|
+
└── hooks.json Codex Hook yapılandırması
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### Beceri Dosyası Paylaşım Stratejisi
|
|
255
|
+
|
|
256
|
+
Beceri içeriği tek bir kanonik konumda (`skills/`) tutulur. Platforma özgü yollar (`.claude/skills/`, `.agents/skills/`) `init` CLI tarafından dinamik olarak oluşturulan sembolik bağlantılardır. Bu, tüm platformlarda tek bir bakım noktası sağlar. Windows'ta kopyalar oluşturmak için `--no-symlink` kullanın.
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## İş Akışı
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
╔══════════════════════════════════════════════════════════════════════════╗
|
|
264
|
+
║ IDDD WORKFLOW OVERVIEW ║
|
|
265
|
+
╚══════════════════════════════════════════════════════════════════════════╝
|
|
266
|
+
|
|
267
|
+
┌──────────────┐ ┌──────────────┐
|
|
268
|
+
│ │<--- diyalog ---->│ │
|
|
269
|
+
│ Kullanıcı │ │ Lider Ajan │
|
|
270
|
+
│ │ │ │
|
|
271
|
+
└──────────────┘ └──────┬───────┘
|
|
272
|
+
│
|
|
273
|
+
┌──────────────────┴──────────────────┐
|
|
274
|
+
│ │
|
|
275
|
+
v v
|
|
276
|
+
┌────────────────────┐ ┌────────────────────┐
|
|
277
|
+
│ Mevcut kod var mı?│ │ Mevcut kod yok mu?│
|
|
278
|
+
└─────────┬──────────┘ └─────────┬──────────┘
|
|
279
|
+
│ │
|
|
280
|
+
v v
|
|
281
|
+
┌──────────────────────────────────┐ ┌──────────────────────────────────┐
|
|
282
|
+
│ Phase 0: Tersine Çıkarma │ │ Phase 1: Yapılandırılmış Görüşme│
|
|
283
|
+
│ │ │ │
|
|
284
|
+
│ - ORM / şema dosyalarını tara │ │ "Alanınız hangi bilgileri │
|
|
285
|
+
│ - Entity'leri çıkar │ │ yönetiyor?" │
|
|
286
|
+
│ - Relationship'leri çıkar │ │ - Temel Entity'leri tanımla │
|
|
287
|
+
│ - Doğrulama görüşmesi │ │ - Relationship'leri keşfet │
|
|
288
|
+
└────────────────┬─────────────────┘ └────────────────┬─────────────────┘
|
|
289
|
+
│ │
|
|
290
|
+
v v
|
|
291
|
+
┌─────────────────────────────────────────────────────┐
|
|
292
|
+
│ Entity Kataloğu Üretildi │
|
|
293
|
+
└─────────────────────────┬───────────────────────────┘
|
|
294
|
+
│
|
|
295
|
+
v
|
|
296
|
+
┌────────────────────────────────────────────────────────────────────┐
|
|
297
|
+
│ Phase 2: Bilgi Tasarımı │
|
|
298
|
+
│ │
|
|
299
|
+
│ - Conceptual --> Logical Model │
|
|
300
|
+
│ - İş kurallarını türet (BR-xxx) │
|
|
301
|
+
│ - Hook'ları ve sürüm başlıklarını kaydet │
|
|
302
|
+
└─────────────────────────────────┬──────────────────────────────────┘
|
|
303
|
+
│
|
|
304
|
+
v
|
|
305
|
+
┌────────────────────────────────────────────────────────────────────┐
|
|
306
|
+
│ Phase 2.5: UI Design (id3-design-ui) │
|
|
307
|
+
│ │
|
|
308
|
+
│ - Entity --> Screen auto-derivation │
|
|
309
|
+
│ - Visual design contract (tokens, components) │
|
|
310
|
+
│ - 7-Pillar gate + 3-level mockup preview │
|
|
311
|
+
│ - Agent Teams implementation + post-audit │
|
|
312
|
+
└─────────────────────────────────┬──────────────────────────────────┘
|
|
313
|
+
│
|
|
314
|
+
v
|
|
315
|
+
┌─────────────────────────────────────────────────────┐
|
|
316
|
+
│ /id3-spawn-team │
|
|
317
|
+
└─────────────────────────┬───────────────────────────┘
|
|
318
|
+
│
|
|
319
|
+
┌──────────────┴──────────────┐
|
|
320
|
+
│ │
|
|
321
|
+
v v
|
|
322
|
+
┌────────────────────────────────┐ ┌────────────────────────────────┐
|
|
323
|
+
│ Claude Code: Agent Teams │ │ Codex: Agents SDK │
|
|
324
|
+
│ │ │ │
|
|
325
|
+
│ ┌────────┐ ┌──────┐ ┌────┐ │ │ ┌──────────────────────────┐ │
|
|
326
|
+
│ │ spec │ │ impl │ │ qa │ │ │ │ Handoff Deseni │ │
|
|
327
|
+
│ └───┬────┘ └──┬───┘ └─┬──┘ │ │ │ MCP Server üzerinden │ │
|
|
328
|
+
│ │ │ │ │ │ └──────────────────────────┘ │
|
|
329
|
+
│ └── mesajlaşma ───┘ │ │ │
|
|
330
|
+
│ (eşler arası) │ │ spec -> impl -> qa │
|
|
331
|
+
│ │ │ (sıralı handoff) │
|
|
332
|
+
└────────────────────────────────┘ └────────────────────────────────┘
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Phase Adım Adım
|
|
336
|
+
|
|
337
|
+
**Phase 0/1 -- Entity Tanımlama:**
|
|
338
|
+
Yapay zeka kodlama ajanınızı açın ve `/id3-identify-entities` komutunu çalıştırın. Ajan, mevcut bir kod tabanınız (brownfield) olup olmadığını veya sıfırdan mı başladığınızı (greenfield) otomatik olarak algılar, ardından uygun tanımlama akışını çalıştırır.
|
|
339
|
+
|
|
340
|
+
**Phase 2 -- Bilgi Tasarımı:**
|
|
341
|
+
`/id3-design-information` komutunu çalıştırın. Ajan kavramsal modeli mantıksal modele dönüştürür, iş kurallarını türetir ve sürüm başlıkları ile Hook yapılandırmalarını ayarlar.
|
|
342
|
+
|
|
343
|
+
**Phase 2.5 -- UI Tasarımı:**
|
|
344
|
+
`/id3-design-ui` komutunu çalıştırın. Ajan, Entity kataloğundan ekran yapısını türetir, tasarım token'ları ile görsel tasarım sözleşmesi oluşturur, etkileşimli mockup önizlemesi ile 7-Pillar kalite kapısı çalıştırır ve ardından paralel ekran uygulaması için Agent Teams oluşturarak uygulama sonrası denetim gerçekleştirir.
|
|
345
|
+
|
|
346
|
+
**Phase 3-5 -- Agent Teams ile Uygulama:**
|
|
347
|
+
`/id3-spawn-team` komutunu çalıştırın. Ajan, sonlandırılmış bilgi modelini okur ve sistemi paralel olarak uygulamak için özelleşmiş ajanlardan oluşan bir takım (spec-generator, implementer, qa-reviewer) oluşturur.
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
## Beceriler
|
|
352
|
+
|
|
353
|
+
### id3-identify-entities (Phase 0/1)
|
|
354
|
+
|
|
355
|
+
IDDD iş akışının giriş noktası. Bu beceri brownfield ve greenfield yolları arasında **otomatik olarak dallanır**.
|
|
356
|
+
|
|
357
|
+
**Tetikleme anahtar kelimeleri:** `identify entities`, `information analysis`, `domain analysis`, `new project`, `entity identification`
|
|
358
|
+
|
|
359
|
+
**Otomatik algılama mantığı:** Beceri, proje kök dizinini ORM/şema dosyaları (Prisma, Drizzle, Django models, TypeORM entities, SQL migrations, Sequelize configs) için tarar. Bulunursa Phase 0'a girer; aksi halde Phase 1'e.
|
|
360
|
+
|
|
361
|
+
#### Phase 0: Brownfield -- Bilgi Modelini Tersine Çıkarma
|
|
362
|
+
|
|
363
|
+
Mevcut kod tabanları için ajan, örtük bilgi modelini sistematik olarak dört katmandan çıkarır:
|
|
364
|
+
|
|
365
|
+
| Katman | Kaynak | İncelenen | Güvenilirlik |
|
|
366
|
+
|--------|------------------|--------------------------------------------------------|--------------|
|
|
367
|
+
| L1 | Veritabanı Şeması| Tablolar, sütunlar, FK, indeksler, kısıtlamalar | En Yüksek |
|
|
368
|
+
| L2 | ORM / Modeller | Sanal alanlar, türetilmiş Attribute'lar, soft delete, durum | Yüksek |
|
|
369
|
+
| L3 | API Sözleşmeleri | Endpoint'ler, DTO'lar, doğrulama mantığı | Orta |
|
|
370
|
+
| L4 | Ön Yüz | Rotalar, bileşenler, form alanları | Referans |
|
|
371
|
+
|
|
372
|
+
L4 araştırması kapsamlıdır: ekran-Entity eşleme matrisleri içeren eksiksiz bir kullanıcı arayüzü envanteri (`specs/ui-inventory.md`) oluşturmak için dosya tabanlı yönlendirmeyi (Next.js `app/`, `pages/`), React Router, Vue Router vb. tarar.
|
|
373
|
+
|
|
374
|
+
Bulgular **eşleşme** (katmanlar arasında tutarlı), **uyumsuzluk** (`docs/info-debt.md`'de kaydedilir) veya **örtük** (kod mantığında gizli, açık iş kuralları olarak ortaya çıkarılır) şeklinde sınıflandırılır.
|
|
375
|
+
|
|
376
|
+
Çıkarma işleminden sonra, bir **doğrulama görüşmesi** doğruluğu kullanıcıyla teyit eder.
|
|
377
|
+
|
|
378
|
+
**Üretilen çıktılar:** `specs/entity-catalog.md`, `specs/data-model.md`, `specs/ui-inventory.md`, `docs/business-rules.md`, `docs/info-debt.md`
|
|
379
|
+
|
|
380
|
+
#### Phase 1: Greenfield -- Yapılandırılmış Görüşme
|
|
381
|
+
|
|
382
|
+
Yeni projeler için ajan, alan bilgisini keşfetmek üzere yapılandırılmış bir görüşme yapar:
|
|
383
|
+
|
|
384
|
+
1. **Bilgi tanımlama** -- "Bu sistem hangi temel 'şeyleri' (isimleri) yönetiyor?"
|
|
385
|
+
2. **Relationship keşfi** -- "Bu şeyler nasıl ilişkili? Bire-çok mu yoksa çoka-çok mu?"
|
|
386
|
+
3. **Kural keşfi** -- "Hangi kurallar uygulanmalı? Herhangi bir durum geçişi var mı?"
|
|
387
|
+
4. **Silverston evrensel desen kontrol listesi** -- Ajan, keşfedilen Entity'leri kanıtlanmış desenlere karşı çapraz referanslar: Party, Product/Service, Order/Transaction, Classification, Status/Lifecycle, Hierarchy, Contact Mechanism, Document/Content.
|
|
388
|
+
|
|
389
|
+
**Üretilen çıktılar:** `specs/entity-catalog.md`, `specs/data-model.md`, `docs/business-rules.md`
|
|
390
|
+
|
|
391
|
+
---
|
|
392
|
+
|
|
393
|
+
### id3-design-information (Phase 2)
|
|
394
|
+
|
|
395
|
+
Kavramsal modeli bir **mantıksal modele** dönüştürür. İş kuralları, geçerlilik kısıtlamaları ve türetim kuralları bilgi modelinden otomatik olarak türetilir.
|
|
396
|
+
|
|
397
|
+
**Tetikleme anahtar kelimeleri:** `design information`, `refine model`, `logical model`, `schema design`, `information structuring`
|
|
398
|
+
|
|
399
|
+
**Ön koşul:** `specs/entity-catalog.md` en az 2 tanımlanmış Entity ile mevcut olmalıdır.
|
|
400
|
+
|
|
401
|
+
**Prosedür:**
|
|
402
|
+
|
|
403
|
+
1. **Attribute iyileştirme** -- Somut veri tipleri (UUID, TEXT, INTEGER, TIMESTAMP, JSONB vb.), NOT NULL / DEFAULT / UNIQUE kısıtlamaları ve indeks gereksinimleri atanır.
|
|
404
|
+
2. **Relationship somutlaştırma** -- FK yerleşimi, silme/güncelleme kuralları (CASCADE, SET NULL, RESTRICT) belirlenir ve çoka-çok Relationship'ler için birleştirme tabloları tanımlanır.
|
|
405
|
+
3. **Otomatik iş kuralı türetme:**
|
|
406
|
+
- NOT NULL kısıtlaması --> "Bu alan zorunludur" (BR-xxx)
|
|
407
|
+
- UNIQUE kısıtlaması --> "Yinelenenlere izin verilmez" (BR-xxx)
|
|
408
|
+
- FK + CASCADE --> "Üst öğeyi silmek alt öğeleri de siler" (BR-xxx)
|
|
409
|
+
- Durum geçişleri --> "İzin verilen geçiş yolları" (BR-xxx)
|
|
410
|
+
- Türetilmiş Attribute'lar --> "Hesaplama kuralı" (BR-xxx)
|
|
411
|
+
4. **Tasarım kararı soruları** -- Ajan, kullanıcıya büyük veri depolama stratejisi, soft delete kapsamı, çok kiracılılık, denetim izi ihtiyaçları vb. hakkında sorular sorar.
|
|
412
|
+
5. **Çıktı sonlandırma** -- Tüm spesifikasyon dosyalarını sürüm başlıkları ve Hook yapılandırmaları ile günceller.
|
|
413
|
+
|
|
414
|
+
**Güncellenen çıktılar:** `specs/entity-catalog.md`, `specs/data-model.md`, `docs/business-rules.md`
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
### id3-design-ui (Phase 2.5)
|
|
419
|
+
|
|
420
|
+
Bilgi modelinden UI yapısı ve görsel tasarım türetir, ardından Agent Teams kullanarak ekranları uygular.
|
|
421
|
+
|
|
422
|
+
**Tetikleme anahtar kelimeleri:** `design ui`, `ui design`, `screen design`, `phase 2.5`, `ui structure`
|
|
423
|
+
|
|
424
|
+
**Ön koşul:** Phase 2 tamamlanmış (`entity-catalog.md` version >= `"1.0"`).
|
|
425
|
+
|
|
426
|
+
**4 Adımlı Pipeline:**
|
|
427
|
+
|
|
428
|
+
1. **UI Yapı Türetme** -- 9 türetme kuralı (entity -> list/detail/form/dashboard) kullanarak Entity'leri ekranlara otomatik eşler. 12 tip tabanlı kural ile Attribute'ları Widget'lara eşler. "Çıktı önce, girdi sonra" ilkesini uygular.
|
|
429
|
+
2. **Görsel Tasarım Sözleşmesi** -- Mevcut frontend framework'ü (React, Vue, Svelte vb.) ve UI kütüphanesini algılar. 5 tasarım token alanı oluşturur: spacing, typography, color, copywriting, component registry.
|
|
430
|
+
3. **Uygulama Öncesi Kapı** -- 7-Pillar doğrulama (yapı bütünlüğü, spacing, typography, color, copywriting, component registry, traceability) çalıştırır. Örnek verilerle 3 seviyeli HTML mockup (wireframe, styled, interactive) oluşturur.
|
|
431
|
+
4. **Uygulama + Sonrası Denetim** -- Paralel ekran uygulaması için Agent Teams oluşturur. Uygulama sonrası görsel denetim her Pillar'ı 1-4 olarak puanlar ve en önemli 3 düzeltmeyi türetir.
|
|
432
|
+
|
|
433
|
+
**Çıktılar:** `specs/ui-structure.md`, `specs/ui-design-contract.md`, `.iddd/preview/mockup-*.html`, `.iddd/preview/ui-audit.html`
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
### id3-spawn-team (Phase 3-5)
|
|
438
|
+
|
|
439
|
+
Sonlandırılmış bilgi modeline dayalı olarak sistemi uygulamak için özelleşmiş ajanlardan oluşan bir takım oluşturur.
|
|
440
|
+
|
|
441
|
+
**Ön koşul:** `specs/entity-catalog.md` ve `specs/data-model.md` Phase 2 tamamlanmış olarak mevcut olmalıdır.
|
|
442
|
+
|
|
443
|
+
#### Claude Code: Agent Teams
|
|
444
|
+
|
|
445
|
+
Her biri bağımsız bağlam pencereleri ve bağımsız Git worktree'leri olan üç takım üyesi oluşturulur:
|
|
446
|
+
|
|
447
|
+
| Takım Üyesi | Rol |
|
|
448
|
+
|--------------------|---------------------------------------------------------------|
|
|
449
|
+
| spec-generator | Bilgi modelini requirements.md ve api-contracts.md'ye dönüştürür |
|
|
450
|
+
| implementer | Spesifikasyonlardan kod oluşturur, Entity başına atomik commit |
|
|
451
|
+
| qa-reviewer | Uygulamayı bilgi modeline karşı doğrular; başarısızlık durumunda implementer'a doğrudan mesaj gönderir |
|
|
452
|
+
|
|
453
|
+
**Görev oluşturma kuralları:**
|
|
454
|
+
- Entity başına bir görev oluşturmak için Entity kataloğu okunur (model + migration + API + doğrulama + testler).
|
|
455
|
+
- Veri modelindeki FK bağımlılıkları bağımlılık grafiğini belirler.
|
|
456
|
+
- Bağımsız Entity'ler paralel çalışır; bağımlı Entity'ler üst öğelerini bekler.
|
|
457
|
+
|
|
458
|
+
#### OpenAI Codex: Agents SDK + Handoff Deseni
|
|
459
|
+
|
|
460
|
+
Codex'te, çoklu ajan çalışması Agents SDK handoff desenini kullanır. Codex bir MCP Server olarak başlatılır (`codex --mcp-server`) ve bir Proje Yöneticisi ajanı, aynı üç role (spec-generator, implementer, qa-reviewer) görevleri handoff'lar aracılığıyla dağıtmak için Entity kataloğunu okur.
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
### id3-info-audit
|
|
465
|
+
|
|
466
|
+
Sapma ve entropiyi algılamak için kod tabanını bilgi modeline karşı denetler.
|
|
467
|
+
|
|
468
|
+
**Tetikleme anahtar kelimeleri:** `info audit`, `information audit`, `model audit`, `drift check`
|
|
469
|
+
|
|
470
|
+
**Prosedür:**
|
|
471
|
+
|
|
472
|
+
1. `specs/entity-catalog.md`'den Entity listesini okur.
|
|
473
|
+
2. Kod tabanını şunlar için tarar:
|
|
474
|
+
- Uygulanmamış Entity'ler / tanımlanmamış modeller
|
|
475
|
+
- `docs/business-rules.md`'de olup koda yansımayan iş kuralları
|
|
476
|
+
- Veri tipi / kısıtlama uyumsuzlukları
|
|
477
|
+
3. `specs/ui-structure.md` ve `specs/ui-design-contract.md`'ye karşı kullanıcı arayüzü tutarlılığını kontrol eder:
|
|
478
|
+
- Uygulanmamış ekranlar / tanımlanmamış ekranlar
|
|
479
|
+
- Form alanı ile Attribute eşleme uyumsuzlukları
|
|
480
|
+
- Eksik navigasyon yolları
|
|
481
|
+
4. Sürüm başlıklarını günceller (`last_verified`, `audit_status`).
|
|
482
|
+
5. Hook atlama geçmişini kontrol eder (`.iddd/skip-history.log`).
|
|
483
|
+
6. Görsel göstergelerle Entity bazında durum raporu çıktılar.
|
|
484
|
+
|
|
485
|
+
**Görsel çıktı:** Denetim sonuçları `.iddd/preview/audit-{date}.html` içinde etkileşimli bir HTML gösterge paneli olarak oluşturulur.
|
|
486
|
+
|
|
487
|
+
---
|
|
488
|
+
|
|
489
|
+
### id3-preview
|
|
490
|
+
|
|
491
|
+
Bilgi modelini ve denetim sonuçlarını tarayıcıda görüntülemek için hafif bir yerel HTTP sunucusu başlatır.
|
|
492
|
+
|
|
493
|
+
**Tetikleme anahtar kelimeleri:** `preview`, `show erd`, `show model`, `visual preview`
|
|
494
|
+
|
|
495
|
+
Sunucu `listen(0)` (işletim sistemi tarafından atanan port) kullanır ve şunları sunar:
|
|
496
|
+
- **ERD Önizlemesi** -- Entity'ye tıklayarak katalog detaylarına giden etkileşimli Mermaid ERD
|
|
497
|
+
- **Kullanıcı Arayüzü Mockup'ı** -- `specs/ui-structure.md` ve `specs/ui-design-contract.md`'den türetilen wireframe düzenleri
|
|
498
|
+
- **Denetim Gösterge Paneli** -- İş kuralı kapsamı ile Entity bazında durum kartları
|
|
499
|
+
|
|
500
|
+
Tüm HTML dosyaları `.iddd/preview/` içinde kalıcıdır ve sunucu olmadan bile doğrudan tarayıcıda açılabilir.
|
|
501
|
+
|
|
502
|
+
---
|
|
503
|
+
|
|
504
|
+
## Harness Hook Sistemi
|
|
505
|
+
|
|
506
|
+
IDDD, otomatik Hook'lar aracılığıyla bilgi-öncelikli disiplini uygular. Felsefe "lütfen süreci takip edin" değil, **"takip etmezseniz commit engellenir"** şeklindedir.
|
|
507
|
+
|
|
508
|
+
### Hook Genel Bakış
|
|
509
|
+
|
|
510
|
+
| Hook | Tetikleyici | Eylem | Önem Derecesi |
|
|
511
|
+
|----------------|------------------|------------------------------------------------------|---------------|
|
|
512
|
+
| schema-drift | pre-commit | Şema değişikliklerinin entity-catalog.md ile eşleştiğini doğrular | **BLOCK** (commit reddedilir) |
|
|
513
|
+
| rule-check | pre-commit | Yeni doğrulama mantığını business-rules.md'ye karşı kontrol eder | **WARN** (commit izin verilir, mesaj gösterilir) |
|
|
514
|
+
| auto-audit | post-commit | Her N commit'te bir info-audit çalıştırır | **INFO** (rapor oluşturulur) |
|
|
515
|
+
|
|
516
|
+
### schema-drift (BLOCK)
|
|
517
|
+
|
|
518
|
+
Şema ile ilgili dosyaları (Prisma, Drizzle, Django models, TypeORM entities, SQL migrations vb.) değiştirdiğinizde, Hook `specs/entity-catalog.md`'nin buna uygun olarak güncellenip güncellenmediğini kontrol eder. Güncellenmemişse commit **reddedilir**. Bilgi modeli her zaman koddan *önce* güncellenmelidir.
|
|
519
|
+
|
|
520
|
+
**İzlenen dosya desenleri** (yapılandırılabilir):
|
|
521
|
+
```
|
|
522
|
+
prisma/schema.prisma, drizzle/**/*.ts, **/migrations/*.sql,
|
|
523
|
+
**/models.py, **/entities/*.ts, **/entities/*.java, schema.sql
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
### rule-check (WARN)
|
|
527
|
+
|
|
528
|
+
Doğrulama mantığı (Zod, Yup, Joi, Pydantic vb.) eklediğinizde veya değiştirdiğinizde, Hook `docs/business-rules.md`'de karşılık gelen bir `BR-xxx` girdisi arar. Eksikse bir uyarı verilir. Commit devam eder, ancak eksik kural işaretlenir.
|
|
529
|
+
|
|
530
|
+
**İzlenen dosya desenleri** (yapılandırılabilir):
|
|
531
|
+
```
|
|
532
|
+
*.schema.ts, *.validator.*, **/validators/**
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
### auto-audit (INFO)
|
|
536
|
+
|
|
537
|
+
Her N commit'te bir (varsayılan: 10, yapılandırılabilir), Harness otomatik olarak kod tabanını bilgi modeline karşı karşılaştıran bir info-audit çalıştırır. Commit sayacı `.iddd/commit-count` içinde saklanır. Sonuçlar `.iddd/preview/audit-{date}.html` dosyasına yazılır.
|
|
538
|
+
|
|
539
|
+
### Hook Yapılandırması
|
|
540
|
+
|
|
541
|
+
Tüm Hook ayarları `.claude/hooks/hook-config.json` (Claude Code) veya `.codex/hooks.json` (Codex) içinde bulunur.
|
|
542
|
+
|
|
543
|
+
```json
|
|
544
|
+
{
|
|
545
|
+
"enabled": true,
|
|
546
|
+
"hooks": {
|
|
547
|
+
"pre-commit": {
|
|
548
|
+
"schema-drift": {
|
|
549
|
+
"enabled": true,
|
|
550
|
+
"severity": "block",
|
|
551
|
+
"monitored_patterns": [
|
|
552
|
+
"prisma/schema.prisma",
|
|
553
|
+
"drizzle/**/*.ts",
|
|
554
|
+
"**/migrations/*.sql",
|
|
555
|
+
"**/models.py",
|
|
556
|
+
"**/entities/*.ts",
|
|
557
|
+
"**/entities/*.java"
|
|
558
|
+
]
|
|
559
|
+
},
|
|
560
|
+
"rule-check": {
|
|
561
|
+
"enabled": true,
|
|
562
|
+
"severity": "warn",
|
|
563
|
+
"validation_patterns": [
|
|
564
|
+
"*.schema.ts",
|
|
565
|
+
"*.validator.*",
|
|
566
|
+
"**/validators/**"
|
|
567
|
+
]
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
"post-commit": {
|
|
571
|
+
"auto-audit": {
|
|
572
|
+
"enabled": true,
|
|
573
|
+
"interval_commits": 10
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
Tüm IDDD Hook'larını devre dışı bırakmak için üst düzeyde `"enabled": false` olarak ayarlayın. Tek bir Hook'u devre dışı bırakmak için ilgili Hook'un `"enabled"` değerini `false` yapın. auto-audit sıklığını değiştirmek için `"interval_commits"` değerini ayarlayın.
|
|
581
|
+
|
|
582
|
+
### Hook Atlama
|
|
583
|
+
|
|
584
|
+
Tüm Hook'ları geçici olarak atlamak için `IDDD_SKIP_HOOKS=1` ayarlayın. Atlamalar `.iddd/skip-history.log` dosyasına kaydedilir ve denetimler sırasında gözden geçirilir.
|
|
585
|
+
|
|
586
|
+
---
|
|
587
|
+
|
|
588
|
+
## Entropi Yönetimi
|
|
589
|
+
|
|
590
|
+
Zaman içinde bilgi modelleri koddan uzaklaşır. IDDD, entropiyle üç mekanizma aracılığıyla mücadele eder:
|
|
591
|
+
|
|
592
|
+
### Sürüm Başlıkları
|
|
593
|
+
|
|
594
|
+
`specs/entity-catalog.md` ve `specs/data-model.md`, model durumunu izleyen YAML ön bilgi içerir:
|
|
595
|
+
|
|
596
|
+
```yaml
|
|
597
|
+
---
|
|
598
|
+
version: "1.0"
|
|
599
|
+
last_verified: "2026-04-05"
|
|
600
|
+
phase: "Phase 2 Complete"
|
|
601
|
+
entity_count: 12
|
|
602
|
+
rule_count: 19
|
|
603
|
+
audit_status: "clean"
|
|
604
|
+
---
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
**Kurallar:**
|
|
608
|
+
- `version` her Phase tamamlandığında artırılır (Phase 1: `"0.1"`, Phase 2: `"1.0"`, sonraki: `"1.1"`, `"1.2"`, ...).
|
|
609
|
+
- `last_verified` model denetlendiğinde veya doğrulandığında güncellenir.
|
|
610
|
+
- `last_verified` **7 günden eski** ise, ajan yeni çalışmaya devam etmeden önce `/id3-info-audit` çalıştırmanızı isteyecektir. Eski modeller sapmaya yol açar.
|
|
611
|
+
|
|
612
|
+
### Değişiklik Günlüğü
|
|
613
|
+
|
|
614
|
+
Tüm model değişiklikleri `docs/model-changelog.md` içinde [Keep a Changelog](https://keepachangelog.com/) formatıyla kaydedilir:
|
|
615
|
+
|
|
616
|
+
```markdown
|
|
617
|
+
## [1.0] -- 2026-04-05
|
|
618
|
+
### Phase 2 Complete
|
|
619
|
+
- 12 entities finalized in logical model
|
|
620
|
+
- 19 business rules derived
|
|
621
|
+
- Design decisions: D-01 (S3 separation), D-02 (multi-tenant reservation), D-03 (soft delete scope)
|
|
622
|
+
- UI proposals: 6 screens generated
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
### Otomatik Denetim
|
|
626
|
+
|
|
627
|
+
`auto-audit` Hook'u (post-commit), sapma birikmeden önce yakalamak için her N commit'te bir tam bilgi denetimi çalıştırır.
|
|
628
|
+
|
|
629
|
+
---
|
|
630
|
+
|
|
631
|
+
## Özelleştirme Rehberi
|
|
632
|
+
|
|
633
|
+
IDDD, projenizin kurallarına uyarlanacak şekilde tasarlanmıştır. Neyi ve nerede özelleştireceğiniz aşağıda belirtilmiştir:
|
|
634
|
+
|
|
635
|
+
| Neyi özelleştirmeli | Düzenlenecek dosya |
|
|
636
|
+
|------------------------------------------------|------------------------------------|
|
|
637
|
+
| Ürün vizyonu ve kapsamı | `steering/product.md` |
|
|
638
|
+
| Adlandırma kuralları, PK stratejisi, zaman damgaları, soft-delete politikası, ENUM vs referans tabloları | `steering/data-conventions.md` |
|
|
639
|
+
| Entity tanımları | `specs/entity-catalog.md` |
|
|
640
|
+
| Veri modeli (ERD) | `specs/data-model.md` |
|
|
641
|
+
| İş kuralları | `docs/business-rules.md` |
|
|
642
|
+
| Alan sözlüğü | `docs/domain-glossary.md` |
|
|
643
|
+
| Kullanıcı arayüzü ekran envanteri | `specs/ui-inventory.md` |
|
|
644
|
+
| UI yapısı (ekran türetme) | `specs/ui-structure.md` |
|
|
645
|
+
| UI tasarım sözleşmesi (token'lar, bileşenler) | `specs/ui-design-contract.md` |
|
|
646
|
+
| Hook davranışı (etkinleştirme/devre dışı bırakma, önem derecesi) | `.claude/hooks/hook-config.json` |
|
|
647
|
+
| Hook'lar için izlenen dosya desenleri | `.claude/hooks/hook-config.json` |
|
|
648
|
+
| auto-audit commit aralığı | `.claude/hooks/hook-config.json` |
|
|
649
|
+
| Codex Hook yapılandırması | `.codex/hooks.json` |
|
|
650
|
+
|
|
651
|
+
**İpucu:** Tüm `specs/` ve `docs/` dosyaları sürüm başlıkları içeren YAML ön bilgi kullanır. IDDD Harness'ı entropi sapmasını algılamak için bu sürümleri izler. Bir spesifikasyon dosyasını değiştirdiğinizde her zaman sürüm başlığını güncelleyin.
|
|
652
|
+
|
|
653
|
+
---
|
|
654
|
+
|
|
655
|
+
## Kullanım Örnekleri
|
|
656
|
+
|
|
657
|
+
### Örnek 1: Yeni Bir Proje Başlatma (Greenfield)
|
|
658
|
+
|
|
659
|
+
```
|
|
660
|
+
$ mkdir my-saas && cd my-saas && git init
|
|
661
|
+
$ npx id3@latest
|
|
662
|
+
|
|
663
|
+
IDDD installed. Next: fill in steering/product.md
|
|
664
|
+
|
|
665
|
+
$ claude
|
|
666
|
+
> /id3-identify-entities
|
|
667
|
+
|
|
668
|
+
Agent: "What core 'things' does your system manage?"
|
|
669
|
+
You: "Users, Organizations, Subscriptions, Invoices, and Features."
|
|
670
|
+
Agent: "How are Users related to Organizations?"
|
|
671
|
+
You: "Many-to-many through a Membership entity with a role attribute."
|
|
672
|
+
...
|
|
673
|
+
|
|
674
|
+
Entity catalog produced: specs/entity-catalog.md (5 entities, 7 relationships)
|
|
675
|
+
|
|
676
|
+
> /id3-design-information
|
|
677
|
+
|
|
678
|
+
Agent refines attributes, derives 14 business rules.
|
|
679
|
+
specs/entity-catalog.md updated (version: 1.0)
|
|
680
|
+
docs/business-rules.md updated (BR-001 through BR-014)
|
|
681
|
+
|
|
682
|
+
> /id3-design-ui
|
|
683
|
+
|
|
684
|
+
Step 1: Deriving UI structure from 5 entities... 8 screens mapped
|
|
685
|
+
Step 2: Design contract established (React + Tailwind detected)
|
|
686
|
+
Step 3: 7-Pillar gate passed. Mockup preview: http://localhost:52341
|
|
687
|
+
Step 4: Spawning Agent Teams for screen implementation...
|
|
688
|
+
Post-audit: all 7 pillars scored 3+/4
|
|
689
|
+
|
|
690
|
+
specs/ui-structure.md generated
|
|
691
|
+
specs/ui-design-contract.md generated
|
|
692
|
+
|
|
693
|
+
> /id3-spawn-team
|
|
694
|
+
|
|
695
|
+
Spawning Agent Teams:
|
|
696
|
+
- spec-generator: generating requirements.md, api-contracts.md
|
|
697
|
+
- implementer: building User -> Organization -> Membership -> ...
|
|
698
|
+
- qa-reviewer: verifying against information model
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
### Örnek 2: Mevcut Bir Projeye Uygulama (Brownfield)
|
|
702
|
+
|
|
703
|
+
```
|
|
704
|
+
$ cd existing-django-project
|
|
705
|
+
$ npx id3@latest
|
|
706
|
+
|
|
707
|
+
Detected: Django models (models.py), PostgreSQL migrations
|
|
708
|
+
IDDD installed.
|
|
709
|
+
|
|
710
|
+
$ claude
|
|
711
|
+
> /id3-identify-entities
|
|
712
|
+
|
|
713
|
+
Phase 0 (Brownfield) activated.
|
|
714
|
+
Scanning L1 (DB schema)... 23 tables found
|
|
715
|
+
Scanning L2 (Django models)... 19 models found
|
|
716
|
+
Scanning L3 (API contracts)... DRF serializers analyzed
|
|
717
|
+
Scanning L4 (Frontend)... React routes mapped
|
|
718
|
+
|
|
719
|
+
Discrepancies found:
|
|
720
|
+
- 4 tables have no corresponding Django model (logged in info-debt.md)
|
|
721
|
+
- 3 implicit business rules surfaced from view logic
|
|
722
|
+
|
|
723
|
+
Agent: "Does this information model accurately reflect your codebase?"
|
|
724
|
+
You: "Yes, but the legacy_audit table is deprecated -- remove it."
|
|
725
|
+
|
|
726
|
+
Entity catalog produced: 19 entities, 11 info-debt items
|
|
727
|
+
|
|
728
|
+
> /id3-design-information
|
|
729
|
+
|
|
730
|
+
Refining existing model...
|
|
731
|
+
New business rules derived from Django validators: BR-015 through BR-023
|
|
732
|
+
|
|
733
|
+
> /id3-design-ui
|
|
734
|
+
|
|
735
|
+
Step 1: Deriving UI structure... comparing with existing ui-inventory.md
|
|
736
|
+
Change summary: 2 new screens proposed, 3 existing screens updated
|
|
737
|
+
Step 2-4: Design contract, gate, and implementation...
|
|
738
|
+
```
|
|
739
|
+
|
|
740
|
+
---
|
|
741
|
+
|
|
742
|
+
## Entelektüel Köken
|
|
743
|
+
|
|
744
|
+
IDDD, çeşitli entelektüel geleneklerden fikirleri sentezler:
|
|
745
|
+
|
|
746
|
+
- **Peter Chen'in ER Modeli (1976)** -- "Gerçek dünya Entity'lerden ve Relationship'lerden oluşur." Bilgi yapısının uygulama mantığından önce geldiğine dair temel içgörü.
|
|
747
|
+
- **Len Silverston'ın Evrensel Veri Modelleri** -- Keşfedilen Entity'lerin doğrulandığı bir kontrol listesi olarak hizmet eden yeniden kullanılabilir bilgi desenleri (Party, Product, Order, Hierarchy).
|
|
748
|
+
- **Eric Evans'ın Domain-Driven Design'ı (2003)** -- Bounded Context, Ubiquitous Language ve Aggregate desenleri. IDDD, alan diline ve açık sınırlara verilen önemi miras alır.
|
|
749
|
+
- **Sophia Prater'ın OOUX'u (Object-Oriented UX)** -- "Etkileşimlerden önce nesneleri tasarlayın." ORCA çerçevesi (Objects, Relationships, CTAs, Attributes) doğrudan IDDD'nin çıktı-öncelikli kullanıcı arayüzü türetmesini bilgilendirir.
|
|
750
|
+
- **Jamie Lord'un "Data First, Code Second" (2024)** -- "Bilgiyi veriye katla." Unix Temsil Kuralı'nın modern yazılım geliştirmeye uygulanması.
|
|
751
|
+
- **Mitchell Hashimoto'nun Harness Mühendisliği (2026)** -- `Agent = Model + Harness`. Yapay zeka ajanlarının zaman içinde etkin kalabilmeleri için mimari kısıtlamalara, bağlam mühendisliğine ve entropi yönetimine ihtiyaç duyduğu içgörüsü. IDDD'nin Hook sistemi, sürüm başlıkları ve auto-audit'i Harness mühendisliği ilkelerinin doğrudan uygulamalarıdır.
|
|
752
|
+
|
|
753
|
+
**Temel içgörü:** *Mantıksal model tamamlandığında, uygulama davranışının %80'i zaten tanımlanmıştır -- herhangi bir teknoloji seçimi yapılmadan önce. Ve bu bilgi modelinin kendisi, yapay zeka ajanları için en iyi Harness'tır.*
|
|
754
|
+
|
|
755
|
+
---
|
|
756
|
+
|
|
757
|
+
## Lisans
|
|
758
|
+
|
|
759
|
+
MIT
|
|
760
|
+
|
|
761
|
+
---
|
|
762
|
+
|
|
763
|
+
```
|
|
764
|
+
┌──────────────────────────────────────────────────────────────────┐
|
|
765
|
+
│ │
|
|
766
|
+
│ "Hangi bilgi mevcut?" -- her zaman ilk soru. │
|
|
767
|
+
│ │
|
|
768
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
769
|
+
```
|