@dzhechkov/keysarium 1.0.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.
Files changed (84) hide show
  1. package/README.md +289 -0
  2. package/bin/cli.js +5 -0
  3. package/package.json +43 -0
  4. package/src/cli.js +157 -0
  5. package/src/commands/doctor.js +469 -0
  6. package/src/commands/init.js +171 -0
  7. package/src/commands/list.js +147 -0
  8. package/src/commands/remove.js +197 -0
  9. package/src/commands/update.js +191 -0
  10. package/src/utils.js +274 -0
  11. package/templates/.claude/agents/cjm-variant-worker.md +60 -0
  12. package/templates/.claude/agents/discovery-worker.md +45 -0
  13. package/templates/.claude/agents/parallel-research-orchestrator.md +70 -0
  14. package/templates/.claude/agents/presentation-worker.md +55 -0
  15. package/templates/.claude/agents/research-worker.md +43 -0
  16. package/templates/.claude/commands/architecture-phase.md +37 -0
  17. package/templates/.claude/commands/casarium.md +163 -0
  18. package/templates/.claude/commands/cjm-prototype.md +42 -0
  19. package/templates/.claude/commands/discovery.md +34 -0
  20. package/templates/.claude/commands/explore-case.md +22 -0
  21. package/templates/.claude/commands/harvest.md +67 -0
  22. package/templates/.claude/commands/new-research.md +69 -0
  23. package/templates/.claude/commands/parallel-research.md +45 -0
  24. package/templates/.claude/commands/presentation.md +49 -0
  25. package/templates/.claude/commands/research.md +32 -0
  26. package/templates/.claude/commands/solve.md +36 -0
  27. package/templates/.claude/rules/agent-swarm.md +31 -0
  28. package/templates/.claude/rules/anti-patterns.md +19 -0
  29. package/templates/.claude/rules/checkpoint-protocol.md +23 -0
  30. package/templates/.claude/rules/domain-specific.md +32 -0
  31. package/templates/.claude/rules/file-conventions.md +38 -0
  32. package/templates/.claude/rules/modular-reuse.md +35 -0
  33. package/templates/.claude/rules/research-quality.md +20 -0
  34. package/templates/.claude/settings.json +37 -0
  35. package/templates/.claude/skills/explore/SKILL.md +215 -0
  36. package/templates/.claude/skills/explore/references/questioning-techniques.md +151 -0
  37. package/templates/.claude/skills/explore/references/task-brief-templates.md +355 -0
  38. package/templates/.claude/skills/frontend-design/LICENSE.txt +177 -0
  39. package/templates/.claude/skills/frontend-design/SKILL.md +42 -0
  40. package/templates/.claude/skills/goap-research-ed25519/SKILL.md +415 -0
  41. package/templates/.claude/skills/goap-research-ed25519/references/ed25519-verification.md +658 -0
  42. package/templates/.claude/skills/goap-research-ed25519/references/research-actions.md +544 -0
  43. package/templates/.claude/skills/goap-research-ed25519/references/source-evaluation.md +560 -0
  44. package/templates/.claude/skills/goap-research-ed25519/scripts/ed25519_verifier.py +662 -0
  45. package/templates/.claude/skills/goap-research-ed25519/scripts/goap_planner.py +720 -0
  46. package/templates/.claude/skills/presentation-storyteller/SKILL.md +371 -0
  47. package/templates/.claude/skills/presentation-storyteller/references/example-presentation.md +273 -0
  48. package/templates/.claude/skills/presentation-storyteller/references/slide-types.md +426 -0
  49. package/templates/.claude/skills/presentation-storyteller/references/sources-index-template.md +213 -0
  50. package/templates/.claude/skills/presentation-storyteller/references/speaker-script-patterns.md +324 -0
  51. package/templates/.claude/skills/presentation-storyteller/references/storytelling-frameworks.md +270 -0
  52. package/templates/.claude/skills/problem-solver-enhanced/SKILL.md +562 -0
  53. package/templates/.claude/skills/reverse-engineering-unicorn/SKILL.md +194 -0
  54. package/templates/.claude/skills/reverse-engineering-unicorn/examples/noom-cjm-example.md +100 -0
  55. package/templates/.claude/skills/reverse-engineering-unicorn/examples/noom-module1-example.md +88 -0
  56. package/templates/.claude/skills/reverse-engineering-unicorn/modules/01-intelligence.md +328 -0
  57. package/templates/.claude/skills/reverse-engineering-unicorn/modules/02-product-customers.md +221 -0
  58. package/templates/.claude/skills/reverse-engineering-unicorn/modules/025-cjm-prototype.md +206 -0
  59. package/templates/.claude/skills/reverse-engineering-unicorn/modules/03-market-competition.md +402 -0
  60. package/templates/.claude/skills/reverse-engineering-unicorn/modules/04-business-finance.md +287 -0
  61. package/templates/.claude/skills/reverse-engineering-unicorn/modules/05-growth-engine.md +290 -0
  62. package/templates/.claude/skills/reverse-engineering-unicorn/modules/06-playbook-synthesis.md +286 -0
  63. package/templates/.claude/skills/reverse-engineering-unicorn/references/blue-ocean-canvas.md +39 -0
  64. package/templates/.claude/skills/reverse-engineering-unicorn/references/industry-benchmarks.md +67 -0
  65. package/templates/.claude/skills/reverse-engineering-unicorn/references/jtbd-canvas.md +48 -0
  66. package/templates/CLAUDE.md +185 -0
  67. package/templates/TOOLKIT_HARVEST.md +29 -0
  68. package/templates/docs/keysarium/01-deployment-guide.md +768 -0
  69. package/templates/docs/keysarium/02-admin-guide.md +1170 -0
  70. package/templates/docs/keysarium/03-user-guide.md +884 -0
  71. package/templates/docs/keysarium/04-infrastructure-requirements.md +967 -0
  72. package/templates/docs/keysarium/05-architecture.md +706 -0
  73. package/templates/docs/keysarium/06-user-flows.md +925 -0
  74. package/templates/docs/skills-bto/01-deployment-guide.md +828 -0
  75. package/templates/docs/skills-bto/02-admin-guide.md +1052 -0
  76. package/templates/docs/skills-bto/03-user-guide.md +960 -0
  77. package/templates/docs/skills-bto/04-infrastructure-requirements.md +610 -0
  78. package/templates/docs/skills-bto/05-architecture.md +1112 -0
  79. package/templates/docs/skills-bto/06-user-flows.md +977 -0
  80. package/templates/lib/agent-patterns.md +115 -0
  81. package/templates/lib/domain-templates.md +172 -0
  82. package/templates/lib/phase-utils.md +107 -0
  83. package/templates/lib/skill-loader.md +78 -0
  84. package/templates/researches/.gitkeep +0 -0
@@ -0,0 +1,977 @@
1
+ # 06. Пользовательские и административные flow @dzhechko/skills-bto
2
+
3
+ ## Содержание
4
+
5
+ 1. [Flow: Полный BTO пайплайн (/bto)](#flow-полный-bto-пайплайн)
6
+ 2. [Flow: Build-only (/bto-build)](#flow-build-only)
7
+ 3. [Flow: Test-only (/bto-test)](#flow-test-only)
8
+ 4. [Flow: Optimize-only (/bto-optimize)](#flow-optimize-only)
9
+ 5. [Flow: Панель судей (Layer 2)](#flow-панель-судей-layer-2)
10
+ 6. [Flow: Раунд оптимизации (мутация → fast-eval → отбор → full panel)](#flow-раунд-оптимизации)
11
+ 7. [Flow: Ошибки и rejection](#flow-ошибки-и-rejection)
12
+ 8. [Flow: Human Checkpoint](#flow-human-checkpoint)
13
+ 9. [Flow: Интеграция BTO в Keysarium пайплайн](#flow-интеграция-bto-в-keysarium-пайплайн)
14
+
15
+ ---
16
+
17
+ ## Flow: Полный BTO пайплайн
18
+
19
+ ### Sequence Diagram
20
+
21
+ ```mermaid
22
+ sequenceDiagram
23
+ actor U as User
24
+ participant C as Claude (/bto)
25
+ participant FS as File System
26
+ participant A as Agent Swarm
27
+
28
+ U->>C: /bto .claude/skills/my-skill/
29
+
30
+ Note over C: ═══ MODULE: BUILD (только если новый артефакт) ═══
31
+
32
+ alt Путь существует (оценка + оптимизация)
33
+ C->>FS: Проверить артефакт
34
+ C-->>U: Артефакт найден → запускаем TEST
35
+ else Описание нового артефакта
36
+ C->>C: Определить тип артефакта
37
+ C->>FS: Read .claude/skills/bto/modules/build.md
38
+ C->>C: Сгенерировать артефакт
39
+ C->>FS: Записать новый артефакт
40
+ C-->>U: BUILD Complete ✅
41
+ end
42
+
43
+ Note over C: ═══ MODULE: TEST ═══
44
+
45
+ C->>FS: Read .claude/skills/bto/modules/test.md
46
+ C->>C: Layer 0 — детерминистические проверки
47
+ C-->>U: Layer 0: X/Y passed
48
+
49
+ alt Layer 0 FAIL (< 80%)
50
+ C-->>U: FAIL: конкретные ошибки + рекомендации
51
+ C-->>U: Checkpoint: исправьте и повторите
52
+ else Layer 0 PASS
53
+ C->>A: Spawn haiku agent (Layer 1)
54
+ A-->>C: Layer 1 score: X.X / 10
55
+ alt Layer 1 FAIL (< 5.0)
56
+ C-->>U: FAIL: серьёзные проблемы, Layer 2 не запускается
57
+ else Layer 1 PASS/NEEDS WORK
58
+ C->>A: Spawn 3 judge agents (Layer 2) параллельно
59
+ A->>FS: judge-1.md (Domain Expert)
60
+ A->>FS: judge-2.md (Critic)
61
+ A->>FS: judge-3.md (Completeness Auditor)
62
+ A-->>C: Все 3 оценки готовы
63
+ C->>C: Агрегация: weighted average + disagreement check
64
+ alt Disagreement > 3 (Layer 3)
65
+ C->>A: Spawn Meta-Judge (opus)
66
+ A-->>C: Reconciled score
67
+ end
68
+ C->>FS: Записать panel-verdict.md
69
+ C-->>U: TEST Complete: X.X/10 [PASS/NEEDS WORK/FAIL]
70
+ end
71
+ end
72
+
73
+ Note over C: ═══ MODULE: OPTIMIZE ═══
74
+
75
+ alt Baseline >= 8.0
76
+ C-->>U: Артефакт высокого качества. Minor tweaks only.
77
+ else Baseline < 8.0
78
+ C->>FS: Read .claude/skills/bto/modules/optimize.md
79
+ C->>C: Определить target dimensions (score < 7.0)
80
+
81
+ loop 3 Rounds
82
+ C->>A: Spawn mutation workers (sonnet) параллельно
83
+ A->>FS: variant-N-*.md + mutation-log-N.md
84
+ A-->>C: Варианты готовы
85
+
86
+ C->>A: Spawn haiku fast-eval agents параллельно
87
+ A->>FS: scores/score-*.txt
88
+ A-->>C: Оценки готовы
89
+
90
+ C->>C: Ранжирование → выбор Top-2
91
+ C->>A: Spawn Crossover agent (opus)
92
+ A-->>C: Crossover вариант готов
93
+ end
94
+
95
+ C->>A: Spawn Layer 2 panel на 3 финальных варианта
96
+ A-->>C: Финальные оценки
97
+ C->>C: Выбор победителя
98
+ C->>FS: Записать optimization-report.md
99
+ C-->>U: OPTIMIZE Complete: before X.X → after X.X (+delta)
100
+ end
101
+
102
+ Note over C: ═══ HUMAN CHECKPOINT ═══
103
+
104
+ C-->>U: Checkpoint: применить изменения? (да/нет/углубить)
105
+ U->>C: "да"
106
+ C->>FS: Применить победивший вариант → перезаписать артефакт
107
+ C-->>U: BTO Complete ✅
108
+ ```
109
+
110
+ ### Step by Step
111
+
112
+ **Шаг 1. Запуск пайплайна**
113
+ ```
114
+ User: /bto .claude/skills/my-skill/SKILL.md
115
+ ```
116
+
117
+ **Шаг 2. TEST — Layer 0**
118
+ - Claude читает `modules/test.md`
119
+ - Детерминистические проверки: 10-15 чеков за ~1 сек
120
+ - Например: SKILL.md существует, есть ## Overview, есть ## Anti-Patterns, все referenced modules существуют
121
+ - Если < 80% чеков прошло → вывод отчёта с конкретными ошибками, остановка
122
+
123
+ **Шаг 3. TEST — Layer 1 (haiku)**
124
+ - Один haiku агент оценивает по 5 измерениям
125
+ - Ввод: содержимое артефакта + evaluation prompt
126
+ - Вывод: CLARITY:8, COMPLETENESS:7, ACTIONABILITY:7, QUALITY:8, ANTI-PATTERNS:9
127
+ - Average: 7.8 → PASS
128
+
129
+ **Шаг 4. TEST — Layer 2 (3 × sonnet)**
130
+ - Три sonnet агента спавнятся параллельно
131
+ - Каждый читает тот же артефакт, пишет в отдельный файл
132
+ - После завершения всех трёх: агрегация с весами 0.4/0.3/0.3
133
+ - Проверка разногласий
134
+
135
+ **Шаг 5. OPTIMIZE — 3 раунда**
136
+ - Round 1: 5 направленных мутаций → 5 haiku оценок → Top-2
137
+ - Round 2: crossover → 3 haiku оценок → Top-2
138
+ - Round 3: crossover → 3 × Layer 2 → победитель
139
+
140
+ **Шаг 6. Human Checkpoint**
141
+ - Вывод отчёта: before/after delta по каждому измерению + changelog
142
+ - Пользователь подтверждает применение изменений
143
+
144
+ ---
145
+
146
+ ## Flow: Build-only
147
+
148
+ ### Flowchart
149
+
150
+ ```mermaid
151
+ flowchart TD
152
+ START(["/bto-build [описание]"]) --> LOAD
153
+ LOAD["Загрузить modules/build.md"] --> DETECT
154
+
155
+ DETECT{"Определить тип\nартефакта"} --> TYPE_CHECK{"Тип явно\nуказан?"}
156
+ TYPE_CHECK -->|"Нет"| AUTO_DETECT["Авто-определение\nпо ключевым словам"]
157
+ TYPE_CHECK -->|"Да"| MODE_CHECK
158
+
159
+ AUTO_DETECT --> MODE_CHECK{"Режим?"}
160
+
161
+ MODE_CHECK -->|"Чёткие требования\n→ QUICK"| QUICK["QUICK mode:\nПрямая генерация"]
162
+ MODE_CHECK -->|"Нечёткие требования\n→ DEEP"| DEEP["DEEP mode:\nЗагрузить explore skill"]
163
+
164
+ DEEP --> EXPLORE["Кларификация требований:\n• Что именно нужно?\n• Для кого?\n• Input/Output формат?\n• Edge cases?"]
165
+ EXPLORE --> BRIEF["Requirements Brief"]
166
+ BRIEF --> CONFIRM{"Подтвердить\nс пользователем"}
167
+ CONFIRM -->|"ок"| TEMPLATE
168
+ CONFIRM -->|"правки"| EXPLORE
169
+
170
+ QUICK --> TEMPLATE["Выбрать шаблон\nпо типу артефакта"]
171
+
172
+ TEMPLATE --> GEN["Генерация артефакта\n(все обязательные секции)"]
173
+
174
+ GEN --> SELF_REVIEW["Self-Review (Layer 0 inline):\n1. Structure check\n2. Content check\n3. Convention check\n4. Size check"]
175
+
176
+ SELF_REVIEW --> REVIEW_PASS{"Все проверки\nпрошли?"}
177
+ REVIEW_PASS -->|"Нет"| FIX["Исправить\nнайденные проблемы"]
178
+ FIX --> SELF_REVIEW
179
+ REVIEW_PASS -->|"Да"| SAVE
180
+
181
+ SAVE["Сохранить артефакт\n(создать файловую структуру)"]
182
+
183
+ SAVE --> OUTPUT["OUTPUT:\n✅ BUILD Complete\nArtifact: .claude/skills/<name>/\nFiles created: [список]\n\nNext: /bto-test .claude/skills/<name>/"]
184
+ ```
185
+
186
+ ### Пример: QUICK mode
187
+
188
+ **Вход:**
189
+ ```
190
+ User: /bto-build skill for processing CSV files with pandas validation
191
+ ```
192
+
193
+ **Поток исполнения:**
194
+ 1. Тип: `skill` (ключевое слово "skill")
195
+ 2. Режим: QUICK (чёткое описание)
196
+ 3. Шаблон: SKILL.md + modules/ + references/ + examples/
197
+ 4. Генерация: структурированный скилл
198
+ 5. Self-review: проверка 8 критериев
199
+ 6. Вывод: созданные файлы
200
+
201
+ **Пример: DEEP mode**
202
+
203
+ **Вход:**
204
+ ```
205
+ User: /bto-build something for analyzing customer behavior
206
+ ```
207
+
208
+ **Поток исполнения:**
209
+ 1. Тип: `skill` (можно предположить)
210
+ 2. Режим: DEEP (нечёткие требования)
211
+ 3. Загрузка `explore` скилла
212
+ 4. Кларификационные вопросы:
213
+ - "Что является входными данными: логи, транзакции, сессии?"
214
+ - "Какой формат выхода: отчёт, JSON, диаграммы?"
215
+ - "Какой домен: e-commerce, SaaS, mobile?"
216
+ 5. Requirements brief → подтверждение → генерация
217
+
218
+ ---
219
+
220
+ ## Flow: Test-only
221
+
222
+ ### Sequence Diagram с Layer 0 → 1 → 2 → 3 прогрессией
223
+
224
+ ```mermaid
225
+ sequenceDiagram
226
+ actor U as User
227
+ participant C as Claude (/bto-test)
228
+ participant FS as File System
229
+ participant H as haiku agent
230
+ participant S1 as Sonnet (Expert)
231
+ participant S2 as Sonnet (Critic)
232
+ participant S3 as Sonnet (Auditor)
233
+ participant O as Opus (Meta-Judge)
234
+
235
+ U->>C: /bto-test .claude/skills/my-skill/
236
+
237
+ Note over C: ─── Layer 0: Deterministic ───
238
+
239
+ C->>FS: Прочитать SKILL.md и директорию
240
+ C->>C: CHECK-U1..U5 (универсальные)
241
+ C->>C: CHECK-S1..S10 (skill-специфичные)
242
+ C-->>U: Layer 0: 9/10 passed (90%) ✅
243
+
244
+ alt Layer 0 FAIL (< 80%)
245
+ C-->>U: Layer 0 FAIL: конкретные ошибки
246
+ C-->>U: ❌ CHECK-S4: Anti-Patterns section missing
247
+ C-->>U: Остановка. Исправьте и повторите.
248
+ Note over C: STOP
249
+ end
250
+
251
+ Note over C: ─── Layer 1: Quick (haiku) ───
252
+
253
+ C->>H: Evaluate artifact (5 dimensions)
254
+ H-->>C: CLARITY:8, COMPLETENESS:7, ACTIONABILITY:8,<br/>QUALITY:7, ANTI-PATTERNS:9
255
+ H-->>C: Average: 7.8 — PASS ✅
256
+ H-->>C: Top 3 improvements: [список]
257
+
258
+ alt Layer 1 FAIL (< 5.0)
259
+ C-->>U: Layer 1 FAIL: серьёзные структурные проблемы
260
+ C-->>U: Layer 2 не запускается. Исправьте сначала.
261
+ Note over C: STOP
262
+ end
263
+
264
+ Note over C: ─── Layer 2: Full Panel (параллельно) ───
265
+
266
+ par Parallel judge execution
267
+ C->>S1: Evaluate as Domain Expert
268
+ and
269
+ C->>S2: Evaluate as Critic
270
+ and
271
+ C->>S3: Evaluate as Completeness Auditor
272
+ end
273
+
274
+ S1->>FS: Записать judge-1.md
275
+ S2->>FS: Записать judge-2.md
276
+ S3->>FS: Записать judge-3.md
277
+
278
+ Note over C: ─── Aggregation ───
279
+
280
+ C->>FS: Прочитать judge-1.md, judge-2.md, judge-3.md
281
+ C->>C: Compute: weighted average (0.4/0.3/0.3)
282
+ C->>C: Disagreement check: max - min per dimension
283
+
284
+ alt Disagreement > 3 (Layer 3)
285
+ Note over C: ─── Layer 3: Meta-Judge ───
286
+ C->>O: Reconcile disagreement on [DIMENSION]
287
+ O-->>C: Reconciled score: 7.5 (Expert had most valid point)
288
+ end
289
+
290
+ C->>FS: Записать panel-verdict.md
291
+ C-->>U: Evaluation Report (полный отчёт)
292
+ C-->>U: Checkpoint: результаты оценки
293
+ ```
294
+
295
+ ### Пример отчёта TEST
296
+
297
+ ```
298
+ ═══════════════════════════════════════════════════════
299
+ 📊 BTO EVALUATION REPORT
300
+ Artifact: .claude/skills/my-skill/SKILL.md
301
+ Type: skill
302
+ Level: Layer 0 + Layer 1 + Layer 2
303
+
304
+ OVERALL SCORE: 7.4 / 10 [PASS]
305
+
306
+ Per-Dimension:
307
+ METHODOLOGY: 7.8 ████████░░░░
308
+ DEPTH: 6.9 ███████░░░░░ ← ниже 7.0, target для OPTIMIZE
309
+ CORRECTNESS: 8.1 █████████░░░
310
+ USABILITY: 7.2 ████████░░░░
311
+ ROBUSTNESS: 6.8 ███████░░░░░ ← ниже 7.0, target для OPTIMIZE
312
+
313
+ Flagged: DEPTH (Expert:7, Critic:4, Auditor:6 — disagreement=3, Meta-Judge applied)
314
+
315
+ Top Improvements:
316
+ 1. [Critic] Добавить конкретные примеры для каждого шага протокола
317
+ 2. [Auditor] Раздел edge cases отсутствует в modules/core.md
318
+ 3. [Expert] Стратегия не описывает поведение при недоступном API
319
+ ═══════════════════════════════════════════════════════
320
+ ```
321
+
322
+ ### Level параметр
323
+
324
+ `/bto-test [path] level=[layer0|layer1|layer2|full]`
325
+
326
+ | Level | Запускает | Стоимость | Когда использовать |
327
+ |-------|-----------|-----------|-------------------|
328
+ | `layer0` | Только детерминистические проверки | $0 | CI/CD pre-check, быстрая валидация |
329
+ | `layer1` | Layer 0 + haiku | ~$0.001 | Быстрая итерация при разработке |
330
+ | `layer2` | Layer 0 + Layer 1 + полная панель | ~$0.01 | Тщательная оценка |
331
+ | `full` (default) | Всё включая Meta-Judge при необходимости | ~$0.05 | Финальная оценка перед поставкой |
332
+
333
+ ---
334
+
335
+ ## Flow: Optimize-only
336
+
337
+ ### Flowchart полного цикла оптимизации
338
+
339
+ ```mermaid
340
+ flowchart TD
341
+ START(["/bto-optimize [path]"]) --> PREREQ
342
+
343
+ PREREQ["Проверить предусловия:\n• Артефакт прошёл Layer 0\n• Baseline Layer 2 установлен"] --> BASELINE_CHECK
344
+
345
+ BASELINE_CHECK{"Baseline\n>= 8.0?"} -->|"Да"| ALREADY_GOOD
346
+
347
+ ALREADY_GOOD["Артефакт уже высокого качества.\nПредложить только minor tweaks."]
348
+
349
+ BASELINE_CHECK -->|"Нет (< 8.0)"| FIND_TARGETS
350
+
351
+ FIND_TARGETS["Определить target dimensions\n(score < 7.0 из baseline)"] --> ROUND1
352
+
353
+ subgraph ROUND1 ["Round 1: Mutation + Fast Eval"]
354
+ R1_WORKERS["Spawn 3 mutation workers\n(sonnet, параллельно):\n• Worker 1: expand-depth → 2 варианта\n• Worker 2: add-metrics → 1 вариант\n• Worker 3: invert-critic → 2 варианта"]
355
+ R1_L0["Каждый воркер:\nLayer 0 self-check на своих вариантах"]
356
+ R1_HAIKU["Spawn 5 haiku fast-eval agents\n(параллельно, по 1 на вариант)"]
357
+ R1_RANK["Ранжирование вариантов\nround-1-ranking.md"]
358
+ R1_TOP2["Отбор Top-2 вариантов"]
359
+
360
+ R1_WORKERS --> R1_L0
361
+ R1_L0 --> R1_HAIKU
362
+ R1_HAIKU --> R1_RANK
363
+ R1_RANK --> R1_TOP2
364
+ end
365
+
366
+ FIND_TARGETS --> ROUND1
367
+ R1_TOP2 --> ROUND2
368
+
369
+ subgraph ROUND2 ["Round 2: Crossover + Fast Eval"]
370
+ R2_CROSS["Spawn Crossover agent (opus):\nСинтез Top-2 → 3 варианта"]
371
+ R2_L0_2["Crossover агент:\nLayer 0 self-check"]
372
+ R2_HAIKU2["Spawn 3 haiku fast-eval agents\n(параллельно)"]
373
+ R2_RANK2["Ранжирование\nround-2-ranking.md"]
374
+ R2_TOP2_2["Отбор Top-2"]
375
+
376
+ R2_CROSS --> R2_L0_2
377
+ R2_L0_2 --> R2_HAIKU2
378
+ R2_HAIKU2 --> R2_RANK2
379
+ R2_RANK2 --> R2_TOP2_2
380
+ end
381
+
382
+ R1_TOP2 --> ROUND2
383
+ R2_TOP2_2 --> ROUND3
384
+
385
+ subgraph ROUND3 ["Round 3 (Final): Full Panel"]
386
+ R3_CROSS["Spawn Crossover agent (opus):\n3 финальных варианта"]
387
+ R3_L0_3["Layer 0 self-check"]
388
+ R3_PANEL["Spawn Judge Panel:\n3 варианта × 3 судьи\n(9 параллельных sonnet агентов)"]
389
+ R3_AGG["Агрегация всех 9 оценок\nВыбор победителя"]
390
+
391
+ R3_CROSS --> R3_L0_3
392
+ R3_L0_3 --> R3_PANEL
393
+ R3_PANEL --> R3_AGG
394
+ end
395
+
396
+ R2_TOP2_2 --> ROUND3
397
+ R3_AGG --> CONV_CHECK
398
+
399
+ CONV_CHECK{"Delta > 0.5\nот baseline?"}
400
+ CONV_CHECK -->|"Нет (< 0.5)"| CONVERGED["Сходимость.\nМинимальное улучшение.\nРекомендация: оставить оригинал."]
401
+ CONV_CHECK -->|"Да"| REPORT
402
+
403
+ REPORT["Генерация отчёта:\noptimization-report.md\n• Before/After delta\n• Winning strategy\n• Changelog"] --> CHECKPOINT
404
+
405
+ CHECKPOINT["Human Checkpoint:\nПоказать отчёт пользователю"] --> DECISION
406
+
407
+ DECISION{"Применить\nизменения?"} -->|"да"| APPLY
408
+ DECISION -->|"нет"| DISCARD
409
+ DECISION -->|"углубить [dim]"| EXTRA_ROUND
410
+
411
+ APPLY["Применить победивший вариант\n→ перезаписать артефакт"]
412
+ DISCARD["Оставить оригинал.\nОтчёт сохранён для референса."]
413
+ EXTRA_ROUND["Запустить доп. раунд\nс фокусом на [dim]"]
414
+ ```
415
+
416
+ ### Пример отчёта OPTIMIZE
417
+
418
+ ```
419
+ ═══════════════════════════════════════════════════════
420
+ 🔧 BTO OPTIMIZATION REPORT
421
+ Artifact: .claude/skills/my-skill/SKILL.md
422
+ Rounds: 3
423
+ Total evaluations: 15 (5×haiku + 3×haiku + 3×sonnet×3)
424
+
425
+ BEFORE → AFTER:
426
+ METHODOLOGY: 7.8 → 8.2 (+0.4)
427
+ DEPTH: 6.9 → 8.0 (+1.1) ⬆️
428
+ CORRECTNESS: 8.1 → 8.3 (+0.2)
429
+ USABILITY: 7.2 → 7.9 (+0.7) ⬆️
430
+ ROBUSTNESS: 6.8 → 7.8 (+1.0) ⬆️
431
+
432
+ OVERALL: 7.4 → 8.0 (+0.6) ⬆️
433
+
434
+ Winning Strategy: expand-depth + invert-critic (crossover)
435
+
436
+ CHANGELOG:
437
+ - Добавлены конкретные примеры для каждого шага протокола
438
+ - Раздел edge cases добавлен в modules/core.md
439
+ - Задокументировано поведение при недоступном API
440
+ - Убрана избыточность в разделе Quick Start
441
+ ═══════════════════════════════════════════════════════
442
+ ```
443
+
444
+ ---
445
+
446
+ ## Flow: Панель судей (Layer 2)
447
+
448
+ ### Детальный Sequence Diagram
449
+
450
+ ```mermaid
451
+ sequenceDiagram
452
+ participant ORCH as Оркестратор
453
+ participant J1 as Judge 1<br/>(Domain Expert, sonnet)
454
+ participant J2 as Judge 2<br/>(Critic, sonnet)
455
+ participant J3 as Judge 3<br/>(Auditor, sonnet)
456
+ participant META as Meta-Judge<br/>(opus)
457
+ participant FS as File System
458
+
459
+ Note over ORCH: Все три агента спавнятся ОДНОВРЕМЕННО
460
+
461
+ par Параллельное исполнение
462
+ ORCH->>J1: Read artifact + rubric<br/>(NO communication with J2/J3)
463
+ and
464
+ ORCH->>J2: Read artifact + rubric<br/>(NO communication with J1/J3)
465
+ and
466
+ ORCH->>J3: Read artifact + structure-spec<br/>(NO communication with J1/J2)
467
+ end
468
+
469
+ J1->>FS: Записать judge-1.md<br/>(domain accuracy, tech depth, practicality)
470
+ J2->>FS: Записать judge-2.md<br/>(logical consistency, verifiability, anti-patterns)
471
+ J3->>FS: Записать judge-3.md<br/>(section coverage, depth per section, edge cases)
472
+
473
+ Note over ORCH: Агрегация начинается только после получения ВСЕХ трёх оценок
474
+
475
+ ORCH->>FS: Прочитать judge-1.md, judge-2.md, judge-3.md
476
+ ORCH->>ORCH: Извлечь weighted subtotals<br/>S1 = Judge1_avg × 0.4<br/>S2 = Judge2_avg × 0.3<br/>S3 = Judge3_avg × 0.3
477
+ ORCH->>ORCH: panel_score = S1 + S2 + S3
478
+ ORCH->>ORCH: Проверка разногласий:<br/>Для каждого dimension:<br/>max(J1,J2,J3) - min(J1,J2,J3) > 3?
479
+
480
+ alt Disagreement обнаружен (хотя бы в одном dimension)
481
+ ORCH->>META: Read judge-1.md, judge-2.md, judge-3.md<br/>Read artifact + rubric<br/>Reconcile flagged dimensions
482
+ META-->>ORCH: Reconciled score<br/>+ обоснование<br/>+ нужен ли human review?
483
+ alt Meta-Judge требует human review
484
+ ORCH-->>U: ESCALATE: человеческая проверка необходима
485
+ else Разрешено
486
+ ORCH->>ORCH: Применить reconciled score для flagged dimensions
487
+ end
488
+ end
489
+
490
+ ORCH->>FS: Записать panel-verdict.md
491
+ ORCH-->>U: Итоговый вердикт + Top improvements
492
+ ```
493
+
494
+ ### Калибровка судей
495
+
496
+ Ключевой момент архитектуры: три судьи намеренно имеют разную строгость.
497
+
498
+ ```
499
+ Judge 1 (Expert, Weight 0.4):
500
+ Calibration: Reserve 9-10 for genuinely exceptional work
501
+ Expected average: 7-8 for solid artifacts
502
+
503
+ Judge 2 (Critic, Weight 0.3):
504
+ Calibration: "If in doubt, score lower"
505
+ Anti-pattern cap: if anti-pattern detected → cap criterion at 5
506
+ Expected average: 5-6 (deliberately strict)
507
+
508
+ Judge 3 (Auditor, Weight 0.3):
509
+ Calibration: -2 per missing required section
510
+ -1 per stub section (< 3 substantive sentences)
511
+ Expected average: 6-8 for well-structured artifacts
512
+ ```
513
+
514
+ Такая асимметрия предотвращает **conformity collapse** — феномен, при котором все судьи без особой причины дают похожие оценки.
515
+
516
+ ### Разрешение разногласий (Meta-Judge)
517
+
518
+ Meta-Judge вызывается при разногласии > 3 очков по любому измерению:
519
+
520
+ ```
521
+ Пример: DEPTH dimension
522
+ Expert: 8 (глубина достаточна для задачи)
523
+ Critic: 4 (не хватает edge cases, вагое в нескольких местах)
524
+ Auditor: 7 (структурно полно)
525
+ Разногласие: 8 - 4 = 4 → > 3 → ESCALATE
526
+
527
+ Meta-Judge получает:
528
+ • Все три оценки с обоснованиями
529
+ • Сам артефакт
530
+ • Запрос: "Кто прав и почему?"
531
+
532
+ Meta-Judge выводит:
533
+ • Примирённую оценку (например: 6.5)
534
+ • Обоснование: "Critic выявил реальные gaps в edge cases.
535
+ Expert оценил base content, но не edge coverage.
536
+ Reconciled: 6.5, с рекомендацией добавить 2 edge cases."
537
+ • Human review: NO (разрешено)
538
+ ```
539
+
540
+ ### panel-verdict.md формат
541
+
542
+ ```markdown
543
+ ## Panel Verdict — my-skill/SKILL.md
544
+
545
+ **Panel score:** 7.4 / 10
546
+ **Judge scores:** Expert=7.8, Critic=6.5, Auditor=7.2
547
+ **Disagreement flag:** YES (DEPTH: Expert=8, Critic=4, Auditor=7)
548
+ **Meta-Judge applied:** YES → Reconciled DEPTH: 6.5
549
+ **Decision:** PASS
550
+ **Pass threshold:** 7.0
551
+
552
+ **Top improvement areas:**
553
+ - [Critic] Недостаточно edge cases в Protocol section
554
+ - [Auditor] modules/advanced.md — stub section (2 предложения)
555
+ ```
556
+
557
+ ---
558
+
559
+ ## Flow: Раунд оптимизации
560
+
561
+ ### Детальный Sequence Diagram
562
+
563
+ ```mermaid
564
+ sequenceDiagram
565
+ participant ORCH as Оркестратор
566
+ participant W1 as Worker 1<br/>(expand-depth, sonnet)
567
+ participant W2 as Worker 2<br/>(add-metrics, sonnet)
568
+ participant W3 as Worker 3<br/>(invert-critic, sonnet)
569
+ participant H1 as haiku eval 1
570
+ participant H2 as haiku eval 2
571
+ participant H3 as haiku eval 3
572
+ participant H4 as haiku eval 4
573
+ participant H5 as haiku eval 5
574
+ participant CROSS as Crossover<br/>(opus)
575
+ participant FS as File System
576
+
577
+ Note over ORCH: ─── Round 1: Mutation ───
578
+
579
+ par 3 Mutation Workers параллельно
580
+ ORCH->>W1: Base artifact + strategy: expand-depth<br/>Target: DEPTH, ROBUSTNESS
581
+ and
582
+ ORCH->>W2: Base artifact + strategy: add-metrics<br/>Target: DEPTH
583
+ and
584
+ ORCH->>W3: Base artifact + strategy: invert-critic<br/>Target: адресовать blocking issues
585
+ end
586
+
587
+ W1->>W1: Layer 0 self-check на каждом варианте
588
+ W2->>W2: Layer 0 self-check
589
+ W3->>W3: Layer 0 self-check
590
+
591
+ W1->>FS: variant-1-A.md, variant-1-B.md
592
+ W1->>FS: mutation-log-1.md
593
+ W2->>FS: variant-2-A.md
594
+ W2->>FS: mutation-log-2.md
595
+ W3->>FS: variant-3-A.md, variant-3-B.md
596
+ W3->>FS: mutation-log-3.md
597
+
598
+ Note over ORCH: ─── Fast Eval: 5 haiku параллельно ───
599
+
600
+ par 5 haiku агентов параллельно
601
+ ORCH->>H1: Eval variant-1-A
602
+ and
603
+ ORCH->>H2: Eval variant-1-B
604
+ and
605
+ ORCH->>H3: Eval variant-2-A
606
+ and
607
+ ORCH->>H4: Eval variant-3-A
608
+ and
609
+ ORCH->>H5: Eval variant-3-B
610
+ end
611
+
612
+ H1->>FS: score-1-A.txt
613
+ H2->>FS: score-1-B.txt
614
+ H3->>FS: score-2-A.txt
615
+ H4->>FS: score-3-A.txt
616
+ H5->>FS: score-3-B.txt
617
+
618
+ ORCH->>FS: Прочитать все score-*.txt
619
+ ORCH->>ORCH: Ранжирование по average score
620
+ ORCH->>FS: Записать round-1-ranking.md
621
+
622
+ Note over ORCH: Пример: variant-3-A (7.7) и variant-1-B (7.3) → Top-2
623
+
624
+ Note over ORCH: ─── Round 2: Crossover ───
625
+
626
+ ORCH->>CROSS: variant-3-A (Domain score best)<br/>variant-1-B (Completeness score best)<br/>Оценки обоих вариантов
627
+ CROSS->>CROSS: Layer 0 self-check на crossover
628
+ CROSS->>FS: variant-crossover.md + доп. варианты
629
+
630
+ Note over ORCH: ─── Round 3: Full Panel (3 финальных варианта × 3 судьи) ───
631
+
632
+ par 9 агентов параллельно (3 варианта × 3 судьи)
633
+ Note over ORCH: Каждый из 3 финальных вариантов<br/>оценивается полной панелью судей
634
+ end
635
+
636
+ ORCH->>ORCH: Выбор победителя по highest overall score
637
+ ORCH->>FS: Записать optimization-report.md
638
+ ```
639
+
640
+ ### round-ranking.md формат
641
+
642
+ ```markdown
643
+ ## Optimization Round 1 — Ranking
644
+
645
+ | Rank | Variant | R1 | R2 | R3 | Avg | Strategy |
646
+ |------|---------|----|----|----|----|---------|
647
+ | 1 | variant-3-A | 8 | 8 | 7 | 7.7 | invert-critic |
648
+ | 2 | variant-1-B | 7 | 8 | 7 | 7.3 | expand-depth |
649
+ | 3 | variant-2-A | 7 | 7 | 7 | 7.0 | add-metrics |
650
+ | 4 | variant-3-B | 6 | 7 | 7 | 6.7 | invert-critic |
651
+ | 5 | variant-1-A | 6 | 7 | 6 | 6.3 | expand-depth |
652
+
653
+ **Selected for Round 2:** variant-3-A, variant-1-B
654
+ **Discarded:** variant-2-A (avg 7.0, not top-2), variant-3-B (Layer 0: stub section), variant-1-A (low coherence)
655
+ ```
656
+
657
+ ### mutation-log формат
658
+
659
+ ```markdown
660
+ ## Mutation Log — Worker 3 — Round 1
661
+
662
+ **Strategy:** invert-critic
663
+ **Variants attempted:** 2
664
+ **Variants passed Layer 0:** 2
665
+ **Layer 0 failures:** none
666
+
667
+ **Substantive changes made:**
668
+ - Добавлены 3 edge cases в Protocol section (адресует "missing edge cases" из Critic)
669
+ - Формализована секция Failure Modes с конкретными сценариями
670
+ - Убраны вагые формулировки типа "может быть улучшено" → конкретные инструкции
671
+ ```
672
+
673
+ ---
674
+
675
+ ## Flow: Ошибки и rejection
676
+
677
+ ### Layer 0 Failure Flow
678
+
679
+ ```mermaid
680
+ flowchart TD
681
+ L0_FAIL["Layer 0 FAIL\n(< 80% проверок прошло)"] --> AUTO_RETRY{"Auto-retry:\nпопытка N/3"}
682
+
683
+ AUTO_RETRY -->|"Попытка 1"| ATTEMPT1["Попытка исправления"]
684
+ ATTEMPT1 --> L0_RECHECK["Повторный Layer 0"]
685
+ L0_RECHECK -->|"PASS"| CONTINUE["Продолжить в Layer 1"]
686
+ L0_RECHECK -->|"FAIL"| AUTO_RETRY
687
+
688
+ AUTO_RETRY -->|"Попытка 2"| ATTEMPT2["Попытка исправления"]
689
+ ATTEMPT2 --> L0_RECHECK2["Повторный Layer 0"]
690
+ L0_RECHECK2 -->|"PASS"| CONTINUE
691
+ L0_RECHECK2 -->|"FAIL"| AUTO_RETRY
692
+
693
+ AUTO_RETRY -->|"Попытка 3 (последняя)"| ATTEMPT3["Попытка исправления"]
694
+ ATTEMPT3 --> L0_RECHECK3["Повторный Layer 0"]
695
+ L0_RECHECK3 -->|"PASS"| CONTINUE
696
+ L0_RECHECK3 -->|"FAIL"| HUMAN_ESC["Эскалация на человека:\nLayer 0 не прошёл 3 попытки\nRequires manual fix"]
697
+
698
+ HUMAN_ESC --> REPORT_L0["Отчёт с конкретными ошибками:\n❌ CHECK-S4: Anti-Patterns section missing (line 0)\n❌ CHECK-S7: Empty section: '## Dependencies' (line 45)\n✅ CHECK-S1..S3: passed\n✅ CHECK-S5..S6: passed\n..."]
699
+ ```
700
+
701
+ ### Rejection logging (обязательно)
702
+
703
+ Каждый rejected артефакт ДОЛЖЕН быть залогирован. Это правило из `bto-quality-gates.md`:
704
+
705
+ ```
706
+ Причины rejection в Worker:
707
+ → Записать в mutation-log-[WORKER_ID].md:
708
+ • variant-1-A: REJECTED — Layer 0 failure: no Anti-Patterns section
709
+ • variant-2-A: REJECTED — Length below minimum (200 tokens < 300 min)
710
+ • variant-1-B: PASSED
711
+
712
+ НИКОГДА не отбрасывать молча.
713
+ ```
714
+
715
+ ### Anti-Pattern Detection Flow
716
+
717
+ ```mermaid
718
+ flowchart TD
719
+ CONTENT["Генерируемый контент"] --> CHECK_AP{"Auto-detection\nanti-patterns"}
720
+
721
+ CHECK_AP -->|"Score inflation\n(все > 8.5 с 1-й попытки)"| FIX_INFLATION["Добавить calibration prompt\nк Critic судье"]
722
+
723
+ CHECK_AP -->|"Overfitting to rubric\n(формулировки буквально\nпод рубрику)"| FIX_OVERFIT["Blind evaluation:\nскрыть рубрику от генератора"]
724
+
725
+ CHECK_AP -->|"Conformity collapse\n(все судьи → одни оценки)"| FIX_CONFORM["Enforce isolation,\nрандомизировать порядок судей"]
726
+
727
+ CHECK_AP -->|"Runaway optimization\n(> 10 итераций)"| FIX_RUNAWAY["ABORT:\nсдать best-so-far,\nlог + human review"]
728
+
729
+ CHECK_AP -->|"Phantom improvement\n(delta > 0.5, но контент не изменился)"| FIX_PHANTOM["Diff-check контента,\nне только score"]
730
+
731
+ CHECK_AP -->|"Judge-generator collusion\n(одна модель для генерации и оценки)"| FIX_COLLUSION["BLOCK:\nгенератор и судьи ДОЛЖНЫ\nиспользовать разные модели"]
732
+
733
+ CHECK_AP -->|"Missing rejection log\n(отказы не логируются)"| FIX_LOG["Каждый отказ → mutation-log\nс причиной"]
734
+
735
+ FIX_INFLATION & FIX_OVERFIT & FIX_CONFORM & FIX_RUNAWAY & FIX_PHANTOM & FIX_COLLUSION & FIX_LOG --> FLAG["Флагировать:\nWARNING label\nОстановить BTO loop\nОжидать human review"]
736
+ ```
737
+
738
+ ### Regression Rollback Flow
739
+
740
+ ```mermaid
741
+ flowchart TD
742
+ ROUND_N["Score раунда N"] --> REG_CHECK{"Score regression\n> 1.0 от baseline?"}
743
+
744
+ REG_CHECK -->|"Да"| ROLLBACK["ROLLBACK:\nвернуть к предыдущему best\nЗалогировать regression"]
745
+ REG_CHECK -->|"Нет"| DELTA_CHECK{"Delta ≤ 0.5\nуже 3 раунда?"}
746
+
747
+ DELTA_CHECK -->|"Да"| CONVERGED["CONVERGENCE:\nМаксимальное улучшение достигнуто.\nОстановка."]
748
+ DELTA_CHECK -->|"Нет"| CONTINUE["Продолжить следующий раунд"]
749
+
750
+ ROLLBACK --> REPORT_REG["Отчёт:\n⚠️ REGRESSION DETECTED\nRound 3 score: 6.8 (was 7.4 baseline)\nRolled back to: variant-round2-B\nFinal score: 7.4"]
751
+
752
+ CONVERGED --> REPORT_CONV["Отчёт:\n✅ CONVERGENCE\nRound 3 delta: 0.3 (< 0.5)\nRound 2 delta: 0.4 (< 0.5)\nRound 1 delta: 0.2 (< 0.5)\nBest found: X.X / 10"]
753
+ ```
754
+
755
+ ---
756
+
757
+ ## Flow: Human Checkpoint
758
+
759
+ ### Checkpoint после TEST
760
+
761
+ ```mermaid
762
+ flowchart TD
763
+ TEST_COMPLETE["TEST завершён"] --> DISPLAY_REPORT["Отобразить Evaluation Report"]
764
+
765
+ DISPLAY_REPORT --> CHECKPOINT_BANNER["═══════════════════════════════════════════
766
+ ⏸️ CHECKPOINT: BTO TEST Complete
767
+ Artifact: .claude/skills/my-skill/SKILL.md
768
+ Score: 7.4/10 — PASS
769
+
770
+ Per-dimension: METHODOLOGY 7.8 | DEPTH 6.9 | CORRECTNESS 8.1
771
+ USABILITY 7.2 | ROBUSTNESS 6.8
772
+
773
+ Files created: panel-verdict.md ✅
774
+ • «ок» — запустить OPTIMIZE
775
+ • «стоп» — завершить, оставить как есть
776
+ • «углубить [dimension]» — детальный анализ
777
+ ═══════════════════════════════════════════"]
778
+
779
+ CHECKPOINT_BANNER --> USER_RESPONSE{"Ответ\nпользователя"}
780
+
781
+ USER_RESPONSE -->|"ок"| RUN_OPTIMIZE["Запустить /bto-optimize"]
782
+ USER_RESPONSE -->|"стоп"| DONE["Завершено.\nРезультат сохранён."]
783
+ USER_RESPONSE -->|"углубить ROBUSTNESS"| DRILL_DOWN["Детальный анализ ROBUSTNESS:\nВзять judge-2.md (Critic)\nЭкстракт всех ROBUSTNESS-специфичных issues"]
784
+ USER_RESPONSE -->|"[конкретный feedback]"| ADJUST["Адаптировать,\nзатем снова TEST"]
785
+ ```
786
+
787
+ ### Checkpoint после OPTIMIZE
788
+
789
+ ```mermaid
790
+ flowchart TD
791
+ OPT_COMPLETE["OPTIMIZE завершён"] --> DISPLAY_OPT_REPORT["Отобразить Optimization Report"]
792
+
793
+ DISPLAY_OPT_REPORT --> OPT_CHECKPOINT["═══════════════════════════════════════════
794
+ 🔧 CHECKPOINT: BTO OPTIMIZE Complete
795
+ Artifact: .claude/skills/my-skill/SKILL.md
796
+ Rounds: 3 | Evaluations: 15
797
+
798
+ BEFORE → AFTER:
799
+ DEPTH: 6.9 → 8.0 (+1.1) ⬆️
800
+ ROBUSTNESS: 6.8 → 7.8 (+1.0) ⬆️
801
+ OVERALL: 7.4 → 8.0 (+0.6) ⬆️
802
+
803
+ Winning strategy: expand-depth + invert-critic (crossover)
804
+
805
+ Files created: optimization-report.md, winner.md ✅
806
+ • «да» — применить изменения к оригиналу
807
+ • «нет» — оставить оригинал
808
+ • «ещё раунд» — дополнительный раунд оптимизации
809
+ ═══════════════════════════════════════════"]
810
+
811
+ OPT_CHECKPOINT --> USER_OPT_RESPONSE{"Ответ\nпользователя"}
812
+
813
+ USER_OPT_RESPONSE -->|"да"| APPLY_WINNER["Перезаписать артефакт\nпобедившим вариантом"]
814
+ USER_OPT_RESPONSE -->|"нет"| KEEP_ORIG["Оставить оригинал.\noptimization-report.md сохранён."]
815
+ USER_OPT_RESPONSE -->|"ещё раунд"| EXTRA_ROUND["Дополнительный раунд:\nфокус на оставшихся слабых dimension"]
816
+
817
+ APPLY_WINNER --> FINAL_CHECKPOINT["Финальный checkpoint:\nBTO Complete ✅"]
818
+ ```
819
+
820
+ ### Обязательные checkpoints (из bto-quality-gates.md)
821
+
822
+ ```
823
+ НИКОГДА не авто-одобрять без human checkpoint:
824
+ ✓ После Layer 2 evaluation
825
+ ✓ После финального раунда оптимизации
826
+ ✓ Перед packaging/delivery артефакта
827
+
828
+ Исключение: Layer 0 rejections могут авто-ретраиться до 3 раз
829
+ перед эскалацией на человека.
830
+ ```
831
+
832
+ ---
833
+
834
+ ## Flow: Интеграция BTO в Keysarium пайплайн
835
+
836
+ ### Sequence Diagram: Keysarium + BTO
837
+
838
+ ```mermaid
839
+ sequenceDiagram
840
+ actor U as User
841
+ participant K as Claude (Keysarium)
842
+ participant BTO as Claude (BTO)
843
+ participant FS as File System
844
+
845
+ Note over K: ═══ Keysarium: Phase 0 ═══
846
+ K->>FS: Write researches/slug/00_product_discovery.md
847
+ K-->>U: Checkpoint 0: Discovery Complete
848
+
849
+ U->>K: "bto test"
850
+ K->>BTO: /bto-test researches/slug/00_product_discovery.md
851
+ BTO->>FS: Layer 0 checks
852
+ BTO->>BTO: Layer 2: панель судей (research artifact rubric)
853
+ BTO-->>K: Score: 7.2/10 — Top issues: [список]
854
+ BTO-->>U: TEST Report
855
+
856
+ U->>K: "ок, продолжаем"
857
+
858
+ Note over K: ═══ Keysarium: Phase 2 ═══
859
+ K->>FS: Write researches/slug/02_research_findings.md
860
+ K-->>U: Checkpoint 2: Research Complete
861
+
862
+ Note over K: ═══ Keysarium: Phase 5 ═══
863
+ K->>FS: Write 05..08_*.md
864
+ K-->>U: Checkpoint 5: Presentation Complete
865
+
866
+ U->>K: "bto optimize presentation"
867
+ K->>BTO: /bto-optimize researches/slug/05_presentation_content.md
868
+ BTO->>BTO: Baseline Layer 2: 6.8/10
869
+ BTO->>BTO: 3 раунда оптимизации
870
+ BTO-->>K: 7.6/10 (+0.8) — winner.md готов
871
+ BTO-->>U: OPTIMIZE Report
872
+ U->>BTO: "да"
873
+ BTO->>FS: Перезаписать 05_presentation_content.md
874
+
875
+ Note over K: ═══ Keysarium: Phase 6 ═══
876
+ K->>FS: Write README.md
877
+ K-->>U: Полный архив исследования
878
+ ```
879
+
880
+ ### Создание нового скилла через BTO в контексте Keysarium
881
+
882
+ ```mermaid
883
+ sequenceDiagram
884
+ actor DEV as Разработчик
885
+ participant BTO as Claude (BTO)
886
+ participant FS as File System
887
+
888
+ DEV->>BTO: /bto-build "skill for domain-specific task"
889
+
890
+ BTO->>BTO: BUILD DEEP mode (нечёткие требования)
891
+ BTO->>BTO: Загрузить explore skill
892
+ BTO-->>DEV: Кларификационные вопросы (5 вопросов)
893
+ DEV->>BTO: Ответы
894
+ BTO->>BTO: Requirements brief
895
+ BTO-->>DEV: Подтвердить requirements?
896
+ DEV->>BTO: "ок"
897
+
898
+ BTO->>FS: Создать .claude/skills/new-skill/SKILL.md
899
+ BTO->>FS: Создать modules/*.md, references/*.md, examples/*.md
900
+ BTO->>BTO: Self-review (Layer 0 inline)
901
+ BTO-->>DEV: BUILD Complete ✅
902
+
903
+ BTO->>BTO: Automatic /bto-test .claude/skills/new-skill/
904
+ BTO->>BTO: Layer 0 + Layer 1 + Layer 2
905
+ BTO-->>DEV: Score: 8.1/10 [PASS]
906
+ BTO-->>DEV: Checkpoint: применить / оптимизировать?
907
+
908
+ DEV->>BTO: "ок, применить"
909
+ BTO-->>DEV: BTO Complete ✅ — скилл готов к использованию в Keysarium
910
+
911
+ Note over DEV: Скилл теперь доступен в .claude/skills/new-skill/<br/>Использовать в /casarium через фазы
912
+ ```
913
+
914
+ ### BTO в CI/CD (только Layer 0)
915
+
916
+ Для автоматических проверок при коммите или в pipeline — использовать только Layer 0 (бесплатно):
917
+
918
+ ```
919
+ # Пример: проверка всех skills при изменении
920
+ /bto-test .claude/skills/ level=layer0
921
+
922
+ Вывод:
923
+ .claude/skills/bto/SKILL.md: 9/10 ✅
924
+ .claude/skills/explore/SKILL.md: 10/10 ✅
925
+ .claude/skills/my-new-skill/SKILL.md: 7/10 ❌ (CHECK-S4, CHECK-S10 failed)
926
+
927
+ Total: 2/3 passed
928
+ ```
929
+
930
+ ### Использование BTO для Harvest знаний
931
+
932
+ После завершения Keysarium исследования BTO помогает валидировать извлечённые паттерны:
933
+
934
+ ```mermaid
935
+ flowchart LR
936
+ RESEARCH["researches/slug/"] --> HARVEST["/harvest researches/slug/"]
937
+ HARVEST --> NEW_SKILL["Новый скилл в .claude/skills/new-pattern/"]
938
+ NEW_SKILL --> BTO_BUILD["/bto-build (refinement)"]
939
+ BTO_BUILD --> BTO_TEST["/bto-test"]
940
+ BTO_TEST --> BTO_OPT["/bto-optimize (если score < 8.0)"]
941
+ BTO_OPT --> TOOLKIT_UPDATE["Обновить TOOLKIT_HARVEST.md\n(скилл прошёл BTO = проверен)"]
942
+ ```
943
+
944
+ ---
945
+
946
+ ## Быстрый справочник команд
947
+
948
+ | Команда | Назначение | Минимальный вход | Стоимость |
949
+ |---------|-----------|-----------------|-----------|
950
+ | `/bto [path]` | Полный пайплайн BUILD→TEST→OPTIMIZE | Путь или описание | ~$0.15 |
951
+ | `/bto-build [description]` | Только генерация | Текстовое описание | ~$0.01 |
952
+ | `/bto-test [path]` | Только оценка (full) | Путь к артефакту | ~$0.01 |
953
+ | `/bto-test [path] level=layer0` | Только Layer 0 | Путь к артефакту | $0 |
954
+ | `/bto-test [path] level=layer1` | Layer 0 + haiku | Путь к артефакту | ~$0.001 |
955
+ | `/bto-optimize [path]` | Только оптимизация | Путь + baseline eval | ~$0.13 |
956
+
957
+ ## Частые сценарии использования
958
+
959
+ ```
960
+ # Быстрая проверка нового артефакта
961
+ /bto-test .claude/skills/new-skill/ level=layer1
962
+
963
+ # Полный цикл для нового скилла
964
+ /bto-build "создать skill для [задача]"
965
+
966
+ # Улучшение существующего слабого артефакта
967
+ /bto-optimize .claude/skills/weak-skill/SKILL.md
968
+
969
+ # Валидация research документа в Keysarium
970
+ /bto-test researches/my-case/02_research_findings.md
971
+
972
+ # Проверка всех skills (только структура, бесплатно)
973
+ /bto-test .claude/skills/ level=layer0
974
+
975
+ # Полный цикл для критического артефакта перед сдачей
976
+ /bto .claude/skills/important-skill/SKILL.md
977
+ ```