Commit Graph

78 Commits

Author SHA1 Message Date
Дмитрий 6bc0f6d040 docs: handoff допила эталона — B+C ч.2/D1/D2 DONE + решения по хвостам
Обновлён docs/superpowers/2026-06-18-wall-improvements-handoff.md:
- «Сделано» дополнено B+C ч.2 (bc1d2a3), D1 (bbc053e), D2 (b47a71c); свод 4319.
- «Осталось» переписано: только §3.4 десинк (решение владельца — отдельной
  сессией; механизм + безопасный путь зафиксированы) + норматив-заметки.
- §3.3 docs/ops без criterion/verify — ЗАКРЫТО (владелец 2026-06-18): строго .md,
  расширение на не-.md ops-артефакты не делаем (конфликт с CLAUDE.md §13).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 14:32:26 +03:00
Дмитрий b47a71c66b feat: D2 — канал коммита под ревью (агент коммитит под commit:<hash>)
Опечатанный ревью-план (GO наставника+судьи, judge_mode=live-block) + одно
согласие владельца `FLOOR-ESCAPE: commit:<plan-hash>` → агент делает git
add/commit/push без терминала владельца. Гейт ПРИСУТСТВИЯ (router-gate
git-approval) отходит; гейты КАЧЕСТВА (criterion-gate/verify-gate) НЕ тронуты —
код-коммит всё равно требует по-критерийный GREEN и свежую расписку. Согласия
деплоя (ops-runbook:) и коммита (commit:) — раздельные кнопки.

- escape-grant: обобщён plan-scoped загрузчик (loadPlanScopedGrants/
  planScopedGrantOpen, окно = существование плана); D1 ops-runbook стал тонкой
  обёрткой; добавлены commit: COMMIT_GRANT_PREFIX/loadCommitGrants/commitGrantOpen.
- commit-grant (новый мост план↔router-gate): commitGrantOpenForSession —
  открыт ли commit:<hash> на валидный sealed live-block план сессии.
- shell-content-rules classifyGitCommand: conditional-git пускается при
  ctx.commitGrantOpen; GIT_HARD (force-push/--no-verify/-c) блокирует ПЕРВЫМ
  (качество/безопасность не ослаблены).
- enforce-router-gate: main кладёт ctx.commitGrantOpen (gated через мост).

План: docs/superpowers/plans/2026-06-18-agent-commit-channel-plan.md
Спека: docs/superpowers/specs/2026-06-18-agent-commit-channel-design.md §3.1-3.2.

ОТЛОЖЕНО (требует решения владельца, в хвосте плана):
- §3.3 docs/ops без criterion/verify: .md уже пропускается; расширение на
  не-.md ops-артефакты конфликтует с CLAUDE.md §13 v2.40 — нужен явный список.
- §3.4 десинк push-последним-шагом: рискованная правка снятия печати стены.

+22 теста, свод 4319 passed / 2 skipped.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 13:58:05 +03:00
Дмитрий bbc053e0a6 feat: D1 — благословлённый ops-runbook (деплой выполняет агент под ревью)
Деплой, помеченный **Kind:** deploy и опечатанный (наставник+судья GO,
judge_mode=live-block), агент выполняет по белому списку шагов под ОДНИМ
согласием владельца `FLOOR-ESCAPE: ops-runbook:<plan-hash>` — без аварийного
выхода на каждую команду. «Ядерный» набор (rm -rf/force-push/migrate:fresh/
db:wipe) остаётся на per-command escape.

- plan-lock: freezePlan принимает kind (в подписанную базу + хеш, как delivery);
  не-'normal' добавляет поле, обычные планы байт-идентичны старым печатям.
- plan-skills: parsePlanKind (**Kind:** deploy|normal, default normal).
- seal-orchestration: sealablePlan/sealPlan прокидывают kind в печать.
- escape-grant: loadOpsRunbookGrants (окно = существование плана, БЕЗ 5-мин
  фильтра) + opsRunbookGrantOpen (точный матч на plan_id).
- floor-decide: floorDecide получает инъектируемый blessedOps(cmd); content-block
  команда из набора пропускается, ЯДЕРНЫЙ набор (bashIsFloor) исключён из послабления.
- blessed-ops (новый модуль-мост): buildBlessedOps + loadBlessedOpsForSession —
  знает план+пол, чтобы СОХРАНИТЬ Δ9 (enforce-floor не зависит от модуля печати плана).
  Предикат пускает команду только дословно из Bash-листов опечатанного deploy-плана.
- enforce-floor: gated — blessed-ops грузит план/гранты ТОЛЬКО при открытом
  ops-runbook-гранте; без согласия владельца пол плана не касается (Δ9 цел).

План: docs/superpowers/plans/2026-06-18-blessed-ops-runbook-plan.md
Спека: docs/superpowers/specs/2026-06-18-blessed-ops-runbook-design.md §3.1-3.7.
+33 теста, свод 4299 passed / 2 skipped.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 13:19:22 +03:00
Дмитрий bc1d2a370a feat: B+C часть 2 — сеанс осмотра op:"session" под стеной
Новый тип шага плана op:"session" {goal, tools, produces} для интерактивного
осмотра (логин/формы/чужой сайт) под планом: внутри сеанса смотреть/кликать по
живым ref свободно, указатель не двигается; сеанс закрывает запись последнего
produces (матч-якорь). Снят дедлок op:"Skill"-как-шаг.

- plan-lock: sessionProduces, actionMatchesStep матчит последний produces,
  validatePlanTree валидирует session (produces>=1) и запрещает op:"Skill",
  sanitizeSessionTools (предохранитель §3.3: дроп Write/Edit/Bash/floor + warn).
- enforce-supreme-gate decide: ветка указатель-на-сеансе — tools сеанса и
  промежуточные produces allow без сдвига, пол применяется (defense-in-depth).
- plan-steps-parse: распознаёт op:"session" (goal/tools/produces, без object/ref),
  отвергает op:"Skill" с явным сообщением.
- mentor-verdict: наставник понимает op:"session" — не заворачивает как непонятный шаг.
- сеанс+tools/produces в хеше и подписи плана (подмена ломает печать).

Спека: docs/superpowers/specs/2026-06-18-wall-interactive-session-design.md §3.2-3.3.
+37 тестов, свод 4266 passed / 2 skipped.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 11:54:42 +03:00
Дмитрий e9ba6fb9a2 feat: B+C part1 - смотрящие инструменты свободны под/без плана (isQueryOnly)
Новый предикат isQueryOnly (ToolSearch/WebFetch/WebSearch/read-only браузер:
navigate/snapshot/wait/screenshot) проведён во все ветки стены: смотрящие и
спрашивающие инструменты проходят и в разговорном режиме (осмотр чужого сайта
без плана), и под опечатанным планом, не двигая указатель шагов. Действующие
инструменты (клик/ввод) сюда не входят - они пойдут через сеанс осмотра
(часть 2 B+C). Свод зелёный: 4229 passed, 2 skipped.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 10:52:47 +03:00
Дмитрий e91aa021f0 feat: A - чтение под опечатанным планом свободно (ДР-1 снят в impl)
Под планом авторское чтение больше не блок: свой вывод, лог упавшего шага,
новый файл доступны. Чтение не двигает очередь шагов; impl-чтения логируются
с пометкой impl:true для ретро и не считаются во фронт-лоад порог. Секреты
держит отдельный read-path-deny. Свод зелёный: 4221 passed, 2 skipped.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 10:40:23 +03:00
Дмитрий abf2060328 feat standby: штатный режим - флаг, управляющий хук, сброс, страж в 12 хуков
Сессионный флаг standby-mode + управляющий UserPromptSubmit-хук рукопожатия + SessionStart-сброс. Страж if standbyActive в 12 блокирующих хуках; рельсы floor/snapshot/verify-gate не тронуты.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 10:07:04 +03:00
Дмитрий 2b9e72ab46 docs: mark open-items roadmap + produce-verify-receipt bag resolved
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 08:10:39 +03:00
Дмитрий 2380e82002 feat: gate-3 owner acceptance live wiring Phase 2d finale
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 05:28:49 +03:00
Дмитрий c50ac7c915 restore: run-test-json конфиг от корня репо через resolveVitestConfig plus тест buildVitestJsonArgs plus GUIDE Уроки 9 формат плана
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 20:20:23 +03:00
Дмитрий 07f24382e8 docs: .gitattributes принудительный LF plus GUIDE Уроки 8 диагностика CRLF-саги (vitest@4 давится на CRLF .mjs)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 20:15:21 +03:00
Дмитрий 7ae53216bf docs: черновики deliderra-cleanup и app-path-split-legacy-fix спеки и планы plus bag wall-read-block
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 20:10:14 +03:00
Дмитрий f6d0544277 Merge branch 'track-d-2c-delivery' 2026-06-17 19:11:26 +03:00
Дмитрий 2b5e265c3e Merge branch 'track-c-2b-gate3card'
# Conflicts:
#	tools/enforce-gate3-loop.mjs
2026-06-17 19:10:52 +03:00
Дмитрий 451b0d4cf5 feat: E-S1 2c chestnost delivery na gate-2 - linza delivery_honesty
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 18:01:24 +03:00
Дмитрий 89367986f2 fix(track-b): надёжность вердиктов — флап наставника + видимый degraded при срыве захода судьи/gate3
1) validateMentorVerdict: recommendation обязателен только на NO-GO (положительный GO с пустым слотом больше не заворачивается). 2) runJudgeTurn: срыв runJudgeGate -> видимый degraded вместо слепого возврата. 3) produceGate3Verdict: срыв захода/построения -> видимый degraded вместо немого fail-OPEN. TDD-тесты добавлены; vitest в worktree сломан средой, логика проверена через node.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 17:16:18 +03:00
Дмитрий 46c1b2301d feat: E-S1 Фаза 2b судья-карточки gate3card линзы card_matches_product/no_overstatement/verify_steps_real plus чистый помощник видимости gate3CardSurfaceRecord стадия judge:gate3card
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 16:54:52 +03:00
Дмитрий ba584a8335 docs: bag-репорты багов стены plus спеки и планы фаз gate3 plus роадмап открытых вопросов по сессиям
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 15:41:09 +03:00
Дмитрий cd831b872f fix: наставник-хук silent-swallow срыв в видимый degraded plus GUIDE Уроки 7 диагностика наставник не вернулся
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 15:13:28 +03:00
Дмитрий 15e217fcb4 feat: E-S1 gate-3 приёмка владельца фаза 2a ядро buildOwnerCard plus расширение decideGate3Closure и фикс produce-verify-receipt выбор конфига от корня репо
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 14:39:40 +03:00
Дмитрий 9b85f51b7a feat: видимость вердиктов 2 сторож verdict-wait судья и печать в снимок пропуск сторожа в стене
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 13:27:58 +03:00
Дмитрий a8489a22c7 feat: видимость вердиктов роутер и gate3 в баннер и снимок-стор
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 13:06:07 +03:00
Дмитрий fed3c4f9b8 feat: E-S1 gate-3 owner-acceptance phase 1 delivery mark plumbing
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 10:53:25 +03:00
Дмитрий e4a0b48c0a feat: E-S1 gate-3 trigger Stop-hook enforce-gate3-loop plus wall loop-open marker
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 08:54:54 +03:00
Дмитрий dfa5ef180f feat: E-S1 gate-3 safe core buildGate3Product and decideGate3Closure
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 06:55:43 +03:00
Дмитрий 4f5c928796 fix: classifyJudgeOutcome skip vs degraded plus bug notes and SP2a design
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 05:43:18 +03:00
Дмитрий c4774c55fb feat: supreme-gate two-tact step-pointer tentative-advance F-J SP4
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 04:52:00 +03:00
Дмитрий 9f28c2cfbc feat: round-memory wire sealAction в карточки наставника и судьи SP3-c2b
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 03:45:30 +03:00
Дмитрий f96610cd7b feat: round-memory ownerSealActionForContent per-stage hash helper SP3-c2a
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 03:42:22 +03:00
Дмитрий ce58f37d8f feat: round-memory arbitration-card sealAction owner-seal SP3-c1
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 03:36:15 +03:00
Дмитрий 6a9d3e2466 fix: round-memory судья холодный не называет наставника в промпте SP3-b-followup
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 03:33:42 +03:00
Дмитрий 9b2c4f9e86 feat: round-memory owner-seal judge-gate wiring runJudgeTurn sealOnWiredGo sealTurnProd SP3-b4
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 03:17:14 +03:00
Дмитрий b111ca5ec1 feat: round-memory owner-seal sealArtifact sealPlan bypass plan-carveout SP3-b3
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 03:04:32 +03:00
Дмитрий 6a3bbad1ab feat: round-memory owner-seal sealOnApproval bypass SP3-b2
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 19:12:32 +03:00
Дмитрий 96a6204b73 feat: round-memory owner-seal decideSeal carve-out via-labels SP3-b1
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 19:10:24 +03:00
Дмитрий 171f7fb44a feat: round-memory owner-seal ownerSealAction decideSeal SP3-a ядро
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 18:41:29 +03:00
Дмитрий 3f24deddca feat: round-memory арбитраж на любом круге по маркеру SP2d-b врезка в гейты
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 17:52:58 +03:00
Дмитрий 56074a0430 feat: round-memory arbitrationRequested детектор маркера арбитража SP2d-a
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 17:48:13 +03:00
Дмитрий 74905096a7 feat: round-memory вызыватели передают stage в потолки SP2c-3b живой per-стадия
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 17:32:30 +03:00
Дмитрий fd6046fa92 feat: round-memory потолки кругов per-стадия spec/plan SP2c-3a счётчики
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 17:29:33 +03:00
Дмитрий dc2c1a3df2 feat: round-memory загрузка roundMemory J-side в хуке судьи SP2c-2 инкремент 3
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 17:22:23 +03:00
Дмитрий 1289e68524 feat: round-memory загрузка roundMemory M-side в хуке наставника SP2c-2 инкремент 2b
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 17:11:21 +03:00
Дмитрий 2ba6d3c405 feat: round-memory протяжка roundMemory через производителя и оркестратор наставника SP2c-2 инкремент 2a
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 17:03:12 +03:00
Дмитрий 3fb98fa51c feat: round-memory buildRoundMemory загрузка памяти кругов SP2c-2 инкремент 1
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 16:54:39 +03:00
Дмитрий 0b19c86fed docs: финдинг трения коммита и деплоя для мозга
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 16:45:07 +03:00
Дмитрий edea1ea40c feat: round-memory врезки записи памяти кругов в живую оркестрацию SP2c-1 ч2
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 16:41:05 +03:00
Дмитрий 8f25ce32e1 feat(round-memory): recordArtifact — запись версии + доводов M/J (SP2c-1 helper)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 16:12:48 +03:00
Дмитрий 5d7035875c feat(round-memory): память кругов в промптах judge/mentor + split M/J (SP2b)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 15:59:39 +03:00
Дмитрий 51654894c8 feat(round-memory): version-diff + round-memory-store (SP2a)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 15:31:31 +03:00
Дмитрий e6347b2a70 feat(verdict-surface): врезки judge/mentor + регистрация хуков (SP1 Task 5)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 14:37:47 +03:00