Commit Graph

862 Commits

Author SHA1 Message Date
Дмитрий afb01219cb docs(router-mentor): Машина 4 (судья) — полный дизайн + само-аудит F1-F10 + проверка 26 хуков
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 17:53:22 +03:00
Дмитрий 06a37cb486 fix(m3): закрытие находок аудита — гард R4 + терминатор + footguns; F2/F3 как честный остаток 2026-06-05 17:32:45 +03:00
Дмитрий a9208a9393 feat(m3): граф зависимостей решений (#2) + дисциплина доменного навыка (#3) 2026-06-05 17:10:21 +03:00
Дмитрий c2d6e6e130 feat(m3): разговорная фаза 2026-06-05 — вход роутера + контроль + выходная верность + честные контракты 2026-06-05 14:52:45 +03:00
Дмитрий 0ee7874c88 docs(router-mentor): conversational-phase router design (M3) + K7 pre-mortem contract (M4) + P16-e revision
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 10:39:24 +03:00
Дмитрий 923e8ff825 docs: реестр — R-19/R-28/R-31 закрыты, исправлено 13, кодовых задач в открытых нет 2026-06-05 06:25:05 +03:00
Дмитрий 7947569f38 docs: реестр — R-27 закрыт (указатель ↔ план), исправлено 10, открытых багов кода нет 2026-06-05 04:22:11 +03:00
Дмитрий 3addf4353b docs: единый реестр замечаний по реинжинирингу мозга v2 (R-01..R-31) 2026-06-05 04:18:07 +03:00
Дмитрий 200b5b2da7 docs(m2): аудит Машины 2 — куча (T1-T9 хвосты + F1-F3 замечания + фикс-сет) 2026-06-05 04:03:03 +03:00
Дмитрий e991027793 docs(m4): K6 анти-откат high-water-mark — несрываемый контракт судьи (B3 переадресован M2→M4) 2026-06-05 03:59:19 +03:00
Дмитрий 35a569d370 docs(m1): аудит Машины 1 — хвосты (A1-A4) + замечания (B1-B4) + фикс-сет 2026-06-05 03:40:13 +03:00
Дмитрий 1d676a5616 docs(m3): итоговая сводка отложенного по Машине 3 (9 пунктов, ждут Машину 4/шаг владельца) 2026-06-05 03:29:44 +03:00
Дмитрий 14230814b0 docs(m3): аудит-сверка 2026-06-05 + фикс-сет 1-5 (G1-G6 расклад, заземление, look-ahead, нюх/интервьюер) 2026-06-05 03:17:20 +03:00
Дмитрий 0f198b6e33 docs(m3): build summary + follow-up list in questions log (Машина 3 complete) 2026-06-04 19:52:30 +03:00
Дмитрий a27a848d7c test(m3-e): learning hard-rule invariants + plan — Машина 3 собрана
Машина 3-E «Очередь одобрений + ручка разведки» собрана (TDD): router-learning-queue.mjs
(propose-only + owner batch approval + render/signal/persist; hard-rule «без да — никак»)
+ router-exploration.mjs (ручка %разведки=0 default, проба=вопрос владельцу, риск-гард).
19 новых тестов. Финальная регрессия tools-only 2212 GREEN.

МАШИНА 3 (Роутер-наставник) собрана целиком: 3-A контракты / 3-B граф узлов /
3-C машина охвата / 3-D движок роутера / 3-E очередь обучения. Доставка в живую
инфру (STATUS/brain-retro), K4-поправка, live-wiring, перенос волн — follow-up
после Машины 4 (журнал вопросов).
2026-06-04 19:51:45 +03:00
Дмитрий ed89028b1d test(m3-d): router-engine invariants on real graph + plan + questions log
Машина 3-D «Движок роутера» собрана (TDD): router-engine.mjs (detectHighRisk 6.1
детерминированный / validateLevelSkip 6.2 / cheaperOf / validateTrace 5.1 /
groundTrace ОВ-Д2 / buildRouterPrompt+parse+runRouter, llmCall мокается как
router-classifier) + step-pointer.mjs (дерево-указатель волн D6/OQ1, стендово).
35 новых тестов, регрессия tools-only 2193 GREEN. K4-поправка к стене + live-wiring
+ перенос волн в живой main — ОТЛОЖЕНО до Машины 4 (журнал вопросов).
2026-06-04 19:46:09 +03:00
Дмитрий 80ebec9e82 test(m3-c): coverage-machine invariants on 3-A contracts + plan
Машина 3-C «Машина охвата A/B/C/D» собрана (TDD): coverage-machine.mjs —
A граф зависимостей (buildDependencyGraph/topoOrder/findHoles/decompositionGroups),
B реестр нужды↔решения (coverageRegistry: дыры+сироты), C requestsChecklist,
D ограничения как нужды (effectiveNeeds), хребет readinessChecklist (4 галочки + §).
Независимый верификатор охвата (рычаг E §6.3). 19 новых тестов, регрессия 2158 GREEN.
2026-06-04 19:26:21 +03:00
Дмитрий 699da97dc2 test(m3-b): node-graph invariants on real registry + plan
Машина 3-B «Граф узлов из реестра» собрана (TDD): node-graph.mjs поверх
loadRegistry — buildNodeGraph/resolveNode (ОВ-Д2 заземление) + twinsOf
(subcategory) / hintLinksOf (chains) / conflictsOf (явные) + checkGraphFreshness
(3.6). 20 новых тестов, регрессия tools-only 2139 GREEN.
2026-06-04 19:19:00 +03:00
Дмитрий 53db0ee2b3 test(m3-a): contract fixtures (own+external) + 3-A invariants + plan + questions log
Машина 3-A «Контракты скилов» собрана (TDD): skill-contract.mjs (схема C-13/L
+ form validator + normalize/accessors + G4 drift-guard) + skill-contract-registry.mjs
(buildRegistry/loadRegistry). 28 новых тестов, регрессия tools-only 2119 GREEN.
Образцы own (writing-plans) + external (operations:process-doc). Журнал вопросов заведён.
2026-06-04 19:12:47 +03:00
Дмитрий 77d2b9be16 docs(router-mentor): sync 26-point coverage map with M2 build + M3 canon
Сверка 2026-06-04: все 26 назначений «пункт → машина» актуальны и
непротиворечивы (собранное в M2 подтверждено по коду). Внесены 6 пометок
дельты, назначения по машинам не менялись:
- п.15: default-deny уточнён зелёным проходом (finding 9) + узкое Write-
  исключение K4 (Вариант А, реализуется в 3-D)
- п.23: D29 как отдельный сверщик растворён → роль у артефакта + закрытой
  двери (C-7); якорь «сырая просьба» сохранён в P16-e (M3)
- п.24: добавлен контракт K5 (судья судит план как будущее, «проверено» за
  факт не берёт; реальное проверено = рантайм-сентинел M5)
- п.26: routing-tag ещё живой, редизайн escape отложен в M6
- мастер-карта: K5 добавлен в аварийный блок Машины 4 (рядом с K1/K2)
- чертёж M2: условие В синхронизировано с каноном K4 (читаемый .md через
  узкое исключение; печать seal — только каналом одобрения)
2026-06-04 18:59:52 +03:00
Дмитрий 8e342be430 docs(router-mentor-m3): M3 shape + K4 resolution (Variant A) + router discipline (§6) + K5 judge-rule-2 contract
Brainstorm 2026-06-04: K4 artifact-write narrow exemption; 5 sub-plans (3-A..3-E); router-discipline levers A-G; 3-layer=triage+delegate-to-real-nodes; skill-imitation closure (234/236); criterion-not-verified judge rule (K5, loud block for Machine 4). All 6 review findings closed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 18:43:43 +03:00
Дмитрий 8a790e6f14 docs(router-mentor-m2): actualize blueprint with C/L + fresh-eyes revision + cross-machine contracts
- Машина 2 чертёж: вшита C/L-надстройка (два плана, две печати, закрытая дверь, контракт скила), решения A-K
- Fresh-eyes ревизия 2026-06-04: findings 1-5 (закрытая дверь починена: ref+artifact_id+версия+persist+who-seals), 6-7 (D29 поглощена слоем, D33 → два режима), 8 (растворён призмой нет-болтовни), 9 (зелёный проход = нет долговременного/исходящего эффекта + условия А/Б/В), мелочи 10-12
- Аварийный блок межмашинных контрактов K1-K4 (М4/М5/М3) — без них зелёный проход и снятие D29 = дыры
- Мастер-карта: НАДСТРОЙКА C/L, Машина 1 собрана, красные маркеры K1-K4 в разделах М3/М4/М5
- Дизайн-спека: D33 ревизия (нет болтовни → два режима) + баннер секции

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 15:37:26 +03:00
Дмитрий de530a130d docs(router-mentor): M2 review 2026-06-04 — C-1..C-14, L-series, M1 confirmed no-rework
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 12:27:12 +03:00
Дмитрий 1cc5431b23 docs(router-mentor): handoff для новой сессии — решения Машины 2 A/B/заморозка + остаток C-G 2026-06-04 06:02:32 +03:00
Дмитрий 325c1f4984 plan: детальный TDD-чертёж Машины 2 (Замок плана + Верховный хук)
Стоит на фундаменте Машины 1. 9 задач: freeze/seal плана (HMAC), детерминированный
матч действие-шаг (op+object, без LLM), персист, семена D12/D13, default-deny decide,
runGate+fail-CLOSED, авто-аудит дверей P15-b, сверка план-след P25-d, инварианты.
Проектные решения A-G помечены явно для ревью владельцем.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 19:43:56 +03:00
Дмитрий 9309b3590e plan: детальный TDD-чертёж Машины 1 (Фундамент) — журнал S1, подпись расписок, защита-пол
10 задач TDD: receipt-key-config (keychain) + receipt-sign (HMAC) + action-journal
(хеш-цепочка + подпись головы) + усиление runtime-write-deny/path-norm/read-path-deny
+ подписанные askuser-расписки + сквозной self-verify. Заземлён в реальный код.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 19:10:16 +03:00
Дмитрий d612ef2e90 plan: проход правок мастер-карты (счёт несущих, покрытие D/OQ, зависимости, теневой режим) 2026-06-03 18:39:05 +03:00
Дмитрий 9a090bfdac plan: мастер-карта стройки роутер-наставник (7 машин, порядок, покрытие)
Master coordination roadmap из готового дизайна (судья A-I + роутер-наставник +
пред-спека хуков). 7 машин с порядком сборки, инвариантами, точками стыковки и
коверидж-таблицей (26 пунктов хуков + 12 to-build + 7 несущих усилителей).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 17:43:28 +03:00
Дмитрий 6a8c8494a6 docs(router-mentor): 3.4/3.5 закрыты — обучение роутера только по одобрению владельца 2026-06-03 17:10:20 +03:00
Дмитрий 940070685a docs(router-mentor): аудит хуков, 26-пунктная карта, два прохода усилений, чистовой список 2026-06-03 17:02:39 +03:00
Дмитрий 3b2ffecab4 docs(router-mentor): судья пройден полностью A-I + полный граф узлов + риск-фильтр роутера
Дизайн «роутер-наставник» (brainstorm-стадия, не канон):
- Полный граф+каталог узлов 100% роутеру и судье (отменено код-сужение; кэш, обновление на добавление узла в 4 местах)
- Риск-фильтр у роутера (бывш. W1+W2): тройка где-сломается/больно/откатимо, чинит сам, без блока
- Судья B (вход) / C (граница по обратимости) / D (Sonnet на воротах + код-сверка на исполнении)
- Качество плана и скилов = мерило + совет; дисциплина судьи; H (реакция владельца)
- Дыры I-1..I-4 + 3 призрака разобраны (I-2 закрыт, остальное аут/остаток)

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
2026-06-02 12:56:11 +03:00
Дмитрий 97a0490be1 docs(router-discipline): critical review - 7 holes + pre-spec discipline question
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
2026-06-01 19:20:11 +03:00
Дмитрий 9c82cb0218 docs(router-discipline): D29-D36 + router equipment catalog (6 groups)
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
2026-06-01 16:28:09 +03:00
Дмитрий 9689a6e5b8 feat(router): max_tokens 1500->15000 + task_type rasinhron fix + design notes (router-mentor)
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
2026-06-01 11:50:17 +03:00
Дмитрий c55e14b626 feat(brain): surface router-gate v4 signals into episode + factor axes
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
2026-05-31 19:05:20 +03:00
Дмитрий 2f59541d4b docs(observer): add brain data catalog
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
2026-05-31 18:18:47 +03:00
Дмитрий f6421fd61c docs(router-gate-v4): calibration 5 plan - cosmetic-detector git-approval exemption 2026-05-31 11:39:20 +03:00
Дмитрий 417cfcbc37 docs(router-gate-v4): CLAUDE.md v2.44 — item 2b judge live + activated + readonly calibration 2026-05-31 09:04:09 +03:00
Дмитрий dfae9f760b feat(router-gate-v4): live main() for LLM-judge wrappers — flag-gated spend (item 2b) 2026-05-31 08:06:26 +03:00
Дмитрий 9280c48025 docs(router-gate-v4): remaining-holes checklist update + CLAUDE.md insertion draft (item 1b tails) 2026-05-31 07:04:27 +03:00
Дмитрий 84dcf4aab3 docs(router-gate-v4): safe-baseline spec v4 + plan + handoff (item 1b) 2026-05-31 05:58:13 +03:00
Дмитрий c86fdfc9eb docs(router-gate-v4): safe-baseline spec v3 — fold 2nd adversarial review (V2-1/V2-2/V2-4) (item 1b) 2026-05-30 20:44:26 +03:00
Дмитрий 9f84d9ef09 docs(router-gate-v4): safe-baseline spec v2 — close C1/C2/C3/H1 from adversarial review (item 1b) 2026-05-30 20:31:23 +03:00
Дмитрий 6d512f5cf3 docs(router-gate-v4): safe-baseline live-wiring design spec (item 1b) 2026-05-30 20:12:39 +03:00
Дмитрий c805988085 docs(observer): router-gate v4 remaining-holes checklist (Stream H follow-up) 2026-05-30 19:38:51 +03:00
Дмитрий 6ac4b1c1b1 feat(router-gate-v4): safe-baseline-metering wrapper + llm-judge-config gate (Stream H tail) 2026-05-30 19:29:58 +03:00
Дмитрий 4686b36571 docs(region): lead-region-resolution spec v0.5 + 6-session plan 2026-05-30 15:38:54 +03:00
Дмитрий ffd70d6fa5 fix(router-gate-v4): lastTurnEntries skips harness-injected skill bodies (isMeta + sourceToolUseID)
Sibling Claude session 2026-05-30 found that lastTurnEntries treats
harness-injected skill bodies as spurious turn boundaries, breaking both
enforce-memory-coverage (can't find user's coverage line) AND
enforce-normative-content-rules::detectLegitSkillActive (can't find the
Skill tool_use that lives in the assistant message BEFORE the body).

Refinement applied here: this session inspected 29 isMeta:true entries
across the live transcript (8f4ba767-...jsonl) via a debug helper and
found isMeta:true is ALSO used for "Continue from where you left off"
auto-resume, Stop hook feedback strings, and <local-command-caveat>
wrappers — those are real user-equivalent boundaries that must remain
visible. Sibling's blanket "skip isMeta" proposal would have broken them.

Discriminator: skip ONLY when isMeta === true AND typeof sourceToolUseID
=== 'string' (tool-spawned content). Skill bodies have the linking field;
the other isMeta sources do not. The sourceToolUseID field is harness-
controlled and not writable by controller from inside a tool call —
cannot be spoofed.

Behaviour after fix:
  * Skill body injection → skipped → walk continues back to find user's
    real prompt (with coverage line).
  * The assistant message containing the Skill tool_use is now inside the
    turn → detectLegitSkillActive finds it → normative writes pass when
    invoked under an active claude-md-management skill.
  * "Continue from where you left off." → still treated as turn boundary.
  * Stop hook feedback strings → still treated as turn boundary.

TDD:
  * 3 new tests in tools/enforce-hook-helpers.test.mjs under the
    "lastTurnEntries / lastUserPromptText / lastAssistantText / turnToolUses"
    describe block:
      - lastTurnEntries skips skill body injections (isMeta + sourceToolUseID)
      - lastTurnEntries does NOT skip "Continue from where you left off"
        (isMeta but no sourceToolUseID)
      - turnToolUses includes Skill tool_use spawned in same turn as the
        injected skill body
  * 2/3 RED→GREEN (the "Continue" negative test passed on baseline already
    since its string content satisfies the existing string-content branch).

Scope:
  * Fixes 2 of the 5 structural quirks documented in the Stream H
    completion log (enforce-memory-coverage gap, enforce-normative-
    content-rules detectLegitSkillActive gap).
  * Does NOT fix: enforce-read-path-deny LEGIT_SKILLS exemption gap
    (separate hook, no lastTurnEntries dependency); TDD-gate cross-actor
    blindness (different mechanism — actor session boundaries);
    detectFullTestRun regex narrowness (command-pattern matching).

Regression: vitest tools 1788/1788 GREEN (was 1785; +3 new tests).

Plan: docs/superpowers/plans/2026-05-30-lastturnentries-skill-body-skip.md
2026-05-30 14:16:12 +03:00
Дмитрий 612b3a3382 docs(router-gate-v4): Stream H final — Layer 4 LLM-judge verified live via integration smoke
Closes Stream H completely. Appends a "Final activation — Layer 4 verified
live" section to the completion log documenting:

- User completed Action 2 (.claude/settings.json batch replacement) via
  .scratch/activate-stream-h.ps1 on 2026-05-30 ~12:38 МСК. Backup at
  .claude/settings.json.backup-20260530-123741. 7 new hook entries appended.

- User completed Action 1 (keytar install + ROUTER_LLM_KEY in user env)
  with --legacy-peer-deps to resolve the histoire/vite peer conflict
  (memory quirk 74). ROUTER_LLM_KEY (35 chars) exported user-level. Base
  URL left at Anthropic default — no ProxyAPI middleware.

- Live verification via .scratch/verify-layer-4.ps1 → both opt-in
  integration tests under ROUTER_LLM_LIVE_TEST=1 PASS on real API calls:
    * single Sonnet judge returns a parseable YES/NO — 1950 ms
    * 3-judge consensus reaches all three models with real (non-null)
      verdicts — 2021 ms (Sonnet 4.6 + Haiku 4.5 + Opus 4.7 each returned
      a real YES/NO; no fallback to doubt)
  Total duration 4.54 s. 4 real API calls. Cost ~$0.01-0.05.

Layer 4 LLM-judge now active on live traffic. Router-gate v4 reaches the
master-plan target ~0.5-0.8% bypass rate. Architectural floor ~0.5%
irreducible per the 7 fundamental limits documented in memory
`feedback_asymptote_floor_irreducible.md`.

Carry-over: PowerShell 5.1 mojibake on em-dashes inside .scratch/ helper
scripts is cosmetic only; affects the final summary banner, not the
verification itself. Non-blocking.

Docs-only change; covered by docs-only short-circuit in
enforce-verify-before-push (§5 п.13 CLAUDE.md).

Stream H closed. No further follow-ups required.
2026-05-30 13:30:34 +03:00
Дмитрий 0ff2053ae0 docs(router-gate-v4): Stream H Task 11 — completion log with deferred batch actions for user
Closes Stream H. Adds the canonical completion artifact at
docs/observer/notes/2026-05-30-stream-h-completion.md documenting:

- All 10 commits landed in this Stream H push (2a3b5b4d..d75c8922 main).
- Per-task summary linking each H<N> to its commit SHA + 1-line rationale.
- Two manual actions the user needs to perform outside Claude to activate
  the new hooks: (1) npm install keytar + store ROUTER_LLM_KEY in keychain,
  (2) append 7 hook entries to .claude/settings.json (verbatim JSON
  provided). Both are blocked from in-Claude execution by structural
  router-gate hooks (read-path-deny on settings.json without LEGIT_SKILLS
  exemption; npm install in router-gate hard-blacklist).
- 5 defects/quirks discovered during execution with follow-up direction
  (read-path-deny skill exemption gap, TDD-gate cross-actor blindness,
  detectFullTestRun regex narrowness, findOverride stub, subagent vitest
  output misread).
- 5 intentional deferrals listed (H10 worktree bootstrap; full LLM-judge
  activation pending Action 1; Smoke 8 live test pending Action 2; no
  normative bump because Stream H is infrastructure not Tooling-canon;
  worktree cleanup conditional on local presence).
- Cumulative state after Stream H: 1776/1776 vitest tools GREEN, 6 hooks
  ready to activate, 2 brain-retro analyzer extensions live, recovery
  runbook published with 7 fabrication patterns.

Docs-only change; covered by docs-only short-circuit in
enforce-verify-before-push (§5 п.13 CLAUDE.md).

Stream H Task 11 of 11 — final consolidation.
2026-05-30 11:46:32 +03:00