code-ai-installer 4.0.1-b → 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.
- package/LICENSE +1 -1
- package/README.md +5 -5
- package/dist/catalog.js +1 -1
- package/dist/contentTransformer.d.ts +1 -1
- package/dist/contentTransformer.js +39 -0
- package/dist/index.js +10 -5
- package/dist/mcp/cli.js +4 -4
- package/dist/mcp/scorecard.d.ts +2 -2
- package/dist/mcp/task_state.d.ts +2 -2
- package/dist/mcp/tools/advance_gate.js +1 -1
- package/dist/mcp/tools/classify_gate.d.ts +2 -2
- package/dist/mcp/tools/classify_gate.js +2 -2
- package/dist/mcp/tools/load_role.d.ts +2 -2
- package/dist/mcp/tools/load_role.js +2 -2
- package/dist/mcp/tools/report_exception.d.ts +3 -3
- package/dist/mcp/tools/report_exception.js +4 -4
- package/dist/mcp/tools/request_decision.d.ts +3 -3
- package/dist/mcp/tools/request_decision.js +5 -5
- package/dist/mcp/tools/review_proposal.d.ts +1 -1
- package/dist/mcp/tools/review_proposal.js +6 -6
- package/dist/mcp/tools/sign_off.d.ts +2 -2
- package/dist/mcp/tools/sign_off.js +7 -7
- package/dist/mcp/tools/verify_claim.d.ts +1 -1
- package/dist/mcp/tools/verify_claim.js +1 -1
- package/dist/mcp_setup.d.ts +84 -31
- package/dist/mcp_setup.js +182 -66
- package/dist/platforms/adapters.js +54 -19
- package/dist/shared/frontmatter.js +1 -1
- package/dist/shared/persona.d.ts +1 -1
- package/dist/shared/persona.js +1 -1
- package/dist/shared/pipeline.d.ts +10 -10
- package/dist/shared/pipeline.js +7 -7
- package/dist/shared/tools.d.ts +15 -15
- package/dist/shared/tools.js +3 -3
- package/dist/shared/vocabulary.d.ts +4 -4
- package/dist/shared/vocabulary.js +4 -4
- package/dist/types.d.ts +1 -1
- package/domains/analytics/.agents/workflows/analytics-pipeline-rules.md +13 -3
- package/domains/analytics/.agents/workflows/analyze.md +1 -0
- package/domains/analytics/.agents/workflows/quick-insight.md +1 -0
- package/domains/analytics/locales/en/.agents/workflows/analytics-pipeline-rules.md +13 -3
- package/domains/analytics/locales/en/.agents/workflows/analyze.md +1 -0
- package/domains/analytics/locales/en/.agents/workflows/quick-insight.md +1 -0
- package/domains/analytics/locales/en/agents/interviewer.md +2 -1
- package/domains/analytics/locales/en/agents/layouter.md +2 -1
- package/domains/analytics/locales/en/agents/mediator.md +2 -1
- package/domains/analytics/locales/en/agents/researcher.md +2 -1
- package/domains/analytics/locales/en/agents/strategist.md +2 -1
- package/domains/analytics/pipeline.yaml +10 -10
- package/domains/content/.agents/skills/content-release-gate/SKILL.md +3 -5
- package/domains/content/.agents/workflows/content-pipeline-rules.md +14 -11
- package/domains/content/.agents/workflows/edit-content.md +0 -1
- package/domains/content/.agents/workflows/quick-post.md +0 -1
- package/domains/content/.agents/workflows/start-content.md +0 -1
- package/domains/content/agents/conductor.md +1 -2
- package/domains/content/locales/en/.agents/skills/content-release-gate/SKILL.md +3 -5
- package/domains/content/locales/en/.agents/workflows/content-pipeline-rules.md +14 -11
- package/domains/content/locales/en/.agents/workflows/edit-content.md +0 -1
- package/domains/content/locales/en/.agents/workflows/quick-post.md +0 -1
- package/domains/content/locales/en/.agents/workflows/start-content.md +0 -1
- package/domains/content/locales/en/agents/conductor.md +1 -2
- package/domains/content/pipeline.yaml +8 -8
- package/domains/development/.agents/skills/handoff/SKILL.md +276 -276
- package/domains/development/.agents/skills/lava-flow-legacy-detection/SKILL.md +197 -197
- package/domains/development/.agents/skills/mcp-integration/SKILL.md +211 -211
- package/domains/development/.agents/skills/qa-test-data-management/SKILL.md +250 -250
- package/domains/development/.agents/workflows/bugfix.md +16 -82
- package/domains/development/.agents/workflows/hotfix.md +16 -66
- package/domains/development/.agents/workflows/pipeline-rules.md +49 -132
- package/domains/development/.agents/workflows/start-task.md +17 -121
- package/domains/development/AGENTS.md +8 -3
- package/domains/development/agents/architect.md +247 -247
- package/domains/development/agents/conductor.md +363 -363
- package/domains/development/agents/devops.md +297 -297
- package/domains/development/agents/reviewer.md +293 -293
- package/domains/development/agents/senior_full_stack.md +295 -295
- package/domains/development/agents/tester.md +395 -395
- package/domains/development/locales/en/.agents/skills/handoff/SKILL.md +276 -276
- package/domains/development/locales/en/.agents/skills/lava-flow-legacy-detection/SKILL.md +197 -197
- package/domains/development/locales/en/.agents/skills/mcp-integration/SKILL.md +211 -211
- package/domains/development/locales/en/.agents/skills/qa-test-data-management/SKILL.md +250 -250
- package/domains/development/locales/en/.agents/workflows/bugfix.md +16 -82
- package/domains/development/locales/en/.agents/workflows/hotfix.md +15 -65
- package/domains/development/locales/en/.agents/workflows/pipeline-rules.md +48 -131
- package/domains/development/locales/en/.agents/workflows/start-task.md +17 -121
- package/domains/development/locales/en/AGENTS.md +15 -0
- package/domains/development/locales/en/agents/architect.md +247 -247
- package/domains/development/locales/en/agents/conductor.md +363 -363
- package/domains/development/locales/en/agents/devops.md +297 -297
- package/domains/development/locales/en/agents/reviewer.md +293 -293
- package/domains/development/locales/en/agents/senior_full_stack.md +295 -295
- package/domains/development/locales/en/agents/tester.md +395 -395
- package/domains/development/locales/en/prompt-examples.md +34 -120
- package/domains/development/pipeline.yaml +150 -135
- package/domains/development/prompt-examples.md +33 -119
- package/domains/product/.agents/workflows/product-pipeline-rules.md +13 -2
- package/domains/product/.agents/workflows/quick-pm.md +1 -1
- package/domains/product/.agents/workflows/shape-prioritize.md +1 -0
- package/domains/product/.agents/workflows/ship-right-thing.md +1 -0
- package/domains/product/.agents/workflows/spec.md +1 -0
- package/domains/product/agents/tech_lead.md +1 -1
- package/domains/product/locales/en/.agents/workflows/product-pipeline-rules.md +13 -2
- package/domains/product/locales/en/.agents/workflows/quick-pm.md +1 -1
- package/domains/product/locales/en/.agents/workflows/shape-prioritize.md +1 -0
- package/domains/product/locales/en/.agents/workflows/ship-right-thing.md +1 -0
- package/domains/product/locales/en/.agents/workflows/spec.md +1 -0
- package/domains/product/locales/en/agents/conductor.md +2 -2
- package/domains/product/locales/en/agents/data_analyst.md +2 -1
- package/domains/product/locales/en/agents/designer.md +2 -1
- package/domains/product/locales/en/agents/discovery.md +2 -1
- package/domains/product/locales/en/agents/layouter.md +2 -1
- package/domains/product/locales/en/agents/mediator.md +2 -1
- package/domains/product/locales/en/agents/pm.md +2 -1
- package/domains/product/locales/en/agents/product_strategist.md +2 -1
- package/domains/product/locales/en/agents/tech_lead.md +3 -2
- package/domains/product/locales/en/agents/ux_designer.md +2 -1
- package/domains/product/pipeline.yaml +12 -12
- package/package.json +5 -5
- package/domains/analytics/CONTEXT.md +0 -25
- package/domains/analytics/locales/en/CONTEXT.md +0 -25
- package/domains/content/CONTEXT.md +0 -19
- package/domains/content/locales/en/CONTEXT.md +0 -19
- package/domains/development/.agents/workflows/auto-restart-containers.md +0 -56
- package/domains/development/CONTEXT.md +0 -62
- package/domains/development/locales/en/.agents/workflows/auto-restart-containers.md +0 -24
- package/domains/development/locales/en/CONTEXT.md +0 -62
- package/domains/product/CONTEXT.md +0 -40
- 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` (нужно решение
|
|
93
|
-
|
|
94
|
-
**`request_decision`** — запрашиваешь решение у
|
|
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) и включённый гейт — всегда через
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## 6. Группа 4 — Запись решений (6 инструментов + 1 служебный)
|
|
145
|
-
|
|
146
|
-
**`record_decision`** — записать ADR-решение в `decisions.jsonl`. **Только после** `request_decision` если решение требует
|
|
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=
|
|
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`** для
|
|
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)
|
|
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)
|