Files
portal/docs/Tooling_v8_3.md
T
Дмитрий 04f38b1e57 docs(archive): add Прил. Н + CLAUDE.md, sync archive to v8.3.3
Новые файлы:
- CLAUDE.md (корень) — оперативная карта для Claude Code: приоритет правил
  (5 уровней), стек проекта, карта 28 инструментов «когда что использовать»,
  10 запретов, текущая фаза.
- docs/Tooling_v8_3.md (Прил. Н v1.0) — единый реестр 28 инструментов
  разработки, скиллов Claude Code, MCP-серверов и плагинов в 4 фазах
  (фаза 0 — текущая, +1 Laravel, +2 Vue/Vuetify, +3 pre-prod). §6 конфликты
  и решения, §7 приоритет правил, §9 что НЕ ставим (10+ запретов), §10
  процедура перехода между фазами, §11 Windows + PowerShell.

Обновления версий:
- docs/Pravila_raboty_Claude_v1_1.md → v1.2: §4.8 «Шифры приложений» —
  Н занят (12 шифров: А, Б, В, Г, Д, Е, Ж, З, И, К, М, Н).
- docs/README_АРХИВ_v8_3.md → v8.3.3: добавлена строка истории, обновлены
  таблицы состава (18 файлов в docs/+db/ + CLAUDE.md), добавлена ветка
  чтения «Claude / разработчик».
- docs/Открытые_вопросы_v8_3.md → v1.9 (через шапку, упоминание Прил. Н).

Точечные правки в архиве:
- 6 фиксов MD028 (пустые строки внутри blockquote → заменены на `>`):
  docs/Админка_SaaS_v8_2.md (1), docs/Приложение_Б_В_БД_диаграммы_v8_3.md (3),
  docs/Oferta_i_Politika_v8_2.md (2).
- 1 фикс MD056 (недостающая колонка в таблице) в
  docs/Аудит_partii_12_15_originala_v8_3.md:1085.
- 2 опечатки (русские буквы в латинских словах):
    docs/README_АРХИВ_v8_3.md: `соft-deleted` → `soft-deleted`
    docs/CRM_bp-gr_Инструкция_v8_3.md: `raтe limit` → `rate limit`
- Авто-форматирование trailing whitespace и blanks-around-lists
  через markdownlint --fix (хук .claude/settings.json).

Baseline после коммита:
- markdownlint: 0 errors
- cspell: 0 unknown words
- lychee: 24 OK / 0 errors
- stylelint: 0 errors
- gitleaks: no leaks

Архитектурных изменений: 0. Состав архива: 18 файлов в docs/+db/ + CLAUDE.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 04:45:22 +07:00

29 KiB
Raw Blame History

Приложение Н — Tooling, скиллы и плагины Claude (v8.3)

Дата: 06.05.2026 Версия: 1.0 (первая версия) Адресат: Claude + разработчики проекта Лидпоток Назначение: единый источник истины по 28 инструментам разработки, скиллам Claude Code, MCP-серверам и плагинам, используемым в проекте. Зафиксирован выбор, объяснено, что заменяет что, и в какой фазе вводится каждый инструмент.

Связано:

  • Pravila_raboty_Claude_v1_1.md v1.2+ — §4.8 «Шифры приложений» (Н занят)
  • CLAUDE.md (корень репозитория) — оперативная карта инструментов с приоритетом правил
  • README_АРХИВ_v8_3.md v8.3.3+ — состав архива

Что нового в v1.0: первая версия. Зафиксированы 28 активных инструментов в 4 фазах, перечень того, что НЕ ставим (10 пунктов), источники истины для конфигураций, процедура перехода между фазами, особенности Windows + PowerShell.


0. Сводка

Фаза Триггер Активных к концу фазы Δ к предыдущей
0 — сейчас (документация + 8 HTML-прототипов) сразу 9 +9
1 — старт Laravel composer create-project laravel/laravel 17 +9 новых, −1 заменённый (PostgreSQL MCP → Laravel Boost)
2 — старт frontend первый коммит в resources/js/ (Vue 3 + Vuetify 3) 23 +6
3 — pre-production ~спринт 12, перед публичным релизом 28 +5

Полный перечень — §2–§5. Карта «когда что использовать» — §7. Что НЕ ставим и почему — §9.

Ключевой принцип фазирования: не активируем фазу N+1, пока не закрыт триггер фазы N. Без composer create-project Boost не работает; без Vuetify-приложения Histoire бесполезен.


1. Принципы выбора

  1. Один инструмент на задачу. Если две тулзы делают одно — оставляем одну, явно указываем какую (см. §6 «Конфликты и решения»).
  2. Dev-only для local tooling. Boost, IDE Helper, Pint, Histoire и т. п. ставятся как --dev и не идут в production.
  3. Pre-commit для быстрых проверок, CI для медленных. gitleaks / markdownlint / Pint — pre-commit. Larastan / Semgrep / Trivy / Pa11y — CI.
  4. Контекст Claude — это ресурс. Не ставим тулзы, дублирующие моё базовое поведение (Memory MCP, Sequential Thinking MCP).
  5. Phase-gating. Триггер каждой фазы — конкретное действие в репозитории. До триггера — не ставим.
  6. Дополнение, не замена правил Claude. Любой плагин уступает в приоритете Pravila_raboty_Claude_v1_1.md — см. §7.
  7. Бесплатное предпочтительнее платного при сопоставимом качестве. Dependabot вместо Snyk; Semgrep CE вместо CodeQL Enterprise.

2. Фаза 0 — текущая (9 инструментов)

Применяется немедленно. Покрывает работу с документацией (17 файлов в docs/ + db/) и HTML-прототипами (web/*.html, 2 из 8 готовы).

2.1. MCP-серверы (3)

# Инструмент Установка Когда использовать Не использовать когда
1 PostgreSQL MCP (@modelcontextprotocol/server-postgres) claude mcp add postgres ... Валидация db/schema.sql запросами к локальной БД (information_schema, \d <table>, FK-проверки) На production-БД; после установки Boost (заменяется)
2 Playwright MCP (@playwright/mcp) claude mcp add playwright ... Открыть web/*.html, скриншот, проверка интерактива (zxcvbn в 01-login, ApexCharts в 02-dashboard) Для unit-тестов Vue (это Vitest в фазе 2)
3 GitHub MCP claude mcp add github ... Issues по Биз-10..16, PR с авто-changelog, привязка коммитов к ID открытых вопросов С токеном, имеющим delete_repo или admin:org

2.2. Линтеры документации (4)

# Инструмент Установка Когда использовать Конфликт
4 markdownlint-cli2 npm i -D markdownlint-cli2 Стиль 17 .md файлов (заголовки, таблицы, списки, длина строк) Не использовать Prettier для .md — портит таблицы
5 cspell + словари ru/en + проектный npm i -D cspell @cspell/dict-ru_ru @cspell/dict-en_us Орфография ru/en + кастомный словарь («Лидпоток», «УПД», «РКН», «ГЦК», «КЦ», «Yandex», «Vuetify»)
6 lychee cargo install lychee или GitHub Releases Проверка кросс-ссылок между 17 файлами архива (правило §4.7 правил Claude) Не использовать markdown-link-check (lychee быстрее, на Rust)
7 Stylelint + stylelint-config-standard npm i -D stylelint stylelint-config-standard Стиль CSS в <style> прототипов; в фазе 2 распространяется на Vue SFC

2.3. Безопасность (2)

# Инструмент Установка Когда использовать
8 gitleaks GitHub Releases (gitleaks_<v>_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 во всём проекте

3. Фаза 1 — старт Laravel (+9 новых, −1 заменён, итого 17 активных)

Триггер: composer create-project laravel/laravel app в подпапке проекта.

3.1. Главное — замена PostgreSQL MCP на Laravel Boost

# Инструмент Установка Что заменяет
1 → 10 Laravel Boost composer require laravel/boost --dev + php artisan boost:install Заменяет PostgreSQL MCP (#1). Даёт 9 MCP-tools (Application Info, Database Query, Database Schema, Browser Logs, Last Error, Read Log Entries, Get Absolute URL, Search Docs, Database Connections) + guidelines + Documentation API на 17 000+ фрагментов

Обязательные настройки при boost:install:

  1. CLAUDE.md — НЕ перезаписывать. Сохранить уже существующий (см. §7). Слить вручную, если Boost создаст черновик: добавить boost-секции в конец, оставив §1–§7 нашего CLAUDE.md выше.
  2. Из 25+ встроенных guidelines оставить только: Laravel Framework, Pint, Sail, Pennant, MCP.
  3. Отключить: Inertia, Livewire, Tailwind, Filament, Flux UI, Nova, Folio, Volt, Wayfinderу нас их нет.
  4. Решить Pest или PHPUnit до установки. Оставить guideline только выбранного.
  5. Создать кастомный guideline для Vuetify 3: resources/boost/guidelines/vuetify.blade.php (см. §10.2).
  6. Запретить production DB connection.env.production не должен попадать в локальный Boost-конфиг.
  7. .mcp.jsonв репозиторий (не в gitignore), чтобы у команды одинаковая конфигурация (расхождение со стандартной рекомендацией Boost'а).

3.2. Анализаторы PHP (4)

# Инструмент Установка Роль
11 Laravel Pint composer require laravel/pint --dev Code style PSR-12. Pre-commit hook
12 Larastan (PHPStan для Laravel) composer require larastan/larastan --dev Статанализ типов, level 8/9. CI-only (медленно для pre-commit)
13 Roave/SecurityAdvisories composer require --dev roave/security-advisories:dev-latest Превентивная блокировка установки composer-пакетов с известными CVE
14 Laravel IDE Helper composer require barryvdh/laravel-ide-helper --dev Stubs для IDE (фасады, модели, мета-инфо)

3.3. БД-инструменты (3)

# Инструмент Установка Роль
15 squawk npm i -g squawk-cli или Cargo Линтер миграций PostgreSQL — предупреждает о блокирующих ALTER на партиционированных таблицах (deals, supplier_lead_costs)
16 pgFormatter Скачать с pgformatter.darold.net Форматирование SQL. Запускать через хук на правке db/schema.sql
17 pg_partman Расширение PostgreSQL: CREATE EXTENSION pg_partman Автоматическое создание помесячных партиций deals_YYYY_MM и supplier_lead_costs_YYYY_MM (вместо ручного списка из db/schema.sql)

3.4. Тестирование (1)

# Инструмент Установка Роль
18 Pest ИЛИ PHPUnit (один) composer require pestphp/pest --dev или встроенный PHPUnit Тесты PHP. Выбор делается до установки Boost. Решение фиксируется в Открытые_вопросы (новый ID CTO-12, если ещё не закрыт)

4. Фаза 2 — старт frontend (+6 новых, итого 23 активных)

Триггер: первый коммит в resources/js/ или отдельную папку Vue-приложения.

4.1. Поведенческий слой — Superpowers (выборочно)

# Инструмент Установка Состав Когда использовать
19 Superpowers (3 skills из 13) /plugin install superpowers@claude-plugins-official, в конфиге оставить только нужные test-driven-development, systematic-debugging, subagent-driven-development TDD для биллинга и RLS-политик; разбор инцидентов из Прил. И; двухстадийный review больших патчей schema.sql

Отключённые skills и почему:

  • brainstorming — дублирует §4.5 правил Claude («3 варианта»)
  • writing-plans + executing-plans — дублирует §8.4 правил Claude (защита от компакции)
  • dispatching-parallel-agents — конфликт с §2.2 («один архитектурный вопрос за раз»)
  • using-git-worktrees — нестабильно на Windows (длинные пути, пробелы)
  • finishing-a-development-branch — дублирует обычный gh pr create
  • requesting-code-review + receiving-code-review — дублирует процесс в правилах
  • writing-skills — нам не нужно создавать новые skills
  • using-superpowers, verification-before-completion — справочные, не критичные

4.2. Frontend-инструменты (4)

# Инструмент Установка Роль Конфликт
20 Volar (Vue.volar) VSCode Marketplace Language server для .vue (типы, intellisense, навигация)
21 vue-tsc npm i -D vue-tsc typescript Type-check .vue файлов Только в CI, не в редакторе — иначе тормозит Volar
22 ESLint + Prettier + eslint-config-prettier + eslint-plugin-vue (связка, 1 инструмент в учёте) npm i -D eslint prettier eslint-config-prettier eslint-plugin-vue Линт + форматтер JS/Vue. eslint-config-prettier обязательно — отключает в ESLint всё, что делает Prettier. Для .md Prettier отключён через .prettierignore (markdownlint главный) Связка ставится только целиком. Без eslint-config-prettier — конфликт правил
23 Vitest + @vue/test-utils npm i -D vitest @vue/test-utils @vitest/ui Тесты компонентов. Синтаксис близок к Pest для унификации backend↔frontend Не использовать Jest — один тест-раннер на проект

4.3. Каталог компонентов (1)

# Инструмент Установка Роль Альтернатива
24 Histoire npm i -D histoire @histoire/plugin-vue Каталог Vue-компонентов на базе Vuetify. Передача дизайнеру (Диз-1) и frontend-команде Не Storybook — он тяжелее, медленнее, ориентирован на React

5. Фаза 3 — pre-production (+5 новых, итого 28 активных)

Триггер: ~спринт 12, перед публичным релизом MVP.

# Инструмент Установка Категория Роль
25 Semgrep + Semgrep MCP pip install semgrep + claude mcp add semgrep SAST Скан по антипаттернам Прил. М §6.6: пароль в <input type="text">, API-ключи в <input type="text">, hardcoded URL вроде prostats.info/bitrix24/webhook.php
26 Trivy GitHub Releases Container scan Скан Docker-образов перед push в Yandex Container Registry
27 GitHub Dependabot .github/dependabot.yml Dependency scan Авто-PR с фиксом CVE для composer.json и package.json
28 pg_audit (расширение PostgreSQL) CREATE EXTENSION pgaudit Compliance Аудит-логи в дополнение к auth_log, pd_processing_log, incidents_log (требование 152-ФЗ)
29 pg_anonymizer (расширение PostgreSQL) CREATE EXTENSION anon Compliance Маскирование ПДн в dev/staging-дампах. Правило §5.1 правил Claude (+7XXXXXXXXXX, ***@***)

Нумерация 25–29 — это глобальные индексы в порядке введения. Активных в финале — 28 (см. §0): из 29 номеров минус #1 (PostgreSQL MCP) — заменён Boost'ом.


6. Конфликты и решения

5 зон, где без явного правила я выберу не тот инструмент:

# Конфликт Решение
1 PostgreSQL MCP ↔ Laravel Boost (Database Query) в момент перехода фазы 0→1 В момент boost:install сразу убрать PG MCP из .mcp.json. Не оставлять оба активными
2 Pest ↔ PHPUnit Решение фиксируется до установки Boost (новый вопрос CTO-12, если не закрыт). Boost оставляет guideline только выбранного
3 vue-tsc ↔ Volar inline check Volar — для редактора (быстрый). vue-tsc — только в CI (полный pass)
4 ESLint stylistic ↔ Prettier eslint-config-prettier обязателен. Без него — конфликт правил
5 Pa11y ↔ Lighthouse a11y Lighthouse не входит в 28 (он инфраструктурный, см. §11). Если будет добавлен — отключить категорию accessibility через --only-categories=performance,best-practices

7. Source of truth — приоритет правил

При противоречии между правилами:

docs/Pravila_raboty_Claude_v1_1.md (продуктовые правила, утверждены заказчиком)
        ↓
CLAUDE.md (корень — оперативная карта, авто-загружается Claude Code)
        ↓
.claude/settings.json (хуки, permissions — исполняется средой)
        ↓
memory/*.md (динамическая память между сессиями Claude)
        ↓
Superpowers skills и другие плагины (поведенческие подсказки, ниже всех)

Правило применения: при любом конфликте — выбирается верхний источник. Нижестоящие игнорируются в части, которая противоречит верхним. Это правило явно зафиксировано в CLAUDE.md §1.


8. Source of truth — конфиги

Где какой конфиг лежит и кто его редактирует:

Конфиг Где Редактирует В git?
.markdownlint.json корень разработчик
cspell.json + cspell-words.txt корень разработчик (словарь обновляется по PR)
.lychee.toml корень разработчик
.gitleaks.toml корень security lead
.stylelintrc.json корень frontend lead (фаза 2)
pa11y.config.json корень frontend lead
.claude/settings.json (хуки, permissions) .claude/ Claude (по запросу через /update-config)
.mcp.json (MCP-серверы) корень разработчик (не Boost) — расхождение с дефолтом Boost'а
CLAUDE.md корень Claude (по запросу заказчика)
boost.json корень разработчик
pint.json корень (фаза 1) backend lead
phpstan.neon (Larastan) корень (фаза 1) backend lead
eslint.config.js корень (фаза 2) frontend lead
.prettierrc + .prettierignore корень (фаза 2) frontend lead
vitest.config.ts корень (фаза 2) frontend lead
histoire.config.ts корень (фаза 2) frontend lead
semgrep.yml .github/ (фаза 3) security lead
dependabot.yml .github/ (фаза 3) DevOps

9. Что НЕ ставим и почему (10 пунктов)

Инструмент Причина отказа
Frontend Design plugin (Anthropic) Anti-pattern «Inter» противоречит брендбуку §4.1; не знает Vuetify; нет a11y; рассчитан на лендинги, не на B2B-CRM
CodeQL Дублирует Semgrep; платный для private-репо; Semgrep CE покрывает наши потребности
Laravel Security Checker (enlightn/security-checker) Дублирует Dependabot + Roave
PHP-CS-Fixer Перекрывается Pint'ом (Pint = надстройка над CS-Fixer)
Psalm Перекрывается Larastan
Jest Перекрывается Vitest (один тест-раннер)
Storybook (для Vue) Histoire легче и нативнее для Vue 3 + Vite
Snyk (платный) Dependabot бесплатный и достаточный
markdown-link-check lychee быстрее (Rust vs Node) и надёжнее
Sequential Thinking MCP Дублирует моё базовое рассуждение, жрёт токены
Memory MCP Конфликтует с моей файловой памятью в memory/
Tailwind MCP / shadcn-vue У нас Vuetify (CTO-11), не Tailwind
Inertia / Livewire / Filament / Flux UI / Nova / Folio / Volt / Wayfinder guidelines Boost'а Не используются в стеке проекта

10. Процедура перехода между фазами

10.1. Фаза 0 → Фаза 1

Триггер: composer create-project laravel/laravel app (или эквивалент).

Шаги:

  1. Установить Laravel Boost: composer require laravel/boost --dev.
  2. Запустить php artisan boost:install — пройти интерактивный wizard.
  3. Удалить PostgreSQL MCP из .mcp.json (заменён Boost'ом).
  4. В boost.json — отключить нерелевантные guidelines (см. §3.1).
  5. Создать resources/boost/guidelines/vuetify.blade.php (см. §10.2).
  6. Слить (не перезаписать) CLAUDE.md если Boost создал черновик.
  7. Установить Pint, Larastan, Roave/SecurityAdvisories, IDE Helper.
  8. Установить squawk, pgFormatter, pg_partman.
  9. Зафиксировать выбор Pest или PHPUnit.
  10. Обновить .claude/settings.json — добавить хуки для Pint и Larastan.
  11. Прогнать full-pass всех инструментов.
  12. Обновить эту версию Прил. Н: v1.0 → v1.1, отметить переход.

10.2. Vuetify guideline для Boost (заготовка)

## Vuetify 3

Проект использует Vuetify 3 как UI-библиотеку (CTO-11). Tailwind CSS, shadcn-vue, Element UI, jQuery, Bootstrap — НЕ использовать.

### Палитра — из brandbook.md §3 и §8.2

- primary: `#0F6E56` (Teal 600)
- secondary: `#5DCAA5` (Teal 200)
- background: `#F1EFE8` (Slate 100)
- surface: `#FFFFFF`

Vuetify-тема — `lidpotokLight` и `lidpotokDark` — определена в `brandbook.md` §8.2.

### Шрифты

- основной: Inter (через Google Fonts с subset cyrillic)
- код: JetBrains Mono

### Компоненты

Использовать Vuetify-компоненты (`v-card`, `v-btn`, `v-data-table`, `v-form`, `v-text-field`) с дефолтным material-стилем, переопределённым через `:root` CSS-переменные из `brandbook.md` §8.1.

### A11y

Все компоненты должны проходить Pa11y по WCAG 2.1 AA (брендбук §3.4). Контраст текста на белом — минимум 4.5:1.

10.3. Фаза 1 → Фаза 2

Триггер: первый Vue-компонент.

Шаги:

  1. Установить Volar (VSCode), vue-tsc, ESLint + config-prettier + plugin-vue, Prettier, Vitest, Histoire.
  2. Установить Superpowers с конфигом enabled_skills = только 3 (test-driven-development, systematic-debugging, subagent-driven-development).
  3. Прогнать первый Histoire-story для тестового компонента.
  4. Запустить Pa11y на первой Vue-странице (выявить регрессии относительно HTML-прототипов).
  5. Обновить Прил. Н: v1.1 → v1.2.

10.4. Фаза 2 → Фаза 3

Триггер: ~спринт 12, объявление о подготовке к релизу.

Шаги:

  1. Установить Semgrep + Semgrep MCP, Trivy, Dependabot.
  2. Включить расширения PostgreSQL: pg_audit, pg_anonymizer.
  3. Прогнать первый полный SAST-пасс по проекту, зафиксировать baseline.
  4. Прогнать Trivy на текущем образе, зафиксировать baseline.
  5. Сделать первый dump БД через pg_anonymizer для staging.
  6. Обновить Прил. Н: v1.2 → v1.3.

11. Конфигурация под Windows + PowerShell

Особенности для текущего окружения (Windows 10, PowerShell 5.1):

11.1. Пути и кодировки

  • Все скрипты в package.json — кросс-платформенные (использовать cross-env, не export VAR=...).
  • Файлы .md — UTF-8 БЕЗ BOM. Если PowerShell Set-Content создал файл с BOM — исправить.
  • Длинные пути — включить git config --global core.longpaths true перед клонированием в глубокие папки.

11.2. Git worktrees

  • Skill using-git-worktrees Superpowers отключён намеренно (см. §4.1).
  • Если ручное использование worktree — избегать пробелов в путях (c:\projects\lidpotok-feature ОК, c:\My Documents\... — НЕ).

11.3. Pre-commit hooks

  • Husky или lefthook (предпочтительно lefthook — на Go, без Node-зависимости).
  • Скрипты в hooks — bash-совместимые, запускать через cmd /c или WSL.

11.4. Глобальные CLI-утилиты

  • gitleaks, lychee, squawk, Trivy, Semgrep — скачать готовые бинарники для Windows из GitHub Releases.
  • pgFormatter — Perl-скрипт, поставить ActivePerl или WSL.
  • Pa11y, markdownlint-cli2, cspell, Histoire — npm-пакеты, работают нативно.

11.5. Yandex Cloud CLI и Terraform

Не входят в 28 инструментов (см. §12). Ставятся отдельно для DevOps-роли. На Windows — yc и terraform через скачивание .zip или winget.


12. Что вне 28 инструментов (инфраструктура)

Эти 7 пунктов критичны для проекта, но используются DevOps, не Claude. Поэтому в 28 не входят, но фиксирую для полноты:

Инструмент Зачем
Yandex Cloud CLI (yc) Провижининг по Прил. К
Terraform + yandex-cloud/yandex provider + terraform-ls IaC
Docker + docker-compose Локальная разработка
GitHub Actions CI/CD pipeline
Sentry self-hosted Ю-7 (зафиксировано)
Grafana + Prometheus + Alertmanager Прил. И §1
Lighthouse CI Performance-регрессия в pipeline

Если позже решим вовлечь Claude в инфраструктурные задачи — добавится фаза 4 (или эти инструменты переедут в 28).


13. История версий

Версия Дата Что нового
v1.0 06.05.2026 Первая версия. Зафиксированы 28 активных инструментов в 4 фазах, перечень того, что НЕ ставим (10+ пунктов), источники истины для конфигураций, процедура перехода между фазами, особенности Windows + PowerShell. Утверждено заказчиком 06.05.2026 («да, A, делай. Подтверждаю»). Архитектурных изменений в основном архиве: 0 (только добавлен новый шифр Н).

Прил. Н v1.0 от 06.05.2026 — старт документации по tooling. Связано: CLAUDE.md (корень), Pravila_raboty_Claude_v1_1.md v1.2+, README_АРХИВ_v8_3.md v8.3.3+.