diff --git a/docs/TICKETS.md b/docs/TICKETS.md index 0187c4d..5465a0e 100644 --- a/docs/TICKETS.md +++ b/docs/TICKETS.md @@ -100,7 +100,7 @@ Newest first. Update on every open/close. | #000040 | Phase 5 resolver fix — phrase + content-token cascade (Hilbert terminology mismatch surfaced) | closed · cascade landed 2026-05-09; lift blocked by 1902-vs-modern vocab; follow-up #000042 | 2026-05-09 | — | | #000039 | Optional `sqlite-vec` retrieval backend (A/B vs FTS5, hybrid not replacement) | open · awaiting go/no-go (doc-only Phase 0) | 2026-05-09 | — | | #000038 | Phase 4 content acquisition — proprietary textbook license decisions for warrant coverage | closed · obviated 2026-05-10 by alias-substitution sprint under #000031 (74 rows in #000041 + 13 rows in #000042); 92/92 records now resolve. Residue (multilingual PD, Hilbert-Ackermann OCR, Knuth permission, personal-copy path B) preserved as design log §8 | 2026-05-09 | — | -| #000037 | Prometheus-Σ recursive falsification controller (bicameral substrate) | in progress · Phases 0 + 1 + 1.b + 2 landed 2026-05-10; **§12 Trigger 2 fired** (divergence variance ratio 0.575 with N=37); dry-run simulator + 5 design findings + 40-fixture harvest into 5F battery in `falsification-harvested-v1.jsonl`; Phase 3 sleep-sweep scheduler not landed | 2026-05-09 | — | +| #000037 | Prometheus-Σ recursive falsification controller (bicameral substrate) | in progress · Phases 0 + 1 + 1.b + 1.c + 2 landed 2026-05-10; **§12 Trigger 2 fired** (divergence variance 0.575 / N=37); §22 Findings 2 + 3 RESOLVED (kernel/llm cost split + sweep_weights §15.4 + per-mode τ_qa); `controller_events` carries 4 event kinds (decision · difficulty · budget_allocation · falsification_proposal) feeding `arborist controller-events` inspector + live-harvest third bucket in `bench/scripts/harvest_falsification_proposals.py`; Phase 3 sleep-sweep scheduler tracked under #000045 (gating ticket) | 2026-05-09 | — | | #000036 | T3 per-window covert-channel budget bound | in progress · Phase 1 (formal derivation + calculator) landed 2026-05-10; pre-review polish `8916bf3`; **math review in flight with dav1d** (forwarded 2026-05-10 — Tier 2 bundle) | 2026-05-09 | — | | #000035 | PRG choice for φ_PRG (HMAC-SHA-512 expansion) | in progress · Phase 1 landed 2026-05-10; v7 §9.10 amendment awaits maintainer review | 2026-05-09 | — | | #000034 | Hessian alignment under φ_linear | in progress · Phase 1a landed 2026-05-10 (synthetic-ablation probe + KAT fixture); Phase 1b parks for v7 ramp-up | 2026-05-09 | — | diff --git a/docs/tickets/ticket-000037-prometheus-sigma-recursive-falsification-controller.md b/docs/tickets/ticket-000037-prometheus-sigma-recursive-falsification-controller.md index b533644..042df0b 100644 --- a/docs/tickets/ticket-000037-prometheus-sigma-recursive-falsification-controller.md +++ b/docs/tickets/ticket-000037-prometheus-sigma-recursive-falsification-controller.md @@ -1,6 +1,6 @@ # Ticket #000037 — Prometheus-Σ recursive falsification controller (bicameral substrate) -**Status:** in progress · Phase 0 doc landed; Phase 1 (controller `arborist/substrate/prometheus.py`) landed 2026-05-10; Phase 2 (sibling `controller_events` table + advisory writes) landed 2026-05-10; Phase 1.b (§14 row 4 + §13 step 11 + weight-tunable gates) landed 2026-05-10; dry-run simulator surfacing five design findings in §22; **§12 Trigger 2 (divergence variance) measurably FIRED 2026-05-10** — ratio 0.575 > 0.5 with N=37 samples; controller is now backed by an empirical Phase-1-gate satisfaction, not just speculative implementation. Phase 3 sleep-sweep scheduler not landed. Closed-loop signal: 40 corpus-derived 5F fixtures harvested from Phase 1 proposals (`bench/fixtures/5f/falsification-harvested-v1.jsonl`). +**Status:** in progress · Phase 0 + Phases 1 / 1.b / 1.c / 2 landed 2026-05-10; sibling `controller_events` table now carries 4 event kinds (decision · difficulty · budget_allocation · falsification_proposal); QA-runner hot path emits one advisory triple per cycle (`_emit_qa_controller_advisory`); §22 dry-run findings 2 + 3 RESOLVED via `kernel_cost`/`llm_cost` split + `sweep_weights()` profile (§15.4) + per-mode τ_qa; **§12 Trigger 2 measurably FIRED** (divergence variance 0.575 > 0.5, N=37); operator inspector `arborist controller-events` reads the live stream; Phase 2 falsification proposals now persist to `controller_events.body_blob` and feed the live-harvest pipeline (third bucket alongside HYBRID + UNGROUNDED in `bench/scripts/harvest_falsification_proposals.py`). Phase 3 sleep-sweep scheduler deliberately not landed — gated behind #000045 retrigger criteria. Closed-loop signal: 40 corpus-derived 5F fixtures harvested from Phase 1 proposals (`bench/fixtures/5f/falsification-harvested-v1.jsonl`); the live-harvest bucket grows once Phase 3 sweep emissions populate it. **Opened:** 2026-05-09 **Scope:** Spec a named control law that unifies the recursive- falsification machinery already shipped across #000012 (ForkScore), @@ -1136,28 +1136,54 @@ the decision to the Phase 2 ticket. - **Phase 0** (this ticket): landed; David review (`response_ticket- 000037-...txt`, 2026-05-10 06:37 Asia/Kuala_Lumpur) applied per §21. - **Phase 1** (pure-function controller): landed in `f625cac` — - `arborist/substrate/prometheus.py` (893 LOC) implementing §13 + `arborist/substrate/prometheus.py` (944 LOC) implementing §13 steps 1-9 + 12, §5 numerically-stable softmax fork-selection, §6 eight-class hard-veto order, §7 Kelly-bounded allocation + four safety guards, §7.1 EMA-smoothed difficulty update, §14 exception- - matrix dispatch, §15 three weight profiles. Test surface: - `tests/test_prometheus.py` (36 tests including the §16.2 - named-contract pins). + matrix dispatch, §15 three weight profiles (later four — see + Phase 1.c). Test surface: `tests/test_prometheus.py` (42 tests + including the §16.2 named-contract pins). - **Phase 1.b** (gap-close pass): landed in `f9f5ae4` — §14 row 4 Hermes-saturation guard (`utilization >= budget` → DEFERRED + HERMES_SATURATED advisory event), §13 step 11 falsification-fixture proposal emission, §15 entropy + memory gates moved to weight-tunable `ControllerWeights` fields, veto-class cascade hardening (ESCALATE > QUARANTINE > REJECT priority pins). -- **Phase 2** (advisory audit writes): landed in `a786d6d` — - `arborist/substrate/prometheus_audit.py` (200 LOC) + 54 LOC store - integration. `controller_events` sibling table with three event - kinds (`controller_decision`, `controller_difficulty`, - `controller_budget_allocation`), idempotent on - `(event_kind, body_hash)` UNIQUE constraint. **Does not enter - `audit_events.event_hash` preimage** — audit chain semantics - unaffected by advisory writes. Test surface: - `tests/test_prometheus_audit.py` (14 tests). +- **Phase 1.c** (cost-class split + sweep profile): landed in + `4b85a0a` — addresses §22 Findings 2 + 3 at the controller + substrate. `ControllerBranch` now exposes `kernel_cost` + + `llm_cost` fields with a back-compat `effective_cost` property + (legacy `capital_cost` callers continue to work; `_utility()` + reads `effective_cost` so the two cost shapes produce + byte-identical utility values when only one is populated). New + `sweep_weights()` profile (γ_5f=1.5, λ_capital_cost=0.25, + ν_witness_divergence=0.5) registered in `WEIGHT_PROFILES["sweep"]` + and documented as §15.4. Dry-run swap to `sweep_weights()` + + per-mode τ_qa landed in `1f882df` + `6734f80`; §22 Findings 2 + 3 + marked RESOLVED. +- **Phase 2** (advisory audit writes): landed in `a786d6d` + + `43380b1` (QA-runner wiring) + `cc72784` (CLI inspector) + + `70c2184` (4th event kind + live-harvest pipeline). Sibling + `controller_events` table now carries **four event kinds**: + `controller_decision`, `controller_difficulty`, + `controller_budget_allocation`, `controller_falsification_proposal`. + Idempotent on `(event_kind, body_hash)` UNIQUE constraint. + **Does not enter `audit_events.event_hash` preimage** — audit + chain semantics unaffected by advisory writes. + `arborist/substrate/prometheus_audit.py` (239 LOC). + `arborist.qa.runner.ask()` emits one decision/difficulty/ + allocation triple per QA cycle via `_emit_qa_controller_advisory` + (lazy-imported, try/except-wrapped — never blocks QA hot path). + Live operator inspector: `arborist controller-events + [--limit N] [--kind K] [--organism-prefix P] [--since-seconds S] + [--body] [--json]` walks every shard, surfaces the stream as + terminal table or JSON. Live-harvest pipeline: persisted + `controller_falsification_proposal` rows feed a third bucket + (CONTROLLER_PROPOSAL) in + `bench/scripts/harvest_falsification_proposals.py`, joined back + to providence_cache by 16-char cache_key prefix; bucket fills as + Phase 3 sweep emissions accumulate. Test surface: + `tests/test_prometheus_audit.py` (25 tests). - **§12 Trigger 2 fired 2026-05-10**: divergence variance ratio 0.575 > 0.5 with N=37 samples — Phase 1 opening is now backed by empirical gate satisfaction, not speculative implementation.