code-ai-installer 4.0.1-a → 4.0.1-c

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 (129) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +5 -5
  3. package/dist/catalog.js +1 -1
  4. package/dist/contentTransformer.d.ts +1 -1
  5. package/dist/contentTransformer.js +39 -0
  6. package/dist/index.js +10 -5
  7. package/dist/mcp/cli.js +4 -4
  8. package/dist/mcp/config.js +8 -6
  9. package/dist/mcp/scorecard.d.ts +2 -2
  10. package/dist/mcp/task_state.d.ts +2 -2
  11. package/dist/mcp/tools/advance_gate.js +1 -1
  12. package/dist/mcp/tools/classify_gate.d.ts +2 -2
  13. package/dist/mcp/tools/classify_gate.js +2 -2
  14. package/dist/mcp/tools/load_role.d.ts +2 -2
  15. package/dist/mcp/tools/load_role.js +2 -2
  16. package/dist/mcp/tools/report_exception.d.ts +3 -3
  17. package/dist/mcp/tools/report_exception.js +4 -4
  18. package/dist/mcp/tools/request_decision.d.ts +3 -3
  19. package/dist/mcp/tools/request_decision.js +5 -5
  20. package/dist/mcp/tools/review_proposal.d.ts +1 -1
  21. package/dist/mcp/tools/review_proposal.js +6 -6
  22. package/dist/mcp/tools/sign_off.d.ts +2 -2
  23. package/dist/mcp/tools/sign_off.js +7 -7
  24. package/dist/mcp/tools/verify_claim.d.ts +1 -1
  25. package/dist/mcp/tools/verify_claim.js +1 -1
  26. package/dist/mcp_setup.d.ts +85 -29
  27. package/dist/mcp_setup.js +184 -62
  28. package/dist/platforms/adapters.js +54 -19
  29. package/dist/shared/frontmatter.js +1 -1
  30. package/dist/shared/persona.d.ts +1 -1
  31. package/dist/shared/persona.js +1 -1
  32. package/dist/shared/pipeline.d.ts +10 -10
  33. package/dist/shared/pipeline.js +7 -7
  34. package/dist/shared/tools.d.ts +15 -15
  35. package/dist/shared/tools.js +3 -3
  36. package/dist/shared/vocabulary.d.ts +4 -4
  37. package/dist/shared/vocabulary.js +4 -4
  38. package/dist/types.d.ts +1 -1
  39. package/domains/analytics/.agents/workflows/analytics-pipeline-rules.md +13 -3
  40. package/domains/analytics/.agents/workflows/analyze.md +1 -0
  41. package/domains/analytics/.agents/workflows/quick-insight.md +1 -0
  42. package/domains/analytics/locales/en/.agents/workflows/analytics-pipeline-rules.md +13 -3
  43. package/domains/analytics/locales/en/.agents/workflows/analyze.md +1 -0
  44. package/domains/analytics/locales/en/.agents/workflows/quick-insight.md +1 -0
  45. package/domains/analytics/locales/en/agents/interviewer.md +2 -1
  46. package/domains/analytics/locales/en/agents/layouter.md +2 -1
  47. package/domains/analytics/locales/en/agents/mediator.md +2 -1
  48. package/domains/analytics/locales/en/agents/researcher.md +2 -1
  49. package/domains/analytics/locales/en/agents/strategist.md +2 -1
  50. package/domains/analytics/pipeline.yaml +10 -10
  51. package/domains/content/.agents/skills/content-release-gate/SKILL.md +3 -5
  52. package/domains/content/.agents/workflows/content-pipeline-rules.md +14 -11
  53. package/domains/content/.agents/workflows/edit-content.md +0 -1
  54. package/domains/content/.agents/workflows/quick-post.md +0 -1
  55. package/domains/content/.agents/workflows/start-content.md +0 -1
  56. package/domains/content/agents/conductor.md +1 -2
  57. package/domains/content/locales/en/.agents/skills/content-release-gate/SKILL.md +3 -5
  58. package/domains/content/locales/en/.agents/workflows/content-pipeline-rules.md +14 -11
  59. package/domains/content/locales/en/.agents/workflows/edit-content.md +0 -1
  60. package/domains/content/locales/en/.agents/workflows/quick-post.md +0 -1
  61. package/domains/content/locales/en/.agents/workflows/start-content.md +0 -1
  62. package/domains/content/locales/en/agents/conductor.md +1 -2
  63. package/domains/content/pipeline.yaml +8 -8
  64. package/domains/development/.agents/skills/handoff/SKILL.md +276 -276
  65. package/domains/development/.agents/skills/lava-flow-legacy-detection/SKILL.md +197 -197
  66. package/domains/development/.agents/skills/mcp-integration/SKILL.md +211 -211
  67. package/domains/development/.agents/skills/qa-test-data-management/SKILL.md +250 -250
  68. package/domains/development/.agents/workflows/bugfix.md +16 -82
  69. package/domains/development/.agents/workflows/hotfix.md +16 -66
  70. package/domains/development/.agents/workflows/pipeline-rules.md +49 -132
  71. package/domains/development/.agents/workflows/start-task.md +17 -121
  72. package/domains/development/AGENTS.md +8 -3
  73. package/domains/development/agents/architect.md +247 -247
  74. package/domains/development/agents/conductor.md +363 -363
  75. package/domains/development/agents/devops.md +297 -297
  76. package/domains/development/agents/reviewer.md +293 -293
  77. package/domains/development/agents/senior_full_stack.md +295 -295
  78. package/domains/development/agents/tester.md +395 -395
  79. package/domains/development/locales/en/.agents/skills/handoff/SKILL.md +276 -276
  80. package/domains/development/locales/en/.agents/skills/lava-flow-legacy-detection/SKILL.md +197 -197
  81. package/domains/development/locales/en/.agents/skills/mcp-integration/SKILL.md +211 -211
  82. package/domains/development/locales/en/.agents/skills/qa-test-data-management/SKILL.md +250 -250
  83. package/domains/development/locales/en/.agents/workflows/bugfix.md +16 -82
  84. package/domains/development/locales/en/.agents/workflows/hotfix.md +15 -65
  85. package/domains/development/locales/en/.agents/workflows/pipeline-rules.md +48 -131
  86. package/domains/development/locales/en/.agents/workflows/start-task.md +17 -121
  87. package/domains/development/locales/en/AGENTS.md +15 -0
  88. package/domains/development/locales/en/agents/architect.md +247 -247
  89. package/domains/development/locales/en/agents/conductor.md +363 -363
  90. package/domains/development/locales/en/agents/devops.md +297 -297
  91. package/domains/development/locales/en/agents/reviewer.md +293 -293
  92. package/domains/development/locales/en/agents/senior_full_stack.md +295 -295
  93. package/domains/development/locales/en/agents/tester.md +395 -395
  94. package/domains/development/locales/en/prompt-examples.md +34 -120
  95. package/domains/development/pipeline.yaml +150 -135
  96. package/domains/development/prompt-examples.md +33 -119
  97. package/domains/product/.agents/workflows/product-pipeline-rules.md +13 -2
  98. package/domains/product/.agents/workflows/quick-pm.md +1 -1
  99. package/domains/product/.agents/workflows/shape-prioritize.md +1 -0
  100. package/domains/product/.agents/workflows/ship-right-thing.md +1 -0
  101. package/domains/product/.agents/workflows/spec.md +1 -0
  102. package/domains/product/agents/tech_lead.md +1 -1
  103. package/domains/product/locales/en/.agents/workflows/product-pipeline-rules.md +13 -2
  104. package/domains/product/locales/en/.agents/workflows/quick-pm.md +1 -1
  105. package/domains/product/locales/en/.agents/workflows/shape-prioritize.md +1 -0
  106. package/domains/product/locales/en/.agents/workflows/ship-right-thing.md +1 -0
  107. package/domains/product/locales/en/.agents/workflows/spec.md +1 -0
  108. package/domains/product/locales/en/agents/conductor.md +2 -2
  109. package/domains/product/locales/en/agents/data_analyst.md +2 -1
  110. package/domains/product/locales/en/agents/designer.md +2 -1
  111. package/domains/product/locales/en/agents/discovery.md +2 -1
  112. package/domains/product/locales/en/agents/layouter.md +2 -1
  113. package/domains/product/locales/en/agents/mediator.md +2 -1
  114. package/domains/product/locales/en/agents/pm.md +2 -1
  115. package/domains/product/locales/en/agents/product_strategist.md +2 -1
  116. package/domains/product/locales/en/agents/tech_lead.md +3 -2
  117. package/domains/product/locales/en/agents/ux_designer.md +2 -1
  118. package/domains/product/pipeline.yaml +12 -12
  119. package/package.json +5 -5
  120. package/domains/analytics/CONTEXT.md +0 -25
  121. package/domains/analytics/locales/en/CONTEXT.md +0 -25
  122. package/domains/content/CONTEXT.md +0 -19
  123. package/domains/content/locales/en/CONTEXT.md +0 -19
  124. package/domains/development/.agents/workflows/auto-restart-containers.md +0 -56
  125. package/domains/development/CONTEXT.md +0 -62
  126. package/domains/development/locales/en/.agents/workflows/auto-restart-containers.md +0 -24
  127. package/domains/development/locales/en/CONTEXT.md +0 -62
  128. package/domains/product/CONTEXT.md +0 -40
  129. package/domains/product/locales/en/CONTEXT.md +0 -40
@@ -1,211 +1,211 @@
1
- ---
2
- name: mcp-integration
3
- description: "Когда какой MCP-инструмент звать и в каком порядке — gate ritual, recording discipline, action tools для всех агентов разработки."
4
- type: mandatory
5
- domain: development
6
- owners:
7
- - architect
8
- - conductor
9
- - devops
10
- - product_manager
11
- - reviewer
12
- - senior_full_stack
13
- - tester
14
- - ux_ui_designer
15
- gates:
16
- - PM
17
- - UX
18
- - ARCH
19
- - DEV
20
- - REV
21
- - OPS
22
- - TEST
23
- - RG
24
- tech:
25
- - mcp
26
- topic:
27
- - general
28
- triggers:
29
- - record_decision
30
- - request_decision
31
- - classify_gate
32
- - advance_gate
33
- - submit_artifact
34
- - list_skills
35
- - get_skill
36
- - load_role
37
- - MCP
38
- - code-ai MCP
39
- - gate flow
40
- related:
41
- - karpathy-guidelines
42
- - code-review-checklist
43
- - adr-log
44
- budget_lines: 250
45
- schema_version: 1
46
- license: MIT
47
- ---
48
-
49
-
50
- # MCP Integration
51
-
52
- Правила работы с code-ai MCP-сервером для всех агентов разработки. Когда какой инструмент звать, в каком порядке, что записывать, какие ошибки не совершать.
53
-
54
- > Если сервер MCP в `.mcp.json` не зарегистрирован — fall back на чтение файлов с пометкой `report_exception`. Не молчи.
55
-
56
- ---
57
-
58
- ## 1. Когда применять
59
-
60
- **Триггеры:** любая задача в development-домене, которая проходит через gates (PM/UX/ARCH/DEV/REV/OPS/TEST/RG). То есть — почти любая.
61
-
62
- **Вывод:** инструмент вызван корректно, его результат использован в текущей фазе, при необходимости записан через `record_decision` или `submit_artifact`.
63
-
64
- ---
65
-
66
- ## 2. Что такое code-ai MCP
67
-
68
- Локальный MCP-сервер (stdio transport) с 26 инструментами. Состояние хранит в `.code-ai/state/` (JsonlStore — append-only, файлы `decisions.jsonl`, `exceptions.jsonl`, `artifacts/<task>.jsonl`). MempalaceStore — опциональное зеркало, не источник истины.
69
-
70
- Сервер регистрируется инсталлятором (`.mcp.json` пишется автоматически на `--target=claude`). Если инсталлятор не отработал — записи можно делать вручную в `.code-ai/state/`, но MCP-инструменты предпочтительнее: они валидируют ввод через zod.
71
-
72
- ---
73
-
74
- ## 3. Группа 1 — Навигация (4 инструмента)
75
-
76
- **`list_skills`** — получить полный список скилов домена с фронтматтером. Зови в начале задачи чтобы понять что у тебя есть. Парсер пермиссивный — пропускает скилы со сломанным фронтматтером (см. `run_drift_audit` если что-то ожидалось но не появилось).
77
-
78
- **`get_skill`** — получить SKILL.md по имени. Используй вместо ручного чтения файла — get_skill даёт фронтматтер уже распарсенным и тело markdown отдельно.
79
-
80
- **`load_role`** — получить профиль агента (промпт + список скилов которые он может звать). Зови первым делом когда задача попадает к тебе на роль.
81
-
82
- **`regenerate_manifest`** — пересборка `manifest.json` после правок скилов. Зови когда добавил/удалил/переименовал скилл.
83
-
84
- **Порядок при старте задачи:** `load_role` → `list_skills` → выбираешь нужные → `get_skill` по каждому.
85
-
86
- ---
87
-
88
- ## 4. Группа 2 — Gate flow (5 инструментов)
89
-
90
- Это ритуал прохождения gate. **Каждый gate** обязан пройти эти шаги в порядке.
91
-
92
- **`classify_gate`** — классифицируешь задачу перед началом работы над gate. Возвращает `auto_resolve` (зелёный путь, артефакт всё равно нужен для аудита), `fork` (нужно решение DEN — запросишь через `request_decision`) или `exception` (автоматическая проверка упала — пишешь breakdown в exceptions).
93
-
94
- **`request_decision`** — запрашиваешь решение у DEN. Создаёт ADR-PENDING-* в decisions.jsonl. Должен быть вызван **перед** `record_decision` если решение требует DEN-approve. Не молчи и не выбирай сам — это нарушение `karpathy-guidelines §1`.
95
-
96
- **`current_gate`** — где сейчас находится задача. Полезно когда context потерялся или ты переключился между задачами.
97
-
98
- **`advance_gate`** — продвинуть задачу в следующий gate. **Только после** того как все artefacts текущего gate submitted и sign_off проставлен.
99
-
100
- **`sign_off`** — подпись текущего gate. Sign_off без предыдущего `submit_artifact` — anti-pattern (см. §8). Сначала результат, потом подпись.
101
-
102
- **Канонический ритуал gate:** `current_gate` (понять где ты) → `classify_gate` → если fork: `request_decision` → ждёшь → `record_decision` → продолжаешь → `submit_artifact` → `verify_claim` (где применимо) → `sign_off` → `advance_gate`.
103
-
104
- ---
105
-
106
- ## 5. Группа 3 — Действия (15 инструментов)
107
-
108
- Инструменты которые что-то **делают** в проекте. Каждый отвечает на один DoD-вопрос.
109
-
110
- **`run_tests`** — vitest/jest/pytest wrapper. Зови когда DoD говорит "тесты зелёные". Возвращает `numPassedTests`, `numFailedTests`, `failureMessages`. Используется в `verify_claim` для `claim_type=tests_pass`.
111
-
112
- **`check_lint`** — проверка линтером. Возвращает `clean: true/false` плюс список lint-failures. DoD claim_type `lint_clean`.
113
-
114
- **`build`** — `tsc` или эквивалент. Парсит `TSxxxx` ошибки. DoD claim_type `build_succeeds`.
115
-
116
- **`apply_diff`** — применить git diff из стдина. Чище чем ручная правка через много вызовов Edit/Write — особенно для много-файловых патчей.
117
-
118
- **`git_commit`** — закоммитить (с путями или `-a`). Использует tempfile для сообщения — heredoc с кавычками ненадёжен на Windows.
119
-
120
- **`run_drift_audit`** — найти расхождения между скилами на диске и AGENTS.yaml/manifest.json. Парсер пермиссивный — видит сломанные скилы (в отличие от `list_skills` который их пропускает).
121
-
122
- **`e2e_playwright`** — запуск Playwright. Браузеры по умолчанию не качаются (`.npmrc` skip flag) — поставь вручную если нужно.
123
-
124
- **`docker_compose`** — обёртка над `docker compose` (up/down/ps/logs). Skip-ается если Docker daemon не запущен.
125
-
126
- **`dependency_supply_chain`** — `npm audit --json` парсер. Возвращает уязвимости с severity. DoD claim_type `no_critical_vulns`.
127
-
128
- **`verify_claim`** — мета-инструмент. Принимает `claim_type` (`tests_pass` / `lint_clean` / `build_succeeds` / `no_critical_vulns` / `e2e_passes` / `docker_runs` / `custom`), зовёт нужный action tool, возвращает structured verdict. `custom` пока stub — для него человеческая верификация (см. DEV-103).
129
-
130
- **`audit_budget_compliance`** — проверка нарушений бюджета файлов: declared_budget > schema_max (ловит latent bugs schema rejection — пример DEV-107 RoleFrontmatter) и actual_lines > declared_budget. По всем agent.md + SKILL.md в указанном домене (RU + EN). Зови периодически или перед крупными правками agent.md / SKILL.md.
131
-
132
- **`audit_bilocale_parity`** — проверка паритета локалей RU/EN: спаривает каждый agent.md / SKILL.md с парой в другой локали и репортит declared_mismatch (разный budget_lines), actual_mismatch (разное число строк — ловит дрейф как у design-intake в DEV-114) и orphan (файл есть только в одной локали). Read-only. Зови перед/после правок, затрагивающих одну локаль.
133
-
134
- **`aggregate_run_metrics`** — фундамент данных Аудитора. Считает сухую статистику по агентам (через гейт→роль из pipeline.yaml) и воркфлоу (mode) из леджера завершённых прогонов (`.code-ai/state/audit/runs.jsonl`): first-try rate, переработки, откаты, срабатывания предохранителя, исключения, разбивка классификаций. `min_runs` (по умолч. 3) — защита от малой выборки. Read-only, только числа — суждение за агентом-Аудитором.
135
-
136
- **`propose_change`** — записать предложение Аудитора (черновик правки агента/скила) как pending-запись в локальный склад (`.code-ai/state/audit/proposals.jsonl`). Несёт change_kind (edit_minor/add_asset/destructive → уровень риска), обоснование, evidence, threshold_met и инлайн-черновик. Чистый surfacing — ассет не трогает; инертно до одобрения/применения (item 4b).
137
-
138
- **`list_proposals`** — список предложений Аудитора (новые сверху), фильтры status/risk/domain. Read-only.
139
-
140
- **`review_proposal`** — авторизовать переход статуса предложения (approve/reject для pending; пометить approved как applied) + обязательный отчёт. Применяет матрицу автономии + тумблер из `.code-ai/config.json`: `decided_by='auditor_auto'` может одобрить только low/additive и только при ВЫКЛЮЧЕННОМ гейте; destructive (high) и включённый гейт — всегда через den. Авто-добавление нового скила проходит дедуп-проверку: при пересечении с существующим скилом уходит к den, а не добавляется само. Только авторизация — сама запись в ассет это отдельный шаг submit_artifact/edit (см. next_step).
141
-
142
- ---
143
-
144
- ## 6. Группа 4 — Запись решений (6 инструментов + 1 служебный)
145
-
146
- **`record_decision`** — записать ADR-решение в `decisions.jsonl`. **Только после** `request_decision` если решение требует DEN. Если решение mechanical (signer=mcp) — можно напрямую, но укажи `signer: "mcp"` явно.
147
-
148
- **`recent_decisions`** — последние N решений (фильтры по domain/signer/since). Используй чтобы понять контекст текущей задачи.
149
-
150
- **`audit_trail`** — полный аудит-трейл задачи: все decisions + artifacts + exceptions в хронологическом порядке. Зови перед `sign_off` чтобы убедиться что ничего не забыл.
151
-
152
- **`submit_artifact`** — отправить артефакт текущего gate (например spec.md, ADR draft, design doc). Без этого нельзя делать `sign_off`.
153
-
154
- **`list_artifacts`** / **`get_artifact`** — посмотреть что уже отправлено в задаче. Используй чтобы не дублировать.
155
-
156
- **`report_exception`** — записать exception (gate-check failed). Не используй вместо честного фикса — exception это «я попробовал, не вышло, причина X, нужен fork» а не «обходной путь».
157
-
158
- **Запись хранится в JsonlStore** (append-only). Никаких "переписать" — только новая запись с `invalidates: <prev_id>` через `kg_invalidate` если факт устарел.
159
-
160
- ---
161
-
162
- ## 7. Канонические ритуалы
163
-
164
- ### Ритуал A — "Получил задачу"
165
- ```
166
- 1. load_role (понять что я умею)
167
- 2. list_skills (что есть в домене)
168
- 3. current_gate (где задача)
169
- 4. get_skill <name> (для каждого релевантного скила)
170
- 5. classify_gate (начать gate ritual)
171
- ```
172
-
173
- ### Ритуал B — "Закрываю gate"
174
- ```
175
- 1. verify_claim (для каждого DoD claim_type где есть автоматический check)
176
- 2. submit_artifact (artefacts gate'а)
177
- 3. audit_trail (последняя проверка — всё ли на месте)
178
- 4. sign_off (подпись)
179
- 5. advance_gate (переход)
180
- ```
181
-
182
- ### Ритуал C — "Архитектурное решение"
183
- ```
184
- 1. request_decision (создаёт ADR-PENDING-*)
185
- 2. (ждёшь DEN approve)
186
- 3. record_decision (финализирует ADR с signer=den)
187
- 4. apply_diff (применяешь изменения единым патчем если возможно)
188
- 5. git_commit (commit с adr_id в сообщении)
189
- ```
190
-
191
- ---
192
-
193
- ## 8. Anti-patterns
194
-
195
- 1. **`record_decision` без `request_decision`** для решений требующих DEN-approve — нарушает governance, ломает audit trail.
196
- 2. **`advance_gate` без `sign_off`** — gate остаётся «не подписан», следующий агент не понимает что готово.
197
- 3. **`apply_diff` без `git_commit`** — изменения висят в working tree, следующая сессия их потеряет или примет за свои.
198
- 4. **Ручной парсинг SKILL.md** вместо `get_skill` — пропустишь фронтматтер-валидацию, словишь latent-баг (см. DEV-103 list_skills lesson).
199
- 5. **`report_exception` вместо честного фикса** — exception для «дальше DEN решит», не для «я обошёл».
200
- 6. **Зов MCP когда сервер не зарегистрирован** без graceful fallback — silent failure хуже честного «MCP unavailable, fell back to file read».
201
-
202
- ---
203
-
204
- ## 9. DoD
205
-
206
- - [ ] gate ritual пройден полностью (classify → action → submit → sign_off → advance)
207
- - [ ] все artefacts submitted через `submit_artifact`
208
- - [ ] все decisions записаны через `record_decision` (с `request_decision` где нужен DEN-approve)
209
- - [ ] exceptions записаны честно через `report_exception` (если были)
210
- - [ ] `verify_claim` вызван для каждого DoD-claim'а с автоматическим check'ом
211
- - [ ] commit с MCP-связанными изменениями делается одним batch'ем (apply_diff → git_commit)
1
+ ---
2
+ name: mcp-integration
3
+ description: "Когда какой MCP-инструмент звать и в каком порядке — gate ritual, recording discipline, action tools для всех агентов разработки."
4
+ type: mandatory
5
+ domain: development
6
+ owners:
7
+ - architect
8
+ - conductor
9
+ - devops
10
+ - product_manager
11
+ - reviewer
12
+ - senior_full_stack
13
+ - tester
14
+ - ux_ui_designer
15
+ gates:
16
+ - PM
17
+ - UX
18
+ - ARCH
19
+ - DEV
20
+ - REV
21
+ - OPS
22
+ - TEST
23
+ - RG
24
+ tech:
25
+ - mcp
26
+ topic:
27
+ - general
28
+ triggers:
29
+ - record_decision
30
+ - request_decision
31
+ - classify_gate
32
+ - advance_gate
33
+ - submit_artifact
34
+ - list_skills
35
+ - get_skill
36
+ - load_role
37
+ - MCP
38
+ - code-ai MCP
39
+ - gate flow
40
+ related:
41
+ - karpathy-guidelines
42
+ - code-review-checklist
43
+ - adr-log
44
+ budget_lines: 250
45
+ schema_version: 1
46
+ license: MIT
47
+ ---
48
+
49
+
50
+ # MCP Integration
51
+
52
+ Правила работы с code-ai MCP-сервером для всех агентов разработки. Когда какой инструмент звать, в каком порядке, что записывать, какие ошибки не совершать.
53
+
54
+ > Если сервер MCP в `.mcp.json` не зарегистрирован — fall back на чтение файлов с пометкой `report_exception`. Не молчи.
55
+
56
+ ---
57
+
58
+ ## 1. Когда применять
59
+
60
+ **Триггеры:** любая задача в development-домене, которая проходит через gates (PM/UX/ARCH/DEV/REV/OPS/TEST/RG). То есть — почти любая.
61
+
62
+ **Вывод:** инструмент вызван корректно, его результат использован в текущей фазе, при необходимости записан через `record_decision` или `submit_artifact`.
63
+
64
+ ---
65
+
66
+ ## 2. Что такое code-ai MCP
67
+
68
+ Локальный MCP-сервер (stdio transport) с 26 инструментами. Состояние хранит в `.code-ai/state/` (JsonlStore — append-only, файлы `decisions.jsonl`, `exceptions.jsonl`, `artifacts/<task>.jsonl`). MempalaceStore — опциональное зеркало, не источник истины.
69
+
70
+ Сервер регистрируется инсталлятором (`.mcp.json` пишется автоматически на `--target=claude`). Если инсталлятор не отработал — записи можно делать вручную в `.code-ai/state/`, но MCP-инструменты предпочтительнее: они валидируют ввод через zod.
71
+
72
+ ---
73
+
74
+ ## 3. Группа 1 — Навигация (4 инструмента)
75
+
76
+ **`list_skills`** — получить полный список скилов домена с фронтматтером. Зови в начале задачи чтобы понять что у тебя есть. Парсер пермиссивный — пропускает скилы со сломанным фронтматтером (см. `run_drift_audit` если что-то ожидалось но не появилось).
77
+
78
+ **`get_skill`** — получить SKILL.md по имени. Используй вместо ручного чтения файла — get_skill даёт фронтматтер уже распарсенным и тело markdown отдельно.
79
+
80
+ **`load_role`** — получить профиль агента (промпт + список скилов которые он может звать). Зови первым делом когда задача попадает к тебе на роль.
81
+
82
+ **`regenerate_manifest`** — пересборка `manifest.json` после правок скилов. Зови когда добавил/удалил/переименовал скилл.
83
+
84
+ **Порядок при старте задачи:** `load_role` → `list_skills` → выбираешь нужные → `get_skill` по каждому.
85
+
86
+ ---
87
+
88
+ ## 4. Группа 2 — Gate flow (5 инструментов)
89
+
90
+ Это ритуал прохождения gate. **Каждый gate** обязан пройти эти шаги в порядке.
91
+
92
+ **`classify_gate`** — классифицируешь задачу перед началом работы над gate. Возвращает `auto_resolve` (зелёный путь, артефакт всё равно нужен для аудита), `fork` (нужно решение пользователя — запросишь через `request_decision`) или `exception` (автоматическая проверка упала — пишешь breakdown в exceptions).
93
+
94
+ **`request_decision`** — запрашиваешь решение у пользователя. Создаёт ADR-PENDING-* в decisions.jsonl. Должен быть вызван **перед** `record_decision` если решение требует одобрения пользователя. Не молчи и не выбирай сам — это нарушение `karpathy-guidelines §1`.
95
+
96
+ **`current_gate`** — где сейчас находится задача. Полезно когда context потерялся или ты переключился между задачами.
97
+
98
+ **`advance_gate`** — продвинуть задачу в следующий gate. **Только после** того как все artefacts текущего gate submitted и sign_off проставлен.
99
+
100
+ **`sign_off`** — подпись текущего gate. Sign_off без предыдущего `submit_artifact` — anti-pattern (см. §8). Сначала результат, потом подпись.
101
+
102
+ **Канонический ритуал gate:** `current_gate` (понять где ты) → `classify_gate` → если fork: `request_decision` → ждёшь → `record_decision` → продолжаешь → `submit_artifact` → `verify_claim` (где применимо) → `sign_off` → `advance_gate`.
103
+
104
+ ---
105
+
106
+ ## 5. Группа 3 — Действия (15 инструментов)
107
+
108
+ Инструменты которые что-то **делают** в проекте. Каждый отвечает на один DoD-вопрос.
109
+
110
+ **`run_tests`** — vitest/jest/pytest wrapper. Зови когда DoD говорит "тесты зелёные". Возвращает `numPassedTests`, `numFailedTests`, `failureMessages`. Используется в `verify_claim` для `claim_type=tests_pass`.
111
+
112
+ **`check_lint`** — проверка линтером. Возвращает `clean: true/false` плюс список lint-failures. DoD claim_type `lint_clean`.
113
+
114
+ **`build`** — `tsc` или эквивалент. Парсит `TSxxxx` ошибки. DoD claim_type `build_succeeds`.
115
+
116
+ **`apply_diff`** — применить git diff из стдина. Чище чем ручная правка через много вызовов Edit/Write — особенно для много-файловых патчей.
117
+
118
+ **`git_commit`** — закоммитить (с путями или `-a`). Использует tempfile для сообщения — heredoc с кавычками ненадёжен на Windows.
119
+
120
+ **`run_drift_audit`** — найти расхождения между скилами на диске и AGENTS.yaml/manifest.json. Парсер пермиссивный — видит сломанные скилы (в отличие от `list_skills` который их пропускает).
121
+
122
+ **`e2e_playwright`** — запуск Playwright. Браузеры по умолчанию не качаются (`.npmrc` skip flag) — поставь вручную если нужно.
123
+
124
+ **`docker_compose`** — обёртка над `docker compose` (up/down/ps/logs). Skip-ается если Docker daemon не запущен.
125
+
126
+ **`dependency_supply_chain`** — `npm audit --json` парсер. Возвращает уязвимости с severity. DoD claim_type `no_critical_vulns`.
127
+
128
+ **`verify_claim`** — мета-инструмент. Принимает `claim_type` (`tests_pass` / `lint_clean` / `build_succeeds` / `no_critical_vulns` / `e2e_passes` / `docker_runs` / `custom`), зовёт нужный action tool, возвращает structured verdict. `custom` пока stub — для него человеческая верификация (см. DEV-103).
129
+
130
+ **`audit_budget_compliance`** — проверка нарушений бюджета файлов: declared_budget > schema_max (ловит latent bugs schema rejection — пример DEV-107 RoleFrontmatter) и actual_lines > declared_budget. По всем agent.md + SKILL.md в указанном домене (RU + EN). Зови периодически или перед крупными правками agent.md / SKILL.md.
131
+
132
+ **`audit_bilocale_parity`** — проверка паритета локалей RU/EN: спаривает каждый agent.md / SKILL.md с парой в другой локали и репортит declared_mismatch (разный budget_lines), actual_mismatch (разное число строк — ловит дрейф как у design-intake в DEV-114) и orphan (файл есть только в одной локали). Read-only. Зови перед/после правок, затрагивающих одну локаль.
133
+
134
+ **`aggregate_run_metrics`** — фундамент данных Аудитора. Считает сухую статистику по агентам (через гейт→роль из pipeline.yaml) и воркфлоу (mode) из леджера завершённых прогонов (`.code-ai/state/audit/runs.jsonl`): first-try rate, переработки, откаты, срабатывания предохранителя, исключения, разбивка классификаций. `min_runs` (по умолч. 3) — защита от малой выборки. Read-only, только числа — суждение за агентом-Аудитором.
135
+
136
+ **`propose_change`** — записать предложение Аудитора (черновик правки агента/скила) как pending-запись в локальный склад (`.code-ai/state/audit/proposals.jsonl`). Несёт change_kind (edit_minor/add_asset/destructive → уровень риска), обоснование, evidence, threshold_met и инлайн-черновик. Чистый surfacing — ассет не трогает; инертно до одобрения/применения (item 4b).
137
+
138
+ **`list_proposals`** — список предложений Аудитора (новые сверху), фильтры status/risk/domain. Read-only.
139
+
140
+ **`review_proposal`** — авторизовать переход статуса предложения (approve/reject для pending; пометить approved как applied) + обязательный отчёт. Применяет матрицу автономии + тумблер из `.code-ai/config.json`: `decided_by='auditor_auto'` может одобрить только low/additive и только при ВЫКЛЮЧЕННОМ гейте; destructive (high) и включённый гейт — всегда через user. Авто-добавление нового скила проходит дедуп-проверку: при пересечении с существующим скилом уходит к user, а не добавляется само. Только авторизация — сама запись в ассет это отдельный шаг submit_artifact/edit (см. next_step).
141
+
142
+ ---
143
+
144
+ ## 6. Группа 4 — Запись решений (6 инструментов + 1 служебный)
145
+
146
+ **`record_decision`** — записать ADR-решение в `decisions.jsonl`. **Только после** `request_decision` если решение требует участия пользователя. Если решение mechanical (signer=mcp) — можно напрямую, но укажи `signer: "mcp"` явно.
147
+
148
+ **`recent_decisions`** — последние N решений (фильтры по domain/signer/since). Используй чтобы понять контекст текущей задачи.
149
+
150
+ **`audit_trail`** — полный аудит-трейл задачи: все decisions + artifacts + exceptions в хронологическом порядке. Зови перед `sign_off` чтобы убедиться что ничего не забыл.
151
+
152
+ **`submit_artifact`** — отправить артефакт текущего gate (например spec.md, ADR draft, design doc). Без этого нельзя делать `sign_off`.
153
+
154
+ **`list_artifacts`** / **`get_artifact`** — посмотреть что уже отправлено в задаче. Используй чтобы не дублировать.
155
+
156
+ **`report_exception`** — записать exception (gate-check failed). Не используй вместо честного фикса — exception это «я попробовал, не вышло, причина X, нужен fork» а не «обходной путь».
157
+
158
+ **Запись хранится в JsonlStore** (append-only). Никаких "переписать" — только новая запись с `invalidates: <prev_id>` через `kg_invalidate` если факт устарел.
159
+
160
+ ---
161
+
162
+ ## 7. Канонические ритуалы
163
+
164
+ ### Ритуал A — "Получил задачу"
165
+ ```
166
+ 1. load_role (понять что я умею)
167
+ 2. list_skills (что есть в домене)
168
+ 3. current_gate (где задача)
169
+ 4. get_skill <name> (для каждого релевантного скила)
170
+ 5. classify_gate (начать gate ritual)
171
+ ```
172
+
173
+ ### Ритуал B — "Закрываю gate"
174
+ ```
175
+ 1. verify_claim (для каждого DoD claim_type где есть автоматический check)
176
+ 2. submit_artifact (artefacts gate'а)
177
+ 3. audit_trail (последняя проверка — всё ли на месте)
178
+ 4. sign_off (подпись)
179
+ 5. advance_gate (переход)
180
+ ```
181
+
182
+ ### Ритуал C — "Архитектурное решение"
183
+ ```
184
+ 1. request_decision (создаёт ADR-PENDING-*)
185
+ 2. (ждёшь одобрения пользователя)
186
+ 3. record_decision (финализирует ADR с signer=user)
187
+ 4. apply_diff (применяешь изменения единым патчем если возможно)
188
+ 5. git_commit (commit с adr_id в сообщении)
189
+ ```
190
+
191
+ ---
192
+
193
+ ## 8. Anti-patterns
194
+
195
+ 1. **`record_decision` без `request_decision`** для решений, требующих одобрения пользователя — нарушает governance, ломает audit trail.
196
+ 2. **`advance_gate` без `sign_off`** — gate остаётся «не подписан», следующий агент не понимает что готово.
197
+ 3. **`apply_diff` без `git_commit`** — изменения висят в working tree, следующая сессия их потеряет или примет за свои.
198
+ 4. **Ручной парсинг SKILL.md** вместо `get_skill` — пропустишь фронтматтер-валидацию, словишь latent-баг (см. DEV-103 list_skills lesson).
199
+ 5. **`report_exception` вместо честного фикса** — exception для «дальше решит пользователь», не для «я обошёл».
200
+ 6. **Зов MCP когда сервер не зарегистрирован** без graceful fallback — silent failure хуже честного «MCP unavailable, fell back to file read».
201
+
202
+ ---
203
+
204
+ ## 9. DoD
205
+
206
+ - [ ] gate ritual пройден полностью (classify → action → submit → sign_off → advance)
207
+ - [ ] все artefacts submitted через `submit_artifact`
208
+ - [ ] все decisions записаны через `record_decision` (с `request_decision` где нужно одобрение пользователя)
209
+ - [ ] exceptions записаны честно через `report_exception` (если были)
210
+ - [ ] `verify_claim` вызван для каждого DoD-claim'а с автоматическим check'ом
211
+ - [ ] commit с MCP-связанными изменениями делается одним batch'ем (apply_diff → git_commit)