Commit Graph

8 Commits

Author SHA1 Message Date
Дмитрий 3ef853695b feat(m7-phase5): decide §6 — ЗАКОН требует escape владельца, КАРТА — claude-md-management (build-loop SE-D)
decide переорганизован: escape-allow → контент-слои (recovery/suspicious/fake-rule, defense
для всей нормативки, сохраняют reason) → §6 classification (LAW non-escaped → block «требует
escape владельца, скил недостаточен») → CARD-поток (skillActive + judge + H3-degradation).
ЗАКОН (Pravila/PSR/Tooling + ad-hoc дисциплинарный исходник + контент-правка правил) больше НЕ
проходит по одному claude-md-management-скилу — только escape. КАРТА (CLAUDE.md/memory) —
прежний скил-канал. build-loop sealedPlanCoversEdit (Ф8 live через plan-lock). Tooling-тест
обновлён под §6; +4 §6-теста. 48/48 GREEN.
2026-06-08 12:49:01 +03:00
Дмитрий 2d2f3fc591 feat(m7-phase5): classifyNormative — детерминированный КАРТА/ЗАКОН + build-loop SE-D (§6)
Новые чистые экспорты в enforce-normative-content-rules: isDisciplineSourcePath (исходники
машин М1–М6 по префиксам enforce-/judge-/floor-/escape-grant/action-journal/receipt-/
shell-content-rules/plan-lock/classify-destructive/path-normalization), contentTouchesLaw
(контент правит правила/дисциплину), classifyNormative → {kind:'CARD'|'LAW'}. КАРТА =
CLAUDE.md/MEMORY.md/memory; ЗАКОН = Pravila/PSR/Tooling + дисциплинарный исходник ВНЕ плана +
контент-правка правил; build-loop: дисциплинарный исходник ПОД sealed-планом → КАРТА; сомнение
→ ЗАКОН. Тотален (null guard). Интеграция в decide — Task 2. 44/44 GREEN.
2026-06-08 12:46:46 +03:00
Дмитрий b6fe66e34c feat(m7-phase2): normative-content-rules чтит escape — §6 канал правки ЗАКОНА (правило 7в) 2026-06-08 10:25:00 +03:00
Дмитрий 7e61b9c367 feat(m5): 7.2 normative-content детерм-only + fail-CLOSE (Пакет 7, H3, Блок 4.2)
Закрыта дыра H3 (LLM fail-open / wrapper fail-quiet как escape):
- isProtectiveNormativePath: защитное подмножество CLAUDE.md/память/Pravila.
- decide +protectiveSubset: деградация судьи, который БЫЛ активен (budget_exhausted —
  вектор обхода: исчерпать бюджет чтобы пройти), → fail-CLOSE для защитного подмножества.
  Деградация no_api_key (судья выключен — дефолт) → детерм-only флор (fail-open), БЕЗ
  over-block легитимного claude-md-management в обычном режиме (reason-based различение).
- main() catch → fail-CLOSE (block) вместо fail-quiet; передаёт protectiveSubset.
- «Память = совет, НИКОГДА не разрешение» — детерм-слои (recovery/fake-rule/suspicious)
  держат всегда, до судьи.

Backward-compat: существующий fail-open-degraded тест (без protectiveSubset) сохранён.
+9 тестов. enforce-normative-content-rules 25/25.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 15:13:02 +03:00
Дмитрий 96157a8dcf feat(router-gate): normative-content PreToolUse hook wiring (stream D task 12)
Recovered from a subagent crash (socket error mid-task) that left literal-newline
corruption in two .join() string literals; repaired and committed by controller.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-29 20:48:51 +03:00
Дмитрий 8417d83d85 feat(router-gate): normative-content decide() + multi-judge layer 4 (stream D task 11)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 20:37:13 +03:00
Дмитрий 8f9ebe40ab feat(router-gate): normative-content deterministic layers (stream D task 10)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 20:22:13 +03:00
Дмитрий e47b618819 feat(router-gate): normative-content path matcher + content extraction (stream D task 9)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 20:12:58 +03:00