docs/#000037: status sync — Phase 1.c + 4th event kind + inspector + live-harvest

Per fox's just-codified §-status drift discipline (#000044 commit
4e41c73), close the doc loop on this evening's commits before
moving on. Three surfaces synced to truth:

(1) Header status line — was "Phases 0 + 1 + 1.b + 2 landed",
silent on Phase 1.c, the 4th event kind, the inspector, the live-
harvest pipeline, the §22 Findings 2 + 3 resolution, and #000045.
Now mentions all of them in one tight paragraph.

(2) §20 Status detail rows — Phase 1 LOC count refreshed
893 → 944 + test count 36 → 42; new Phase 1.c bullet (commit
4b85a0a) describes the kernel_cost/llm_cost split + effective_cost
back-compat property + sweep_weights() profile + §15.4
documentation; Phase 2 row collapsed multi-commit history
(a786d6d + 43380b1 + cc72784 + 70c2184) into a single bullet
covering all four event kinds, the QA-runner wiring, the live
inspector subcommand, and the live-harvest pipeline; LOC 200 → 239,
tests 14 → 25.

(3) TICKETS.md row 103 — mirror of (1) at index granularity. Now
includes Phase 1.c, the 4 event kinds, both downstream consumers
(inspector + harvest), and the #000045 gating-ticket pointer.

No code changes — pure status-drift cleanup. 91/91 tests still
green (test_directives + test_prometheus + test_prometheus_audit).
This commit is contained in:
russell@unturf.com 2026-05-10 20:01:44 -04:00
parent 21c634b422
commit 7676af8fb1
No known key found for this signature in database
2 changed files with 41 additions and 15 deletions

View file

@ -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 | — |

View file

@ -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.