Дмитрий
e506a836e7
docs(router-mentor): phase-8 state snapshot + M6 FIX-5 design/plan
...
- docs/superpowers/2026-06-10-phase8-state-snapshot.md — снимок состояния
эпика «роутер-наставник» (что готово / owner-шаги / отложенное).
- M6 FIX-5 (подпись escape-гранта, key-gated, defense-in-depth): спека
(одобрена, 2 адверсар. прохода + self-review) + bite-sized TDD-план.
Реализация НЕ начата — design-only артефакты.
Кодовая фраза эпика: «роутер-наставник».
2026-06-10 05:04:52 +03:00
Дмитрий
84231a1470
feat(board): live source for guard board escapes/blocks (D-3)
...
Доска «кто на посту» (STATUS.md §7) теперь показывает реальные недавние
escape владельца и блоки машин М1–М6 вместо хардкода []/[].
- new tools/guard-block-log.mjs: logGuardBlock (best-effort, fail-quiet,
Node fs append в guard-blocks-<sess>.jsonl) + loadRecentBlocks/
loadRecentEscapes (скан session-файлов runtime, окно 24ч + cap 10, ts→ISO).
- проводка logGuardBlock в block-ветку main() 9 машинных хуков (floor /
supreme-gate / judge-gate / snapshot / read-path-deny / mcp-classification /
normative-content-rules / verify-gate / criterion-gate). Логгер вызывается
ПОСЛЕ решения, не влияет на block; decide() pure не тронут.
- status-md-generator CLI: recentEscapes/recentBlocks из читателей вместо []/[].
До флипа Фазы 8 доска показывает 0/0 (хуки не зарегистрированы — данных нет);
реальная польза — пост-флип наблюдаемость.
TDD: guard-block-log.test (6) + 9 структурных wiring-тестов + 1 board-тест.
Гейт закрытия: sharp-edges (промежуточный по 9 хукам + читатели) +
variant-analysis (все block-ветки покрыты, иных источников нет). Регрессия
tools-only 3465 passed / 2 skipped / 0 failed (было 3449+2skip). 0 регрессий.
Plan: docs/superpowers/plans/2026-06-10-guard-board-live-source.md
2026-06-10 04:28:53 +03:00
Дмитрий
4dd2098e7b
feat(seal): validate judge_mode at freeze time (defense-in-depth, SE-2 §4)
...
assertValidJudgeMode guard in freezePlan/freezeArtifact: fail-CLOSE on any
mode != {null|shadow|live-block}. Closes YAGNI-candidate from sealed-plan §11
/ gate1+se2 §4 (SE-a) — bogus mode can no longer enter a seal at the source
(complements the wall's fail-closed live-block whitelist).
- freezePlan validates the judgeMode param; freezeArtifact validates the
embedded artifact.judge_mode (injected by seal-orchestration).
- guard sits before id/sig computation -> no partially-signed bogus-mode seal.
- throw is best-effort-swallowed at enforce-judge-gate.mjs onWiredSeal ->
no seal produced (fail-CLOSE), hook never crashes.
- real flow never trips it (judgeGateMode yields only inert/shadow/live-block,
inert never seals) — drift-only guard.
TDD: new tools/plan-lock-judge-mode.test.mjs (6 tests). Regression tools-only
3449 passed / 2 skipped / 0 failed (was 3443+2skip). 0 regressions.
sharp-edges + variant-analysis: clean (only two seal producers, both guarded;
wall comparison already fail-closed).
Plan: docs/superpowers/plans/2026-06-09-seal-time-judge-mode-validation.md
2026-06-10 03:48:07 +03:00
Дмитрий
ec73a5c2d0
docs(gate1+se2): design spec + TDD plan (М7 Фаза 8, 2 хвоста до флипа)
...
Спека docs/superpowers/specs/2026-06-09-gate1-and-se2-design.md (одобрена; 2 адверсариальных
прохода: SD-1 High «trim→артефакт не печатается» + VA-a/SE-a «fail-open→whitelist» закрыты)
+ план docs/superpowers/plans/2026-06-09-gate1-and-se2.md (4 задачи, bite-sized TDD).
2026-06-09 19:05:23 +03:00
Дмитрий
0289e93c0e
feat(gate1+se2): wire spec-judging (Гейт-1) + fail-closed wall whitelist (SE-2)
...
М7 Фаза 8 — последние 2 хвоста до флипа. Inline TDD; спека+план одобрены; 2 адверсариальных прохода.
Гейт-1 (печать артефакта в рантайме):
- extractGate1Product (enforce-judge-gate.mjs): детект записи specs/*.md (Write-only) → судить
линзами gate1 (движок уже поддерживает). runJudgeGate: спека→gate1, иначе план→gate2.
- judged_hash от СЫРОГО content (SD-1, разбор #1 High): trimmed source_sha не сошёлся бы с
печатью sealOnWiredGo → артефакт НИКОГДА не печатался бы. Один канон судья→печать.
- extractGate2Product не тронут (Гейт-2 = планы, регрессия зелёная).
SE-2 (стена не чтит shadow):
- decideMode (enforce-supreme-gate.mjs): fail-closed whitelist — энфорсмент ТОЛЬКО при
judge_mode==='live-block' на ОБЕИХ печатях; shadow/null/опечатка → разговорный (мутаторы block).
Разбор #1 (VA-a/SE-a): убрана единственная fail-OPEN сверка; опечатка режима безопасна.
- мигрированы 3 enforce-теста стены на judge_mode:'live-block'.
Тесты: gate1 10, SE-2 6; регрессия tools-only 3443 passed / 2 skip / 0 регрессий.
Гейт-1 тесты — отдельный файл enforce-judge-gate-gate1.test.mjs (real-test-verifier блокирует
import-only Edit существующего теста). Печать в рантайме до флипа НЕ производится.
2026-06-09 19:05:17 +03:00
Дмитрий
09598dd5bd
feat(seal): sealed-plan production pipeline (M7 Фаза 8 code-precondition)
...
Производство двух печатей (артефакт-решение + план-шаги), чтобы стене М2 было
что матчить — код-предусловие флипа. Inline TDD, спека/план одобрены владельцем.
- C1 artifact-from-spec.mjs: спека markdown -> {sections, source_sha} по якорям {#id} (P2-2).
- C2 plan-steps-parse.mjs: план -> [{op,object,ref}], fail-CLOSE, reject op:Task (VA-4),
канон object = repo-relative POSIX (SE-5; pathNormalize только на матче в стене, не на парсе).
- C3/C4 plan-lock.mjs: judge_mode в ПОДПИСАННОЙ базе freezePlan (VA-2) + атомарный persist
temp->rename для обоих save (SE-4/VA-3, артефакт ДО плана).
- C6 seal-orchestration.mjs: sealableArtifact/sealablePlan + judgedHashOf (SD-1) +
sealArtifact/sealPlan на РЕАЛЬНОМ GO (SE-3 wired===true), штамп artifact_id из текущего
артефакта (SD-3), judge_mode впрыснут в печать ПОСЛЕ хеш-сверки sealOnApproval (фикс TOCTOU).
- C5 enforce-judge-gate.mjs: SPEC_PATH_RE + sealOnWiredGo (печать на wired GO, инъекция в main,
юнит-тесты hermetic) + judged_hash в вердикте runJudgeGate. extractGate2Product не тронут
(Гейт-2 = планы; Гейт-1 spec-judging — отдельный заход перед флипом).
- Интеграция seal-to-wall: печать -> decideMode стены М2 (allow / non-match block / closed-door).
Тесты: full tools-only регрессия 3427 passed | 2 skipped, 0 регрессий (+29 новых кейсов).
Печать в рантайме НЕ производится до флипа (стена/судья не зарегистрированы) — сборка
готовит код-предусловие. Спека docs/superpowers/specs/2026-06-09-sealed-plan-production-design.md.
2026-06-09 17:50:25 +03:00
Дмитрий
8718e2a965
docs(seal): sealed-plan production design spec + TDD implementation plan
...
Спека (ОДОБРЕНА владельцем, 2 адверсариальных разбора, 18 находок закрыты)
+ bite-sized TDD-план (7 задач) для код-предусловия флипа Фазы 8
(производство двух печатей: артефакт-решение + план-шаги).
design-only — прод-код и стена не затронуты. Эпик «роутер-наставник» М7.
2026-06-09 16:51:46 +03:00
Дмитрий
d59b9177d4
Merge branch 'main' into worktree-brainrepo
...
# Conflicts:
# tools/enforce-coverage-verify.mjs
# tools/enforce-coverage-verify.test.mjs
# tools/enforce-router-gate.mjs
# tools/enforce-router-gate.test.mjs
2026-06-09 13:26:12 +03:00
Дмитрий
cc77a5817e
docs(phase8): owner deployment runbook for M7 zoo dissolution + activation
2026-06-09 13:03:56 +03:00
Дмитрий
5fa17070a9
docs(router-mentor): Level B closure + phase 8 handoff 3
2026-06-09 12:46:13 +03:00
Дмитрий
2c41971d88
docs(router-mentor): G1 closure + phase 8 handoff 2
2026-06-09 10:32:47 +03:00
Дмитрий
1478f56b51
docs(router-mentor): phase 8 readiness audit findings
2026-06-09 09:54:07 +03:00
Дмитрий
4ea4806f71
docs(router-mentor): phase 8 migration handoff (audit tails then configure-test-deploy)
2026-06-09 09:20:20 +03:00
Дмитрий
487a6f1db9
docs(router-mentor): A1 judge gate2 activation note (implementation-specific)
2026-06-09 08:55:33 +03:00
Дмитрий
cfca7ecfaa
docs(router-mentor): A1 pre-code chain amendments (Write-only, judge-unavailable degraded-allow)
2026-06-09 08:30:43 +03:00
Дмитрий
843097c0d6
docs(router-mentor): A1 judge gate2 wiring implementation plan
2026-06-09 08:19:54 +03:00
Дмитрий
44c194bc0f
docs(router-mentor): A1 judge gate2 wiring design spec
2026-06-09 08:11:13 +03:00
Дмитрий
8ec7969551
docs(router-mentor): stage3 and m3 handoff
2026-06-09 07:55:03 +03:00
Дмитрий
681c2b8abc
docs(router-mentor): activation runbook A1 A6 A7
2026-06-09 07:50:42 +03:00
Дмитрий
4c1ad03705
docs(shadow-replay): clean stage 3 report all walls green
2026-06-09 07:27:29 +03:00
Дмитрий
2ba34dc0e2
docs(router-mentor): stage 3 replay plan
2026-06-09 06:12:55 +03:00
Дмитрий
45905432f8
docs(router-mentor): stage 3 replay spec data-source fix
2026-06-09 06:07:55 +03:00
Дмитрий
987feb2e40
docs(router-mentor): stage 3 replay spec
2026-06-09 06:00:15 +03:00
Дмитрий
7e5db3ef91
docs(router-mentor): self-consistent git anchor in handoff prompt
2026-06-09 05:31:03 +03:00
Дмитрий
ad6fd73ec9
docs(router-mentor): handoff for next session (Block B plus R-08 closed, autonomous front exhausted)
2026-06-09 05:30:35 +03:00
Дмитрий
fa07472dd0
docs(router-mentor): mark Block B closed, M1 pinned, fix stale notes in loose-ends registry
2026-06-09 05:25:26 +03:00
Дмитрий
1651fdfb50
docs(router-mentor): R-08 implementation plan (6 tasks TDD)
2026-06-09 05:04:45 +03:00
Дмитрий
4a0c3a98d9
docs(router-mentor): R-08 spec hardened by adversarial pass (7 SE + 2 flat variants)
2026-06-09 04:59:10 +03:00
Дмитрий
93fcb5e141
docs(router-mentor): R-08 hierarchical waves design spec
2026-06-09 04:51:39 +03:00
Дмитрий
6c8918dff4
docs(router-mentor): plan blockB classes 1+2 (R-09/R-24/R-30/reconcile)
2026-06-09 03:57:03 +03:00
Дмитрий
eb4b38f481
docs(router-mentor): handoff k novoy sessii (E/G zakryt, Blok B otbreynstormlen)
2026-06-09 03:46:59 +03:00
Дмитрий
2900554d5f
docs(router-mentor): E/G warm-up batch zakryt v reestre hvostov (P1-P6)
2026-06-09 03:25:43 +03:00
Дмитрий
a85d7f9d5f
docs(router-mentor): DOC-1 escape-awareness callout pered aktivaciey M6 (P6 E/G)
2026-06-09 03:24:22 +03:00
Дмитрий
f801593987
docs(router-mentor): план E/G warm-up batch (7 тасков, bite-sized TDD)
...
Инлайн-исполнение (субагенты запрещены). Порядок простое-первым P3/P2/P1/P4/P5/P6 + закрытие реестра. Точный код тестов и правок, 4 правки безопасности учтены. Также факт-правка примеров P3 в спеке (first-match порядок classifyTask).
2026-06-08 19:47:30 +03:00
Дмитрий
0774a41f13
docs(router-mentor): E/G spec — 4 правки безопасности после adversarial-анализа
...
Цепочка audit-context-building/sharp-edges/variant-analysis. P1 узкий stripPastedContext (fenced+blockquote only, не reuse stripQuotedContext — сохранить FP-смещение гейта). P2 counting-replacers по конвейеру sanitize (count==редакции). P4 escapeCell anti-injection в STATUS.md. P5 пиннинг документируемого инварианта. Жёсткие стены М2/М5/М4/М6 не затронуты.
2026-06-08 19:40:34 +03:00
Дмитрий
62d3352d3e
docs(router-mentor): spec для E/G warm-up batch (6 пунктов)
...
Дизайн утверждён владельцем. Точность наблюдателя (4-й FP-класс quoted /node, PII double-count, release-class commit) + детальный рендер доски обороны + косметика node-graph/reviewer + DOC-1 escape-awareness. Всё инлайн, TDD, commit-not-push, регрессия tools-only не ниже baseline 3174. Live-вшивка источников доски — граница B-блока.
2026-06-08 19:26:31 +03:00
Дмитрий
acf1d90209
docs(router-mentor): handoff к следующей сессии (после закрытия H)
...
Ready-to-copy промт + карта оставшихся хвостов (B/A/C/E/F/G/H3) + квирки
(vitest --root, git PowerShell, node -e блок, память-гейт) + цепочка скилов
+ жёсткие правила (commit-not-push, CLAUDE.md off-limits). commit-not-push.
coverage: direct:session-handoff
2026-06-08 19:12:01 +03:00
Дмитрий
64fb063a22
docs(router-mentor): H закрыт — реестр хвостов + handoff обновлены
...
Блок H помечен ЗАКРЫТЫМ в реестре хвостов (H1/H2 + критический путь этап 1) и
handoff (финальная сводка решений + 5 находок аудита + квирк vitest --root для
worktree под .claude). commit-not-push.
coverage: direct:h-housekeeping
2026-06-08 19:07:37 +03:00
Дмитрий
65b3c57515
feat(nodes): конфликт-рёбра R-12 (Tooling §6 + R14.5, двусторонние)
...
4 пары attributes.conflicts_with из канона (mutual exclusion / replaces):
postgres-mcp↔boost (§6.1 «не оба активными»/replaces) + треугольник UI-генераторов
frontend-design↔ui-ux-pro-max↔21st-magic (R14.5 «один генератор на задачу,
не параллельно и не друг с другом»). ADR-границы — комплементарные различения,
не конфликты; §9.1-отвергнутые не узлы реестра. m3e: резолв+симметрия GREEN.
coverage: skill:executing-plans
2026-06-08 18:59:46 +03:00
Дмитрий
caadc92be0
feat(contracts): карточки marketing/project-agent/kg/historic (#74-#86 + #1 ) — все 86 готовы
...
14 финальных карточек: marketing (#74-#83: marketing-plugin, marketingskills,
brand-voice, marketing-ru[own], yandex-metrika-mcp, yandex-wordstat-mcp, telegram-mcp,
postiz, dataforseo-mcp[deferred], unisender-go-mcp[deferred]) + project-agent
(normative-sync[own], prod-deploy-validator[own]) + kg (graphifyy) + historic
(postgres-mcp #1 ). m3a GREEN. ВСЕ 86 узлов имеют карточку.
coverage: skill:executing-plans
2026-06-08 18:54:55 +03:00
Дмитрий
083095174c
feat(contracts): карточки discovery/authoring/dev-support/finance/backend/infosec (#55-#73)
...
19 карточек. own (self-authored): discovery-interview, billing-audit, ru-tax-accounting,
laravel-backend-patterns, pdn-152fz-audit, threat-model, security-go-live. external:
skill-creator, plugin-dev, hookify, claude-code-setup, context7, finance-plugin, rector,
php-insights, nightowl[deferred], owasp-zap, nuclei, ward. m3a GREEN. 72/86 готово.
coverage: skill:executing-plans
2026-06-08 18:52:28 +03:00
Дмитрий
d48365de5e
feat(contracts): карточки design/integration/ml-ai/business-process (#44-#54)
...
11 карточек: design (figma-mcp[deferred], universal-icons-mcp, design-plugin) +
integration (openapi-mcp) + ml-ai (promptfoo, data-scientist, jupyter-mcp[deferred])
+ business-process (operations[зонтик], process-modeling[own], process-analysis[own],
n8n-mcp[deferred]). process-* = own (self-authored); остальные external. m3a GREEN.
53/86 карточек готово.
coverage: skill:executing-plans
2026-06-08 18:49:18 +03:00
Дмитрий
078e829b38
feat(contracts): карточки phase-3 + off-phase (UI-pool/debug/architecture/audit/PM)
...
18 карточек (все external): phase-3 (semgrep, trivy, dependabot, pg-audit,
pg-anonymizer) + UI-pool (ui-ux-pro-max, 21st-magic, claude-md-management) +
debug-runtime (sentry-mcp, redis-mcp) + architecture-tooling (adr-kit, mermaid,
architecture-patterns, deptrac) + audit-security (trail-of-bits, security-guidance)
+ project-management (ccpm, product-management). zero-hash + path"" → G4 инертен.
m3a 3/3 GREEN. 42/86 карточек готово.
coverage: skill:executing-plans
2026-06-08 18:47:19 +03:00
Дмитрий
9dc6bb55fd
feat(contracts): карточки phase-1 + phase-2 (#10-#30)
...
16 карточек: phase-1 (boost, pint, larastan, roave-security, ide-helper, squawk,
pg-formatter, pg-partman[dormant], pest) + phase-2 (superpowers[own,зонтик], volar,
vue-tsc, eslint-prettier, vitest, histoire, frontend-design). superpowers = own
(без source); остальные external (zero-hash + path"" → G4 инертен). m3a 3/3 GREEN.
coverage: skill:executing-plans
2026-06-08 18:44:20 +03:00
Дмитрий
52cea07fee
feat(contracts): карточки phase-0 (#2-#9) + m3a form-инвариант всех карточек
...
8 карточек-контрактов phase-0: playwright-mcp, github-mcp, markdownlint, cspell,
lychee, stylelint, gitleaks, pa11y (все external, zero-hash + path"" → G4 инертен).
m3a расширен: «ВСЕ файлы contracts/ form-валидны + нет дрейфа» (loadRegistry errors
+ driftFlags пусты) — per-батч валидация прогоном vitest. m3a 3/3 GREEN.
coverage: skill:executing-plans
2026-06-08 18:38:24 +03:00
Дмитрий
4d257a1c44
docs(router-mentor): план реализации блока H (карточки + конфликт-рёбра)
...
Bite-sized TDD-план: Task1 G-E мех-правка, Task2 чистый чекер card-coverage,
Tasks 3.1-3.20 авторинг 86 карточек по батчам, Task4 конфликт-рёбра (§9+ADR),
Task5 живой инвариант m3e (последним → GREEN), Task6 гейт закрытия.
Исполнение инлайн (субагенты запрещены). commit-not-push.
coverage: skill:writing-plans
2026-06-08 18:07:22 +03:00
Дмитрий
1aacb2fe66
docs(router-mentor): H-design — вложены находки аудита достаточности (G-A/B/E/G/H)
...
Аудит «достаточно ли паспорта для роутера и судьи» (audit-context →
variant-analysis → sharp-edges → verification). Вердикт: схема достаточна,
новое поле не нужно. Вложены 5 находок: G-E (страж дрейфа инертен при
path=="" — точечная мех-правка), G-A (разделитель близнецов в capabilities),
G-B (инвариант «минимум содержания»), G-G (норма вход/выход), G-H (инвариант
резолв+симметрия). G-F/G-C/G-D отложены. commit-not-push.
coverage: direct:brainstorming-author
2026-06-08 18:03:17 +03:00
Дмитрий
e2f5ba0406
docs(router-mentor): H-block design — node cards (R-11) + conflict edges (R-12)
...
Дизайн блока H реестра хвостов эпика «роутер-наставник»: наполнение графа
скилов данными — 86 карточек-контрактов (per-node, skill=slug) + явные
конфликт-рёбра (Tooling §9 + ADR, двусторонние) + инвариант покрытия (TDD).
Механику 3-A/3-B/3-C/3-D не трогаем. commit-not-push.
coverage: skill:brainstorming
2026-06-08 17:43:03 +03:00
Дмитрий
85ffb25e2d
docs(router-mentor): сводный реестр хвостов эпика до боевого режима
...
Свод всех отложенных пунктов «роутер-наставник / реинжиниринг мозга»
(7 машин + router-discipline + периферия мозга + граф скилов): блоки
H/A/B/C/E/F/G, критический путь к продакшену, колонка «кто закрывает»
(Claude / владелец). Read-only сбор, ничего не чинится. Главный
недостающий кусок — карточки узлов (2 из ~86) + конфликт-рёбра (0).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 16:40:40 +03:00
Дмитрий
7c3a495e5c
docs(m7): build-handoff #5 — Фазы 4/5/6/7-код СОБРАНЫ, остались шаги владельца + переезд Ф8
...
Сменяет handoff #4 . Готовый промт для новой сессии + полное состояние: 15 коммитов
02e3ff73..ee9e3123 (Ф4 8 / Ф5 2 / Ф6 2 / Ф7 3), регрессия 3090→3163+2 без регрессий,
commit-not-push. Детальные шаги ВЛАДЕЛЬЦА: (А) завершить ИИ-проводку судьи (реальный
транспорт runJudgeGate + ключ/флаг/обкатка shadow→block), (Б) Фаза 8 переезд (регистрация
М1–М6 в settings.json + увольнение v4-зоопарка + тест-гейт §9.2 + откат). Цепочка скилов,
квирки, якоря коммитов — для подхвата следующей сессией.
2026-06-08 15:07:01 +03:00