# Spec: Подробный аудит проекта Лидерра — 2026-05-09

**Версия:** 1.1 (от 09.05.2026 — пересмотр под Plugin_stack_rules_v1 v1.3 + Pravila v1.6 + Прил. Н v1.10)
**Дата:** 09.05.2026
**Автор:** Claude Code (skill: superpowers:brainstorming)
**Заказчик:** Дмитрий
**Статус:** черновик, ждёт review заказчика

**История версий spec'а:**

- **v1.1 (09.05.2026)** — пересмотр под актуальные правила плагинов: §12 переписан с полным inventory (4 superpowers-skills + 2 встроенных плагина + 4 внешних + 3 MCP); добавлена явная иерархия R10/R11/R13 для агентов D1/D3/D5; в §3 расширен P0 stack-нарушениями; новая §15 — карта соответствия Plugin_stack_rules_v1 v1.3 → spec; самопроверка spec'а/отчёта на «misuse FD plugin» как часть DoD.
- **v1.0 (09.05.2026)** — первичный дизайн через `superpowers:brainstorming`: 4 этапа (sweep тулами → 6 субагентов → консолидация → self-review), P0/P1/P2 + O-perf/O-refactor/O-stack.

## 1. Цель

Подробный аудит проекта Лидерра на:

- **Дефекты (P)** — фактические ошибки, дубли, устаревшие версии/метрики, битые ссылки и якоря, **нарушения Plugin_stack_rules_v1 v1.3** (paired stack Superpowers + Frontend Design, иерархия источников истины UI/UX, scope «головенства» stack-правил).
- **Возможности (O)** — оптимизация (perf), совершенствование (refactor/quality), модернизация (stack/upgrade).

Результат — один сводный markdown-отчёт с приоритетами. Аудит — диагностический; реализация правок не входит в DoD.

**Метаправило:** сам аудит соблюдает Plugin_stack_rules_v1 v1.3 — каждое использование плагина/skill'а в плане сопоставлено с явным R-правилом (см. §12 и §15). Приоритет источников при конфликте — по CLAUDE.md §1 (Pravila §12 → Pravila → CLAUDE.md → Plugin_stack_rules_v1 → settings.json → memory → прочие плагины).

## 2. Охват

| Зона | Артефакты |
|---|---|
| Документация narrative | `docs/*.md` (16 файлов), `CLAUDE.md`, `README.md`, `docs/CHANGELOG_claude_md.md` |
| **Правила работы Claude** | `docs/Pravila_raboty_Claude_v1_1.md` (v1.6), `docs/Plugin_stack_rules_v1.md` (v1.3), `docs/Tooling_v8_3.md` (Прил. Н v1.10) — отдельная подзона D1, проверяется на внутреннюю консистентность и соответствие фактически активному стеку плагинов |
| Схема БД | `db/schema.sql`, `db/CHANGELOG_schema.md`, `db/00_create_roles.sql`, `db/02_grants.sql` |
| Дизайн-handoff | `liderra_v8_handoff/**` (BRANDBOOK_v2, DEVELOPER_HANDOFF, токены, 13 HTML-концептов) |
| Backend | `app/**` — Laravel 13.7, миграции, модели, контроллеры, Pest-тесты, конфиги |
| Frontend | `resources/js/**`, `histoire.config.ts`, `vite.config.ts` |
| Конфиги корня | `.mcp.json`, `lefthook.yml`, `.markdownlint.json`, `.gitleaks.toml`, `.squawk.toml`, `.lychee.toml`, `cspell.json`, `package.json`, `.gitignore`, `pa11y.config.json` |

**Out of scope:** `web/v8/*.html` концепты (не в продакшене, заменяются Vue), `лендинг/` (⏸ Б-1), `node_modules/`, `vendor/`.

## 3. Категории находок

### Дефекты (P)

- **P0 — критичные:** фактические ошибки, блокирующие корректность/безопасность.
  - Orphan-FK, противоречия ТЗ↔schema, дубли `CREATE TABLE`, утечка секретов, RLS-провал на tenant-таблице.
  - **Stack-нарушения** (Plugin_stack_rules_v1 v1.3): обход stack-gate без явной /команды или R0.4.A исключения (Pravila §13.9 hard-link на R10); упоминания применения FD plugin для не-UI-задач; пропуск Superpowers-skill'а на §12-задаче без §12.3 исключения; упоминания удалённых из стека тулов (Tailwind/Inertia/Livewire/Filament/React/shadcn) в actively используемых документах (§5 п.5 CLAUDE.md).
- **P1 — важные:** устаревшие метрики в шапке, битые внутрипроектные ссылки, дубли правил между Pravila/CLAUDE.md/Plugin_stack_rules_v1, расхождение версий между источниками истины (CLAUDE.md ↔ Pravila ↔ Plugin_stack_rules_v1 ↔ Tooling Прил. Н ↔ ТЗ ↔ schema).
- **P2 — мелочи:** орфография, формат, линт-замечания без семантики.

### Возможности (O)

- **O-perf:** N+1, missing indices на FK, eager-loading пропуски, тяжёлые SQL без EXPLAIN, bundle size, lazy-import пропуски, неэффективные RLS-предикаты.
- **O-refactor:** файлы >500 строк, нарушения принципа единственной ответственности (SRP), дубли логики, boilerplate, длинные методы (>80 строк), отсутствие type-hints, dead code.
- **O-stack:** устаревшие зависимости (`composer outdated`, `npm outdated`), deprecated API, упущенные фичи Laravel 13 / Pest 4 / Vue 3.5 / Vuetify 3.12.

### Отложенное (НЕ дефекты, выводится отдельной секцией)

- Открытые вопросы из реестра (`Биз-*`, `CTO-*`, `Ю-*`, `Диз-*`, `DO-*`, `OPEN-*`).
- Явные `workaround until X` (Б-1, pg_partman → Artisan-cron, и т.п.).

## 4. Архитектура — 4 этапа

```
[Этап 1: Sweep тулами]   parallel, ~10-15 мин
        ↓
   stage1_*.txt   (raw findings из 15 тулов в .tmp/audit/)
        ↓
[Этап 2: Семантический аудит]   6 субагентов parallel, ~30-60 мин
   D1 docs / D2 db / D3 handoff / D4 backend / D5 frontend / D6 configs
        ↓
   stage2_<domain>.md   (×6 в .tmp/audit/, шаблон P/O/Notes)
        ↓
[Этап 3: Консолидация]   синхронно в основном потоке, ~15-30 мин
   дедуп по (file, line, category), переклассификация, секция «Отложенное»
        ↓
   docs/audit_2026-05-09.md   (финал)
        ↓
[Этап 4: Self-review]   verification-before-completion + requesting-code-review
```

## 5. Этап 1 — sweep тулами (15 проверок)

| # | Тул | Зона | Что ищет |
|---|---|---|---|
| 1 | markdownlint-cli2 | docs/, лендинг/, handoff | Линт .md |
| 2 | cspell | то же | Орфо (ru-ru + en + cspell-words.txt) |
| 3 | lychee | то же + CLAUDE.md + README.md | Битые внутрипроектные ссылки и якоря |
| 4 | pa11y | web/v8/*.html | A11y нарушения (для контекста — handoff обещает 0) |
| 5 | grep-патрули | db/schema.sql | Дубли через regex `^CREATE TABLE\s+\w+`, `^CREATE INDEX\s+\w+` (с подсчётом групп); orphan-FK через парные regex `REFERENCES\s+(\w+)` ↔ `CREATE TABLE\s+\1` |
| 6 | squawk | db/schema.sql | Опасные миграционные паттерны |
| 7 | pgFormatter --dry-run | db/schema.sql | Форматирование (диф, не правки) |
| 8 | Pest | app/ | Прогон (фиксируем X/Y факт) |
| 9 | Larastan analyse | app/ | Стат-анализ PHP |
| 10 | vue-tsc --noEmit | resources/js/ | Type-check Vue |
| 11 | ESLint --max-warnings=0 | resources/js/ | Линт + правила Vue |
| 12 | Vitest run | resources/js/ | Прогон (фиксируем X/Y факт) |
| 13 | composer outdated --direct | app/ | Устаревшие PHP-зависимости (только direct) |
| 14 | npm outdated | корень | Устаревшие npm-зависимости |
| 15 | composer audit | app/ | CVE в PHP-зависимостях (поверх Roave) |

`gitleaks` в этап 1 не вынесен — у нас в pre-commit, secrets не доходят до main.

Параллелизация — через skill `superpowers:dispatching-parallel-agents` или прямые параллельные `Bash`-вызовы.

## 6. Этап 2 — 6 субагентов

| Агент | Зона | Главные таргеты |
|---|---|---|
| **D1 narrative** | `docs/*.md` (16) + `CLAUDE.md` + `README.md` + `docs/CHANGELOG_claude_md.md` + `docs/Pravila_raboty_Claude_v1_1.md` + `docs/Plugin_stack_rules_v1.md` + `docs/Tooling_v8_3.md` | Версии в шапках синхронны (5+ источников: CLAUDE.md v1.81 ↔ Tooling Прил. Н v1.10 ↔ Pravila v1.6 ↔ Plugin_stack_rules_v1 v1.3 ↔ ТЗ v8.5 ↔ schema v8.10), 0 «TBD», метрики в шапках = факту, кросс-ссылки актуальны, дубли блоков, **stack-консистентность**: упоминания тулов в narrative ↔ фактически активный набор из Прил. Н (29 номеров, 19 активных), внутренние ссылки между Pravila §12/§13.9 и Plugin_stack_rules_v1 R0/R10/R13 |
| **D2 db** | `db/schema.sql` + `db/CHANGELOG_schema.md` + `db/00_create_roles.sql` + `db/02_grants.sql` | Метрики (56/12/95/37/5/13) считаются grep'ом и сверяются с шапкой, FK-orphans, дубли таблиц/индексов, RLS-coverage tenant-таблиц, синхронность с ТЗ §6.4 (14 slug'ов воронки) |
| **D3 handoff** | `liderra_v8_handoff/**` | Совпадение токенов с `resources/js/plugins/vuetify.ts`, 14 OKLCH-статусов handoff ↔ 14 slug'ов schema, состав фич handoff ≠ источник истины (источник = ТЗ), 81 axe-violation vs «0 violations», **R11 иерархия источников истины UI/UX** соблюдена в handoff (Brandbook → ТЗ → FD → Boost → ui-ux-pro-max → Vue/Vuetify docs); handoff ничего не предписывает по фичам/статусам — только бренд/токены/компоненты |
| **D4 backend** | `app/**` | RLS-bypass, отсутствие `tenant`-middleware на роутах, `password` vs `password_hash` (наш override), encrypted-cast, секреты в `.env.example`, дубли FormRequest, тесты с password ≥8 chars |
| **D5 frontend** | `resources/js/**` + `histoire.config.ts` + `vite.config.ts` | Auto-import Vuetify дубликаты, router meta.layout консистентность, Pinia auth-store: токен в localStorage, axios baseURL/credentials, Histoire stories ↔ компоненты handoff, **R6 стек-фильтр**: 0 импортов/JSX/className из React/Tailwind/shadcn (любые остатки = P0 stack-нарушение); **R6.1 hard-override Forest**: палитра в `vuetify.ts` ≠ паттерну «NEVER Inter / bold maximalism» из FD-skill (palette = Forest Teal `#0F6E56`) |
| **D6 configs** | корень: 10 конфигов | Соответствие командам в CLAUDE.md §4 / Tooling §3, hooks lefthook покрывают заявленное, `.mcp.json` без отключённых блоков, версии в `package.json` ↔ Tooling Прил. Н, **stack-aware**: `~/.claude/settings.json` декларативно подключает Frontend Design plugin (paired stack), `.mcp.json` содержит ровно 3 MCP (laravel-boost, github, playwright) — никаких лишних |

Каждому агенту на вход: (1) выдержка этапа 1 для своей зоны, (2) общий чеклист (см. §7), (3) узкие таргеты домена.

Каждый агент возвращает `stage2_<domain>.md` в `.tmp/audit/` по шаблону:

```markdown
# stage2 / <domain>
## P0 — N items
   ### P0-XX — <имя>
   - Файл: <path>:<line>
   - Категория: <фактическая нестыковка | дубль | устаревшая версия | битая ссылка>
   - Цитата: «...»
   - Сравнение: «X в A» vs «Y в B»
   - Предлагаемая правка: <конкретно>
   - Усилие: S/M/L
## P1 — N
## P2 — N
## O-perf — N
   ### O-perf-XX — <имя>
   - Файл: <path>:<line>
   - Категория: N+1 / missing index / bundle size / RLS predicate / ...
   - Текущее поведение: <описание>
   - Предлагаемое улучшение: <конкретно>
   - Профит: <качественно>
   - Риск: low/medium/high
   - Усилие: S/M/L
## O-refactor — N
## O-stack — N
## Notes (что не получилось проверить и почему)
```

## 7. Чеклист агентов

### Общий (для всех 6 — без него ни один P/O-пункт не считается)

```
DEFECT (P)
□ Фактическая ошибка vs другой источник истины (указать ОБА места)
□ Дубль (структурно идентичный блок/правило/таблица — обе позиции)
□ Устаревшая версия в шапке (vs git log / grep / шапки соседа)
□ Метрика в шапке ≠ факту (шапка vs grep)
□ Битая внутрипроектная ссылка / якорь (lychee + ручная проверка)

IMPROVEMENT (O)
□ O-perf: явная неэффективность (дублирующий запрос, missing index, тяжёлый цикл)
□ O-refactor: файл >500 строк, метод/функция >80 строк, дубль логики
□ O-stack: устаревшая зависимость, упущенная фича актуального стека, deprecated API

R-CHECKS (нарушения Plugin_stack_rules_v1 v1.3 — фиксируются как P0)
□ R0.1: scope «головенства» Plugin_stack_rules_v1 не превышен — stack головной только над уровнями 4–6 priority chain (settings.json, memory, прочие плагины), не над 0–2 (Pravila §12, Pravila, CLAUDE.md)
□ R6: стек-фильтр Vue+Vuetify соблюдён в зоне; 0 упоминаний/импортов React/Tailwind/shadcn/JSX в actively используемых файлах
□ R6.1: hard-override Forest — игнор паттерна FD-skill «NEVER Inter / bold maximalism» (palette = Forest Teal #0F6E56, font = Inter)
□ R10: внешние плагины (review/security-review/simplify/init/ui-ux-pro-max/claude-md-management) применяются только по явному /команде или R0.4.A исключению; Boost = служебный слой, не источник истины UI
□ R11: иерархия 6 источников истины UI/UX (Brandbook → ТЗ+schema → FD → Boost → ui-ux-pro-max → Vue/Vuetify docs) не нарушена; handoff не источник по фичам/статусам
□ R13: тип задачи правильно классифицирован (Auto-mode + §12 + R0.6 decision matrix); §12 hard rule не байпасится без §12.3 исключения
□ Pravila §12: Superpowers-skill инвокировался первым для §12.2-задач; §13.9: байпас stack-gate без явной /команды или R0.4.A = нарушение §13
```

### Доменные таргеты — поверх общего

| Агент | Доп. P-таргеты | Доп. O-таргеты |
|---|---|---|
| D1 narrative | cross-version таблица 5+ источников (CLAUDE.md ↔ Pravila ↔ Plugin_stack_rules_v1 ↔ Tooling Прил. Н ↔ ТЗ ↔ schema), 0 «TBD»/«готовится», упоминания удалённых тулов (Tailwind/Inertia/Livewire/Filament/React/shadcn), цитаты сами на себя; **R-cross-references**: ссылки между Pravila §12/§13.9 ↔ Plugin_stack_rules_v1 R0/R10/R13 валидны и взаимны | O-refactor: narrative >2000 строк (выносить в приложения); O-stack: упоминания версий vs `package.json`/`composer.lock`; **O-rule-refactor**: дубли правил между Pravila/CLAUDE.md/Plugin_stack_rules_v1 (одно правило в одном месте, остальные — hard-link) |
| D2 db | orphan FK (regex `REFERENCES (\w+)`), дубли `CREATE TABLE/INDEX`, RLS-coverage всех `tenant_id`-таблиц, 14 slug'ов воронки ↔ ТЗ §6.4 | O-perf: FK без индекса, RLS-предикаты с nested SELECT, неконсистентные DEFAULT'ы; O-refactor: дубли CHECK; O-stack: фичи PG 16 |
| D3 handoff | токены ↔ vuetify.ts, 14 OKLCH ↔ 14 slug, состав фич handoff ≠ ТЗ, 81 axe-violation vs «0»; **R11 иерархия** соблюдена (handoff ниже Brandbook+ТЗ, выше Vue/Vuetify docs) | O-stack: WOFF2 vs WOFF, font-display: swap, упущенные паттерны Vuetify 3.12 |
| D4 backend | RLS-bypass, роуты без `tenant`-middleware, `password` vs `password_hash`, encrypted-cast, секреты, дубли FormRequest, тесты password ≥8 | O-perf: N+1 в контроллерах, missing eager loading в `index`, отсутствие `chunk`/`lazy`; O-refactor: контроллеры >500 строк; O-stack: Pest 4 browser/stress/mutation, Laravel 13.7 фичи |
| D5 frontend | auto-import Vuetify дубликаты, router meta.layout, токен в localStorage в plain, axios baseURL/credentials, Histoire ↔ handoff; **R6 стек-фильтр**: 0 импортов/className/JSX из React/Tailwind/shadcn; **R6.1 Forest**: палитра в `vuetify.ts` неприкосновенна | O-perf: lazy-imports пропуски, unused exports, bundle size; O-refactor: компоненты >300 строк; O-stack: Vue 3.5 / Vuetify 3.12 фичи, Vite 8 ↔ Histoire 1.0-beta.1 |
| D6 configs | соответствие командам CLAUDE.md/Tooling, hooks lefthook, `.mcp.json` без отключённых блоков, версии `package.json` ↔ Tooling; **stack-aware**: `~/.claude/settings.json` декларативно подключает FD plugin (paired stack), .mcp.json = 3 MCP | O-perf: тяжёлые/redundant хуки; O-stack: формат конфигов (eslint flat-config), $schema-актуальность |

## 8. Этап 3 — консолидация

Синхронно в основном потоке:

1. Собрать 6 `stage2_<domain>.md` файлов.
2. Дедуплицировать находки по ключу `(file, line, category)` — если две зоны нашли одно и то же, оставить одну с наиболее полным описанием.
3. Переклассифицировать P0/P1/P2 в едином масштабе по критериям §3 (агенты могут давать локально завышенный приоритет — выровнять).
4. Сгенерировать `docs/audit_2026-05-09.md` по структуре §9.
5. Заполнить раздел «Отложенное» из реестра открытых вопросов и явных workaround-маркеров.

## 9. Структура финального отчёта

```markdown
# Аудит проекта Лидерра — 2026-05-09
**Версия:** 1.0  •  **Охват:** docs + db + Laravel + Vue + handoff + конфиги
**Сводка:** P0=N, P1=N, P2=N, O-perf=N, O-refactor=N, O-stack=N, Отложенное=N

## 1. Резюме (5-10 строк)
## 2. Дефекты P0
## 3. Дефекты P1
## 4. Дефекты P2
## 5. Возможности улучшения
   ### 5.1 Оптимизация (O-perf)
   ### 5.2 Совершенствование (O-refactor)
   ### 5.3 Модернизация (O-stack)
## 6. Отложенное (НЕ дефекты)
   ### 6.1 Открытые вопросы из реестра
   ### 6.2 Явные workaround-ы с условием снятия
## 7. Метрики проекта на момент аудита
   - schema: 56 таблиц / 12 партиций / 95 индексов / 37 RLS / 5 функций / 13 триггеров
   - Pest: X/Y, Vitest: X/Y, Histoire: X/Y stories
   - Расхождения с шапками CLAUDE.md/Tooling/Pravila — таблицей
## 8. Что НЕ покрыто аудитом
## Приложение A — raw output тулов (этап 1, ссылками на .tmp/audit/)
```

## 10. Этап 4 — Definition of Done

Аудит считается завершённым, когда:

1. Этап 1 завершён — 15 тулов прогнаны, raw output в `.tmp/audit/stage1_*.txt`.
2. Этап 2 завершён — 6 `stage2_<domain>.md` собраны.
3. Этап 3 завершён — `docs/audit_2026-05-09.md` сгенерирован, дедуп пройден, приоритеты выровнены.
4. Self-review (verification-before-completion):
   - все упомянутые `file:line` существуют (Read/Grep);
   - метрики в §7 отчёта совпадают с фактом (grep на `db/schema.sql`, прогон Pest/Vitest);
   - 0 «TBD»/«TODO»/placeholder в отчёте;
   - 0 цитат без атрибуции файла;
   - **0 R-нарушений в самом отчёте**: отчёт не призывает FD plugin для не-UI-задач, не байпасит Superpowers-skill для §12-задач, не предписывает применение `simplify`/`security-review`/`review`/`init` без явного /команды (R10), не предлагает иерархию источников UI/UX вне R11.
5. Code review отчёта через `requesting-code-review` skill — субагент проверяет консистентность **И** соблюдение Plugin_stack_rules_v1 v1.3 в самом отчёте (мета-проверка: каждое предложенное действие сопоставлено с R-правилом).
6. Коммит: `docs(audit): сводный отчёт аудита проекта на 2026-05-09 — P-дефекты + O-возможности`. Коммитится **только** `docs/audit_2026-05-09.md`; raw output этапа 1 в `.tmp/audit/` НЕ коммитится (`.tmp/` уже в `.gitignore`).

**Не входит в DoD:** реализация правок. Любая правка по итогам отчёта — отдельный «делай» от заказчика.

## 11. Бюджет

| Этап | Wall-clock |
|---|---|
| Этап 1 sweep | 10-15 мин |
| Этап 2 семантика | 30-60 мин |
| Этап 3 консолидация | 15-30 мин |
| Этап 4 self-review + code review | 10-15 мин |
| **Итого** | **~1.5-2 часа** |

## 12. Плагины и MCP — полный inventory с R-обоснованиями

Метаправило: **каждое использование плагина/skill'а в плане сопоставлено с явным R-правилом Plugin_stack_rules_v1 v1.3** (или с явным §-номером Pravila/CLAUDE.md). Если обоснования нет — плагин не призывается.

### 12.1. Superpowers-skills (основной process-слой)

| Skill | Статус | R-обоснование |
|---|---|---|
| `superpowers:brainstorming` | ✅ применён сейчас (дизайн spec'а) | Pravila §12.2 (creative work — обязательная инвокация); R13 decision matrix: «дизайн нового артефакта» = §12 hard rule |
| `superpowers:writing-plans` | ✅ применится после approve spec'а (spec → plan) | Pravila §12.2 (multi-step task); R13: «план для известного спека» = §12 hard rule |
| `superpowers:dispatching-parallel-agents` | ✅ применится в этапе 1 (12+ тулов параллельно) и этапе 2 (6 субагентов параллельно) | Pravila §12.2 (parallel work для 2+ независимых задач) |
| `superpowers:subagent-driven-development` | ⚠️ применится в этапе 2, если plan дробит на review-checkpoints | Pravila §12.2 (execution с review-checkpoints); решение откладывается на writing-plans |
| `superpowers:verification-before-completion` | ✅ применится в этапе 4 (DoD-проверка) | Pravila §12.2 (verify перед claim'ом «готово») |
| `superpowers:requesting-code-review` | ✅ применится после финального отчёта (мета-review) | Pravila §12.2 (review major artefact); R10: review = part of superpowers, не внешний плагин |
| остальные 8 superpowers-skills (TDD, debugging, finishing-a-development-branch, receiving-code-review, using-git-worktrees, writing-skills, using-superpowers — карта §12.2) | ❌ не применяются | TDD/debug — нет кода для написания/багов для починки; worktrees — аудит на чистом дереве, не нужно изоляции; remaining — out-of-scope |

### 12.2. Встроенные плагины Claude (paired stack)

| Плагин | Статус | R-обоснование |
|---|---|---|
| **Frontend Design plugin** (Anthropic, paired со Superpowers) | ❌ НЕ призывается в аудите | R10: внешние плагины как инструменты — FD активируется только для UI-дизайн-задач; **аудит ≠ дизайн**, это диагностика существующего. R13 decision matrix: «аудит/инспекция» — это process-задача (§12 superpowers), не дизайн-задача. R6 стек-фильтр будет применяться только если найдены reference-вопросы (тогда — через FD MCP запрос с фильтром Vue+Vuetify, отбрасывая React/Tailwind/shadcn) — но в текущем плане таких запросов нет. Если в этапе 2 D5 найдёт UI-нестыковку, требующую reference-паттерна — это фиксируется как **находка в отчёте**, FD plugin не призывается на ходу |
| `claude-md-management` | ❌ НЕ призывается в аудите | CLAUDE.md §5 п.10: единственный путь правок CLAUDE.md. Аудит = диагностика, не правки. **Применится в Phase 5 (вне DoD аудита)**, если по итогам отчёта решим править CLAUDE.md/Pravila/Plugin_stack_rules_v1. На сам spec правок не делает — этот файл живёт под `docs/superpowers/specs/` и не входит в scope claude-md-management |

### 12.3. Внешние плагины (по R10 — только по явному /команде)

| Плагин | Статус | R-обоснование |
|---|---|---|
| `simplify` | ❌ НЕ призывается | R10: внешний плагин, только по явному /команде. Функционально перекрывает O-refactor, но: (а) нет явного /simplify от заказчика; (б) формат аудита = отчёт без автофиксов, simplify сразу фиксит |
| `security-review` | ❌ НЕ призывается | R10: только по явному /команде. Технически: работает на pending changes (uncommitted/diff vs main), у нас clean tree → запуск даст 0 findings. Security-аспекты (RLS, secrets, encrypted-cast) — в чеклисте D4 backend в режиме статического аудита |
| `review` | ❌ НЕ призывается | R10: только по явному /review. Это PR-review, у нас не PR-задача |
| `init` | ❌ НЕ призывается | R10: только по явному /init. Инициализация CLAUDE.md, не релевантно |
| `ui-ux-pro-max` | ❌ НЕ призывается | R10/R11: «резерв-библиотека», уровень 5 в иерархии R11 (ниже FD, ниже Boost). Аудит ≠ дизайнная работа |
| остальные user-invocable skills из списка (`update-config`, `keybindings-help`, `loop`, `schedule`, `claude-api`, `fewer-permission-prompts`, `revise-claude-md`, `claude-md-improver`) | ❌ НЕ призываются | Out-of-scope для аудита |

### 12.4. MCP-серверы (.mcp.json)

| MCP | Статус | Что зовём | R-обоснование |
|---|---|---|---|
| `laravel-boost` | ✅ применяется в этапах 1, 2 (D2, D4) | `database-schema` (live snapshot для сверки с `db/schema.sql`), `last-error`, `read-log-entries` (контекст для O-perf), `search-docs` (O-stack — упущенные фичи Laravel/Pest) | R11: Boost guidelines = уровень 4 в иерархии источников истины UI/UX, ниже ТЗ/Brandbook/FD. Для backend (D4) и db (D2) — основной MCP для live-проверки |
| `github` | ❌ НЕ применяется | — | Формат отчёта = один .md в `docs/`, не GitHub Issues (выбор заказчика на этапе brainstorming) |
| `playwright` | ⚠️ опционально в D3 | визуальная сверка `web/v8/*.html` (axe-violations) | По умолчанию out-of-scope: `web/v8/*` это старые концепты, не продакшен. Если D3 решит проверить визуально — допустимо |

### 12.5. CLI-тулы (НЕ плагины, через `Bash`)

`markdownlint-cli2`, `cspell`, `lychee`, `pa11y`, `squawk`, `pgFormatter`, `Pest`, `Larastan`, `vue-tsc`, `ESLint`, `Vitest`, `Pint`, `composer outdated`, `npm outdated`, `composer audit` — это CLI из `npm`/`composer`, **не плагины Claude**. Не подпадают под R-правила Plugin_stack_rules_v1 — их применение регулируется CLAUDE.md §3 / Tooling Прил. Н.

## 13. Риски и предположения

- **Предположение:** все 15 тулов в этапе 1 запускаются на этой машине без падений (на Windows-нативном стеке проверены 12; `composer outdated`/`npm outdated`/`composer audit` стандартные, рисков нет).
- **Риск:** агенты этапа 2 могут локально переоценить приоритет — митигация в §8.3 (переклассификация в этапе 3).
- **Риск:** O-stack находки могут предлагать апгрейды, которые сломают стенд (например, мажор npm-deps). Митигация — в шаблоне `O-XX` обязательное поле «Риск: low/medium/high», заказчик решает по каждой отдельно.
- **Предположение:** PG-метрики (56/12/95/37/5/13) — текущее на 09.05.2026 после schema v8.10. Если за время аудита будет правка `db/schema.sql` — перепрогнать §7 отчёта.
- **Риск (новый):** субагент D5 может «подсказать» вызвать FD plugin за reference-паттерном при обнаружении UI-нестыковки. Митигация — в чеклист D5 явный запрет на призыв FD/simplify/security-review «на ходу» (R10): любая такая нестыковка → находка в отчёт, не делегирование плагину. Self-review в этапе 4 проверяет это.
- **Риск (новый):** агенты могут спутать иерархию приоритетов CLAUDE.md §1 (Pravila §12 → Pravila → CLAUDE.md → Plugin_stack_rules_v1 → settings.json → memory) и попытаться обосновать находку через нижний уровень (memory). Митигация — каждому агенту даётся выдержка CLAUDE.md §1 + Plugin_stack_rules_v1 R0.1 на вход.
- **Риск (новый):** агенты могут предложить править Pravila/Plugin_stack_rules_v1 как «исправление stack-нарушения». Это правки СТРУКТУРЫ правил, требующие brainstorming + согласования с заказчиком, не правка по аудиту. Митигация — любая R-находка фиксируется как **диагноз**, предлагаемая правка = **рекомендация для отдельного обсуждения**, не «делай немедленно».

## 14. Не входит в этот spec

- Сам прогон аудита (это будет implementation plan через `superpowers:writing-plans`).
- Реализация правок по итогам отчёта.
- Регулярное расписание (если потребуется — отдельный routine через `superpowers:schedule` skill).
- Правки самих Pravila / Plugin_stack_rules_v1 / CLAUDE.md по итогам R-находок — это отдельный flow через `claude-md-management`.

## 15. Карта соответствия Plugin_stack_rules_v1 v1.3 → spec

Каждое правило Plugin_stack_rules_v1, которое влияет на этот spec, явно отображено:

| R | Правило (краткое) | Где в spec'е применяется |
|---|---|---|
| R0.1 | scope «головенства» stack-правил | §1 Метаправило (приоритет источников); §12 (метаправило inventory'я); §13 риск priority chain |
| R0.4.A | исключения для байпаса stack-gate | §12.3 (внешние плагины — без явной /команды не призываются) |
| R0.6 | classification confidence | §12.1 (R-обоснования каждого superpowers-skill'а) |
| R6 | стек-фильтр Vue+Vuetify | §6 D5 frontend; §7 общий R-CHECKS |
| R6.1 | hard-override Forest | §6 D5 frontend (palette неприкосновенна) |
| R10 | внешние плагины как инструменты | §12.3 (полный inventory с явным «не призывается») |
| R11 | иерархия 6 источников истины UI/UX | §6 D3 handoff; §7 общий R-CHECKS |
| R12 | три паттерна дизайн-решений | НЕ применимо — аудит не дизайн-задача |
| R13 | decision matrix 14 типов задач | §12.1 (классификация каждого superpowers-skill'а как §12-задачи); §13 риск misuse |
| Pravila §12 | Superpowers hard rule | §12.1 (brainstorming сейчас, writing-plans следующим, parallel-agents/verify/review в этапах 1/2/4) |
| Pravila §13.9 | hard-link на R10 | §3 P0 (stack-нарушения), §7 R-CHECKS |
| CLAUDE.md §1 | priority chain | §1 Метаправило, §13 риск |
| CLAUDE.md §5 п.10 | claude-md-management как единственный путь правок CLAUDE.md | §12.2 (применится в Phase 5 вне DoD); §14 (правки правил вне scope spec'а) |
| CLAUDE.md §5 п.11 | Superpowers hard rule в CLAUDE.md | §12.1 (применение всех 6 skills в плане) |
| Tooling Прил. Н v1.10 | реестр 29 инструментов (19 активных) + #30 FD plugin | §12.2 FD plugin как paired stack; §12.5 CLI-тулы как не-плагины |
