@dzhechkov/keysarium 1.2.0 → 1.3.0
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.md +7 -2
- package/package.json +2 -2
- package/templates/.claude/commands/brain-export.md +97 -20
- package/templates/.claude/commands/brain-import.md +75 -4
- package/templates/CLAUDE.md +20 -14
- package/templates/docs/feature-adr/01-architecture.md +750 -0
- package/templates/docs/feature-adr/02-functionality.md +712 -0
- package/templates/docs/feature-adr/03-deployment-guide.md +614 -0
- package/templates/docs/feature-adr/04-admin-guide.md +564 -0
- package/templates/docs/feature-adr/05-user-guide.md +508 -0
- package/templates/docs/feature-adr/06-user-flows.md +1101 -0
- package/templates/docs/keysarium-core/01-architecture.md +559 -0
- package/templates/docs/keysarium-core/02-functionality.md +953 -0
- package/templates/docs/keysarium-core/03-deployment-guide.md +625 -0
- package/templates/docs/keysarium-core/04-admin-guide.md +529 -0
- package/templates/docs/keysarium-core/05-user-guide.md +599 -0
- package/templates/docs/keysarium-core/06-user-flows.md +804 -0
- package/templates/lib/memory-protocol.md +127 -22
|
@@ -0,0 +1,750 @@
|
|
|
1
|
+
# Архитектура @dzhechkov/skills-feature-adr
|
|
2
|
+
|
|
3
|
+
> Адаптивный 9-шаговый pipeline для разработки фич любой сложности --
|
|
4
|
+
> от однофайлового багфикса до кросс-доменного рефакторинга на 30+ файлов.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. Обзор
|
|
9
|
+
|
|
10
|
+
`@dzhechkov/skills-feature-adr` -- пакет навыков (skill pack) для Claude Code, реализующий полный цикл разработки фич с адаптивной глубиной проработки.
|
|
11
|
+
|
|
12
|
+
Ключевые характеристики:
|
|
13
|
+
|
|
14
|
+
- **9-шаговый pipeline** с автоматическим определением сложности через Complexity Router (S/M/L/XL)
|
|
15
|
+
- **ADR-driven архитектура** -- каждое значимое решение документируется через Architecture Decision Records с альтернативами и decision matrix
|
|
16
|
+
- **DDD-моделирование** -- bounded contexts, ubiquitous language и агрегаты для сложных фич (L/XL)
|
|
17
|
+
- **Мульти-агентная QE** -- параллельные review-агенты для XL-фич (correctness, security, architecture)
|
|
18
|
+
- **DAG-based выполнение** -- шаги могут выполняться параллельно, когда зависимости позволяют
|
|
19
|
+
- **Standalone или экосистема** -- работает автономно через `npx` или как часть Keysarium
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
@dzhechkov/keysarium-core (shared framework)
|
|
23
|
+
^ ^ ^
|
|
24
|
+
| | |
|
|
25
|
+
peerDep peerDep peerDep
|
|
26
|
+
| | |
|
|
27
|
+
@dzhechkov/keysarium | skills-feature-adr | skills-bto
|
|
28
|
+
(исследования) | (фичи) | (оценка)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 2. Философия проектирования
|
|
34
|
+
|
|
35
|
+
### 2.1 Адаптивная сложность
|
|
36
|
+
|
|
37
|
+
Центральный принцип: **не over-engineer маленькие фичи и не under-engineer большие**.
|
|
38
|
+
|
|
39
|
+
Однофайловый багфикс не требует ADR, DDD-модели и C4-диаграмм. Кросс-доменный рефакторинг на 30+ файлов без них обречён на хаос. Complexity Router анализирует фичу по 6 измерениям и автоматически активирует ровно те шаги pipeline, которые необходимы.
|
|
40
|
+
|
|
41
|
+
### 2.2 ADR-first
|
|
42
|
+
|
|
43
|
+
Любое нетривиальное архитектурное решение (выбор технологии, паттерна, стратегии интеграции) документируется до начала кодирования. Каждый ADR содержит:
|
|
44
|
+
|
|
45
|
+
- Контекст и драйверы решения
|
|
46
|
+
- Минимум 2 альтернативы
|
|
47
|
+
- Decision matrix с взвешенными критериями
|
|
48
|
+
- Последствия (positive, negative, risks)
|
|
49
|
+
|
|
50
|
+
Это исключает "случайную архитектуру" и обеспечивает traceability от требований до кода.
|
|
51
|
+
|
|
52
|
+
### 2.3 DAG-based выполнение
|
|
53
|
+
|
|
54
|
+
Шаги pipeline -- не строго линейная последовательность. Для L/XL-фич шаги 2+3 и 4+5 могут выполняться параллельно, что сокращает время проработки. Для S/M-фич DAG коллапсирует в линейную последовательность -- параллелизм не нужен.
|
|
55
|
+
|
|
56
|
+
### 2.4 Модульная композиция скиллов
|
|
57
|
+
|
|
58
|
+
Pipeline переиспользует существующие скиллы экосистемы:
|
|
59
|
+
|
|
60
|
+
| Скилл | Где используется | Назначение |
|
|
61
|
+
|-------|-----------------|-----------|
|
|
62
|
+
| `explore` | Step 1 | Кларификация требований через адаптивные вопросы |
|
|
63
|
+
| `problem-solver-enhanced` | Step 3 | TRIZ-анализ для сложных trade-off в ADR |
|
|
64
|
+
| `frontend-design` | Step 7 | UI-реализация (если фича затрагивает интерфейс) |
|
|
65
|
+
|
|
66
|
+
Это даёт единообразие подходов и накопление экспертизы в одном месте.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 3. Pipeline архитектура -- 9 шагов
|
|
71
|
+
|
|
72
|
+
### Step 0: Complexity Router
|
|
73
|
+
|
|
74
|
+
| Параметр | Значение |
|
|
75
|
+
|----------|---------|
|
|
76
|
+
| Модель | haiku |
|
|
77
|
+
| Время | ~30 секунд |
|
|
78
|
+
| Тиры | Все (всегда выполняется) |
|
|
79
|
+
| Артефакт | `00_complexity_assessment.md` |
|
|
80
|
+
| Promise | `FEATURE_ADR_ROUTED` |
|
|
81
|
+
|
|
82
|
+
Оценивает фичу по 6 измерениям (1-4 балла каждое), суммирует баллы и классифицирует: S (6-8), M (9-13), L (14-19), XL (20-24). Применяет override-правила (любое измерение = 4 -> минимум L, breaking changes > 0 -> минимум M). Определяет `{ACTIVE_STEPS}` и `{TIME_BUDGET}`.
|
|
83
|
+
|
|
84
|
+
### Step 1: Requirements
|
|
85
|
+
|
|
86
|
+
| Параметр | Значение |
|
|
87
|
+
|----------|---------|
|
|
88
|
+
| Модель | sonnet |
|
|
89
|
+
| Тиры | Все (light для S) |
|
|
90
|
+
| Артефакт | `01_requirements.md` |
|
|
91
|
+
| Promise | `FEATURE_ADR_REQUIREMENTS_GATHERED` |
|
|
92
|
+
|
|
93
|
+
Собирает стейкхолдеров, функциональные требования (FR) с acceptance criteria, нефункциональные требования (NFR), ограничения и scope. Для S-тира -- 3-5 bullet points без формального документа. Загружает скилл `explore` для кларификации неясных аспектов.
|
|
94
|
+
|
|
95
|
+
### Step 2: Research
|
|
96
|
+
|
|
97
|
+
| Параметр | Значение |
|
|
98
|
+
|----------|---------|
|
|
99
|
+
| Модель | sonnet |
|
|
100
|
+
| Тиры | L/XL |
|
|
101
|
+
| Агенты | 2 параллельных (codebase patterns / external patterns) |
|
|
102
|
+
| Артефакт | `02_research.md` |
|
|
103
|
+
| Promise | (входит в `FEATURE_ADR_DESIGNED`) |
|
|
104
|
+
|
|
105
|
+
Два параллельных sonnet-агента: первый анализирует паттерны в существующей кодовой базе (аналогичные модули, соглашения, структуры); второй исследует внешние аналоги и best practices. Результаты синтезируются оркестратором.
|
|
106
|
+
|
|
107
|
+
### Step 3: ADR (Architecture Decision Records)
|
|
108
|
+
|
|
109
|
+
| Параметр | Значение |
|
|
110
|
+
|----------|---------|
|
|
111
|
+
| Модель | opus |
|
|
112
|
+
| Тиры | M+ (1 ADR для M, N ADR для L/XL) |
|
|
113
|
+
| Артефакт | `03_adr/001-{decision}.md` |
|
|
114
|
+
| Promise | (входит в `FEATURE_ADR_DESIGNED`) |
|
|
115
|
+
|
|
116
|
+
Идентифицирует decision points в требованиях (выбор технологии, паттерна, стратегии интеграции, моделирования данных). Для каждого решения создаёт ADR по шаблону из `references/adr-template.md` с decision matrix. Может загружать `problem-solver-enhanced` для TRIZ-анализа сложных trade-off. Для L/XL запускается **параллельно** с Step 2.
|
|
117
|
+
|
|
118
|
+
### Step 4: DDD (Domain-Driven Design)
|
|
119
|
+
|
|
120
|
+
| Параметр | Значение |
|
|
121
|
+
|----------|---------|
|
|
122
|
+
| Модель | opus |
|
|
123
|
+
| Тиры | L/XL |
|
|
124
|
+
| Артефакт | `04_domain_model.md`, `diagrams/domain-model.mermaid` |
|
|
125
|
+
| Promise | (входит в `FEATURE_ADR_DESIGNED`) |
|
|
126
|
+
|
|
127
|
+
Идентифицирует bounded contexts, определяет ubiquitous language, моделирует агрегаты, сущности, value objects и domain events. Строит context map с типизированными связями (Shared Kernel, Customer-Supplier, Anti-Corruption Layer). Валидирует совместимость с существующей кодовой базой. Может выполняться **параллельно** с Step 5.
|
|
128
|
+
|
|
129
|
+
### Step 5: Architecture
|
|
130
|
+
|
|
131
|
+
| Параметр | Значение |
|
|
132
|
+
|----------|---------|
|
|
133
|
+
| Модель | opus |
|
|
134
|
+
| Тиры | M+ (light для M) |
|
|
135
|
+
| Артефакт | `05_architecture.md`, `diagrams/architecture-c4.mermaid`, `diagrams/sequence-*.mermaid` |
|
|
136
|
+
| Promise | `FEATURE_ADR_DESIGNED` |
|
|
137
|
+
|
|
138
|
+
Для M-тира: только component diagram. Для L/XL: полная C4-иерархия (System Context -> Container -> Component) + sequence diagrams для основных потоков (happy path, error path, async). Включает дизайн API (если применимо), описание миграций данных и стратегию кэширования.
|
|
139
|
+
|
|
140
|
+
### Step 6: Implementation Plan
|
|
141
|
+
|
|
142
|
+
| Параметр | Значение |
|
|
143
|
+
|----------|---------|
|
|
144
|
+
| Модель | sonnet |
|
|
145
|
+
| Тиры | Все (inline для S) |
|
|
146
|
+
| Артефакт | `06_implementation_plan.md` |
|
|
147
|
+
| Promise | `FEATURE_ADR_PLANNED` |
|
|
148
|
+
|
|
149
|
+
Декомпозиция реализации на задачи с dependency DAG. Определяет порядок выполнения, точки параллелизации (для Step 7), оценки трудоёмкости. Для S-тира -- inline-список в разговоре без отдельного файла.
|
|
150
|
+
|
|
151
|
+
### Step 7: Code
|
|
152
|
+
|
|
153
|
+
| Параметр | Значение |
|
|
154
|
+
|----------|---------|
|
|
155
|
+
| Модель | opus |
|
|
156
|
+
| Тиры | Все |
|
|
157
|
+
| Агенты | N параллельных для L/XL (по одному на модуль) |
|
|
158
|
+
| Артефакт | `07_code_changes/change_manifest.md` + реальные изменения в коде |
|
|
159
|
+
| Promise | `FEATURE_ADR_IMPLEMENTED` |
|
|
160
|
+
|
|
161
|
+
Для S/M: последовательная реализация задач. Для L/XL: параллельные opus-агенты, каждый работает над независимым модулем/доменом. Pre-implementation checklist обеспечивает соответствие конвенциям кодовой базы. Каждый агент отчитывается по created/modified/deleted файлам. Оркестратор верифицирует интеграционные точки между модулями.
|
|
162
|
+
|
|
163
|
+
### Step 8: QE (Quality Engineering)
|
|
164
|
+
|
|
165
|
+
| Параметр | Значение |
|
|
166
|
+
|----------|---------|
|
|
167
|
+
| Модель | sonnet |
|
|
168
|
+
| Тиры | Все (адаптивная глубина) |
|
|
169
|
+
| Агенты | 3 параллельных для XL (review panel) |
|
|
170
|
+
| Артефакт | `08_qe_report.md` |
|
|
171
|
+
| Promise | `FEATURE_ADR_VERIFIED` |
|
|
172
|
+
|
|
173
|
+
Многоуровневое тестирование с адаптивной глубиной:
|
|
174
|
+
|
|
175
|
+
| Тир | Smoke | Unit | Integration | E2E | Review Panel |
|
|
176
|
+
|-----|-------|------|-------------|-----|-------------|
|
|
177
|
+
| S | да | -- | -- | -- | -- |
|
|
178
|
+
| M | да | да | -- | -- | code review |
|
|
179
|
+
| L | да | да | да | -- | code review |
|
|
180
|
+
| XL | да | да | да | да | 3 агента (correctness + security + architecture) |
|
|
181
|
+
|
|
182
|
+
Для XL запускается мульти-агентная review panel из 3 параллельных sonnet-агентов, каждый фокусируется на своём аспекте: корректность (requirements coverage), безопасность (OWASP, auth, data exposure), архитектура (ADR adherence, pattern compliance).
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## 4. Complexity Router
|
|
187
|
+
|
|
188
|
+
Complexity Router -- ключевой компонент адаптивности pipeline. Он определяет, сколько шагов нужно и какой глубины.
|
|
189
|
+
|
|
190
|
+
### 4.1 Шесть измерений
|
|
191
|
+
|
|
192
|
+
Каждое измерение оценивается от 1 (минимальное влияние) до 4 (максимальное):
|
|
193
|
+
|
|
194
|
+
| Измерение | 1 (S) | 2 (M) | 3 (L) | 4 (XL) |
|
|
195
|
+
|-----------|-------|-------|-------|--------|
|
|
196
|
+
| Files Affected | 1-3 | 4-10 | 11-30 | 30+ |
|
|
197
|
+
| Domains Touched | 1 | 1-2 | 2-4 | 4+ |
|
|
198
|
+
| New Integrations | 0 | 0-1 | 1-3 | 3+ |
|
|
199
|
+
| Breaking Changes | 0 | 0 | 0-2 | 2+ |
|
|
200
|
+
| New Data Models | 0 | 0-1 | 1-3 | 3+ |
|
|
201
|
+
| Cross-Cutting Concerns | 0 | 0-1 | 1-2 | 3+ |
|
|
202
|
+
|
|
203
|
+
Cross-Cutting Concerns: auth, logging, caching, i18n, error handling, monitoring и т.д.
|
|
204
|
+
|
|
205
|
+
### 4.2 Классификация по сумме баллов
|
|
206
|
+
|
|
207
|
+
| Сумма | Тир | Описание | Пример |
|
|
208
|
+
|-------|-----|----------|--------|
|
|
209
|
+
| 6-8 | **S** (Small) | Локальное изменение | Багфикс, config change, утилита |
|
|
210
|
+
| 9-13 | **M** (Medium) | Ограниченная фича | Новый API endpoint, UI-компонент |
|
|
211
|
+
| 14-19 | **L** (Large) | Мульти-доменная фича | Новый модуль, интеграция |
|
|
212
|
+
| 20-24 | **XL** (Extra Large) | Кросс-доменное изменение | Новая подсистема, major refactor |
|
|
213
|
+
|
|
214
|
+
### 4.3 Override-правила
|
|
215
|
+
|
|
216
|
+
Правила переопределения предотвращают недооценку сложности:
|
|
217
|
+
|
|
218
|
+
1. **Любое измерение = 4** -> минимальный тир L (даже если сумма < 14)
|
|
219
|
+
2. **Breaking changes > 0** -> минимальный тир M
|
|
220
|
+
3. **Пользователь явно указал тир** -> использовать указанный
|
|
221
|
+
4. **Описание содержит "refactor", "migration", "redesign"** -> bias к L/XL
|
|
222
|
+
|
|
223
|
+
### 4.4 Матрица активации шагов
|
|
224
|
+
|
|
225
|
+
```
|
|
226
|
+
Step | S | M | L | XL |
|
|
227
|
+
------------------------+---+---+---+----+
|
|
228
|
+
0 Complexity Router | + | + | + | + |
|
|
229
|
+
1 Requirements | ~ | + | + | + |
|
|
230
|
+
2 Research | | | + | + |
|
|
231
|
+
3 ADR | | + | + | + |
|
|
232
|
+
4 DDD | | | + | + |
|
|
233
|
+
5 Architecture | | ~ | + | + |
|
|
234
|
+
6 Implementation Plan | ~ | + | + | + |
|
|
235
|
+
7 Code | + | + | + | + |
|
|
236
|
+
8 QE | ~ | + | + | + |
|
|
237
|
+
|
|
238
|
+
+ = полный ~ = облегченный (пусто) = пропущен
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### 4.5 Распределение time budget
|
|
242
|
+
|
|
243
|
+
| Тир | Общий бюджет | R (Requirements) | P (Planning: ADR+DDD+Arch) | I (Implementation) | Q (QE) |
|
|
244
|
+
|-----|-------------|------|------|------|------|
|
|
245
|
+
| S | 15 мин | 2 мин | 0 мин | 10 мин | 3 мин |
|
|
246
|
+
| M | 45 мин | 5 мин | 10 мин | 20 мин | 10 мин |
|
|
247
|
+
| L | 2 часа | 15 мин | 30 мин | 45 мин | 30 мин |
|
|
248
|
+
| XL | 4+ часа | 30 мин | 60 мин | 90 мин | 60 мин |
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 5. DAG выполнения
|
|
253
|
+
|
|
254
|
+
### 5.1 Полный DAG (L/XL)
|
|
255
|
+
|
|
256
|
+
```mermaid
|
|
257
|
+
graph TD
|
|
258
|
+
S0["Step 0<br/>Complexity Router<br/><i>haiku</i>"]
|
|
259
|
+
S1["Step 1<br/>Requirements<br/><i>sonnet</i>"]
|
|
260
|
+
S2["Step 2<br/>Research<br/><i>sonnet x2</i>"]
|
|
261
|
+
S3["Step 3<br/>ADR<br/><i>opus</i>"]
|
|
262
|
+
S4["Step 4<br/>DDD<br/><i>opus</i>"]
|
|
263
|
+
S5["Step 5<br/>Architecture<br/><i>opus</i>"]
|
|
264
|
+
S6["Step 6<br/>Impl Plan<br/><i>sonnet</i>"]
|
|
265
|
+
S7["Step 7<br/>Code<br/><i>opus xN</i>"]
|
|
266
|
+
S8["Step 8<br/>QE<br/><i>sonnet x3</i>"]
|
|
267
|
+
|
|
268
|
+
S0 --> S1
|
|
269
|
+
S1 --> S2
|
|
270
|
+
S1 --> S3
|
|
271
|
+
S2 --> S4
|
|
272
|
+
S3 --> S4
|
|
273
|
+
S2 --> S5
|
|
274
|
+
S3 --> S5
|
|
275
|
+
S4 --> S6
|
|
276
|
+
S5 --> S6
|
|
277
|
+
S6 --> S7
|
|
278
|
+
S7 --> S8
|
|
279
|
+
|
|
280
|
+
style S0 fill:#e8f5e9
|
|
281
|
+
style S1 fill:#e3f2fd
|
|
282
|
+
style S2 fill:#e3f2fd
|
|
283
|
+
style S3 fill:#fce4ec
|
|
284
|
+
style S4 fill:#fce4ec
|
|
285
|
+
style S5 fill:#fce4ec
|
|
286
|
+
style S6 fill:#e3f2fd
|
|
287
|
+
style S7 fill:#fce4ec
|
|
288
|
+
style S8 fill:#e3f2fd
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### 5.2 DAG по тирам
|
|
292
|
+
|
|
293
|
+
**S (линейный):**
|
|
294
|
+
|
|
295
|
+
```mermaid
|
|
296
|
+
graph LR
|
|
297
|
+
S0["Step 0"] --> S1["Step 1<br/><i>light</i>"]
|
|
298
|
+
S1 --> S6["Step 6<br/><i>inline</i>"]
|
|
299
|
+
S6 --> S7["Step 7"]
|
|
300
|
+
S7 --> S8["Step 8<br/><i>smoke</i>"]
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
**M (линейный с ADR и архитектурой):**
|
|
304
|
+
|
|
305
|
+
```mermaid
|
|
306
|
+
graph LR
|
|
307
|
+
S0["Step 0"] --> S1["Step 1"]
|
|
308
|
+
S1 --> S3["Step 3<br/><i>1 ADR</i>"]
|
|
309
|
+
S3 --> S5["Step 5<br/><i>light</i>"]
|
|
310
|
+
S5 --> S6["Step 6"]
|
|
311
|
+
S6 --> S7["Step 7"]
|
|
312
|
+
S7 --> S8["Step 8"]
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
**L (параллельные пары):**
|
|
316
|
+
|
|
317
|
+
```mermaid
|
|
318
|
+
graph TD
|
|
319
|
+
S0["Step 0"] --> S1["Step 1"]
|
|
320
|
+
S1 --> S2["Step 2"]
|
|
321
|
+
S1 --> S3["Step 3"]
|
|
322
|
+
S2 --> S4["Step 4"]
|
|
323
|
+
S3 --> S4
|
|
324
|
+
S2 --> S5["Step 5"]
|
|
325
|
+
S3 --> S5
|
|
326
|
+
S4 --> S6["Step 6"]
|
|
327
|
+
S5 --> S6
|
|
328
|
+
S6 --> S7["Step 7"]
|
|
329
|
+
S7 --> S8["Step 8"]
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
**XL (полный DAG с мульти-агентным кодированием и review panel):**
|
|
333
|
+
|
|
334
|
+
```mermaid
|
|
335
|
+
graph TD
|
|
336
|
+
S0["Step 0"] --> S1["Step 1"]
|
|
337
|
+
S1 --> S2["Step 2<br/><i>2 agents</i>"]
|
|
338
|
+
S1 --> S3["Step 3<br/><i>N ADRs</i>"]
|
|
339
|
+
S2 --> S4["Step 4"]
|
|
340
|
+
S3 --> S4
|
|
341
|
+
S2 --> S5["Step 5<br/><i>full C4</i>"]
|
|
342
|
+
S3 --> S5
|
|
343
|
+
S4 --> S6["Step 6"]
|
|
344
|
+
S5 --> S6
|
|
345
|
+
S6 --> S7A["Step 7<br/>Agent A<br/><i>module 1</i>"]
|
|
346
|
+
S6 --> S7B["Step 7<br/>Agent B<br/><i>module 2</i>"]
|
|
347
|
+
S6 --> S7C["Step 7<br/>Agent C<br/><i>module N</i>"]
|
|
348
|
+
S7A --> S8A["QE Agent 1<br/><i>correctness</i>"]
|
|
349
|
+
S7B --> S8A
|
|
350
|
+
S7C --> S8A
|
|
351
|
+
S7A --> S8B["QE Agent 2<br/><i>security</i>"]
|
|
352
|
+
S7B --> S8B
|
|
353
|
+
S7C --> S8B
|
|
354
|
+
S7A --> S8C["QE Agent 3<br/><i>architecture</i>"]
|
|
355
|
+
S7B --> S8C
|
|
356
|
+
S7C --> S8C
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
### 5.3 Группы зависимостей
|
|
360
|
+
|
|
361
|
+
| Группа | Шаги | Тип | Предусловие |
|
|
362
|
+
|--------|------|-----|-------------|
|
|
363
|
+
| Group 1 | Step 0 -> Step 1 | sequential | -- |
|
|
364
|
+
| Group 2 | Step 2 // Step 3 | parallel | Step 1 complete |
|
|
365
|
+
| Group 3 | Step 4 // Step 5 | parallel | Steps 2+3 complete |
|
|
366
|
+
| Group 4 | Step 6 | sequential | Steps 4+5 complete |
|
|
367
|
+
| Group 5 | Step 7 (N agents) | parallel per module | Step 6 complete |
|
|
368
|
+
| Group 6 | Step 8 (3 agents) | parallel per role | Step 7 complete |
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
## 6. Agent Swarm стратегия
|
|
373
|
+
|
|
374
|
+
### 6.1 Внутришаговый параллелизм
|
|
375
|
+
|
|
376
|
+
| Шаг | Агенты | Модель | Задачи |
|
|
377
|
+
|-----|--------|--------|--------|
|
|
378
|
+
| Step 2 | 2 parallel | sonnet + sonnet | Codebase patterns // External analogues |
|
|
379
|
+
| Step 3+4 | 2 parallel | opus + opus | ADR drafting // DDD modeling (L/XL) |
|
|
380
|
+
| Step 7 | N parallel | opus x N | По одному агенту на независимый модуль/домен (XL) |
|
|
381
|
+
| Step 8 | 3 parallel | sonnet x 3 | Correctness // Security // Architecture (XL) |
|
|
382
|
+
|
|
383
|
+
### 6.2 Межшаговый параллелизм
|
|
384
|
+
|
|
385
|
+
Для L/XL-фич:
|
|
386
|
+
|
|
387
|
+
- **Steps 2 и 3** запускаются параллельно после завершения Step 1
|
|
388
|
+
- **Steps 4 и 5** могут пересекаться -- Step 5 стартует, как только Step 3 завершён, даже если Step 2 ещё в работе (Step 5 зависит от ADR, Step 4 зависит от Research)
|
|
389
|
+
- **Step 7** -- каждый модуль из implementation plan реализуется параллельным opus-агентом; после завершения всех агентов оркестратор верифицирует integration points
|
|
390
|
+
|
|
391
|
+
### 6.3 Свёртка для S/M
|
|
392
|
+
|
|
393
|
+
Для S-тира: никакого параллелизма. 5 шагов выполняются последовательно одним агентом.
|
|
394
|
+
Для M-тира: никакого параллелизма. 7 шагов выполняются последовательно, overhead от spawn агентов превышает выигрыш.
|
|
395
|
+
|
|
396
|
+
### 6.4 Агентная изоляция
|
|
397
|
+
|
|
398
|
+
- Каждый параллельный агент работает только со своим набором файлов
|
|
399
|
+
- Агенты не видят промежуточные результаты друг друга
|
|
400
|
+
- Оркестратор синтезирует результаты после завершения всех агентов группы
|
|
401
|
+
- Для Step 8 review panel: каждый reviewer получает одинаковый snapshot кода, пишет независимый отчёт
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## 7. Cross-Step Variables
|
|
406
|
+
|
|
407
|
+
Реестр переменных, передаваемых между шагами pipeline:
|
|
408
|
+
|
|
409
|
+
| Переменная | Устанавливается | Используется | Тип | Описание |
|
|
410
|
+
|-----------|----------------|-------------|-----|----------|
|
|
411
|
+
| `{COMPLEXITY_TIER}` | Step 0 | Все шаги | `S` / `M` / `L` / `XL` | Определённый тир сложности |
|
|
412
|
+
| `{ACTIVE_STEPS}` | Step 0 | Оркестратор | `list[int]` | Активные шаги для данного тира |
|
|
413
|
+
| `{TIME_BUDGET}` | Step 0 | Все шаги | `dict` | Бюджет времени по категориям (R/P/I/Q) |
|
|
414
|
+
| `{DIMENSION_SCORES}` | Step 0 | Step 1 | `dict` | Оценки по 6 измерениям |
|
|
415
|
+
| `{REQUIREMENTS}` | Step 1 | Steps 2-8 | `structured` | FR, NFR, constraints, scope |
|
|
416
|
+
| `{RESEARCH_FINDINGS}` | Step 2 | Steps 3-5 | `structured` | Паттерны кодовой базы + внешние аналоги |
|
|
417
|
+
| `{ADR_DECISIONS}` | Step 3 | Steps 4-7 | `list[ADR]` | Принятые архитектурные решения |
|
|
418
|
+
| `{DOMAIN_MODEL}` | Step 4 | Steps 5-7 | `structured` | Bounded contexts, aggregates, language |
|
|
419
|
+
| `{ARCHITECTURE}` | Step 5 | Steps 6-7 | `structured` | C4 diagrams, sequence flows, API design |
|
|
420
|
+
| `{IMPL_PLAN}` | Step 6 | Step 7 | `list[task]` | Задачи с зависимостями (DAG) |
|
|
421
|
+
| `{CODE_CHANGES}` | Step 7 | Step 8 | `list[file]` | Созданные/изменённые/удалённые файлы |
|
|
422
|
+
| `{QE_RESULTS}` | Step 8 | Final report | `structured` | Результаты тестирования и review |
|
|
423
|
+
|
|
424
|
+
### Контракты передачи данных
|
|
425
|
+
|
|
426
|
+
- Step 3 (ADR) **должен** иметь доступ к `{REQUIREMENTS}` -- стартует только после Step 1
|
|
427
|
+
- Step 5 (Architecture) **должен** иметь доступ к `{ADR_DECISIONS}` -- не стартует без Step 3
|
|
428
|
+
- Step 7 (Code) **не может** стартовать без `{IMPL_PLAN}` из Step 6 -- это обязательный gate
|
|
429
|
+
- Step 8 (QE) валидирует `{CODE_CHANGES}` против `{REQUIREMENTS}` -- traceability от требований до тестов
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## 8. Promise Tags
|
|
434
|
+
|
|
435
|
+
Система semantic completion promises для формализации checkpoint gates:
|
|
436
|
+
|
|
437
|
+
| Шаг | Promise Tag | Значение |
|
|
438
|
+
|-----|-------------|---------|
|
|
439
|
+
| Step 0 | `FEATURE_ADR_ROUTED` | Тир определён, active steps и time budget рассчитаны |
|
|
440
|
+
| Step 1 | `FEATURE_ADR_REQUIREMENTS_GATHERED` | Требования собраны, acceptance criteria определены |
|
|
441
|
+
| Steps 2-5 | `FEATURE_ADR_DESIGNED` | Все design-шаги тира завершены (research, ADR, DDD, architecture) |
|
|
442
|
+
| Step 6 | `FEATURE_ADR_PLANNED` | Implementation plan создан, задачи декомпозированы |
|
|
443
|
+
| Step 7 | `FEATURE_ADR_IMPLEMENTED` | Код реализован, change manifest заполнен |
|
|
444
|
+
| Step 8 | `FEATURE_ADR_VERIFIED` | QE пройден, все BLOCKER-находки устранены |
|
|
445
|
+
|
|
446
|
+
### Правила promise
|
|
447
|
+
|
|
448
|
+
1. Promise tag **выпускается только** после верифицируемого выполнения условий
|
|
449
|
+
2. Если условия **не выполнены**, выпускается `_INCOMPLETE` вариант (например, `FEATURE_ADR_DESIGNED_INCOMPLETE`)
|
|
450
|
+
3. Downstream-шаги **проверяют** upstream promise перед стартом
|
|
451
|
+
4. Promise tag включается в checkpoint banner для пользователя
|
|
452
|
+
|
|
453
|
+
### Checkpoint формат
|
|
454
|
+
|
|
455
|
+
```
|
|
456
|
+
=====================================================
|
|
457
|
+
STEP N/8: [Step Name] Complete
|
|
458
|
+
<promise>[PROMISE_TAG]</promise>
|
|
459
|
+
Tier: {COMPLEXITY_TIER} | Active Steps: {ACTIVE_STEPS}
|
|
460
|
+
|
|
461
|
+
[2-3 строки summary]
|
|
462
|
+
Artifacts: [list]
|
|
463
|
+
|
|
464
|
+
* "ок" -- next step
|
|
465
|
+
* "углуби [section]" -- elaborate
|
|
466
|
+
* "[feedback]" -- adjust
|
|
467
|
+
=====================================================
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
---
|
|
471
|
+
|
|
472
|
+
## 9. Model Routing
|
|
473
|
+
|
|
474
|
+
Каждый шаг использует модель, оптимальную для его задачи:
|
|
475
|
+
|
|
476
|
+
| Шаг | Модель | Rationale | Стоимость (отн.) |
|
|
477
|
+
|-----|--------|-----------|-----------------|
|
|
478
|
+
| Step 0: Complexity Router | **haiku** | Простая классификация по 6 измерениям, pattern matching | 1x |
|
|
479
|
+
| Step 1: Requirements | **sonnet** | Аналитическая работа: декомпозиция требований, acceptance criteria | 15x |
|
|
480
|
+
| Step 2: Research | **sonnet** | Исследовательский синтез: паттерны кодовой базы и аналоги | 15x |
|
|
481
|
+
| Step 3: ADR | **opus** | Сложное рассуждение: trade-off analysis, decision matrix, consequences | 75x |
|
|
482
|
+
| Step 4: DDD | **opus** | Доменное моделирование: bounded contexts, агрегаты, language | 75x |
|
|
483
|
+
| Step 5: Architecture | **opus** | Системный дизайн: C4 диаграммы, sequence flows, API design | 75x |
|
|
484
|
+
| Step 6: Implementation Plan | **sonnet** | Задачная декомпозиция: structured task DAG | 15x |
|
|
485
|
+
| Step 7: Code | **opus** | Генерация кода: сложная реализация с учётом конвенций | 75x |
|
|
486
|
+
| Step 8: QE | **sonnet** | Аналитический review: тестирование, валидация, findings | 15x |
|
|
487
|
+
|
|
488
|
+
### Правила routing
|
|
489
|
+
|
|
490
|
+
1. **Haiku** -- только для classification и pattern matching (Step 0)
|
|
491
|
+
2. **Sonnet** -- для аналитической работы, research, testing (Steps 1, 2, 6, 8)
|
|
492
|
+
3. **Opus** -- для creative и complex reasoning работы (Steps 3, 4, 5, 7)
|
|
493
|
+
4. **Никогда** opus для Step 0 -- это расточительно для простой классификации
|
|
494
|
+
5. **Никогда** haiku для Step 3/7 -- качество будет недостаточным для ADR и кода
|
|
495
|
+
6. При spawn агентов через Agent tool **всегда** указывается параметр `model`
|
|
496
|
+
|
|
497
|
+
---
|
|
498
|
+
|
|
499
|
+
## 10. Интеграция с keysarium-core
|
|
500
|
+
|
|
501
|
+
### 10.1 Что используется из core
|
|
502
|
+
|
|
503
|
+
`@dzhechkov/skills-feature-adr` потребляет следующие протоколы из `@dzhechkov/keysarium-core`:
|
|
504
|
+
|
|
505
|
+
| Модуль core | Протокол | Как используется в feature-adr |
|
|
506
|
+
|-------------|----------|-------------------------------|
|
|
507
|
+
| `governance/` | Checkpoint protocol | Checkpoint после каждого шага с promise tag |
|
|
508
|
+
| `governance/` | Shard protocol | Загрузка `feature-adr.shard.md` перед стартом |
|
|
509
|
+
| `orchestration/` | Model routing | 3-tier routing: haiku/sonnet/opus per step |
|
|
510
|
+
| `orchestration/` | Agent swarm topologies | Параллельные группы для L/XL (fork-join topology) |
|
|
511
|
+
| `trust-tiers/` | Tier classification | Текущий тир скилла: Tier 0 (Advisory) |
|
|
512
|
+
| `verification/` | Promise tags | 6 promise tags для 9 шагов |
|
|
513
|
+
|
|
514
|
+
### 10.2 Что НЕ используется
|
|
515
|
+
|
|
516
|
+
Feature-adr -- это отдельный pipeline. Он **не использует**:
|
|
517
|
+
|
|
518
|
+
- **Phases** -- pipeline построен на Steps (0-8), не на Phases (0-6) из Casarium
|
|
519
|
+
- **Research artifacts** -- `00_product_discovery.md`, `02_research_findings.md` и т.д. не создаются
|
|
520
|
+
- **CJM (Customer Journey Map)** -- Phase 2.5 из Casarium не применима
|
|
521
|
+
- **Presentation pipeline** -- Phase 5 с storytelling, speaker script, Q&A не генерируется
|
|
522
|
+
- **Witness chain** -- SHA-256 chain не создаётся для feature artifacts (Rule 8 из `witness-chain.md`)
|
|
523
|
+
- **Dream cycles** -- Insights из dream engine не применяются к feature-adr pipeline
|
|
524
|
+
- **Reward learning** -- `memory_query()`/`memory_store()` не вызываются (специфичны для Casarium)
|
|
525
|
+
|
|
526
|
+
### 10.3 peerDependency
|
|
527
|
+
|
|
528
|
+
`keysarium-core` подключается как **optional peerDependency**:
|
|
529
|
+
|
|
530
|
+
```json
|
|
531
|
+
{
|
|
532
|
+
"peerDependencies": {
|
|
533
|
+
"@dzhechkov/keysarium-core": "^1.0.0"
|
|
534
|
+
},
|
|
535
|
+
"peerDependenciesMeta": {
|
|
536
|
+
"@dzhechkov/keysarium-core": {
|
|
537
|
+
"optional": true
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
Без core пакет работает полностью автономно -- все необходимые протоколы инлайнены в шаблонах. Core добавляет формализованные версии тех же протоколов для проектов, использующих полную экосистему.
|
|
544
|
+
|
|
545
|
+
---
|
|
546
|
+
|
|
547
|
+
## 11. Package архитектура (npm)
|
|
548
|
+
|
|
549
|
+
### 11.1 Структура пакета
|
|
550
|
+
|
|
551
|
+
```
|
|
552
|
+
packages/dz-feature-adr/
|
|
553
|
+
├── package.json ← @dzhechkov/skills-feature-adr v1.0.0
|
|
554
|
+
├── bin/
|
|
555
|
+
│ └── cli.js ← Entry point (#!/usr/bin/env node)
|
|
556
|
+
├── src/
|
|
557
|
+
│ ├── cli.js ← Argument parsing, command routing
|
|
558
|
+
│ ├── utils.js ← Colors, logging, file ops, manifest, components
|
|
559
|
+
│ └── commands/
|
|
560
|
+
│ ├── init.js ← Установка skill pack в проект
|
|
561
|
+
│ ├── update.js ← Обновление до новой версии
|
|
562
|
+
│ ├── remove.js ← Удаление skill pack
|
|
563
|
+
│ ├── list.js ← Список установленных компонентов
|
|
564
|
+
│ └── doctor.js ← Диагностика здоровья установки
|
|
565
|
+
├── scripts/
|
|
566
|
+
│ └── sync-templates.js ← Синхронизация шаблонов при prepublishOnly
|
|
567
|
+
└── templates/ ← Шаблоны для установки в целевой проект
|
|
568
|
+
└── .claude/
|
|
569
|
+
├── commands/
|
|
570
|
+
│ └── feature-adr.md ← Slash-команда /feature-adr
|
|
571
|
+
├── rules/
|
|
572
|
+
│ └── feature-adr-conventions.md
|
|
573
|
+
├── shards/
|
|
574
|
+
│ └── feature-adr.shard.md
|
|
575
|
+
└── skills/
|
|
576
|
+
└── feature-adr/
|
|
577
|
+
├── SKILL.md
|
|
578
|
+
├── modules/ ← 00-08 (9 step modules)
|
|
579
|
+
├── references/ ← Templates и matrices
|
|
580
|
+
└── examples/ ← Sample output
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
### 11.2 CLI-команды
|
|
584
|
+
|
|
585
|
+
```bash
|
|
586
|
+
npx @dzhechkov/skills-feature-adr init # Установить в текущий проект
|
|
587
|
+
npx @dzhechkov/skills-feature-adr update # Обновить до последней версии
|
|
588
|
+
npx @dzhechkov/skills-feature-adr remove # Удалить из проекта
|
|
589
|
+
npx @dzhechkov/skills-feature-adr list # Показать установленные компоненты
|
|
590
|
+
npx @dzhechkov/skills-feature-adr doctor # Проверить здоровье установки
|
|
591
|
+
|
|
592
|
+
# Флаги:
|
|
593
|
+
# --force Перезаписать существующие файлы
|
|
594
|
+
# --dry-run Показать план без записи файлов
|
|
595
|
+
```
|
|
596
|
+
|
|
597
|
+
### 11.3 Компоненты установки
|
|
598
|
+
|
|
599
|
+
При `init` устанавливаются 4 компонента из `templates/`:
|
|
600
|
+
|
|
601
|
+
| Компонент | Целевой путь | Фильтр | Описание |
|
|
602
|
+
|-----------|-------------|--------|----------|
|
|
603
|
+
| `skill` | `.claude/skills/feature-adr/` | -- | SKILL.md + 9 модулей + 4 reference + 1 example |
|
|
604
|
+
| `commands` | `.claude/commands/` | `feature-adr*` | Slash-команда `feature-adr.md` |
|
|
605
|
+
| `rules` | `.claude/rules/` | `feature-adr*` | Конвенции `feature-adr-conventions.md` |
|
|
606
|
+
| `shards` | `.claude/shards/` | `feature-adr*` | Governance shard `feature-adr.shard.md` |
|
|
607
|
+
|
|
608
|
+
Фильтрация по префиксу `feature-adr` гарантирует, что при установке в проект с существующими commands/rules/shards не затрагиваются чужие файлы.
|
|
609
|
+
|
|
610
|
+
### 11.4 Manifest
|
|
611
|
+
|
|
612
|
+
После установки создаётся `.skills-feature-adr.json`:
|
|
613
|
+
|
|
614
|
+
```json
|
|
615
|
+
{
|
|
616
|
+
"version": "1.0.0",
|
|
617
|
+
"installedAt": "2026-03-02T10:00:00.000Z",
|
|
618
|
+
"components": ["skill", "commands", "rules", "shards"],
|
|
619
|
+
"files": [
|
|
620
|
+
".claude/commands/feature-adr.md",
|
|
621
|
+
".claude/rules/feature-adr-conventions.md",
|
|
622
|
+
".claude/shards/feature-adr.shard.md",
|
|
623
|
+
".claude/skills/feature-adr/SKILL.md",
|
|
624
|
+
"..."
|
|
625
|
+
]
|
|
626
|
+
}
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
Manifest используется для `update` (diff с текущими шаблонами), `remove` (список файлов для удаления) и `doctor` (проверка целостности).
|
|
630
|
+
|
|
631
|
+
### 11.5 Интеграция с Keysarium
|
|
632
|
+
|
|
633
|
+
При `init` автоматически детектируется `.keysarium.json`. Если Keysarium уже установлен -- выводится интеграционное сообщение, и компоненты устанавливаются в общие директории (`.claude/commands/`, `.claude/skills/` и т.д.), обеспечивая бесшовную работу `/feature-adr` рядом с `/casarium`.
|
|
634
|
+
|
|
635
|
+
### 11.6 Template sync
|
|
636
|
+
|
|
637
|
+
Скрипт `sync-templates.js` вызывается при `prepublishOnly` для синхронизации шаблонов из source-of-truth (`.claude/` корневого репозитория) в `templates/` пакета, гарантируя консистентность.
|
|
638
|
+
|
|
639
|
+
---
|
|
640
|
+
|
|
641
|
+
## 12. Output архитектура
|
|
642
|
+
|
|
643
|
+
### 12.1 Директория фичи
|
|
644
|
+
|
|
645
|
+
Все артефакты создаются в `features/<feature-slug>/`:
|
|
646
|
+
|
|
647
|
+
```
|
|
648
|
+
features/<feature-slug>/
|
|
649
|
+
├── 00_complexity_assessment.md ← Всегда
|
|
650
|
+
├── 01_requirements.md ← Всегда (inline для S)
|
|
651
|
+
├── 02_research.md ← L/XL
|
|
652
|
+
├── 03_adr/ ← M+
|
|
653
|
+
│ ├── 001-<decision-1>.md
|
|
654
|
+
│ ├── 002-<decision-2>.md
|
|
655
|
+
│ └── ...
|
|
656
|
+
├── 04_domain_model.md ← L/XL
|
|
657
|
+
├── 05_architecture.md ← M+ (light для M)
|
|
658
|
+
├── 06_implementation_plan.md ← Всегда (inline для S)
|
|
659
|
+
├── 07_code_changes/ ← Всегда
|
|
660
|
+
│ └── change_manifest.md ← Список created/modified/deleted файлов
|
|
661
|
+
├── 08_qe_report.md ← Всегда
|
|
662
|
+
├── diagrams/ ← M+
|
|
663
|
+
│ ├── architecture-c4.mermaid ← L/XL (component-only для M)
|
|
664
|
+
│ ├── domain-model.mermaid ← L/XL
|
|
665
|
+
│ └── sequence-*.mermaid ← L/XL
|
|
666
|
+
└── README.md ← Всегда (auto-generated summary)
|
|
667
|
+
```
|
|
668
|
+
|
|
669
|
+
### 12.2 Обязательные артефакты по тирам
|
|
670
|
+
|
|
671
|
+
**Тир S:**
|
|
672
|
+
|
|
673
|
+
```
|
|
674
|
+
features/<slug>/
|
|
675
|
+
├── 00_complexity_assessment.md
|
|
676
|
+
├── 08_qe_report.md
|
|
677
|
+
├── README.md
|
|
678
|
+
+ реальные изменения кода в репозитории
|
|
679
|
+
```
|
|
680
|
+
|
|
681
|
+
**Тир M (все из S, плюс):**
|
|
682
|
+
|
|
683
|
+
```
|
|
684
|
+
├── 01_requirements.md
|
|
685
|
+
├── 03_adr/001-*.md
|
|
686
|
+
├── 05_architecture.md
|
|
687
|
+
├── 07_code_changes/change_manifest.md
|
|
688
|
+
└── diagrams/
|
|
689
|
+
└── (component diagram)
|
|
690
|
+
```
|
|
691
|
+
|
|
692
|
+
**Тир L (все из M, плюс):**
|
|
693
|
+
|
|
694
|
+
```
|
|
695
|
+
├── 02_research.md
|
|
696
|
+
├── 04_domain_model.md
|
|
697
|
+
└── diagrams/
|
|
698
|
+
├── architecture-c4.mermaid
|
|
699
|
+
├── domain-model.mermaid
|
|
700
|
+
└── sequence-*.mermaid
|
|
701
|
+
```
|
|
702
|
+
|
|
703
|
+
**Тир XL:**
|
|
704
|
+
Все артефакты L на полной глубине.
|
|
705
|
+
|
|
706
|
+
### 12.3 Конвенции именования
|
|
707
|
+
|
|
708
|
+
- **Feature slug:** kebab-case, латиница, max 40 символов (например, `add-user-auth`, `refactor-payment-flow`)
|
|
709
|
+
- **Артефакты:** нумерованный префикс по номеру шага (`00_`, `01_`, ..., `08_`)
|
|
710
|
+
- **ADR файлы:** `NNN-<decision-slug>.md` (например, `001-choose-database-engine.md`)
|
|
711
|
+
- **Диаграммы:** описательный kebab-case (например, `architecture-c4.mermaid`, `sequence-main-flow.mermaid`)
|
|
712
|
+
- **Никаких дат и номеров тикетов** в slug -- они указываются внутри артефактов
|
|
713
|
+
|
|
714
|
+
### 12.4 Изоляция от других pipeline
|
|
715
|
+
|
|
716
|
+
```
|
|
717
|
+
researches/ ← /casarium pipeline ONLY
|
|
718
|
+
features/ ← /feature-adr pipeline ONLY
|
|
719
|
+
```
|
|
720
|
+
|
|
721
|
+
Feature-adr **никогда** не создаёт файлы в `researches/`. Casarium **никогда** не создаёт файлы в `features/`. Это обеспечивает чёткое разделение контекстов.
|
|
722
|
+
|
|
723
|
+
---
|
|
724
|
+
|
|
725
|
+
## Приложение A: Quality Gates по шагам
|
|
726
|
+
|
|
727
|
+
| Шаг | Gate | Блокирующий? |
|
|
728
|
+
|-----|------|-------------|
|
|
729
|
+
| 0 | Тир обоснован по 6 измерениям с explicit reasoning | Да |
|
|
730
|
+
| 1 | Все требования имеют acceptance criteria (M+) | Да |
|
|
731
|
+
| 2 | Research findings верифицированы, не галлюцинированы (L/XL) | Да |
|
|
732
|
+
| 3 | Каждый ADR содержит >= 2 альтернативы (M+) | Да |
|
|
733
|
+
| 4 | Domain model совместима с существующей кодовой базой (L/XL) | Да |
|
|
734
|
+
| 5 | Mermaid-диаграммы имеют валидный синтаксис (M+) | Да |
|
|
735
|
+
| 6 | Зависимости задач формируют валидный DAG | Да |
|
|
736
|
+
| 7 | Код следует конвенциям существующей кодовой базы | Да |
|
|
737
|
+
| 8 | Нет BLOCKER-находок, все MUST-требования пройдены | Да |
|
|
738
|
+
|
|
739
|
+
## Приложение B: Anti-Patterns
|
|
740
|
+
|
|
741
|
+
| Anti-Pattern | Сигнал обнаружения | Действие |
|
|
742
|
+
|-------------|-------------------|---------|
|
|
743
|
+
| Пропуск Step 0 | Переход к кодированию без классификации | BLOCK |
|
|
744
|
+
| Over-engineer S-тир | Полный pipeline для config change | Router должен классифицировать как S |
|
|
745
|
+
| Under-engineer XL-тир | Пропуск ADR/DDD для major refactor | Router должен классифицировать как XL |
|
|
746
|
+
| ADR без альтернатив | Менее 2 опций рассмотрено | BLOCK до добавления альтернатив |
|
|
747
|
+
| Архитектура без ADR | Диаграммы до решений | Step 5 требует output Step 3 |
|
|
748
|
+
| Код без плана | Кодирование без Step 6 | BLOCK -- plan обязателен |
|
|
749
|
+
| Пропуск QE | Доставка без тестирования | BLOCK -- Step 8 обязателен |
|
|
750
|
+
| Тир изменён mid-pipeline | Scope изменился после Step 0 | Рестарт pipeline с нового Step 0 |
|