diff --git a/docs/Tooling_v8_3.md b/docs/Tooling_v8_3.md index 7933791a..ddabede3 100644 --- a/docs/Tooling_v8_3.md +++ b/docs/Tooling_v8_3.md @@ -88,6 +88,30 @@ **КАНОН СЧЁТЧИКОВ.** Числовые счётчики формализованных позиций и off-phase подкатегорий тулчейна каноничны здесь — в Прил. Н §0. CLAUDE.md, Pravila §13.2 и PSR_v1 R10.1 ссылаются сюда формулировкой «реестр и счётчики — Tooling Прил. Н §0» и не дублируют числа. Введено SYSTEM-аудитом 18.05.2026 (finding 3) для устранения класса «арифметический дрейф счётчиков» (ловился аудитами v1.85/v1.86). +### §0.1 Row template (v2.17+ — per ADR-011) + +Every row §4.X (а также вынесенные блоки §2.4 для phase-0, §3.5 для phase-1 и т.д. — где узлы зафиксированы таблицами, а не отдельными подсекциями) MUST include 9 obligatory attributes in a structured block at the top of the section: + +| Attribute | Type | Required | Description | +|---|---|---|---| +| `id` | `#NN` | yes | Unique number (matches Прил. Н TOC) | +| `name` | string | yes | Canonical tool name | +| `kind` | enum | yes | `plugin` / `skill` / `mcp` / `hook` / `vendored-skill` / `composer-dep` / `npm-dep` / `agent` / `binary-dep` | +| `phase` | enum | yes | `0` / `1` / `2` / `3` / `off-phase` | +| `subcategory` | string | optional | Off-phase subcategory (absent for phase-active) | +| `triggers` | string | yes | Keywords/task-types that route to this node | +| `boundaries` | string | yes | ADR-cross-ref OR explicit «no neighbor» | +| `dormant` | boolean | yes | `false` (active) / `true` (artefacts kept, runtime disabled) | +| `last-touched` | ISO date | yes | Date of last registry update | + +Block format (markdown table inside the §4.X section, immediately after the section heading): + +| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched | +|---|---|---|---|---|---|---|---|---| +| #NN | <name> | <kind> | <phase> | <subcat or —> | «<triggers>» | <ADR-NNN or none> | false | 2026-05-19 | + +Existing prose follows the table. + **Ключевой принцип фазирования:** не активируем фазу N+1, пока не закрыт триггер фазы N. Без `composer create-project` Boost не работает; без Vuetify-приложения Histoire бесполезен. --- @@ -132,6 +156,84 @@ | 8 | **gitleaks** | GitHub Releases (`gitleaks__windows_x64.zip`) | Pre-commit hook: поиск телефонов, email, токенов, ИНН, КЭП в diff. Правило §5.2 правил Claude | | 9 | **Pa11y** | `npm i -D pa11y pa11y-ci` | WCAG 2.1 AA проверка прототипов. Требование брендбука §3.4. Единственный источник истины по a11y во всём проекте | +### 2.4. Атрибуты узлов фазы 0 (per ADR-011) + +Структурированные блоки 9-атрибутного шаблона §0.1 для phase-0 узлов #1–#9. Шаблон введён ADR-011 (Task A3 sub-batch 1, 19.05.2026). Существующие таблицы §2.1/§2.2/§2.3 сохраняются как human-readable дескрипция; блоки ниже — machine-friendly реестр атрибутов. + +#### #1 PostgreSQL MCP + +**Атрибуты:** + +| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched | +|---|---|---|---|---|---|---|---|---| +| #1 | PostgreSQL MCP | mcp | 0 | — | «SQL validation, schema check, dev DB introspection» | none (заменён #10 Laravel Boost в фазе 1 — см. §3.1) | true | 2026-05-19 | + +Прим.: dormant=true — узел исторически замещён #10 Boost при переходе в фазу 1; артефакт реестра сохраняется как historic slot (CLAUDE.md §3.1 row #1). + +#### #2 Playwright MCP + +**Атрибуты:** + +| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched | +|---|---|---|---|---|---|---|---|---| +| #2 | Playwright MCP | mcp | 0 | — | «HTML prototype, screenshot, interaction smoke» | none | false | 2026-05-19 | + +#### #3 GitHub MCP + +**Атрибуты:** + +| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched | +|---|---|---|---|---|---|---|---|---| +| #3 | GitHub MCP | mcp | 0 | — | «issues, PR, commits, открытые вопросы» | none | false | 2026-05-19 | + +#### #4 markdownlint-cli2 + +**Атрибуты:** + +| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched | +|---|---|---|---|---|---|---|---|---| +| #4 | markdownlint-cli2 | npm-dep | 0 | — | «lint .md, markdown style, заголовки/таблицы» | none | false | 2026-05-19 | + +#### #5 cspell + +**Атрибуты:** + +| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched | +|---|---|---|---|---|---|---|---|---| +| #5 | cspell | npm-dep | 0 | — | «орфография ru/en, кастомный словарь» | none | false | 2026-05-19 | + +#### #6 lychee + +**Атрибуты:** + +| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched | +|---|---|---|---|---|---|---|---|---| +| #6 | lychee | binary-dep | 0 | — | «проверка ссылок .md, кросс-ссылки архива» | none | false | 2026-05-19 | + +#### #7 Stylelint + +**Атрибуты:** + +| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched | +|---|---|---|---|---|---|---|---|---| +| #7 | Stylelint | npm-dep | 0 | — | «CSS lint, Vue SFC style» | none | false | 2026-05-19 | + +#### #8 gitleaks + +**Атрибуты:** + +| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched | +|---|---|---|---|---|---|---|---|---| +| #8 | gitleaks | binary-dep | 0 | — | «секреты в diff, pre-commit hook» | none | false | 2026-05-19 | + +#### #9 Pa11y + +**Атрибуты:** + +| id | name | kind | phase | subcategory | triggers | boundaries | dormant | last-touched | +|---|---|---|---|---|---|---|---|---| +| #9 | Pa11y | npm-dep | 0 | — | «a11y WCAG 2.1 AA, прототипы, технический SoT» | none | false | 2026-05-19 | + --- ## 3. Фаза 1 — старт Laravel (+9 новых, −1 заменён, итого 17 активных)