Commit Graph

435 Commits

Author SHA1 Message Date
Дмитрий 33894a625a docs(escape-sign): отметить M6 FIX-5 как РЕАЛИЗОВАНО (спека §12 + план чек-боксы)
После закрытия реализации M6 FIX-5 (3 задачи TDD + гейт закрытия, регрессия
3478+2skip GREEN):

- spec 2026-06-10-floor-escape-signing-design.md: статус ЧЕРНОВИК → РЕАЛИЗОВАНО;
  §12 боксы «Ревью владельца» + «writing-plans» → [x] (+пометка одобренного
  отклонения Task 3: быстрый путь).
- plan 2026-06-10-floor-escape-signing.md: +статус-баннер (РЕАЛИЗОВАНО, регрессия,
  отклонение Task 3); все рабочие чек-боксы (Task 1/2/3 + гейт) → [x].

Только docs. Прод-код инертен до провижининга ключа (Фаза 8).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 05:38:21 +03:00
Дмитрий c566e85286 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
Дмитрий c9f823df38 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
Дмитрий f2aa3fb755 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
Дмитрий 2fc6e7ab49 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
Дмитрий de39beb813 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
Дмитрий 290b619074 docs(phase8): owner deployment runbook for M7 zoo dissolution + activation 2026-06-09 13:03:56 +03:00
Дмитрий 539f5b788a docs(router-mentor): Level B closure + phase 8 handoff 3 2026-06-09 12:46:13 +03:00
Дмитрий 6037250b23 docs(router-mentor): G1 closure + phase 8 handoff 2 2026-06-09 10:32:47 +03:00
Дмитрий 5e6bcc975a docs(router-mentor): phase 8 readiness audit findings 2026-06-09 09:54:07 +03:00
Дмитрий 5937288c4d docs(router-mentor): phase 8 migration handoff (audit tails then configure-test-deploy) 2026-06-09 09:20:20 +03:00
Дмитрий d96f7ea2eb docs(router-mentor): A1 judge gate2 activation note (implementation-specific) 2026-06-09 08:55:33 +03:00
Дмитрий e311efeeec docs(router-mentor): A1 pre-code chain amendments (Write-only, judge-unavailable degraded-allow) 2026-06-09 08:30:43 +03:00
Дмитрий 5b5d8f10e4 docs(router-mentor): A1 judge gate2 wiring implementation plan 2026-06-09 08:19:54 +03:00
Дмитрий d2c5cb6b59 docs(router-mentor): A1 judge gate2 wiring design spec 2026-06-09 08:11:13 +03:00
Дмитрий 2f8586c57b docs(router-mentor): stage3 and m3 handoff 2026-06-09 07:55:03 +03:00
Дмитрий 9957c4c84d docs(router-mentor): activation runbook A1 A6 A7 2026-06-09 07:50:42 +03:00
Дмитрий 3298d573c3 docs(router-mentor): stage 3 replay plan 2026-06-09 06:12:55 +03:00
Дмитрий 70690d066c docs(router-mentor): stage 3 replay spec data-source fix 2026-06-09 06:07:55 +03:00
Дмитрий 77e892c480 docs(router-mentor): stage 3 replay spec 2026-06-09 06:00:15 +03:00
Дмитрий e834c12152 docs(router-mentor): self-consistent git anchor in handoff prompt 2026-06-09 05:31:03 +03:00
Дмитрий aed7fd1ecc docs(router-mentor): handoff for next session (Block B plus R-08 closed, autonomous front exhausted) 2026-06-09 05:30:35 +03:00
Дмитрий 4778d37dd3 docs(router-mentor): mark Block B closed, M1 pinned, fix stale notes in loose-ends registry 2026-06-09 05:25:26 +03:00
Дмитрий 15a3f0563f docs(router-mentor): R-08 implementation plan (6 tasks TDD) 2026-06-09 05:04:45 +03:00
Дмитрий 17cf6ca772 docs(router-mentor): R-08 spec hardened by adversarial pass (7 SE + 2 flat variants) 2026-06-09 04:59:10 +03:00
Дмитрий 09291ad314 docs(router-mentor): R-08 hierarchical waves design spec 2026-06-09 04:51:39 +03:00
Дмитрий d4aa56e84c docs(router-mentor): plan blockB classes 1+2 (R-09/R-24/R-30/reconcile) 2026-06-09 03:57:03 +03:00
Дмитрий b9e9116bb5 docs(router-mentor): handoff k novoy sessii (E/G zakryt, Blok B otbreynstormlen) 2026-06-09 03:46:59 +03:00
Дмитрий 5f65bb066f docs(router-mentor): E/G warm-up batch zakryt v reestre hvostov (P1-P6) 2026-06-09 03:25:43 +03:00
Дмитрий aa112cf263 docs(router-mentor): DOC-1 escape-awareness callout pered aktivaciey M6 (P6 E/G) 2026-06-09 03:24:22 +03:00
Дмитрий a3e7968c59 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
Дмитрий 4e1aef53c4 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
Дмитрий 7a6bb28259 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
Дмитрий 1ce277cd12 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
Дмитрий 408a1d0c39 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
Дмитрий aa94dabc5b 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
Дмитрий 48d0594a39 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
Дмитрий ce8d9c3bd8 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
Дмитрий c6ceee8ac5 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
Дмитрий f69c98e274 docs(m7): build-handoff #5 — Фазы 4/5/6/7-код СОБРАНЫ, остались шаги владельца + переезд Ф8
Сменяет handoff #4. Готовый промт для новой сессии + полное состояние: 15 коммитов
764a4192..fc4ee350 (Ф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
Дмитрий 33cf0f7db5 docs(m7): build-handoff #4 — Фазы 0/2/3 собраны + Фаза 4 SCOPED, промт для новой сессии 2026-06-08 10:47:41 +03:00
Дмитрий a10e671cef docs(m7): SCOPED план Фазы 4 — поглощение дисциплины в М4 (§4.2, под-фазы 4a/4b/4c) 2026-06-08 10:42:15 +03:00
Дмитрий b69fdc5dfc docs(m7): план Фазы 3 — skill-журналер + seed-allow реактивных навыков (SE-K, §4.2/§12) 2026-06-08 10:37:32 +03:00
Дмитрий 467f2edddf docs(m7): план Фазы 2 — escape-survivability полная (правило 7б,в + §6 escape-honor) 2026-06-08 10:30:00 +03:00
Дмитрий b7a89e783f docs(m7): план Фазы 0 — fail-CLOSE-карвут + escape-survivability примитивы 2026-06-08 10:08:09 +03:00
Дмитрий 2365262848 docs(m7): build-handoff #3 — Фаза 1 content-floor собрана + PS single-source (HEAD 8a35f641)
Сменяет build-handoff #2. Фиксирует: Фаза 1 (content-floor V1/V1-PS) реализована
полностью (11 коммитов 4e7d32d4..8a35f641), регрессия 3044+2 GREEN 0 регрессий,
commit-not-push. Готовый промт новой сессии + цепочка скилов (executing-plans драйвер,
per-Task audit→TDD→systematic-debugging→verification, строгий sharp-edges после опасных
Task, гейт закрытия audit→sharp-edges→variant-analysis→regression→verification) +
квирки (vitest фильтры раздельно, гейты блокируют rm/git rm, tdd-real-test-verifier diff
требует expect, for-of не it.each) + отложенное в Фазу 8 (удаление powershell-destructive,
полная PS enumeration). Следующий шаг — Фаза 0 через writing-plans по команде владельца.
2026-06-08 09:40:25 +03:00
Дмитрий 0f781f3707 docs(m7): build-handoff #2 — состояние после фолжа разбора плана (HEAD 41c6b78b)
Готовый промт для новой сессии: подтвердить HEAD 41c6b78b, прочитать
handoff#2 + спеку §13 addendum + план Фазу 1 (Task 1.0.5-1.6), спросить
владельца, НИЧЕГО не делать самому. Заменяет handoff#1 (stale HEAD 9d6e708c).
Карта правок P-1..P-8 (план↔спека). Код НЕ строили. commit-not-push.
2026-06-08 08:24:17 +03:00
Дмитрий 41c6b78b1e docs(m7): fold plan-critique findings P-1..P-8 into plan + spec
Independent critical review of the implementation plan (audit-context ->
sharp-edges -> variant-analysis -> systematic-debugging, grounded against
real M1-M6 code). 8 findings, all code-grounded, no ghosts:

- P-1 (CRIT): content-floor "full port" was a SUBSET of BASH_HARD_BLACKLIST
  (lost #21 env-prefix / #22 --watch / #34 echo-inj / C16 2>file /
  cp-mv-chmod-chown-chgrp; cp X ~/.claude/runtime = escape-grant forge)
  -> single source matchBashHardBlacklist relocated to shell-content-rules
  (Task 1.0.5) + §12 content-floor invariant proves completeness.
- P-2 (CRIT): canonicalAction has no PowerShell branch -> every PS command
  collapses to 'write:' -> one escape unlocks ALL PS commands; Task 1.5 test
  was spuriously green (both sides equally broken) -> Task 1.2b + specificity.
- P-3 (HIGH): PS floor branch returned block:false skipping runtime/secret
  guard (command field not parsed) -> Set-Content ~/.claude/runtime forge
  -> psProtectedWrite guard (Task 1.4).
- P-4 (MED): content-block whole-string only -> bashIsContentBlock whole+per
  -segment parity with bashIsFloor (Task 1.3).
- P-5 (MED): suspicious blind to content-danger -> suspicious |= contentBlock.
- P-6 (MED): §12 CI-invariants ownerless -> assigned per phase (phase rule).
- P-7 (LOW): Phase 0 fail-CLOSE "subset" unlisted -> explicit hook list.
- P-8 (LOW): plan = detailed Phase 1 + scoped skeleton -> honest framing.

Plan: Tasks 1.0.5/1.1/1.2b/1.3/1.4/1.5/1.6 + phase-transition rule + self-review.
Spec: §5 PowerShell row, §12 M5 line, §13 addendum.
No code built. commit-not-push.
2026-06-08 08:20:40 +03:00
Дмитрий 84f19011a1 docs(m7): build-handoff в новую сессию — состояние после критразбора + плана
Готовый промт для подхвата: HEAD 9d6e708c, дизайн закрыт + критразбор/поправки
(661083b3) + план (9d6e708c). Next = сборка Фазы 1 (content-floor) инлайн TDD
по команде владельца. Квирки (vitest/git/junction/escape/грязь дерева) + жёсткие
правила (commit-not-push, субагенты запрещены, ничего не делать самому).
2026-06-08 07:56:45 +03:00
Дмитрий 9d6e708c5c docs(m7): план реализации — мастер (фазы 0-8) + Фаза 1 (content-floor) детально
writing-plans по поправленной спеке М7. Scope-check: 9 подсистем →
dependency-ordered фазы 0-8. Фаза 1 (content-floor V1/V1-PS — критический
корень переезда, §10 запрещает увольнять router-gate до неё) в полной
bite-sized TDD-детализации (Task 1.0-1.6 с кодом); фазы 0,2-8 scoped,
разворачиваются в bite-sized при подходе. Self-review: spec coverage полон,
type-consistency проверена. Исполнение — инлайн (субагенты запрещены владельцем).
2026-06-08 07:53:03 +03:00