kodu 2.2.0 → 3.0.2

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 (234) hide show
  1. package/README.md +24 -3
  2. package/bin/kodu.js +40 -0
  3. package/package.json +12 -67
  4. package/scripts/install.js +68 -0
  5. package/scripts/postinstall.js +22 -0
  6. package/AGENTS.md +0 -214
  7. package/__tests__/core/fs/fs.service.test.ts +0 -72
  8. package/__tests__/core/registry/registry.service.test.ts +0 -82
  9. package/__tests__/shared/cleaner/cleaner.service.test.ts +0 -102
  10. package/__tests__/shared/git/git.service.test.ts +0 -84
  11. package/__tests__/shared/runbook/runbook.service.test.ts +0 -104
  12. package/__tests__/shared/tokenizer/tokenizer.service.test.ts +0 -45
  13. package/biome.json +0 -50
  14. package/dist/package.json +0 -96
  15. package/dist/src/app.module.d.ts +0 -2
  16. package/dist/src/app.module.js +0 -42
  17. package/dist/src/app.module.js.map +0 -1
  18. package/dist/src/commands/clean/clean.command.d.ts +0 -37
  19. package/dist/src/commands/clean/clean.command.js +0 -240
  20. package/dist/src/commands/clean/clean.command.js.map +0 -1
  21. package/dist/src/commands/clean/clean.module.d.ts +0 -2
  22. package/dist/src/commands/clean/clean.module.js +0 -26
  23. package/dist/src/commands/clean/clean.module.js.map +0 -1
  24. package/dist/src/commands/init/init.command.d.ts +0 -10
  25. package/dist/src/commands/init/init.command.js +0 -96
  26. package/dist/src/commands/init/init.command.js.map +0 -1
  27. package/dist/src/commands/init/init.module.d.ts +0 -2
  28. package/dist/src/commands/init/init.module.js +0 -22
  29. package/dist/src/commands/init/init.module.js.map +0 -1
  30. package/dist/src/commands/ops/ops-add.command.d.ts +0 -18
  31. package/dist/src/commands/ops/ops-add.command.js +0 -102
  32. package/dist/src/commands/ops/ops-add.command.js.map +0 -1
  33. package/dist/src/commands/ops/ops-init.command.d.ts +0 -22
  34. package/dist/src/commands/ops/ops-init.command.js +0 -130
  35. package/dist/src/commands/ops/ops-init.command.js.map +0 -1
  36. package/dist/src/commands/ops/ops-list.command.d.ts +0 -12
  37. package/dist/src/commands/ops/ops-list.command.js +0 -73
  38. package/dist/src/commands/ops/ops-list.command.js.map +0 -1
  39. package/dist/src/commands/ops/ops-path.command.d.ts +0 -9
  40. package/dist/src/commands/ops/ops-path.command.js +0 -52
  41. package/dist/src/commands/ops/ops-path.command.js.map +0 -1
  42. package/dist/src/commands/ops/ops-runbook.command.d.ts +0 -12
  43. package/dist/src/commands/ops/ops-runbook.command.js +0 -81
  44. package/dist/src/commands/ops/ops-runbook.command.js.map +0 -1
  45. package/dist/src/commands/ops/ops-status.command.d.ts +0 -11
  46. package/dist/src/commands/ops/ops-status.command.js +0 -62
  47. package/dist/src/commands/ops/ops-status.command.js.map +0 -1
  48. package/dist/src/commands/ops/ops-use.command.d.ts +0 -12
  49. package/dist/src/commands/ops/ops-use.command.js +0 -76
  50. package/dist/src/commands/ops/ops-use.command.js.map +0 -1
  51. package/dist/src/commands/ops/ops.command.d.ts +0 -7
  52. package/dist/src/commands/ops/ops.command.js +0 -56
  53. package/dist/src/commands/ops/ops.command.js.map +0 -1
  54. package/dist/src/commands/ops/ops.helpers.d.ts +0 -2
  55. package/dist/src/commands/ops/ops.helpers.js +0 -11
  56. package/dist/src/commands/ops/ops.helpers.js.map +0 -1
  57. package/dist/src/commands/ops/ops.module.d.ts +0 -2
  58. package/dist/src/commands/ops/ops.module.js +0 -36
  59. package/dist/src/commands/ops/ops.module.js.map +0 -1
  60. package/dist/src/commands/pack/pack.command.d.ts +0 -51
  61. package/dist/src/commands/pack/pack.command.js +0 -355
  62. package/dist/src/commands/pack/pack.command.js.map +0 -1
  63. package/dist/src/commands/pack/pack.module.d.ts +0 -2
  64. package/dist/src/commands/pack/pack.module.js +0 -27
  65. package/dist/src/commands/pack/pack.module.js.map +0 -1
  66. package/dist/src/core/config/config.module.d.ts +0 -2
  67. package/dist/src/core/config/config.module.js +0 -23
  68. package/dist/src/core/config/config.module.js.map +0 -1
  69. package/dist/src/core/config/config.schema.d.ts +0 -19
  70. package/dist/src/core/config/config.schema.js +0 -56
  71. package/dist/src/core/config/config.schema.js.map +0 -1
  72. package/dist/src/core/config/config.service.d.ts +0 -7
  73. package/dist/src/core/config/config.service.js +0 -49
  74. package/dist/src/core/config/config.service.js.map +0 -1
  75. package/dist/src/core/config/prompt.service.d.ts +0 -10
  76. package/dist/src/core/config/prompt.service.js +0 -80
  77. package/dist/src/core/config/prompt.service.js.map +0 -1
  78. package/dist/src/core/file-system/fs.module.d.ts +0 -2
  79. package/dist/src/core/file-system/fs.module.js +0 -21
  80. package/dist/src/core/file-system/fs.module.js.map +0 -1
  81. package/dist/src/core/file-system/fs.service.d.ts +0 -27
  82. package/dist/src/core/file-system/fs.service.js +0 -203
  83. package/dist/src/core/file-system/fs.service.js.map +0 -1
  84. package/dist/src/core/registry/registry.module.d.ts +0 -2
  85. package/dist/src/core/registry/registry.module.js +0 -22
  86. package/dist/src/core/registry/registry.module.js.map +0 -1
  87. package/dist/src/core/registry/registry.schema.d.ts +0 -24
  88. package/dist/src/core/registry/registry.schema.js +0 -21
  89. package/dist/src/core/registry/registry.schema.js.map +0 -1
  90. package/dist/src/core/registry/registry.service.d.ts +0 -16
  91. package/dist/src/core/registry/registry.service.js +0 -91
  92. package/dist/src/core/registry/registry.service.js.map +0 -1
  93. package/dist/src/core/ui/ui.module.d.ts +0 -2
  94. package/dist/src/core/ui/ui.module.js +0 -22
  95. package/dist/src/core/ui/ui.module.js.map +0 -1
  96. package/dist/src/core/ui/ui.service.d.ts +0 -22
  97. package/dist/src/core/ui/ui.service.js +0 -43
  98. package/dist/src/core/ui/ui.service.js.map +0 -1
  99. package/dist/src/main.d.ts +0 -2
  100. package/dist/src/main.js +0 -16
  101. package/dist/src/main.js.map +0 -1
  102. package/dist/src/shared/cleaner/cleaner.service.d.ts +0 -23
  103. package/dist/src/shared/cleaner/cleaner.service.js +0 -223
  104. package/dist/src/shared/cleaner/cleaner.service.js.map +0 -1
  105. package/dist/src/shared/cleaner/cleaner.types.d.ts +0 -21
  106. package/dist/src/shared/cleaner/cleaner.types.js +0 -3
  107. package/dist/src/shared/cleaner/cleaner.types.js.map +0 -1
  108. package/dist/src/shared/constants.d.ts +0 -4
  109. package/dist/src/shared/constants.js +0 -113
  110. package/dist/src/shared/constants.js.map +0 -1
  111. package/dist/src/shared/deps/deps.module.d.ts +0 -2
  112. package/dist/src/shared/deps/deps.module.js +0 -21
  113. package/dist/src/shared/deps/deps.module.js.map +0 -1
  114. package/dist/src/shared/deps/deps.service.d.ts +0 -15
  115. package/dist/src/shared/deps/deps.service.js +0 -114
  116. package/dist/src/shared/deps/deps.service.js.map +0 -1
  117. package/dist/src/shared/git/git.module.d.ts +0 -2
  118. package/dist/src/shared/git/git.module.js +0 -21
  119. package/dist/src/shared/git/git.module.js.map +0 -1
  120. package/dist/src/shared/git/git.service.d.ts +0 -5
  121. package/dist/src/shared/git/git.service.js +0 -56
  122. package/dist/src/shared/git/git.service.js.map +0 -1
  123. package/dist/src/shared/runbook/runbook.module.d.ts +0 -2
  124. package/dist/src/shared/runbook/runbook.module.js +0 -22
  125. package/dist/src/shared/runbook/runbook.module.js.map +0 -1
  126. package/dist/src/shared/runbook/runbook.service.d.ts +0 -20
  127. package/dist/src/shared/runbook/runbook.service.js +0 -118
  128. package/dist/src/shared/runbook/runbook.service.js.map +0 -1
  129. package/dist/src/shared/runbook/runbook.templates.d.ts +0 -6
  130. package/dist/src/shared/runbook/runbook.templates.js +0 -49
  131. package/dist/src/shared/runbook/runbook.templates.js.map +0 -1
  132. package/dist/src/shared/tokenizer/tokenizer.module.d.ts +0 -2
  133. package/dist/src/shared/tokenizer/tokenizer.module.js +0 -21
  134. package/dist/src/shared/tokenizer/tokenizer.module.js.map +0 -1
  135. package/dist/src/shared/tokenizer/tokenizer.service.d.ts +0 -10
  136. package/dist/src/shared/tokenizer/tokenizer.service.js +0 -36
  137. package/dist/src/shared/tokenizer/tokenizer.service.js.map +0 -1
  138. package/dist/tsconfig.build.tsbuildinfo +0 -1
  139. package/docs/todo.md +0 -7
  140. package/knip.json +0 -10
  141. package/kodu.json +0 -63
  142. package/kodu.schema.json +0 -100
  143. package/lefthook.yml +0 -11
  144. package/nest-cli.json +0 -8
  145. package/registry.schema.json +0 -39
  146. package/scripts/generate-json-schema.ts +0 -27
  147. package/skills/ac/SKILL.md +0 -239
  148. package/skills/al/SKILL.md +0 -98
  149. package/skills/audit/SKILL.md +0 -205
  150. package/skills/audit/audit-baseline-template.yml +0 -188
  151. package/skills/audit/runtime-detect.md +0 -64
  152. package/skills/audit/stacks/_generic.md +0 -41
  153. package/skills/audit/stacks/_registry.md +0 -47
  154. package/skills/audit/stacks/go.md +0 -66
  155. package/skills/audit/stacks/java.md +0 -44
  156. package/skills/audit/stacks/node.md +0 -57
  157. package/skills/audit/stacks/python.md +0 -45
  158. package/skills/audit/stacks/rust.md +0 -44
  159. package/skills/audit-api-contracts/SKILL.md +0 -201
  160. package/skills/audit-architecture/SKILL.md +0 -200
  161. package/skills/audit-bugs/SKILL.md +0 -226
  162. package/skills/audit-concurrency/SKILL.md +0 -197
  163. package/skills/audit-deployment/SKILL.md +0 -218
  164. package/skills/audit-docs/SKILL.md +0 -209
  165. package/skills/audit-errors/SKILL.md +0 -216
  166. package/skills/audit-logging/SKILL.md +0 -197
  167. package/skills/audit-matrix/SKILL.md +0 -245
  168. package/skills/audit-meta/SKILL.md +0 -120
  169. package/skills/audit-naming/SKILL.md +0 -200
  170. package/skills/audit-owasp/SKILL.md +0 -223
  171. package/skills/audit-performance/SKILL.md +0 -199
  172. package/skills/audit-reinvention/SKILL.md +0 -214
  173. package/skills/audit-secrets/SKILL.md +0 -198
  174. package/skills/audit-tests/SKILL.md +0 -210
  175. package/skills/audit-validation/SKILL.md +0 -206
  176. package/skills/audit-verify/SKILL.md +0 -139
  177. package/skills/audit-yagni/SKILL.md +0 -188
  178. package/skills/doc-gen/SKILL.md +0 -490
  179. package/skills/doc-gen/scripts/doc_gen.py +0 -911
  180. package/skills/generate-project-docs/SKILL.md +0 -380
  181. package/skills/implement-project/SKILL.md +0 -409
  182. package/skills/liteend-init/SKILL.md +0 -84
  183. package/skills/litefront-init/SKILL.md +0 -96
  184. package/skills/litefront-prototype/SKILL.md +0 -484
  185. package/skills/ops/SKILL.md +0 -94
  186. package/skills/post-call-task-builder/SKILL.md +0 -419
  187. package/skills/project-setup-standardizer/SKILL.md +0 -285
  188. package/skills/skills-best-practices/SKILL.md +0 -415
  189. package/skills/start/SKILL.md +0 -319
  190. package/skills/tech-blueprint/SKILL.md +0 -890
  191. package/skills/tech-blueprint/scripts/blueprint_validator.py +0 -417
  192. package/src/app.module.ts +0 -29
  193. package/src/commands/clean/clean.command.ts +0 -235
  194. package/src/commands/clean/clean.module.ts +0 -13
  195. package/src/commands/init/init.command.ts +0 -92
  196. package/src/commands/init/init.module.ts +0 -9
  197. package/src/commands/ops/ops-add.command.ts +0 -83
  198. package/src/commands/ops/ops-init.command.ts +0 -125
  199. package/src/commands/ops/ops-list.command.ts +0 -57
  200. package/src/commands/ops/ops-path.command.ts +0 -38
  201. package/src/commands/ops/ops-runbook.command.ts +0 -74
  202. package/src/commands/ops/ops-status.command.ts +0 -47
  203. package/src/commands/ops/ops-use.command.ts +0 -76
  204. package/src/commands/ops/ops.command.ts +0 -42
  205. package/src/commands/ops/ops.helpers.ts +0 -20
  206. package/src/commands/ops/ops.module.ts +0 -23
  207. package/src/commands/pack/pack.command.ts +0 -347
  208. package/src/commands/pack/pack.module.ts +0 -14
  209. package/src/core/config/config.module.ts +0 -10
  210. package/src/core/config/config.schema.ts +0 -58
  211. package/src/core/config/config.service.ts +0 -43
  212. package/src/core/config/prompt.service.ts +0 -80
  213. package/src/core/file-system/fs.module.ts +0 -8
  214. package/src/core/file-system/fs.service.ts +0 -248
  215. package/src/core/registry/registry.module.ts +0 -9
  216. package/src/core/registry/registry.schema.ts +0 -46
  217. package/src/core/registry/registry.service.ts +0 -128
  218. package/src/core/ui/ui.module.ts +0 -9
  219. package/src/core/ui/ui.service.ts +0 -39
  220. package/src/main.ts +0 -12
  221. package/src/shared/cleaner/cleaner.service.ts +0 -289
  222. package/src/shared/cleaner/cleaner.types.ts +0 -23
  223. package/src/shared/constants.ts +0 -118
  224. package/src/shared/deps/deps.module.ts +0 -8
  225. package/src/shared/deps/deps.service.ts +0 -175
  226. package/src/shared/git/git.module.ts +0 -8
  227. package/src/shared/git/git.service.ts +0 -47
  228. package/src/shared/runbook/runbook.module.ts +0 -9
  229. package/src/shared/runbook/runbook.service.ts +0 -164
  230. package/src/shared/runbook/runbook.templates.ts +0 -66
  231. package/src/shared/tokenizer/tokenizer.module.ts +0 -8
  232. package/src/shared/tokenizer/tokenizer.service.ts +0 -30
  233. package/tsconfig.build.json +0 -7
  234. package/tsconfig.json +0 -28
@@ -1,319 +0,0 @@
1
- ---
2
- name: start
3
- description: Единая точка входа для разработки продукта с нуля. Определяет текущее состояние проекта, объясняет что происходит на каждом шаге и вызывает нужные скиллы вместо пользователя. Запускай первым — этот скилл управляет всем. Другие скиллы (doc-gen, tech-blueprint, implement-project и т.д.) вызывать напрямую не нужно.
4
- license: MIT
5
- compatibility: opencode
6
- metadata:
7
- level: multi
8
- output: docs/ + prototype/ + blueprint/ + projects/
9
- ---
10
-
11
- ## Назначение
12
-
13
- Этот скилл — **единственный**, с которым нужно взаимодействовать. Он ведёт через весь конвейер разработки, вызывая остальные скиллы в нужный момент:
14
-
15
- ```
16
- [1] Документация → doc-gen → docs/<name>/
17
- [2] Прототип → litefront-prototype → prototype/ (рекомендуется, не обязателен)
18
- [3] ТЗ → tech-blueprint → blueprint/<name>/3_TECH_BLUEPRINT/
19
- [4] Реализация → implement-project → projects/<name>/
20
- ```
21
-
22
- Каждый этап создаёт артефакты для следующего. Не нужно знать как работают другие скиллы.
23
-
24
- ---
25
-
26
- ## При первом запуске
27
-
28
- 1. Определить состояние проекта (см. «Определение состояния»)
29
- 2. Если ни одного проекта нет → объяснить конвейер, спросить название и описание идеи
30
- 3. Если проект найден → показать статус и предложить продолжить
31
-
32
- **Объяснение для нового пользователя (сказать один раз в начале):**
33
-
34
- > Разработка продукта проходит 4 этапа:
35
- >
36
- > **1. Документация** — опишем продукт: зачем, для кого, из чего состоит.
37
- > Результат: VISION.md (цели) + SPEC.md (требования и сценарии).
38
- >
39
- > **2. Прототип** — создадим кликабельный UI-макет. Все данные симулируются,
40
- > бэкенд не нужен. Помогает проверить UX до написания кода.
41
- >
42
- > **3. Техническое задание** — спроектируем базу данных, GraphQL API
43
- > и архитектуру фронтенда и бэкенда. 5 документов.
44
- >
45
- > **4. Реализация** — напишем полный рабочий проект с тестами.
46
- >
47
- > Перед переходом к каждому следующему этапу я буду ждать вашего «продолжить».
48
-
49
- ---
50
-
51
- ## Структура workspace
52
-
53
- ```
54
- docs/<ИмяПроекта>/ ← [Этап 1] продуктовая документация
55
- ├── INDEX.md
56
- ├── 1_PRODUCT_VISION/VISION.md
57
- └── 2_PRODUCT_SPEC/SPEC.md
58
-
59
- prototype/ ← [Этап 2] UI-прототип (общий для всех проектов)
60
- └── src/...
61
-
62
- blueprint/<ИмяПроекта>/ ← [Этап 3] техническое задание
63
- └── 3_TECH_BLUEPRINT/
64
- ├── IMPLEMENTATION_GUIDE.md
65
- ├── DATABASE_MODEL.md
66
- ├── API_CONTRACTS.md
67
- ├── ARCHITECTURE.md
68
- └── TESTING_PLAN.md
69
-
70
- projects/<ИмяПроекта>/ ← [Этап 4] реализация
71
- ├── backend/
72
- └── frontend/
73
- ```
74
-
75
- ---
76
-
77
- ## Определение состояния проекта
78
-
79
- Проверить наличие файлов (bash):
80
-
81
- ```bash
82
- # Stage 1 завершён:
83
- test -f docs/<name>/2_PRODUCT_SPEC/SPEC.md
84
-
85
- # Stage 2 завершён:
86
- test -d prototype/src
87
-
88
- # Stage 3 создан (файлы есть):
89
- test -f blueprint/<name>/3_TECH_BLUEPRINT/IMPLEMENTATION_GUIDE.md
90
-
91
- # Stage 3 валиден (запустить и посмотреть на exit code):
92
- python3 ~/.config/opencode/skills/tech-blueprint/scripts/blueprint_validator.py \
93
- validate "<name>" --output ./blueprint
94
-
95
- # Stage 4 завершён:
96
- test -d projects/<name>/backend/src && test -d projects/<name>/frontend/src
97
- ```
98
-
99
- **Несколько проектов:** если в `docs/` найдено более одной папки — показать список и спросить с каким работаем.
100
-
101
- **Консистентность:** если `docs/<name>/SPEC.md` новее чем `blueprint/<name>/3_TECH_BLUEPRINT/DATABASE_MODEL.md` — предупредить:
102
- > ⚠️ SPEC.md изменялся после создания ТЗ. Рекомендуется пересоздать ТЗ командой «пересоздать ТЗ».
103
-
104
- ---
105
-
106
- ## Формат вывода статуса
107
-
108
- При запросе «статус» / «где мы» / «прогресс»:
109
-
110
- ```
111
- ## Проект: <ИмяПроекта>
112
-
113
- | Этап | Статус | Детали |
114
- |------|--------|--------|
115
- | 1. Документация | ✅ Готово | docs/<name>/SPEC.md |
116
- | 2. Прототип | ✅ Готово | prototype/src/ |
117
- | 3. ТЗ | ⚠️ Нужны правки | blueprint_validator: 2 ошибки |
118
- | 4. Реализация | ⏳ Не начата | — |
119
-
120
- ➡️ Следующий шаг: исправить ошибки ТЗ → сказать «валидируй» → затем «продолжить».
121
- ```
122
-
123
- Статусы: `✅ Готово` / `⚠️ Нужны правки` / `🔄 В процессе` / `⏳ Не начато`
124
-
125
- ---
126
-
127
- ## Этап 1: Документация (doc-gen)
128
-
129
- **Сказать перед запуском:**
130
- > Начинаем с описания продукта. Я буду задавать вопросы — чем точнее вы опишете
131
- > идею, тем точнее получится документ. Обычно занимает 5-10 минут диалога.
132
-
133
- **Действие:** запустить скилл `doc-gen`
134
- (`~/.config/opencode/skills/doc-gen/SKILL.md`)
135
-
136
- Выходные документы должны лежать в `docs/<ИмяПроекта>/`.
137
-
138
- **После завершения — показать краткое резюме:**
139
- ```
140
- ✅ Документация создана: docs/<name>/
141
-
142
- Ключевые сущности (из SPEC.md §Сущности): <список>
143
- Ключевые операции: <3-5 операций>
144
- Страницы: <список>
145
- Роли пользователей: <список>
146
- ```
147
-
148
- **Ворота ревью — ждать подтверждения:**
149
- > Прочитайте docs/<name>/2_PRODUCT_SPEC/SPEC.md.
150
- > Все ли сущности и операции описаны верно?
151
- > - Нужны правки → опишите что изменить, я обновлю
152
- > - Всё верно → скажите **«продолжить»**
153
-
154
- ---
155
-
156
- ## Этап 2: Прототип (litefront-prototype) — рекомендуется
157
-
158
- **Сказать перед запуском:**
159
- > Создадим кликабельный UI-прототип — все страницы будут работать,
160
- > но данные симулируются (без реального бэкенда).
161
- > Поможет визуально проверить SPEC.md и уточнить UX до написания кода.
162
- >
163
- > Этот этап можно пропустить — скажите **«пропустить»**, тогда ТЗ
164
- > будет создаваться только по тексту SPEC.md.
165
-
166
- **Действие:** запустить скилл `litefront-prototype`
167
- (`~/.config/opencode/skills/litefront-prototype/SKILL.md`)
168
-
169
- **После завершения:**
170
- ```
171
- ✅ Прототип создан: prototype/
172
-
173
- Запуск: cd prototype && npm run start:dev → http://localhost:3000
174
-
175
- Реализованные страницы: <список из прототипа>
176
- ```
177
-
178
- **Ворота ревью — ждать подтверждения:**
179
- > Запустите прототип и проверьте все страницы и переходы.
180
- > - Нужны изменения в UI → опишите, обновлю прототип
181
- > - Нужно уточнить SPEC.md → скажите **«назад к документации»**
182
- > - Всё верно → скажите **«продолжить»**
183
-
184
- ---
185
-
186
- ## Этап 3: Техническое задание (tech-blueprint)
187
-
188
- **Сказать перед запуском:**
189
- > Создаём 5 технических документов — точное описание как будет построен проект:
190
- > - **DATABASE_MODEL.md** — схема БД (Prisma ORM, PostgreSQL)
191
- > - **API_CONTRACTS.md** — GraphQL API: операции, типы, права доступа
192
- > - **ARCHITECTURE.md** — NestJS-модули и FSD-слайсы фронтенда
193
- > - **TESTING_PLAN.md** — конкретные тест-сценарии
194
- > - **IMPLEMENTATION_GUIDE.md** — руководство разработчика: стек, что уже готово, команды
195
- >
196
- > После генерации документы автоматически проверяются валидатором на 9 критериев.
197
-
198
- **Действие:** запустить скилл `tech-blueprint`
199
- (`~/.config/opencode/skills/tech-blueprint/SKILL.md`)
200
-
201
- **После завершения — запустить валидатор:**
202
- ```bash
203
- python3 ~/.config/opencode/skills/tech-blueprint/scripts/blueprint_validator.py \
204
- validate "<name>" --output ./blueprint
205
- ```
206
-
207
- Если есть ошибки → **исправить перед тем как показывать пользователю** (не переходить к следующему этапу с ошибками).
208
-
209
- **После успешной валидации — показать резюме:**
210
- ```
211
- ✅ ТЗ создано и валидно: blueprint/<name>/3_TECH_BLUEPRINT/
212
-
213
- Prisma-модели: <список>
214
- GraphQL-операции по доменам:
215
- <Домен 1>: query1, mutation1
216
- <Домен 2>: query2, mutation2
217
- NestJS-модули для реализации: <список>
218
- Новые FSD-слайсы: <список (без boilerplate-слайсов)>
219
- ```
220
-
221
- **Ворота ревью — ждать подтверждения:**
222
- > Просмотрите ТЗ, особенно DATABASE_MODEL.md и API_CONTRACTS.md.
223
- > - Хотите изменить → правьте файлы в blueprint/<name>/3_TECH_BLUEPRINT/ и скажите **«валидируй»**
224
- > - Хотите полностью пересоздать → скажите **«пересоздать ТЗ»**
225
- > - Всё верно → скажите **«продолжить»**
226
-
227
- ---
228
-
229
- ## Этап 4: Реализация (implement-project)
230
-
231
- **Сказать перед запуском:**
232
- > Финальный и самый длительный этап — полная реализация по утверждённому ТЗ.
233
- > По завершении:
234
- > - projects/<name>/backend/ — работающий NestJS API
235
- > - projects/<name>/frontend/ — React SPA
236
- > - все тесты из TESTING_PLAN.md реализованы
237
- > - npm run check && npm run test:all зелёные в обоих проектах
238
-
239
- **Финальная проверка перед запуском:**
240
- - [ ] SPEC.md утверждён пользователем
241
- - [ ] Прототип просмотрен (или явно пропущен)
242
- - [ ] ТЗ прошло валидацию без ошибок (`blueprint_validator.py` → exit 0)
243
-
244
- Если хотя бы один пункт не выполнен → предупредить и спросить подтверждение:
245
- > ⚠️ Рекомендую сначала устранить [проблему]. Продолжить всё равно? («да» / «нет»)
246
-
247
- **Действие:** запустить скилл `implement-project`
248
- (`~/.config/opencode/skills/implement-project/SKILL.md`)
249
-
250
- **После завершения:**
251
- ```
252
- 🎉 Проект реализован!
253
-
254
- Запуск бэкенда:
255
- cd projects/<name>/backend && npm run start:dev
256
-
257
- Запуск фронтенда:
258
- cd projects/<name>/frontend && npm run start:dev
259
-
260
- Все проверки: npm run check && npm run test:all → ✅
261
-
262
- Что дальше:
263
- 1. Настроить OIDC-провайдер (Logto/Keycloak) в .env обоих проектов
264
- 2. Поднять PostgreSQL + Redis (docker compose up -d)
265
- 3. npm run db:migrations:apply
266
- ```
267
-
268
- ---
269
-
270
- ## Все распознаваемые команды
271
-
272
- | Команда | Действие |
273
- |---------|---------|
274
- | «начать», «старт», «новый проект» | Определить состояние → начать или продолжить |
275
- | «статус», «где мы», «прогресс» | Таблица состояния всех 4 этапов |
276
- | «продолжить», «go», «следующий шаг» | Выполнить следующий незавершённый этап |
277
- | «пропустить» | Пропустить прототип (только для этапа 2) |
278
- | «назад к документации» | Повторно запустить doc-gen |
279
- | «пересоздать прототип» | Повторно запустить litefront-prototype |
280
- | «пересоздать ТЗ» | Повторно запустить tech-blueprint |
281
- | «валидируй», «проверь ТЗ» | Запустить blueprint_validator → показать результат |
282
- | «покажи документы» | Перечислить все созданные файлы с путями |
283
- | «как запустить» | Команды запуска для текущего состояния проекта |
284
- | «что такое [скилл]» | Объяснить назначение конкретного скилла |
285
- | «помощь», «help» | Показать эту таблицу |
286
-
287
- ---
288
-
289
- ## Обработка ошибок
290
-
291
- **Документация не отражает идею:**
292
- → Описание правок от пользователя → обновить SPEC.md → показать что изменилось
293
-
294
- **Прототип не запускается:**
295
- → `cd prototype && npm install && npm run start:dev` → показать полный текст ошибки
296
-
297
- **Ошибки blueprint_validator:**
298
- → Показать каждую ошибку + объяснение → исправить автоматически где возможно → повторить валидацию
299
-
300
- **SPEC.md обновлён после создания ТЗ:**
301
- → Предупредить об устаревании → предложить «пересоздать ТЗ»
302
-
303
- **Тесты не проходят:**
304
- → Показать failing tests → предложить исправить → повторить `npm run test:all`
305
-
306
- **Незнакомый вопрос пользователя:**
307
- → Ответить в контексте текущего этапа + подсказать следующий шаг
308
-
309
- ---
310
-
311
- ## Ключевые принципы поведения
312
-
313
- 1. **Никогда не переходить к следующему этапу без явного «продолжить»** — всегда ждать
314
- 2. **Объяснять ЧТО и ЗАЧЕМ** перед каждым действием — один абзац, без лишних деталей
315
- 3. **Показывать прогресс**: «Этап 2 из 4 — Прототип» в начале каждого блока
316
- 4. **При ошибке — не продолжать**: исправить → проверить → только потом вперёд
317
- 5. **Краткие резюме**: 5-10 пунктов ключевых сущностей/операций — не пересказывать документ целиком
318
- 6. **Один вопрос за раз** — не перегружать пользователя опросником
319
- 7. **Помнить об ограничениях boilerplate** — не предлагать реализовывать уже готовое (`Profile`, `features/auth`, `pages/404`)