diff --git a/docs/superpowers/plans/2026-05-13-claude-automation-norm-sync-drafts.md b/docs/superpowers/plans/2026-05-13-claude-automation-norm-sync-drafts.md new file mode 100644 index 00000000..dd41bdbe --- /dev/null +++ b/docs/superpowers/plans/2026-05-13-claude-automation-norm-sync-drafts.md @@ -0,0 +1,364 @@ +# Task 9 Sync нормативки — Pre-prepared Edit Drafts + +> **Status:** drafts only. NOT applied. Awaiting Task 1 (PR) merged before commit on feat/claude-automation-norm-sync branch. +> **For executor:** at apply-time, **re-verify version numbers in shapkas** before applying — concurrent session activity may have bumped versions independently. + +**Created:** 2026-05-13 day +1 (post Task 8 completion, before Task 9 execution). + +**Source plan:** [docs/superpowers/plans/2026-05-13-claude-automation-completion-plan.md](2026-05-13-claude-automation-completion-plan.md) §Task 9. + +**Scope:** 5 file updates documenting newly-installed Sentry MCP + Redis MCP as **off-phase tools #34 + #35** (paralleling existing claude-md-management #33 pattern). + +**Architectural decision (re-verified during drafting):** + +- Tooling §3.3 = «БД-инструменты», **не** off-phase tools. Off-phase live в **§4.5 (UPM) / §4.6 (21st) / §4.7 (claude-md-management)**. +- Therefore new sentry+redis MCP → **§4.8 + §4.9** (new subsections), NOT §3.3. +- Original plan Task 9.3 wording «§3.3 +#34/#35 rows» — error in original plan; corrected here. + +--- + +## File 1: `docs/Tooling_v8_3.md` + +### Edit 1.1 — §0 Сводка table: row «off-phase tools» bump count 3 → 5 + +**Anchor (read at apply-time to confirm):** line ~84. + +**OLD:** + +```markdown +| **off-phase tools** | по факту включения в `~/.claude/settings.json` / `~/.claude.json` | **+3** | #31 UPM (UI-резерв), #32 21st Magic MCP (UI-генератор), #33 claude-md-management (инфраструктура CLAUDE.md edits) | +``` + +**NEW:** + +```markdown +| **off-phase tools** | по факту включения в `~/.claude/settings.json` / `~/.claude.json` / `.mcp.json` | **+5** | #31 UPM (UI-резерв), #32 21st Magic MCP (UI-генератор), #33 claude-md-management (инфраструктура CLAUDE.md edits), #34 Sentry MCP (debug self-hosted Sentry в Yandex Cloud), #35 Redis MCP (debug Memurai/Redis runtime) | +``` + +### Edit 1.2 — §0 footer: «Итого формализованных позиций» 33 → 35 + +**Anchor:** line ~86. + +**OLD:** + +```markdown +**Итого формализованных позиций:** 33 (29 активных по фазам + 3 off-phase + 1 заменённый PG MCP исторически). Полный перечень — §2–§5 (по фазам) + §4.5/§4.6/§4.7 (off-phase). Карта «когда что использовать» — §7. Что НЕ ставим и почему — §9. +``` + +**NEW:** + +```markdown +**Итого формализованных позиций:** 35 (29 активных по фазам + 5 off-phase + 1 заменённый PG MCP исторически). Полный перечень — §2–§5 (по фазам) + §4.5/§4.6/§4.7/§4.8/§4.9 (off-phase). Карта «когда что использовать» — §7. Что НЕ ставим и почему — §9. +``` + +### Edit 1.3 — Add §4.8 Sentry MCP (after §4.7 claude-md-management, before §5) + +**Anchor:** end of §4.7 (line ~324, before `---` and `## 5. Фаза 3 — pre-production`). + +**OLD (anchor block — last lines of §4.7):** + +```markdown +**Аналогичные категории (built-in skills Claude Code, не плагины через marketplace):** `review`, `security-review`, `init`, `simplify`, `update-config`, `keybindings-help`, `fewer-permission-prompts`, `loop`, `schedule`, `claude-api`. Активируются по явному `/имя` от пользователя; не входят в `enabledPlugins`. См. PSR_v1 R10.1 блок 2 для полного реестра. + +--- + +## 5. Фаза 3 — pre-production (+5 новых, итого 29 активных) +``` + +**NEW:** + +````markdown +**Аналогичные категории (built-in skills Claude Code, не плагины через marketplace):** `review`, `security-review`, `init`, `simplify`, `update-config`, `keybindings-help`, `fewer-permission-prompts`, `loop`, `schedule`, `claude-api`. Активируются по явному `/имя` от пользователя; не входят в `enabledPlugins`. См. PSR_v1 R10.1 блок 2 для полного реестра. + +### 4.8. Debug-инструмент Sentry — Sentry MCP (off-phase tool) + +> **Введено 13.05.2026 day +1 (v1.17+ Прил. Н):** формализован как «инструмент-резерв вне фаз, debug-категория». Установлен на feat/claude-automation `6f7e7d7` в `.mcp.json`; формализован retrospectively в v1.17+. Категория **debug-runtime**, отличная от UI-пула (UPM/21st) и инфраструктурного (claude-md-management) — поэтому отдельная нумерация. Pending Sentry instance deployment в Yandex Cloud (зависит от Б-1 ООО registration P0). + +| # | Инструмент | Установка | Состав | Когда использовать | +|---|---|---|---|---| +| 34 | **Sentry MCP** (`@sentry/mcp-server@0.33.0+`, official, repo `getsentry/sentry-mcp`, bin `sentry-mcp`) | `.mcp.json`: `mcpServers.sentry.command="npx" args=["-y", "@sentry/mcp-server"] env={SENTRY_URL, SENTRY_AUTH_TOKEN}`. Env vars — через PowerShell User scope (`[Environment]::SetEnvironmentVariable("SENTRY_URL", ..., "User")`). Credentials НЕ commit'ятся (gitleaks gate). | MCP tools: `mcp__sentry__get_issue`, `_list_events`, `_search_errors` (+ другие per @sentry/mcp-server@0.33.0 spec) | (1) production runtime error в self-hosted Sentry → прямой запрос issue details из Claude session; (2) post-incident debug (CLAUDE.md §2: Sentry self-hosted в Yandex Cloud); (3) READ-ONLY usage — scope auth token `org:read`, `project:read`, `event:read` only | + +**Обязательные правила использования:** + +| Правило | Где | Что значит | +|---|---|---| +| **R10.1** debug-runtime, не UI и не инфраструктура | R10.1 PSR_v1 (v2.1+) | Sentry MCP в **отдельной категории** от UPM/21st и от claude-md-management; не попадает в R14 pipeline UI-генераторов и не модифицирует CLAUDE.md | +| **CLAUDE.md §5 п.4** не commit'ить ПДн/токены | CLAUDE.md | `SENTRY_AUTH_TOKEN` — секрет, НИКОГДА не в репозиторий. Только через PowerShell User scope env или `.env.local` (gitignored) | +| **R7** не закрывает задачу | R7 PSR_v1 | Sentry MCP — источник информации, не gate (не deployable artifact) | +| **Pre-MVP блокер** | — | Sentry instance в Yandex Cloud зависит от Б-1 ООО registration. До deployment — MCP startup fail gracefully (env пустые), tools не enumerable; это OK | + +**Live-отмена (R0.4.B PSR_v1):** «не используй sentry-mcp сейчас» — отключает на текущее действие. По умолчанию активен после reload session с непустыми env vars. + +**Безопасность:** Token `SENTRY_AUTH_TOKEN` — bearer secret. PowerShell User scope = encrypted per-user (Windows DPAPI). Не shared между пользователями. При утечке — немедленно revoke через Sentry web UI (`Settings → Account → API → Auth Tokens`). + +### 4.9. Debug-инструмент Redis — Redis MCP (off-phase tool) + +> **Введено 13.05.2026 day +1 (v1.17+ Прил. Н):** формализован как «инструмент-резерв вне фаз, debug-категория». Установлен на feat/claude-automation `bd4ec48` в `.mcp.json`; формализован retrospectively в v1.17+. Package `@modelcontextprotocol/server-redis@2025.4.25` **deprecated** по статусу npm («Package no longer supported»), но Anthropic source, рабочий. Post-MVP migration на community alternative (e.g., `@easy-mcps/redis-mcp-server@1.0.8` или `@wenit/redis-mcp-server@1.0.3`) когда подтвердим trust. + +| # | Инструмент | Установка | Состав | Когда использовать | +|---|---|---|---|---| +| 35 | **Redis MCP** (`@modelcontextprotocol/server-redis@2025.4.25`, deprecated Anthropic source) | `.mcp.json`: `mcpServers.redis.command="npx" args=["-y", "@modelcontextprotocol/server-redis", "redis://localhost:6379"]`. Memurai (Windows Redis 7-совместимый service) running на `localhost:6379` — verified Task 4 (`memurai-cli ping → PONG`). | MCP tools: Redis operations (KEYS, GET, LRANGE, etc.) | (1) debug очередей (`route:supplier:*`); (2) debug кэша (`supplier:session` per quirk 72); (3) debug Pest --parallel race conditions; (4) READ-ONLY usage — НЕ для prod (нет prod пока). Если в будущем prod Redis с auth — отдельный entry `redis-prod` с url через env var | + +**Обязательные правила использования:** + +| Правило | Где | Что значит | +|---|---|---| +| **R10.1** debug-runtime, не UI и не инфраструктура | R10.1 PSR_v1 (v2.1+) | Redis MCP в той же категории что #34 sentry-mcp | +| **READ-ONLY usage** | соглашение проекта | Никаких `DEL`, `FLUSHDB`, `SET`, `LPUSH` от Claude в runtime debug. Только read-операции. Manual Redis mutations — через `memurai-cli` напрямую заказчиком | +| **Package deprecation** | npm | На startup `npx` emits deprecation warning в stderr. Это **cosmetic**, не functional. При выходе supported alternative (community OR official replacement) — migrate в Tooling v1.18+ | +| **R7** не закрывает задачу | R7 PSR_v1 | Redis MCP — источник информации, не gate | + +**Live-отмена (R0.4.B PSR_v1):** «не используй redis-mcp сейчас» — отключает на текущее действие. + +**Безопасность:** Локальный Memurai на 6379 **без auth** — это dev-only setup. Если в будущем будут prod Redis с auth — entry `redis-prod` с url через env var `${REDIS_PROD_URL}`, credentials через PowerShell User scope (как Sentry). Сейчас prod нет (зависит от Б-1). + +--- + +## 5. Фаза 3 — pre-production (+5 новых, итого 29 активных) +```` + +### Edit 1.4 — §13 changelog: add v1.17 entry + +**Anchor:** line ~607 (after v1.15 entry) or wherever latest changelog entry is at apply-time. **WARNING: file may already have v1.16 entry (R15 motion-runtime cleanup 12.05.2026) — verify line range carefully.** + +**Expected current latest (per memory): v1.16** (R15 motion-runtime cleanup). If true: + +**OLD (last entry before footer):** + +```markdown +| **v1.16** | 12.05.2026 | | +``` + +**NEW (add v1.17 row after v1.16):** + +```markdown +| **v1.17** | 13.05.2026 (day +1) | **Формализация retrospective двух off-phase MCP debug-инструментов** установленных на feat/claude-automation (commits `6f7e7d7` sentry, `bd4ec48` redis): **§0 счётчик off-phase tools 3 → 5; Итого формализованных позиций 33 → 35**. **§4.8 (новый)** — #34 Sentry MCP (`@sentry/mcp-server@0.33.0+`, official, pending Sentry instance deployment Б-1). **§4.9 (новый)** — #35 Redis MCP (`@modelcontextprotocol/server-redis@2025.4.25`, deprecated Anthropic source, рабочий с Memurai localhost:6379; migration plan на community alternative post-MVP). Категория debug-runtime, отдельная от UI-пула (UPM/21st) и инфраструктурного (claude-md-management) — не попадает в R14 pipeline и не trigger'ит R6.0/R6.1 фильтры. Связано: PSR_v1 v2.0 → v2.1 (R10.1 +sentry+redis); CLAUDE.md v1.91 → v1.92 (§3.3 #34/#35; §0 cross-refs); Pravila v1.12 → v1.13 (§13.2 infrastructure subsection counter). Через `/claude-md-management:claude-md-improver` для CLAUDE.md; manual Edit для Tooling/PSR_v1/Pravila. | +``` + +### Edit 1.5 — Footer standalone version notes: prepend v1.17 + +**Anchor:** line ~611 (`*Прил. Н v1.15 от 10.05.2026...*`) — verify v1.16 note also present. + +**Insert before v1.15/v1.16 notes:** + +```markdown +*Прил. Н v1.17 от 13.05.2026 (day +1) — формализация retrospective off-phase MCP #34 Sentry + #35 Redis (debug-runtime category). 35 позиций (29 активных по фазам + 5 off-phase + 1 заменённый PG MCP исторически).* +``` + +### Edit 1.6 — Shapka of file: bump version reference + +**Anchor:** top of file, look for `**Прил. Н vX.YZ`. Bump to v1.17 от 13.05.2026 (day +1). + +--- + +## File 2: `docs/Plugin_stack_rules_v1.md` + +### Edit 2.1 — R10.1 table: add sentry + redis rows (in блок 1 «активно используемые плагины») + +**Anchor:** search for `R10.1` table start. Add after existing claude-md-management row (or after last MCP entry in block 1). + +**WARNING:** PSR_v1 structure — R10.1 имеет несколько блоков (per reference_archive: «R10.1 разбит на 3 блока» в v1.5). Need to identify correct block at apply-time: + +- Блок 1: активно используемые плагины (UI + инфраструктура) +- Блок 2: built-in skills Claude Code (review/security-review/etc.) +- Блок 3: возможные будущие + +Sentry/Redis MCP добавляются как **новая категория «debug-runtime»** или вписываются в блок 1 как дополнительные плагины с пометкой role «debug-runtime, не UI и не инфраструктура». + +**Proposed addition to R10.1 (location TBD at apply-time):** + +```markdown +| `@sentry/mcp-server` (MCP, `sentry` в `.mcp.json`) | Off-phase debug-runtime | Tooling #34. Установлен 13.05.2026 day +1 commit `6f7e7d7`. Pending Sentry instance deployment (Б-1 ООО registration). READ-ONLY scope (`org:read`, `project:read`, `event:read`). | — (не UI, не инфраструктура CLAUDE.md, не входит в R14 pipeline) | +| `@modelcontextprotocol/server-redis` (MCP, `redis` в `.mcp.json`) | Off-phase debug-runtime | Tooling #35. Установлен 13.05.2026 day +1 commit `bd4ec48`. Deprecated package (Anthropic source). Memurai localhost:6379 verified Task 4 (`memurai-cli ping → PONG`). | — | +``` + +### Edit 2.2 — Shapka: bump v2.0 → v2.1 + +**Anchor:** top of file, look for `**v2.0**` or current version marker. Bump to v2.1 от 13.05.2026 day +1. + +### Edit 2.3 — История версий: add v2.1 entry + +**Proposed entry:** + +```markdown +- **v2.1** (13.05.2026 day +1): R10.1 расширен 2 off-phase debug-runtime записями — `@sentry/mcp-server` (#34) + `@modelcontextprotocol/server-redis` (#35). Категория **debug-runtime** introduced — отличная от UI-пула (UPM/21st) и infrastructure (claude-md-management); не trigger'ит R6.0/R6.1 фильтры и не входит в R14 pipeline. Связано: Tooling v1.16 → v1.17 (§4.8 + §4.9); CLAUDE.md v1.91 → v1.92 (§3.3 #34/#35); Pravila v1.12 → v1.13 (§13.2 counter). +``` + +--- + +## File 3: `CLAUDE.md` (через `/claude-md-management:claude-md-improver`) + +> **CRITICAL:** CLAUDE.md правится **только** через `/claude-md-management:claude-md-improver` per §5 п.10. **НЕ через Edit/Write tool напрямую.** PreToolUse hook (Task 6 commit `c5b0cdf`) emits warning при direct edit attempt. + +### Skill invocation prompt (apply via `/claude-md-management:claude-md-improver`) + +```text +/claude-md-management:claude-md-improver + +Apply following targeted updates to root CLAUDE.md: + +1. §3.3 (table "Карта 33 инструментов") — add #34 + #35 rows after #33 claude-md-management: + | 34 | Off-phase MCP — отладка production runtime errors через self-hosted Sentry в Yandex Cloud | **Sentry MCP** (`@sentry/mcp-server`, server `sentry` в `.mcp.json`, tools `mcp__sentry__*`) | автоматически через `.mcp.json`. Env vars `SENTRY_URL` + `SENTRY_AUTH_TOKEN` через shell (PowerShell User scope). Установлен 13.05.2026 day +1 (commit `6f7e7d7`); формализован retrospectively v1.92. Pending: Sentry instance deployment (зависит от Б-1 ООО registration). | + | 35 | Off-phase MCP — отладка Redis/Memurai очередей, кэша, Pest --parallel races | **Redis MCP** (`@modelcontextprotocol/server-redis@2025.4.25` — DEPRECATED Anthropic source; migration plan на `@easy-mcps/redis-mcp-server@1.0.8` post-MVP; server `redis` в `.mcp.json`, tools `mcp__redis__*`) | автоматически через `.mcp.json`. URL `redis://localhost:6379` (Memurai Windows service, verified Task 4 ping PONG). READ-ONLY для debug. Установлен 13.05.2026 day +1 (commit `bd4ec48`). | + +2. §3.4 footer — bump count "(Total формализованных позиций: 33)" → "(Total формализованных позиций: 35)". + Also: "29 phase-active + 3 off-phase + 1 historic" → "29 phase-active + 5 off-phase + 1 historic". + +3. §0 cross-refs — bump version refs: + - row "Tooling": v1.16 → v1.17 (entry "Прил. Н v1.17 от 13.05.2026 day +1 — формализация retrospective off-phase MCP #34 Sentry + #35 Redis") + - row "PSR_v1": v2.0 → v2.1 (entry "R10.1 расширен 2 off-phase debug-runtime записями") + - row "Pravila": v1.12 → v1.13 (entry "§13.2 infrastructure subsection counter +2 off-phase MCP debug-runtime") + +4. Шапка version bump: v1.91 → v1.92 от 13.05.2026 (day +1). + +5. History entry в шапке (compact): + v1.92 от 13.05.2026 (day +1) — sync нормативки после feat/claude-automation merge: §3.3 +#34 Sentry MCP + #35 Redis MCP (off-phase debug-runtime category); §3.4 footer 33 → 35; §0 cross-refs Tooling v1.16→v1.17, PSR_v1 v2.0→v2.1, Pravila v1.12→v1.13. Через /claude-md-management:claude-md-improver. Реализация feat/claude-automation #PR_NUM закрытие (PR merged). + +Verification после apply: +- npx markdownlint-cli2 CLAUDE.md (expected: 0 errors) +- bin/lychee.exe --config .lychee.toml CLAUDE.md (expected: 0 broken links) +``` + +--- + +## File 4: `docs/Pravila_raboty_Claude_v1_1.md` + +### Edit 4.1 — §13.2 infrastructure subsection: extend для off-phase MCP + +**Anchor:** §13.2 «Парность со Superpowers + расширенный пул UI-инструментов» — specifically subsection «Инфраструктурные плагины (вне расширенного UI-пула)» (added v1.9). + +**Read at apply-time** для exact current text. Proposed extension: + +**OLD (current sentence, paraphrased):** + +```markdown +**Инфраструктурные плагины (вне расширенного UI-пула):** `claude-md-management` (Tooling #33) — инфраструктурный канал правок CLAUDE.md; built-in skills Claude Code (`review`/`security-review`/`init`/`simplify`/`update-config`/`keybindings-help`/`fewer-permission-prompts`/`loop`/`schedule`/`claude-api`) — активируются по явному `/имя`. Регулируются PSR_v1 R10.1 блок 2. +``` + +**NEW (add new paragraph after existing infrastructure paragraph):** + +```markdown +**Инфраструктурные плагины (вне расширенного UI-пула):** `claude-md-management` (Tooling #33) — инфраструктурный канал правок CLAUDE.md; built-in skills Claude Code (`review`/`security-review`/`init`/`simplify`/`update-config`/`keybindings-help`/`fewer-permission-prompts`/`loop`/`schedule`/`claude-api`) — активируются по явному `/имя`. Регулируются PSR_v1 R10.1 блок 2. + +**Off-phase MCP debug-runtime (отдельная категория, введена v1.13 Pravila):** `@sentry/mcp-server` (Tooling #34, server `sentry`) — отладка production errors в self-hosted Sentry; `@modelcontextprotocol/server-redis` (Tooling #35, server `redis`) — отладка Redis/Memurai runtime. **Не UI** (не trigger'ят R6.0/R6.1 фильтры стека) и **не инфраструктура CLAUDE.md** (не модифицируют CLAUDE.md). READ-ONLY usage обязателен. Регулируются PSR_v1 R10.1 (v2.1+) — отдельной debug-runtime категорией. +``` + +### Edit 4.2 — Шапка version bump: v1.12 → v1.13 + +**Anchor:** top of file. Bump version. + +### Edit 4.3 — История версий: add v1.13 entry + +**Proposed:** + +```markdown +- **v1.13** (13.05.2026 day +1): **§13.2 расширен** — добавлен абзац про «Off-phase MCP debug-runtime (отдельная категория)» для двух retrospectively формализованных off-phase MCP: `@sentry/mcp-server` (Tooling #34) + `@modelcontextprotocol/server-redis` (Tooling #35). Категория **отдельная** от UI-пула (Pravila §13.1-§13.8) и от infrastructure (claude-md-management) — не trigger'ит R6.0/R6.1 stack-фильтры. Связано: Tooling v1.16 → v1.17 (§4.8 + §4.9); PSR_v1 v2.0 → v2.1 (R10.1); CLAUDE.md v1.91 → v1.92 (§3.3 #34/#35). Без других содержательных изменений в §§1-12 + §§13.1, 13.3-13.10. +``` + +--- + +## File 5: Memory `MEMORY.md` + `reference_archive.md` + +> **NB:** Memory лежит вне repo (locally persistent). НЕ commit. Apply through Edit on actual memory files. + +### Edit 5.1 — `MEMORY.md` line 4 (feedback_plugin_paired_stack reference) + +**Anchor:** line 4, version refs «PSR_v1 **v2.0**, Pravila **v1.12**, Tooling **v1.16**, CLAUDE.md **v1.91**». + +**OLD:** + +```markdown +Active: PSR_v1 **v2.0** (15 правил R0–R14), Pravila **v1.12**, Tooling **v1.16**, CLAUDE.md **v1.91**. +``` + +**NEW:** + +```markdown +Active: PSR_v1 **v2.1** (15 правил R0–R14 + R10.1 +sentry+redis), Pravila **v1.13**, Tooling **v1.17** (35 позиций: 29 phase + 5 off-phase + 1 historic), CLAUDE.md **v1.92**. +``` + +### Edit 5.2 — `MEMORY.md` line 7 (reference_archive) + +**OLD:** + +```markdown +ТЗ v8.5, schema v8.20, **реестр v1.83** (...), **Tooling v1.16**, **CLAUDE.md v1.91** (session-end hygiene), **Pravila v1.12** (...), **Plugin_stack_rules_v1 v2.0** +``` + +**NEW:** + +```markdown +ТЗ v8.5, schema v8.20, **реестр v1.83** (...), **Tooling v1.17** (35 позиций; +#34 Sentry MCP + #35 Redis MCP off-phase debug-runtime), **CLAUDE.md v1.92** (§3.3 #34/#35; sync нормативки), **Pravila v1.13** (§13.2 off-phase MCP debug-runtime subsection), **Plugin_stack_rules_v1 v2.1** (R10.1 +sentry+redis) +``` + +### Edit 5.3 — `reference_archive.md` description (line 3) + +**Anchor:** front-matter `description:` field. + +Bump all version refs analogously: Tooling v1.16 → v1.17 (35 позиций); CLAUDE.md v1.91 → v1.92; Pravila v1.12 → v1.13; PSR_v1 v2.0 → v2.1. + +### Edit 5.4 — `reference_archive.md` priority chain (lines 9-16) + +**Anchor:** «Приоритет правил при конфликте» list. + +Bump version refs analogously. + +**NB:** `reference_archive.md` body (lines 22-46) has stale data (schema v8.18, CLAUDE.md v1.86, etc.) — это **исторический snapshot**, не trogal. Только header refs. + +--- + +## Application order (recommended) + +1. File 1 (Tooling) — most extensive, anchors most stable. +2. File 2 (PSR_v1) — R10.1 expansion. +3. File 4 (Pravila) — §13.2 addition. +4. File 3 (CLAUDE.md) — via plugin invocation per §5 п.10. +5. File 5 (Memory) — last (reflects all bumped versions). + +**Atomic commits** per file (4 git commits + 1 memory edit без commit). + +**Verification после каждого commit:** + +```bash +"C:/моя/проекты/портал crm/Документация/bin/lychee.exe" --config "C:/моя/проекты/портал crm/Документация/.lychee.toml" +npx markdownlint-cli2 +git diff --stat HEAD~1 +``` + +--- + +## Bonus finding: new Pest --parallel quirk #77 (candidate) + +**Discovered Task 8 (subagent diagnostic):** `ProjectBulkActionsTest::rejects_bulk_when_scope_filter_captures_more_than_500_projects` ([app/tests/Feature/Api/ProjectBulkActionsTest.php](../../../app/tests/Feature/Api/ProjectBulkActionsTest.php)) fails under `--parallel --recreate-databases` с `SQLSTATE[23505] projects_tenant_id_name_key` unique violation. Passes 14/14 sequentially. Reproduces 2× в parallel runs с different tenant_id. + +**Pattern:** parallel worker shared-DB collision на `(tenant_id, name)` unique key when bulk-creating 501 projects. + +**Not covered by:** + +- Quirk 72 (Redis `supplier:session` race — only `tests/Feature/Supplier/*`) +- Quirk 73 (cumulative state — LookupsTest/ProjectExtensionsTest «too many rows», not unique key) + +**NOT introduced by feat/claude-automation** — verified `git show f454e95 --stat` (audit-2 docs commit) and Pest baseline files unchanged. + +**Recommendation (separate task, NOT in this sync plan):** add quirk #77 entry to memory `feedback_environment.md` AND extend [.claude/agents/pest-parallel-debugger.md](../../../.claude/agents/pest-parallel-debugger.md) с 5-th hypothesis (parallel worker shared-DB unique-key collision). This is a follow-up plan item, не Task 9 scope. + +--- + +## Open questions remaining at apply-time + +| Q | Detail | Resolution | +|---|---|---| +| Q1 | Tooling shapka actual version: v1.15 or v1.16? | Read top of file at apply-time | +| Q2 | PSR_v1 R10.1 block where sentry/redis fit best? | Read R10.1 sections at apply-time; debug-runtime может потребовать new sub-block | +| Q3 | Pravila §13.2 «Инфраструктурные плагины» subsection — exact current text? | Read at apply-time для exact OLD anchor | +| Q4 | CLAUDE.md plugin invocation result — does `/claude-md-management:claude-md-improver` accept multi-edit instruction? | Test with single edit first; if plugin не handles batched — split в multiple invocations | +| Q5 | Will lefthook pre-commit pass on main checkout (vs worktree where lefthook absent)? | После merge на main — lefthook active; verify pre-push hooks (gitleaks-full-history + lychee) pass | + +--- + +## NB ограничения этого drafts file + +- **Не верифицировал** точные line numbers в Tooling/PSR_v1/Pravila shapkas — apply-time read required. +- **Не верифицировал** exact text Pravila §13.2 infrastructure paragraph — paraphrased from memory + grep evidence (line 37 of changelog). +- **Не запускал** lychee/markdownlint на этом drafts file — будет done в commit step. +- **Не применял** ни один Edit — это pre-prep document only.