Three threads landed in a single commit because they share the same substrate (the #000037 §12 trigger probe shipped inc422216): A — code-side stale-map sweep (arborist/qa/repair.py) ===================================================== Walked inline TODO/FIXME/XXX markers across arborist/ + tests/. Five hits: two false-positives (\\uXXXX in escape pattern docs), one genuine deferral (raw_html cache in async_web_fetcher), and **two stale TODOs in arborist/qa/repair.py** referring to "re-prompt feedback path is future work" — even though `reprompt_repair` is fully implemented (lines 140+ at the time of this commit), wired through CLI `--repair-reprompts N` flag (cli.py:4574), and gated by `policy["repair_max_reprompts"]`. Refreshed the docstring header and the in-body comment to point at the actual function. Same drift pattern as today's earlier ticket sweep (e84f453): implementation lands, the TODO doesn't get refreshed, future readers re-implement what's already there. B — N-power follow-up to the §12 trigger probe ============================================== c422216's first probe run reported trigger 2 (divergence variance) at N=16, σ=0.5, ratio=0.8 — both threshold conditions would fire if N reached the 30-sample N_min. To validate that the variance signal holds at N≥30 (rather than vanishing on a wider sample), drove the canonical-witness path 20 additional times via a new bench/qa_questions_canonical_witness_npower.txt fixture (10 arithmetic@v1 + 10 logic-kernel@v1 questions; all canonicalize-then-LLM-witness without errors). Result at N=37: trigger 2 fires. Ratio 0.575 > 0.5, abs σ 0.435 > 0.10. Variance signal is real at the floor. Captured in bench/results/prometheus-sigma-triggers-2026-05-10-npower.md with a loud caveat at the top: this is N-power validation, NOT a measure of real workload pressure. The §12 phase-1 go/no-go decision should still come from natural workload N or operator-stated need. The prior baseline (prometheus-sigma-triggers-2026-05-10.md) stays in place as the workload-state-at-time-of-ticket-c422216 record; this new -npower.md report is the statistical-power follow-up. C — ForkScore Phase 1c proposal (#000012) ========================================= #000037 §12 Trigger 1 ("ForkScore receives ≥4 candidate branches per checkpoint") gates on multi-branch persistence — but #000012 Phase 1a (landed 2026-05-08) is single-validator scoring of one fork at a time, and Phase 1b (still open) is the consensus paper. Neither persists branch-sets. So Trigger 1 structurally cannot fire today, which the probe correctly reports as "no fork_score branch-set table found". Added Phase 1c to #000012 as a doc-only proposal (no code in this commit): - New `fork_score_branches` table (sibling to capital_ledger; does NOT enter audit_events.event_hash preimage). - Optional `--branch-set <ID>` flag on `arborist v8 score`. - One read API: `branch_set_density(conn, branch_set_id)`. - #000037 probe wires through the new function once it lands. Not opened as its own ticket because operator pressure for it hasn't surfaced naturally — gates on either #000012 Phase 1b landing OR #000030 algebra/calc kernel expansion producing competing-kernel branches an operator wants to compare. Captured here so a future shift doesn't re-discover the gap. Hygiene ======= - make test → 1623 passed, 45 skipped - make chain-check-shards → 0 across all 7 shards - fox's in-flight #000037 ticket modifications left untouched
51 lines
1.7 KiB
Text
51 lines
1.7 KiB
Text
# Canonical-witness N-power fixture (2026-05-10).
|
||
#
|
||
# Purpose: bring the providence_canonical_witness sample count above
|
||
# the §12 Trigger 2 N_min=30 floor so the divergence-variance trigger
|
||
# can decisively fire-or-not-fire on real data. The first probe run
|
||
# (bench/results/prometheus-sigma-triggers-2026-05-10.md) showed:
|
||
#
|
||
# N=16, mean=0.625, σ=0.5, ratio=0.8
|
||
#
|
||
# Both the ratio (>0.5) and the absolute (>0.10) thresholds would
|
||
# already fire if N reached the 30-sample floor. This fixture
|
||
# generates 20 additional canonical-shape questions so the next
|
||
# probe run lands at N≥36 with the same code path.
|
||
#
|
||
# IMPORTANT: this is an N-power experiment, NOT a measure of real
|
||
# workload pressure. The §12 trigger is intended to fire when
|
||
# canonical-shape questions naturally accumulate at the 30+ scale on
|
||
# a live deployment. Filling the sample buffer manually proves the
|
||
# variance signal is statistically meaningful at N=30; it does not
|
||
# prove that fox's real workload has reached that pressure point.
|
||
# The probe report MUST tag this distinction.
|
||
#
|
||
# Question selection: pure-arithmetic and pure-propositional shapes
|
||
# only. The canonical projection sniff (query.py:3605) drops anything
|
||
# with question marks, lowercase words, or mixed shape — these inputs
|
||
# bypass that filter cleanly. Each one fires arithmetic@v1 OR
|
||
# logic-kernel@v1 and produces a witness audit event.
|
||
|
||
# === arithmetic@v1 (10 questions) ===
|
||
0.1 + 0.2
|
||
1/3 + 1/6
|
||
2 ** 10
|
||
3 * 7 + 2
|
||
(5 + 3) * 4
|
||
100 / 7
|
||
2.5 + 2.5
|
||
17 - 8
|
||
0.333 + 0.667
|
||
42 + 7 - 1
|
||
|
||
# === logic-kernel@v1 (10 questions) ===
|
||
A AND B
|
||
A OR NOT B
|
||
A IMPL B
|
||
NOT (A AND B)
|
||
(A AND B) OR C
|
||
A XOR B
|
||
A IFF B
|
||
NOT NOT A
|
||
(A IMPL B) AND (B IMPL A)
|
||
A AND (B OR C)
|