@
docs(a3): re-baseline spec+plan onto origin/main e7ff61d
feat/a3 ребейзнута на актуальный origin/main (был форк от D3-эры).
C9/deptrac/A4 уже влиты → openapi-mcp #41→#47, Tooling §4.16→§4.22,
integration-tooling 7-я→9-я off-phase подкатегория. Версии:
Tooling v2.8→v2.9, PSR_v1 v3.8→v3.9, Pravila v1.22→v1.23, CLAUDE.md
v2.8→v2.9. Карта 116→118 узлов. Stale line-anchors → Grep-by-symbol.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
**Goal:** Наполнить пустой раздел A3 «Программирование — интеграции (API, вебхуки)» карты `automation-graph.html` — формализовать 2 новых интеграционных инструмента + кросс-реф 5 существующих, синхронизировать 4 нормативных файла.
|
||||
|
||||
**Architecture:** Параллельно A6/D3. Новый аддитивный слой `NODE_SECTION_SECONDARY` в карте (`NODE_SECTION` 1:1 не трогается) даёт кросс-реф существующих узлов в A3. `openapi-mcp-server` — реальная установка (`.mcp.json`), `api-docs` agent — 0-install (claude-flow). Нормативка — A6/D3-паттерн (Tooling §4.16 + PSR_v1 R10.1 + Pravila §13.2 + CLAUDE.md через `claude-md-improver`).
|
||||
**Architecture:** Параллельно A6/D3. Новый аддитивный слой `NODE_SECTION_SECONDARY` в карте (`NODE_SECTION` 1:1 не трогается) даёт кросс-реф существующих узлов в A3. `openapi-mcp-server` — реальная установка (`.mcp.json`), `api-docs` agent — 0-install (claude-flow). Нормативка — A6/D3-паттерн (Tooling §4.22 + PSR_v1 R10.1 + Pravila §13.2 + CLAUDE.md через `claude-md-improver`).
|
||||
|
||||
**Tech Stack:** `automation-graph.html` (vis.js, vanilla JS), `.mcp.json` (stdio MCP), Markdown (Tooling/PSR_v1/Pravila/CLAUDE.md), claude-flow `api-docs` agent, npm/npx.
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
- lefthook pre-commit (gitleaks / markdownlint / cspell / adr-judge) — на каждом коммите;
|
||||
- MCP-smoke — `openapi-mcp-server` поднимается в stdio;
|
||||
- визуальный smoke карты — 112 узлов, 0 JS-ошибок в консоли, панель «Разделы» показывает A3;
|
||||
- визуальный smoke карты — 118 узлов, 0 JS-ошибок в консоли, панель «Разделы» показывает A3;
|
||||
- регрессия `quick` (lint/format/type-check) — перед финальным коммитом нормативки.
|
||||
|
||||
Если cspell блокирует новый валидный термин — добавить в `cspell-words.txt` (в том же коммите).
|
||||
@@ -32,10 +32,10 @@
|
||||
- Create: `docs/api/openapi.yaml` — стартовый OpenAPI-скелет (smoke, deals API)
|
||||
- Modify: `.mcp.json` — +`openapi` server entry
|
||||
- Modify: `docs/automation-graph.html` — `NODE_SECTION_SECONDARY` слой + 2 узла + рендер
|
||||
- Modify: `docs/Tooling_v8_3.md` — §4.16 + §0 счётчик, v2.4→v2.5
|
||||
- Modify: `docs/Plugin_stack_rules_v1.md` — R10.1 Блок 3, v3.4→v3.5
|
||||
- Modify: `docs/Pravila_raboty_Claude_v1_1.md` — §13.2, v1.18→v1.19
|
||||
- Modify: `CLAUDE.md` — через `/claude-md-management:claude-md-improver`, v2.4→v2.5
|
||||
- Modify: `docs/Tooling_v8_3.md` — §4.22 + §0 счётчик, v2.8→v2.9
|
||||
- Modify: `docs/Plugin_stack_rules_v1.md` — R10.1 Блок 3, v3.8→v3.9
|
||||
- Modify: `docs/Pravila_raboty_Claude_v1_1.md` — §13.2, v1.22→v1.23
|
||||
- Modify: `CLAUDE.md` — через `/claude-md-management:claude-md-improver`, v2.8→v2.9
|
||||
- Modify: `cspell-words.txt` — новые термины по мере надобности
|
||||
- Modify: `memory/project_automation_map.md`, `memory/reference_archive.md` — после push
|
||||
|
||||
@@ -118,7 +118,7 @@ Run: `Read` по `.mcp.json`. Зафиксировать формат сущес
|
||||
- [ ] **Step 4: Smoke — сервер поднимается**
|
||||
|
||||
Run: `npx -y <PKG> --help` (проверка, что пакет ставится и запускается на native-Windows).
|
||||
Expected: печатает usage без краша. Если падает (native-Windows несовместимость / кириллица в пути, квирк #26) — **fallback:** оставить server-блок в `.mcp.json` закомментированным-эквивалентом не выйдет (JSON не поддерживает комментарии) → задокументировать в Tooling §4.16 статус «pending: native-Windows install не верифицирован» (прецедент — Sentry MCP «pending Б-1»), узел карты остаётся. Зафиксировать факт в коммите Step 5.
|
||||
Expected: печатает usage без краша. Если падает (native-Windows несовместимость / кириллица в пути, квирк #26) — **fallback:** оставить server-блок в `.mcp.json` закомментированным-эквивалентом не выйдет (JSON не поддерживает комментарии) → задокументировать в Tooling §4.22 статус «pending: native-Windows install не верифицирован» (прецедент — Sentry MCP «pending Б-1»), узел карты остаётся. Зафиксировать факт в коммите Step 5.
|
||||
|
||||
- [ ] **Step 5: Commit**
|
||||
|
||||
@@ -137,7 +137,7 @@ git commit -m "feat(a3): register openapi-mcp-server in .mcp.json"
|
||||
|
||||
- [ ] **Step 1: Добавить объект `NODE_SECTION_SECONDARY`**
|
||||
|
||||
После закрывающей `};` объекта `NODE_SECTION` (заканчивается ~строка 1971, перед `const SECTION_BY_ID`) вставить:
|
||||
После закрывающей `};` объекта `NODE_SECTION` (локализовать Grep'ом: закрывающая `};` объекта `NODE_SECTION` перед `const SECTION_BY_ID`) вставить:
|
||||
|
||||
```js
|
||||
// Вторичная классификация: узел первично в NODE_SECTION, дополнительно — в этих
|
||||
@@ -154,7 +154,7 @@ const NODE_SECTION_SECONDARY = {
|
||||
|
||||
- [ ] **Step 2: Модифицировать build `SECTION_NODES`**
|
||||
|
||||
Текущий код (строки 1973-1977):
|
||||
Текущий код (локализовать Grep'ом `const SECTION_NODES = new Map`):
|
||||
|
||||
```js
|
||||
const SECTION_NODES = new Map(SECTIONS.map(s => [s.id, []]));
|
||||
@@ -179,7 +179,7 @@ NODES.forEach(n => {
|
||||
|
||||
- [ ] **Step 3: Модифицировать строку «Раздел» Паспорта**
|
||||
|
||||
Текущий код (строки 2082-2083):
|
||||
Текущий код (локализовать Grep'ом `ld-section` в `showNodeLegend`):
|
||||
|
||||
```js
|
||||
const _sec = NODE_SECTION[nodeId] ? SECTION_BY_ID.get(NODE_SECTION[nodeId]) : null;
|
||||
@@ -199,7 +199,7 @@ NODES.forEach(n => {
|
||||
|
||||
- [ ] **Step 4: Проверить, что счётчик в `showSectionsLegend` уже корректен**
|
||||
|
||||
Строки 2208-2211: `nodeIds.length` берётся из `SECTION_NODES.get(sec.id)` — после Step 2 счётчик автоматически учитывает кросс-реф. Правок не требуется. Зафиксировать факт (no-op проверка).
|
||||
(Локализовать Grep'ом `nodeIds.length` в `showSectionsLegend`): `nodeIds.length` берётся из `SECTION_NODES.get(sec.id)` — после Step 2 счётчик автоматически учитывает кросс-реф. Правок не требуется. Зафиксировать факт (no-op проверка).
|
||||
|
||||
- [ ] **Step 5: Визуальный smoke (промежуточный)**
|
||||
|
||||
@@ -222,7 +222,7 @@ git commit -m "feat(map): NODE_SECTION_SECONDARY layer — cross-ref nodes into
|
||||
|
||||
- [ ] **Step 1: Добавить узел `ag_apidocs` в `NODES`**
|
||||
|
||||
В секции агентов (после `ag_rls`, формат-образец `ag_pest` строка 297 — `group: 'agents'`, `ring: 4`) вставить:
|
||||
В секции агентов (после `ag_rls`, формат-образец `ag_pest` — Grep `id: 'ag_pest'` — `group: 'agents'`, `ring: 4`) вставить:
|
||||
|
||||
```js
|
||||
// A3 integration-tooling (17.05.2026) — agent раздела «Программирование — интеграции»
|
||||
@@ -233,7 +233,7 @@ git commit -m "feat(map): NODE_SECTION_SECONDARY layer — cross-ref nodes into
|
||||
|
||||
- [ ] **Step 2: Добавить узел `mcp_openapi` в `NODES`**
|
||||
|
||||
В секции MCP-серверов (после `mcp_semgrep`, формат-образец `mcp_boost` строка 310 — `group: 'mcp'`, `ring: 5`) вставить:
|
||||
В секции MCP-серверов (после `mcp_semgrep`, формат-образец `mcp_boost` — Grep `id: 'mcp_boost'` — `group: 'mcp'`, `ring: 5`) вставить:
|
||||
|
||||
```js
|
||||
// A3 integration-tooling (17.05.2026) — MCP-сервер раздела «Программирование — интеграции»
|
||||
@@ -257,7 +257,7 @@ Run: `Grep` по `automation-graph.html` паттерн `id: 'mcp_semgrep'|id: '
|
||||
|
||||
- [ ] **Step 4: Добавить `nd()`-детали в `NODE_DETAILS`**
|
||||
|
||||
После D3-блока `nd()` (`tob_skills`/`sec_guidance`, ~строка 725+) добавить (формат-образец `adr_kit` строки 699-706 — 6 аргументов `nd()`: что делает / когда / ограничения / кому подчиняется / кто подчиняется / с кем работает):
|
||||
После D3-блока `nd()` (`tob_skills`/`sec_guidance`, локализовать Grep'ом `tob_skills`) добавить (формат-образец `adr_kit` — Grep `adr_kit: nd\(` — 6 аргументов `nd()`: что делает / когда / ограничения / кому подчиняется / кто подчиняется / с кем работает):
|
||||
|
||||
```js
|
||||
// ── A3 INTEGRATION-TOOLING (17.05.2026) ──────────
|
||||
@@ -265,15 +265,15 @@ Run: `Grep` по `automation-graph.html` паттерн `id: 'mcp_semgrep'|id: '
|
||||
'Агент claude-flow — генерирует OpenAPI-спеку REST API по роутам и контроллерам Laravel. Pattern learning. 0 установки — агент доступен в сессии.',
|
||||
'При фиксации контракта REST API: генерация/обновление OpenAPI-спеки группы эндпоинтов. Результат — docs/api/.',
|
||||
'Sub-агент claude-flow — узел карты, но без отдельного номера в реестре Tooling Прил. Н (реестр — plugin-grain; 11 agent-узлов карты так же без Tooling-номеров). Не UI → вне фильтров R6.0/R6.1/R14.',
|
||||
[{ name: 'CLAUDE.md', cond: '§3.3 — упомянут при #41 openapi-mcp' }],
|
||||
[{ name: 'CLAUDE.md', cond: '§3.3 — упомянут при #47 openapi-mcp' }],
|
||||
[],
|
||||
[{ name: 'MCP: openapi', cond: 'генерирует спеку → openapi-mcp отдаёт её как MCP-ресурс' }]
|
||||
),
|
||||
mcp_openapi: nd(
|
||||
'MCP-сервер (npm, stdio) — отдаёт OpenAPI-спеку как MCP-ресурс/тулы; introspection своей и чужих API при интеграционной разработке.',
|
||||
'При работе с интеграциями (API/вебхуки) — обращение к структуре OpenAPI-спеки из сессии Claude. READ-ONLY introspection.',
|
||||
'Правило PSR_v1 R10.1 блок 3 (integration-tooling, off-phase — 7-я подкатегория). stdio-режим, без port-conflict. Не UI → вне фильтров R6.0/R6.1/R14. Tooling §4.16 #41, CLAUDE.md §3.3 #41.',
|
||||
[{ name: 'PSR_v1', cond: 'R10.1 блок 3: integration-tooling' }, { name: 'Tooling', cond: '§4.16 #41 — реестр' }],
|
||||
'Правило PSR_v1 R10.1 блок 3 (integration-tooling, off-phase — 9-я подкатегория). stdio-режим, без port-conflict. Не UI → вне фильтров R6.0/R6.1/R14. Tooling §4.22 #47, CLAUDE.md §3.3 #47.',
|
||||
[{ name: 'PSR_v1', cond: 'R10.1 блок 3: integration-tooling' }, { name: 'Tooling', cond: '§4.22 #47 — реестр' }],
|
||||
[],
|
||||
[{ name: 'docs/api/', cond: 'источник OpenAPI-спеки' }]
|
||||
),
|
||||
@@ -281,7 +281,7 @@ Run: `Grep` по `automation-graph.html` паттерн `id: 'mcp_semgrep'|id: '
|
||||
|
||||
- [ ] **Step 5: Добавить записи в `NODE_TIMELINE`**
|
||||
|
||||
После A6/D3-записей в `NODE_TIMELINE` (формат-образец `skill_creator` строка 1811 — `{ since, changed, uses, usesSrc }`) добавить:
|
||||
После A6/D3-записей в `NODE_TIMELINE` (формат-образец `skill_creator` — Grep `skill_creator:.*since` — `{ since, changed, uses, usesSrc }`) добавить:
|
||||
|
||||
```js
|
||||
// ── A3 INTEGRATION-TOOLING (17.05.2026) ──
|
||||
@@ -291,19 +291,19 @@ Run: `Grep` по `automation-graph.html` паттерн `id: 'mcp_semgrep'|id: '
|
||||
|
||||
- [ ] **Step 6: Добавить рёбра в `EDGES`**
|
||||
|
||||
После D3-блока рёбер (`E('psr_v1', 'sec_guidance', ...)` и далее, ~строка 514) добавить:
|
||||
После D3-блока рёбер (локализовать Grep'ом `E('psr_v1', 'sec_guidance'`) добавить:
|
||||
|
||||
```js
|
||||
// ── A3 INTEGRATION-TOOLING 17.05.2026 — связи новых узлов ──
|
||||
E('psr_v1', 'mcp_openapi', 'R10.1 блок 3:\nintegration-tooling'),
|
||||
E('tooling', 'mcp_openapi', '§4.16 #41 — реестр'),
|
||||
E('tooling', 'mcp_openapi', '§4.22 #47 — реестр'),
|
||||
E('ag_apidocs', 'mcp_openapi', 'спека → MCP-ресурс'),
|
||||
```
|
||||
|
||||
- [ ] **Step 7: Обновить комментарий-счётчик `NODE_SECTION`**
|
||||
|
||||
Строка 1924: `// Узел -> раздел. Покрывает все 110 узлов карты.` → `112 узлов`.
|
||||
Run: `Grep` по `automation-graph.html` паттерн `\b(110|111|112)\b.*узлов` и `рёбер` — найти прочие счётчики/метрики, если есть, инкрементировать (узлы +2, рёбра +3). Если иных счётчиков нет — зафиксировать факт.
|
||||
(Grep-комментарий `Покрывает все NNN узлов карты` — сейчас 116, ставим 118): `// Узел -> раздел. Покрывает все 116 узлов карты.` → `118 узлов`.
|
||||
Run: `Grep` по `automation-graph.html` паттерн `\b(116|117|118)\b.*узлов` и `рёбер` — найти прочие счётчики/метрики, если есть, инкрементировать (узлы +2, рёбра +3). Если иных счётчиков нет — зафиксировать факт.
|
||||
|
||||
- [ ] **Step 8: Commit**
|
||||
|
||||
@@ -342,25 +342,25 @@ Run (background): `npx -y serve docs -l 8123`. Через Playwright MCP: `brows
|
||||
|
||||
---
|
||||
|
||||
## Task 6: Tooling Прил. Н — §4.16 + счётчик
|
||||
## Task 6: Tooling Прил. Н — §4.22 + счётчик
|
||||
|
||||
**Files:**
|
||||
|
||||
- Modify: `docs/Tooling_v8_3.md`
|
||||
|
||||
- [ ] **Step 1: Прочитать §4.14/§4.15 (D3-записи)**
|
||||
- [ ] **Step 1: Прочитать §4.21/§4.20 (A4-записи)**
|
||||
|
||||
Run: `Read` `docs/Tooling_v8_3.md`, `Grep` паттерн `§4.14|§4.15|§4.13` — зафиксировать структуру/стиль off-phase subsection (#39/#40 audit-security) для зеркалирования.
|
||||
Run: `Read` `docs/Tooling_v8_3.md`, `Grep` паттерн `§4.21|§4.20|§4.19` — зафиксировать структуру/стиль off-phase subsection (#44/#45/#46 design-tooling) для зеркалирования.
|
||||
|
||||
- [ ] **Step 2: Добавить §4.16**
|
||||
- [ ] **Step 2: Добавить §4.22**
|
||||
|
||||
После §4.15 добавить новый подраздел (зеркалируя стиль §4.14/§4.15):
|
||||
После §4.21 добавить новый подраздел (зеркалируя стиль §4.19/§4.20/§4.21):
|
||||
|
||||
```markdown
|
||||
### §4.16. #41 openapi-mcp-server — off-phase integration-tooling
|
||||
### §4.22. #47 openapi-mcp-server — off-phase integration-tooling
|
||||
|
||||
**Пакет:** `<PKG>` (npm, репозиторий `ivo-toby/mcp-openapi-server`), stdio MCP, server `openapi` в `.mcp.json`, tools `mcp__openapi__*`.
|
||||
**Категория:** off-phase, **integration-tooling** (7-я off-phase подкатегория — после UI-пула / infrastructure / debug-runtime / orchestration / architecture-tooling / audit-security). Раздел A3 карты «Программирование — интеграции (API, вебхуки)».
|
||||
**Категория:** off-phase, **integration-tooling** (9-я off-phase подкатегория — после UI-пула / infrastructure / debug-runtime / orchestration / architecture-tooling / audit-security / project-management / design-tooling). Раздел A3 карты «Программирование — интеграции (API, вебхуки)».
|
||||
**Назначение:** отдаёт OpenAPI-спеку как MCP-ресурс/тулы; introspection своей и чужих API при интеграционной разработке. READ-ONLY.
|
||||
**Парный узел карты:** `api-docs` agent (claude-flow) — генератор OpenAPI-спеки; узел карты A3 без отдельного Tooling-номера (sub-агент, реестр — plugin-grain).
|
||||
**Координация:** PSR_v1 R10.1 Блок 3 (MCP-серверы). Не UI → не trigger'ит R6.0/R6.1, вне R14 pipeline.
|
||||
@@ -371,17 +371,17 @@ Run: `Read` `docs/Tooling_v8_3.md`, `Grep` паттерн `§4.14|§4.15|§4.13`
|
||||
|
||||
- [ ] **Step 3: Обновить счётчик §0**
|
||||
|
||||
Run: `Grep` по `docs/Tooling_v8_3.md` паттерн `38|40|формализованных позиций|off-phase` — найти строку-счётчик §0 (после D3 = «40 формализованных позиций: 29 active + 10 off-phase + 1 historic» либо аналог). Инкрементировать: позиций 40→**41**, off-phase 10→**11**. Обновить перечисление off-phase subsections (добавить §4.16) и упоминание подкатегорий (добавить integration-tooling).
|
||||
Run: `Grep` по `docs/Tooling_v8_3.md` паттерн `46|формализованных позиций|off-phase` — найти строку-счётчик §0 (после A4 = «46 формализованных позиций: 29 active + 16 off-phase + 1 historic» либо аналог). Инкрементировать: позиций 46→**47**, off-phase 16→**17**. Обновить перечисление off-phase subsections (добавить §4.22) и упоминание подкатегорий (добавить integration-tooling).
|
||||
|
||||
- [ ] **Step 4: Bump версии Прил. Н**
|
||||
|
||||
Шапка/колонтитул Прил. Н: v2.4 → **v2.5**. Добавить changelog-строку «v2.5 от 17.05.2026 — A3 integration-tooling: §4.16 #41 openapi-mcp-server, 7-я off-phase подкатегория integration-tooling; §0 счётчик 40→41. Связано: PSR_v1 v3.5, Pravila v1.19, CLAUDE.md v2.5.»
|
||||
Шапка/колонтитул Прил. Н: v2.8 → **v2.9**. Добавить changelog-строку «v2.9 от 17.05.2026 — A3 integration-tooling: §4.22 #47 openapi-mcp-server, 9-я off-phase подкатегория integration-tooling; §0 счётчик 46→47. Связано: PSR_v1 v3.9, Pravila v1.23, CLAUDE.md v2.9.»
|
||||
|
||||
- [ ] **Step 5: Commit**
|
||||
|
||||
```bash
|
||||
git add docs/Tooling_v8_3.md
|
||||
git commit -m "docs(a3): Tooling Прил. Н v2.5 — register #41 openapi-mcp-server (§4.16)"
|
||||
git commit -m "docs(a3): Tooling Прил. Н v2.9 — register #47 openapi-mcp-server (§4.22)"
|
||||
```
|
||||
|
||||
cspell-блок → добавить термины в `cspell-words.txt`, повторить.
|
||||
@@ -403,20 +403,20 @@ Run: `Grep` `docs/Plugin_stack_rules_v1.md` паттерн `R10.1|Блок 3|sen
|
||||
В таблицу/список Блока 3 R10.1 добавить строку (зеркалируя строки sentry/redis):
|
||||
|
||||
```markdown
|
||||
| openapi-mcp-server | integration-tooling | off-phase. stdio MCP, server `openapi` в `.mcp.json`. Раздел A3 карты. Не trigger'ит R6.0/R6.1, вне R14 pipeline. Tooling §4.16 #41. |
|
||||
| openapi-mcp-server | integration-tooling | off-phase. stdio MCP, server `openapi` в `.mcp.json`. Раздел A3 карты. Не trigger'ит R6.0/R6.1, вне R14 pipeline. Tooling §4.22 #47. |
|
||||
```
|
||||
|
||||
Точный формат строки — по факту таблицы (колонки сверить в Step 1).
|
||||
|
||||
- [ ] **Step 3: Bump версии**
|
||||
|
||||
Шапка PSR_v1: v3.4 → **v3.5**. Changelog-строка «v3.5 от 17.05.2026 — R10.1 Блок 3 +1 строка openapi-mcp-server (категория integration-tooling, off-phase, раздел A3). Не UI → вне R6/R14. Связано: Tooling v2.5, Pravila v1.19, CLAUDE.md v2.5.» Обновить cross-refs шапки, если они перечисляют версии родственных файлов.
|
||||
Шапка PSR_v1: v3.8 → **v3.9**. Changelog-строка «v3.9 от 17.05.2026 — R10.1 Блок 3 +1 строка openapi-mcp-server (категория integration-tooling, off-phase, раздел A3). Не UI → вне R6/R14. Связано: Tooling v2.9, Pravila v1.23, CLAUDE.md v2.9.» Обновить cross-refs шапки, если они перечисляют версии родственных файлов.
|
||||
|
||||
- [ ] **Step 4: Commit**
|
||||
|
||||
```bash
|
||||
git add docs/Plugin_stack_rules_v1.md
|
||||
git commit -m "docs(a3): PSR_v1 v3.5 — R10.1 Блок 3 +openapi-mcp (integration-tooling)"
|
||||
git commit -m "docs(a3): PSR_v1 v3.9 — R10.1 Блок 3 +openapi-mcp (integration-tooling)"
|
||||
```
|
||||
|
||||
---
|
||||
@@ -436,18 +436,18 @@ Run: `Grep` `docs/Pravila_raboty_Claude_v1_1.md` паттерн `§13.2|Off-phas
|
||||
После абзаца «Off-phase audit-security» добавить:
|
||||
|
||||
```markdown
|
||||
**Off-phase integration-tooling.** Инструменты раздела A3 карты «Программирование — интеграции (API, вебхуки)» — #41 `openapi-mcp-server` (Tooling §4.16; стек §4.x — введён A3-интеграцией 17.05.2026) и `api-docs` agent (claude-flow, узел карты A3 без отдельного Tooling-номера). Off-phase, не UI → вне R6/R14 PSR_v1. READ-ONLY introspection. Регулируются PSR_v1 R10.1 Блок 3.
|
||||
**Off-phase integration-tooling.** Инструменты раздела A3 карты «Программирование — интеграции (API, вебхуки)» — #47 `openapi-mcp-server` (Tooling §4.22; введён A3-интеграцией 17.05.2026) и `api-docs` agent (claude-flow, узел карты A3 без отдельного Tooling-номера). Off-phase, не UI → вне R6/R14 PSR_v1. READ-ONLY introspection. Регулируются PSR_v1 R10.1 Блок 3.
|
||||
```
|
||||
|
||||
- [ ] **Step 3: Bump версии + счётчик правил**
|
||||
|
||||
Шапка Pravila: v1.18 → **v1.19**. Если §13.2 (или §11.5) содержит счётчик подкатегорий/правил — свериться `Grep`'ом и инкрементировать. Changelog-строка «v1.19 от 17.05.2026 — §13.2 +абзац Off-phase integration-tooling (#41 openapi-mcp-server / api-docs agent — раздел A3 карты). Связано: Tooling v2.5, PSR_v1 v3.5, CLAUDE.md v2.5.»
|
||||
Шапка Pravila: v1.22 → **v1.23**. Если §13.2 (или §11.5) содержит счётчик подкатегорий/правил — свериться `Grep`'ом и инкрементировать. Changelog-строка «v1.23 от 17.05.2026 — §13.2 +абзац Off-phase integration-tooling (#47 openapi-mcp-server / api-docs agent — раздел A3 карты). Связано: Tooling v2.9, PSR_v1 v3.9, CLAUDE.md v2.9.»
|
||||
|
||||
- [ ] **Step 4: Commit**
|
||||
|
||||
```bash
|
||||
git add docs/Pravila_raboty_Claude_v1_1.md
|
||||
git commit -m "docs(a3): Pravila v1.19 — §13.2 +Off-phase integration-tooling"
|
||||
git commit -m "docs(a3): Pravila v1.23 — §13.2 +Off-phase integration-tooling"
|
||||
```
|
||||
|
||||
---
|
||||
@@ -462,14 +462,14 @@ git commit -m "docs(a3): Pravila v1.19 — §13.2 +Off-phase integration-tooling
|
||||
|
||||
Invoke `/claude-md-management:claude-md-improver` со списком targeted-правок:
|
||||
|
||||
- §3 title «Карта 40 инструментов» → «41»;
|
||||
- §3.3 +строка #41 openapi-mcp-server (integration-tooling, off-phase; Tooling §4.16) + упоминание `api-docs` agent как парного узла карты A3 без Tooling-номера;
|
||||
- §1 priority-chain row 2b «реестр 40» → «41»;
|
||||
- §3.3 footer count 40→41 + integration-tooling как 7-я off-phase подкатегория;
|
||||
- §3.4 нумерационная сноска — добавить #41 в перечисление off-phase, обновить арифметику;
|
||||
- §0 cross-refs: Pravila v1.18→**v1.19**, PSR_v1 v3.4→**v3.5**, Tooling v2.4→**v2.5**;
|
||||
- §6 +абзац A3 integration-tooling (по образцу абзацев A6/D3);
|
||||
- шапка v2.4 → **v2.5** + §9 changelog-запись.
|
||||
- §3 title «Карта 46 инструментов» → «47»;
|
||||
- §3.3 +строка #47 openapi-mcp-server (integration-tooling, off-phase; Tooling §4.22) + упоминание `api-docs` agent как парного узла карты A3 без Tooling-номера;
|
||||
- §1 priority-chain row 2b «реестр 46» → «47»;
|
||||
- §3.3 footer count 46→47 + integration-tooling как 9-я off-phase подкатегория;
|
||||
- §3.4 нумерационная сноска — добавить #47 в перечисление off-phase, обновить арифметику;
|
||||
- §0 cross-refs: Pravila v1.22→**v1.23**, PSR_v1 v3.8→**v3.9**, Tooling v2.8→**v2.9**;
|
||||
- §6 +абзац A3 integration-tooling (по образцу абзацев A6/D3/A4);
|
||||
- шапка v2.8 → **v2.9** + §9 changelog-запись.
|
||||
|
||||
- [ ] **Step 2: Проверить синхронность (§5 п.7)**
|
||||
|
||||
@@ -481,7 +481,7 @@ Invoke `/claude-md-management:claude-md-improver` со списком targeted-
|
||||
|
||||
```bash
|
||||
git add CLAUDE.md
|
||||
git commit -m "docs(a3): CLAUDE.md v2.5 — register #41 openapi-mcp-server (A3 integration-tooling)"
|
||||
git commit -m "docs(a3): CLAUDE.md v2.9 — register #47 openapi-mcp-server (A3 integration-tooling)"
|
||||
```
|
||||
|
||||
---
|
||||
@@ -498,12 +498,12 @@ Invoke skill `regression` с аргументом `quick` (lint/format/type-chec
|
||||
|
||||
- [ ] **Step 2: Финальная сверка счётчика (риск нумерации)**
|
||||
|
||||
Run: `git log --oneline origin/main..HEAD` + `Grep` Tooling §0 — подтвердить, что #41/§4.16 не пересёкся с A11/C9, если те смёрджились в main. При коллизии — перенумеровать openapi-mcp на следующий свободный номер во всех 4 файлах + карте, повторить затронутые коммиты.
|
||||
Run: `git log --oneline origin/main..HEAD` + `Grep` Tooling §0 — подтвердить, что #47/§4.22 не пересёкся с A11, если та смёрджилась в main (C9/deptrac/A4 уже влиты). При коллизии — перенумеровать openapi-mcp на следующий свободный номер во всех 4 файлах + карте, повторить затронутые коммиты.
|
||||
|
||||
- [ ] **Step 3: Обновить memory**
|
||||
|
||||
- `memory/project_automation_map.md` — метрики 110→112 узлов / +3 ребра, раздел A3 наполнен (7 узлов: 2 новых + 5 кросс-реф), `NODE_SECTION_SECONDARY` слой.
|
||||
- `memory/reference_archive.md` — версии Tooling v2.5 / PSR_v1 v3.5 / Pravila v1.19 / CLAUDE.md v2.5.
|
||||
- `memory/project_automation_map.md` — метрики 116→118 узлов / +3 ребра, раздел A3 наполнен (7 узлов: 2 новых + 5 кросс-реф), `NODE_SECTION_SECONDARY` слой.
|
||||
- `memory/reference_archive.md` — версии Tooling v2.9 / PSR_v1 v3.9 / Pravila v1.23 / CLAUDE.md v2.9.
|
||||
- `MEMORY.md` — обновить строки-указатели при необходимости.
|
||||
|
||||
- [ ] **Step 4: Commit memory**
|
||||
@@ -533,4 +533,4 @@ git commit -m "docs(a3): memory sync — A3 integration-tooling closed"
|
||||
|
||||
**Placeholder scan:** `<PKG>` — намеренный плейсхолдер, разрешается в Task 2 Step 1 (`npm view`) и подставляется в Task 2 Step 3 / Task 6 Step 2; «[подставить из Task 2 Step 4]» — статус установки, разрешается в рамках Task 2. Иных плейсхолдеров нет.
|
||||
|
||||
**Type consistency:** имена узлов `ag_apidocs` / `mcp_openapi` — единообразны во всех задачах (NODES, NODE_SECTION, NODE_DETAILS, NODE_TIMELINE, EDGES, NODE_SECTION_SECONDARY не содержит их — они первичны в A3). Объект `NODE_SECTION_SECONDARY` — одно имя везде. Версии: Tooling v2.5 / PSR_v1 v3.5 / Pravila v1.19 / CLAUDE.md v2.5 — консистентны в Tasks 6-9 и §0 cross-refs.
|
||||
**Type consistency:** имена узлов `ag_apidocs` / `mcp_openapi` — единообразны во всех задачах (NODES, NODE_SECTION, NODE_DETAILS, NODE_TIMELINE, EDGES, NODE_SECTION_SECONDARY не содержит их — они первичны в A3). Объект `NODE_SECTION_SECONDARY` — одно имя везде. Версии: Tooling v2.9 / PSR_v1 v3.9 / Pravila v1.23 / CLAUDE.md v2.9 — консистентны в Tasks 6-9 и §0 cross-refs.
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
**Дата:** 2026-05-17
|
||||
**Раздел карты:** A3 «Программирование — интеграции (API, вебхуки)»
|
||||
**Параллель:** A6 architecture-tooling (17.05.2026), D3 audit-security (17.05.2026)
|
||||
**Ветка:** `feat/a3-integration-tooling` (форк от `7c12b74` — D3-tip, CLAUDE.md v2.4)
|
||||
**Ветка:** `feat/a3-integration-tooling` (rebased на origin/main `1313d89`, CLAUDE.md v2.8)
|
||||
|
||||
## 1. Проблема
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
(HMAC + per-token rate-limit), ~5 внешних API (Unisender Go / Yandex Cloud /
|
||||
Yandex 360 / JivoSite / Sentry) — но инструментами разделов A1/A5/A7/A8/E7.
|
||||
Ни один инструмент не классифицирован как A3. Состояние — как у A6 до 17.05.
|
||||
(строки 1868-1911 в оригинальном форке — после ребейза локализовать Grep'ом по `'A3'` в `NODE_SECTION`).
|
||||
|
||||
## 2. Цель и scope
|
||||
|
||||
@@ -33,7 +34,7 @@ Docker/JVM+Mongo, несовместим с native-Windows-no-Docker стеко
|
||||
| Узел (id карты) | Что | Установка | Tooling-реестр |
|
||||
|---|---|---|---|
|
||||
| **api-docs agent** (`ag_apidocs`, claude-flow) | генерация OpenAPI-спеки REST API, pattern learning | 0 — агент уже доступен в сессии | **нет номера** — claude-flow sub-агент; реестр Прил. Н — plugin-grain (как 11 уже существующих agent-узлов карты, ни один не имеет Tooling-номера) |
|
||||
| **openapi-mcp-server** (`mcp_openapi`, npm, stdio MCP) | отдаёт OpenAPI-спеку как MCP-ресурс/тулы; introspection своей и чужих API | `npm i` + запись в `.mcp.json` | **#41**, Tooling §4.16 |
|
||||
| **openapi-mcp-server** (`mcp_openapi`, npm, stdio MCP) | отдаёт OpenAPI-спеку как MCP-ресурс/тулы; introspection своей и чужих API | `npm i` + запись в `.mcp.json` | **#47**, Tooling §4.22 |
|
||||
|
||||
### 3.2. Кросс-реф вторичным тегом A3 (5 — первично остаются в своих разделах)
|
||||
|
||||
@@ -70,16 +71,16 @@ Docker/JVM+Mongo, несовместим с native-Windows-no-Docker стеко
|
||||
- **`NODE_TIMELINE`:** `ag_apidocs` / `mcp_openapi` — `since: '17.05.2026'`.
|
||||
- **Рёбра (~2-3):** новые узлы → governing-правила, напр.
|
||||
`E('psr_v1', 'mcp_openapi', 'R10.1 блок 3:\nintegration-tooling')`.
|
||||
- **Счётчики:** 106→108 узлов, 109→~112 рёбер. Новых конфликтов не ожидается.
|
||||
- **Счётчики:** 116→118 узлов, +3 ребра. Новых конфликтов не ожидается.
|
||||
|
||||
## 5. Нормативка (4 файла — как A6/D3)
|
||||
|
||||
| Файл | Правка | Версия |
|
||||
|---|---|---|
|
||||
| Tooling Прил. Н | §4.16 (новый) — #41 openapi-mcp-server; §0 счётчик 40→41; 7-я off-phase подкатегория **integration-tooling** | v2.4→v2.5 |
|
||||
| PSR_v1 | R10.1 Блок 3 (MCP-серверы) +1 строка openapi-mcp; integration-tooling — не UI → вне R6/R14 | v3.4→v3.5 |
|
||||
| Pravila | §13.2 +абзац «Off-phase integration-tooling» | v1.18→v1.19 |
|
||||
| CLAUDE.md | §3 title 40→41; §3.3 +строка #41 (+упоминание api-docs agent); §1 row 2b 40→41; §3.3 footer; §0 cross-refs; §6 +абзац A3 | v2.4→v2.5 |
|
||||
| Tooling Прил. Н | §4.22 (новый) — #47 openapi-mcp-server; §0 счётчик 46→47; 9-я off-phase подкатегория **integration-tooling** | v2.8→v2.9 |
|
||||
| PSR_v1 | R10.1 Блок 3 (MCP-серверы) +1 строка openapi-mcp; integration-tooling — не UI → вне R6/R14 | v3.8→v3.9 |
|
||||
| Pravila | §13.2 +абзац «Off-phase integration-tooling» | v1.22→v1.23 |
|
||||
| CLAUDE.md | §3 title 46→47; §3.3 +строка #47 (+упоминание api-docs agent); §1 row 2b 46→47; §3.3 footer; §0 cross-refs; §6 +абзац A3 | v2.8→v2.9 |
|
||||
|
||||
CLAUDE.md — через `/claude-md-management:claude-md-improver` (§5 п.10). Кросс-реф
|
||||
5 существующих инструментов — **только map-модель**; в нормативный реестр не
|
||||
@@ -94,24 +95,17 @@ CLAUDE.md — через `/claude-md-management:claude-md-improver` (§5 п.10).
|
||||
api-docs agent на одну группу эндпоинтов (deals API) → стартовый
|
||||
OpenAPI-скелет как proof. Полную спеку не генерируем.
|
||||
- Регрессия `quick` (lint/format/type-check) перед коммитом нормативки.
|
||||
- Визуальный smoke карты: открыть `automation-graph.html` — 108 узлов,
|
||||
- Визуальный smoke карты: открыть `automation-graph.html` — 118 узлов,
|
||||
0 JS-ошибок, панель «Разделы» показывает A3 с 7 узлами.
|
||||
- `git` без bypass хуков.
|
||||
|
||||
## 7. Риск нумерации (кросс-веточный)
|
||||
## 7. Нумерация (риск реализовался — закрыт)
|
||||
|
||||
D3 (committed, unpushed) занял #39/#40 + Tooling §4.14/§4.15. A3 строится поверх
|
||||
D3-tip → #41/§4.16. **Параллельно в работе:** ветка `feat/a11-ml-ai-tooling`
|
||||
(A11 ML/AI-tooling) и черновик плана C9
|
||||
(`docs/superpowers/plans/2026-05-17-c9-project-management-tooling-integration.md`)
|
||||
— обе тоже могут регистрировать инструменты. Если A11/C9 смёрджатся в main
|
||||
раньше A3 — перенумеровать openapi-mcp при интеграции (#41 → следующий
|
||||
свободный). Митигация: финальная сверка счётчика Tooling §0 перед коммитом
|
||||
нормативки A3.
|
||||
Ветка `feat/a3-integration-tooling` исходно форкнулась от D3-эры (`7c12b74`). За это время в origin/main влиты C9 (#41 CCPM / #42 product-management), deptrac (#43), A4 (#44/#45/#46). Риск из исходной редакции §7 материализовался. Закрыт ребейзом feat/a3 на актуальный origin/main `1313d89`: openapi-mcp-server подтверждён как **#47**, Tooling **§4.22**, integration-tooling — **9-я** off-phase подкатегория. Остаточный риск: если ещё одна интеграция (напр. A11) смёрджится в main раньше A3 — финально сверить счётчик Tooling §0 перед коммитом нормативки (план Task 10 Step 2).
|
||||
|
||||
## 8. Ветка и артефакты
|
||||
|
||||
- Ветка `feat/a3-integration-tooling` от `7c12b74` (D3-tip).
|
||||
- Ветка `feat/a3-integration-tooling` rebased на origin/main `1313d89`.
|
||||
- Spec: этот файл.
|
||||
- План: `docs/superpowers/plans/2026-05-17-a3-integration-tooling-integration.md`.
|
||||
- Merge: `git push origin feat/a3-integration-tooling:main` после D3 (ветка A3
|
||||
|
||||
Reference in New Issue
Block a user