Commit graph

2208 commits

Author SHA1 Message Date
Shay
c98f1e07b2 feat(deduction-serve): Phase 3 — earned SERVE license via reliability gate (ADR-0256)
Deduction serving stops being a bare flag and becomes an EARNED capability
governed by the ADR-0175 reliability gate over the ADR-0199 learning arena
-- the arena's second concrete instance (GSM8K math is the first) and the
reliability substrate's first non-estimation serving consumer, a concrete
dent in that zone's standing 'designed, not wired' critique.

Non-circular thesis: the ROBDD engine is sound+complete (never wrong on the
problem it's handed), so the license does NOT certify it. It certifies the
full pipeline (reader -> projector -> engine) per argument shape -- the
FALLIBLE part is the template reader, which can misparse an argument and
hand the engine the wrong problem. The arena catches that as a 'wrong' by
comparing the pipeline's committed outcome to by-construction gold.

New: generate/proof_chain/shape.py (4 exhaustive structural shape-bands, the
capability axis, shared by arena + serving), evals/deduction_serve/practice/
(the deduction arena instance: deterministic synthetic corpus, by-construction
gold independent of the reader per ADR-0199 L-2, cross-checked against the
INDEPENDENT truth-table oracle before sealing), chat/data/deduction_serve_
ledger.json (committed SHA-sealed ledger, 4 bands x 720 correct/0 wrong),
chat/deduction_serve_license.py (tamper-evident serving reader, mirrors
estimation_license.py), tests/test_deduction_serve_license.py (13 tests),
docs/adr/ADR-0256 (+ resolves the ADR-0206 numbering collision in doc form).

Changed: chat/deduction_surface.py (composer consults the license: earned
band -> authoritative Phase-1 surface; unearned/stripped ledger -> same sound
answer served DISCLOSED/hedged -- authority now rests on committed evidence,
not a boolean), core/config.py (flag docstring: enables an EARNED path),
core/cli_test.py (deductive suite runs the license test).

All four structural bands earn SERVE at reliability 0.99087 (>= theta_SERVE
0.99) with wrong=0, so Phase-1 behavior is preserved byte-for-byte; the
gate's teeth are proven by injecting an empty ledger (the same sound answer
degrades to a disclosed hedge). Did NOT reuse the ADR-0206 govern_response
bridge (its STRICT/APPROXIMATE 'widen-past-strict' semantics are the opposite
shape from deduction's always-sound answer); did NOT rewrite report.json's
stale adr field (SHA-pinned bytes, documented in ADR-0256 s2a instead).

[Verification]: smoke 180 passed; cognition 122 passed/1 skipped;
core test --suite deductive 38 passed; architectural_invariants 75 passed;
practice runner 4 bands all SERVE wrong=0.
2026-07-23 12:59:50 -07:00
Shay
6a31559921 feat(deduction-serve): Phase 2 — end-to-end eval lane, SHA-pinned wrong=0 gate
New evals/deduction_serve/ lane scores the PRODUCTION serving decider
(the exact comprehend -> to_deductive_logic -> evaluate_entailment_with_trace
pipeline chat/deduction_surface.py runs) end-to-end from raw text --
distinct from evals/deductive_logic (bare engine vs formula strings) and
evals/comprehension/propositional_runner.py (reader fidelity vs the
independent oracle, not the production engine). This is the only lane
proving the capability core chat actually serves.

27 hand-authored cases (gold computed by independent logical reasoning,
not copied from a first engine run), 4 classes: entailed/refuted/unknown/
declined. 27/27 correct, wrong=0. Wired into core test --suite deductive
(tests/test_deduction_serve_lane.py) and SHA-pinned in
scripts/verify_lane_shas.py (deduction_serve_v1).

Honesty check during authoring: a case intended as 'entailed'
(contraposition, 'Therefore if not q then not p') actually declined --
tracing why found a genuine reader-grammar boundary (negation cannot
nest inside an if/then clause; generate/meaning_graph/reader.py's _chunk
rejects it). Reclassified to declined/out_of_band_nested_negation
(documented in contract.md) rather than forcing an artificial pass, and
added a replacement entailed case (three-hop chain) to keep coverage.

Out-of-scope finding (documented, not fixed here): running
scripts/verify_lane_shas.py --update to compute this lane's pin also
re-executed every OTHER registered lane and surfaced two pre-existing,
unrelated problems on main -- miner_loop_closure/curriculum_loop_closure/
demo_composition regenerate non-deterministic content IDs (their
committed pins don't reproduce even on a clean checkout), and public_demo
errors outright (matches the known env-timeout flake in project memory).
Reverted all four lanes' results/*.json and PINNED_SHAS entries to their
original committed values -- this PR's only PINNED_SHAS change is the new
deduction_serve_v1 entry.

[Verification]: smoke 180 passed; cognition 122 passed/1 skipped;
core test --suite deductive 25 passed; evals.deduction_serve.runner
27/27 wrong=0; pinned SHA independently re-verified against the
committed report.json bytes.
2026-07-23 12:36:59 -07:00
Shay
82df3c08ae feat(deduction-serve): Phase 1 — deduction turn spine (flag-gated, propositional Band v1)
Wires the verified ROBDD entailment engine (generate/proof_chain,
716/716 wrong=0) into core chat serving. A propositional argument
('P1. P2. ... Therefore C.') is now comprehended, projected, and
decided end-to-end -- the first real working basic-logic workflow:
user question -> CORE decides -> articulated deterministic answer.

New: chat/deduction_surface.py (DEDUCTION composer, sibling to the
existing oov/narrative/example composer pattern), generate/proof_chain/
render.py (deterministic EntailmentTrace -> surface templates, no LLM),
tests/test_deduction_surface.py (15 tests incl. full propositional gold
corpus decided end-to-end across a multi-turn session, wrong=0).

Changed: core/config.py (deduction_serving_enabled flag, default off),
generate/intent.py (IntentTag.DEDUCTION, observability-only -- the core
classify_intent rule table is untouched so flag-off stays byte-identical),
chat/runtime.py (one flag-gated block in the existing pack/teaching/
partial/oov dispatcher).

Design notes (full detail in docs/research/deduction-serve-arc-phase1-
turn-spine-2026-07-23.md): the deduction check runs BEFORE generic intent
classification (never touches classify_intent's rule table) and BEFORE
the empty-vault gate (a live multi-turn probe caught turn-12 silently
falling through once the vault warmed -- pack/teaching/oov are cold-start-
only by design, deduction serving isn't). grounding_source='deduction' is
NOT registered in the closed, Workbench-coupled GroundingSource Literal
(cross-stack TS contract, inert for this arc's core-chat-only consumer,
documented as a deferred follow-up). Band v1 stays propositional-only --
categorical/syllogism arguments commit but honestly decline as
out-of-band; evals.syllogism.oracle is never imported (INV-25 intact).

[Verification]: smoke 180 passed; cognition 122 passed/1 skipped;
test_deduction_surface.py 15 passed; test_dispatch_trace.py +
test_oov_surface.py 26 passed; test_intent*.py 145 passed.
2026-07-23 12:14:28 -07:00
6a54d27a78 Merge pull request 'feat(telemetry): discovery-yield-per-served-turn baseline (ADR-0255)' (#104) from feat/discovery-yield-baseline-telemetry into main 2026-07-23 15:00:33 +00:00
Shay
de6e392953 feat(telemetry): discovery-yield-per-served-turn baseline (ADR-0255)
2026-07-23 directive: instrument candidates-proposed-per-served-turn on
clean, post-reset traffic. Adds an additive-optional turn_count_baseline
manifest field (engine_state) stamping the turn_count at the last clean
reset of the discovery-candidate ledger, a pure compute_discovery_yield
function (teaching/discovery_yield.py), and a read-only `core teaching
discovery-yield` CLI surface. Fails closed (returns None / exits 1) when
no baseline has been stamped rather than fabricating a denominator.

scripts/ops/stamp_discovery_yield_baseline_20260723.py stamps the T11
reset epoch into the live store, mirroring reset_candidate_corpus_t11's
atomic generation-dir pattern. Dry-run verified against a throwaway copy
of the live store's gen-21703; not yet executed against the real store
(see PR body).
2026-07-23 07:27:00 -07:00
da3447e95c Merge pull request 'feat(coherence): grounded-open hedge arm — serve pack surfaces honestly hedged instead of over-refusing (T13 dec. 2, ADR-0254)' (#103) from feat/grounded-open-geometry-hedge-arm into main 2026-07-23 13:56:49 +00:00
Shay
bc838bd1de feat(coherence): grounded-open hedge arm — serve pack surfaces honestly hedged instead of over-refusing (ADR-0254)
Weekly-audit 2026-07-22, T13 decision (2) ruling (Shay). The Shadow Coherence
Gate hard-refused open-geometry surfaces even when the surface was pack-grounded
and the openness was a geometric-coherence residual the pack never claimed to
certify — a false refusal (the warmed "What is doubt?" case:
"To doubt means to think maybe not. pack-grounded (en_core_meta_v1)." was
replaced by "I cannot certify an answer: ... contract is open (goldtether_residual).").

Fix the reading, not the question: route open-geometry-but-pack-grounded
surfaces to a hedge arm (authoritative=False), discriminated purely by grounding
provenance (structural), never by question type. The query-type classifier
bypass was rejected as a fail-open cue-table (ADR-0252 / INV-34).

- core/cognition/surface_resolution.py: the decision lives INSIDE the gate.
  Predicate: pack_grounded (grounding_provenance in {pack, teaching}) AND every
  open token in {versor_condition, goldtether_residual}. The ¬hazard clause is
  enforced structurally by that residual allowlist — any unrecognized open token
  (where a genuine safety/harm/imperative hazard lands), non-pack grounding, or a
  None assessment falls through to the unchanged fail-closed refusal. New
  authority tag grounded_open_hedge; hedged=True; walk/compose folds suppressed.
- core/cognition/pipeline.py: thread grounding provenance into resolve_surface
  (read once at the gate seam, reused for the OOV telemetry).
- docs/adr/ADR-0254: the serving-physics decision + fail-closed argument.
- tests/test_grounded_open_hedge_arm.py: RED->GREEN unit suite + real-data
  warmed-session integration.

Genuine safety/harm hazards are unaffected: they ride separate axes
(SafetyVerdict refusal, logos-morph override) that supersede this surface.

[Verification]: hedge suite 15 passed; warmed_session lane pin + architectural
invariants 85 passed (155.8s); GSM8K wrong=0 preserved (16 passed, 3 skipped);
smoke 180 passed (131.65s), exit 0. worktree core-wt-hedge @ base 19847f90.
2026-07-23 01:27:17 -07:00
19847f9007 Merge pull request 'chore(ci): local pre-push gate (smoke + warmed_session pin) + T11 candidate-corpus reset record' (#102) from chore/t11-reset-and-prepush-gate into main 2026-07-23 07:49:26 +00:00
Shay
4bf8f3be99 chore(ci): local pre-push gate (smoke + warmed_session pin) + T11 reset record
Weekly-audit 2026-07-22 closeout — T13 decision (3) CI gate + T11 execution.

- scripts/hooks/pre-push + install.sh: a core.hooksPath pre-push gate that runs
  the smoke suite PLUS the warmed_session consistency lane pin — the T13
  telemetry-consistency regression class that smoke does NOT cover. The full
  ~12k fast-lane stays async CI by design; the gate is deliberately targeted so
  it blocks the regression class without gridlocking pushes. Fail-closed on
  empty stdin; skips deletion-only pushes; emergency bypass git push --no-verify.

- scripts/ops/reset_candidate_corpus_t11_20260722.py: provenance record of the
  T11 live-store reset. The 465 discovery candidates predated the #100
  isolation fix and carried no per-record test/prod discriminator, so a surgical
  quarantine was impossible; ruling was to clear (not asterisk). Executed as an
  ADR-0219 atomic generation reset (empty candidate ledger, keep=1) — candidates
  465 -> 0, turn_count 14990 and identity lineage preserved, tainted generations
  GC'd. Data lives in gitignored engine_state/; this script is the audit trail.

- AGENTS.md: document the automated pre-push gate under the Local-First CI
  Validation Protocol.

- weekly-audit ledger: T10 merged (#100), T11 ruled+executed, T13 (2) hedge-arm
  ruling + (3) pre-push gate recorded.

[Verification]: smoke 180 passed (132.9s) + warmed_session lane 10 passed
(140.5s), exit 0 — worktree core-wt-infra @ base 9a428d84.
2026-07-22 22:28:55 -07:00
9a428d8466 Merge pull request 'fix(pipeline): back-stamp served surface onto TurnEvent — close T13 telemetry-consistency red' (#101) from fix/telemetry-serve-boundary into main 2026-07-23 04:58:01 +00:00
Shay
5a343b49e9 fix(pipeline): back-stamp served surface onto TurnEvent — close T13 telemetry-consistency red
CognitiveTurnPipeline emits TurnEvent inside runtime.chat() and only THEN
applies the #96 fail-closed surface resolution (resolve_surface) and the #97
logos-morph override — so an overridden turn's telemetry recorded a surface
the user never saw. warmed_session_consistency telemetry_consistency_rate was
0.9444 on main (fast-lane red since #96 e0d1b475): an audit/replay trust break
(Absolute Provenance).

Add ChatRuntime.finalize_turn_surface, a sibling to finalize_turn_trace_hash:
the pipeline owns the final surface decision, so it back-stamps the resolved
surface onto turn_log[-1] immediately after the trace-hash back-stamp.
trace_hash byte-identity is preserved — it folds the pre-decoration surface,
not the served surface.

Scope: telemetry-consistency half of T13 only.
- Decision (2), the goldtether over-refusal, is orthogonal to the red and
  OPEN pending ruling (ledger) — recommend AGAINST a query-type cue bypass
  (fail-open / ADR-0252-retired cue-table pattern); prefer routing
  open-geometry-but-pack-grounded surfaces to the existing hedge arm.
- Durable-sink deferral tracked as R7.

telemetry_consistency_rate 0.9444 -> 1.0 (10/10 warmed_session tests green).

[Verification]: uv run core test --suite smoke -q in core-wt-t13serve @ HEAD — 180 passed in 133.17s, exit 0; warmed_session lane 10/10 green.
2026-07-22 21:28:39 -07:00
bf80bc7f55 Merge pull request 'docs(governance): weekly-audit rulings — INV-32/33/34 registration + T7/T8/T9 execution' (#99) from docs/audit-rulings-t1-t7-t8-t9 into main 2026-07-23 04:03:38 +00:00
80100c1831 Merge pull request 'fix(tests): session-scoped engine-state isolation — close the module-scope escape to the live life-store' (#100) from fix/test-engine-state-isolation into main 2026-07-23 04:02:19 +00:00
Shay
e38291f8f6 fix(tests): session-scoped engine-state isolation baseline — close module-scope escape to the live life-store 2026-07-22 20:32:06 -07:00
Shay
1293f77c14 docs(governance): weekly-audit rulings T1/T7/T8/T9 — INV-32/33/34 registration, ADR-0243 fold, residual escalation, path sweep, prune ledger 2026-07-22 19:18:59 -07:00
e7140bf230 Merge pull request 'docs: weekly audit 2026-07-22 — straggler fixes + TODO ledger' (#98) from chore/audit-2026-07-22-stragglers into main
Reviewed-on: #98
2026-07-23 01:40:25 +00:00
Shay
91650874b4 docs: weekly audit 2026-07-22 — fix ADR-0132 pointer, tombstone stale ADR-0243 twin, index taxonomy note, land straggler TODO 2026-07-22 18:35:24 -07:00
f94dbd4045 Merge pull request 'feat(logos): bulk live morph authority on turn + teaching seams' (#97) from feat/logos-bulk-live-authority into main
Reviewed-on: #97
---
Delivered: bulk Logos live authority

Branch: feat/logos-bulk-live-authority @ 91bb0a1b
Claim: bulk impact on live seams + sealed proof — not full Logos complete.

What improved (provable)

┌───────────────────────────┬────────────────────────────────────────────────────────────────────────────────┐
│ Arm / path                │ Behavior                                                                       │
├───────────────────────────┼────────────────────────────────────────────────────────────────────────────────┤
│ canonical                 │ PASS (no morph authority)                                                      │
├───────────────────────────┼────────────────────────────────────────────────────────────────────────────────┤
│ metadata                  │ Bit-identical digest to canonical                                              │
├───────────────────────────┼────────────────────────────────────────────────────────────────────────────────┤
│ executable                │ ABSTAIN on observed HE plural + singular-exclusivity claim                     │
├───────────────────────────┼────────────────────────────────────────────────────────────────────────────────┤
│ adversarial               │ FAIL_CLOSED on OOV / missing surface                                           │
├───────────────────────────┼────────────────────────────────────────────────────────────────────────────────┤
│ TeachingStore.add         │ Same decision fn → proposal CONTESTED                                          │
├───────────────────────────┼────────────────────────────────────────────────────────────────────────────────┤
│ CognitiveTurnPipeline.run │ Same decision fn → abstention surface, authority_source=logos_morph_constraint │
└───────────────────────────┴────────────────────────────────────────────────────────────────────────────────┘

Typed IR: CanonicalConstraint → LogosConstraint (rule_id, morphology_id, source_pack_id, source_span) — no free meaning dict on this path.

Verification (plan gates)

• Four-arm: wrong_count=0, provenance complete, dual-run digests identical
• Unit: 40 passed (morph + governance + surface)
• Live entry: turn abstains with he_morph_v0.plural_abstain
• Smoke: 180 passed (~133s)
• Residual note: docs/analysis/logos-bulk-live-authority-residual-2026-07-20.md

Still residual (honest)

• linguistic_pipeline cue tables remain parallel (not pack morph authority)
• One rule type; micro HE pack only
• Legacy math IR not fully unified
• No holonomy-crown / full lexicon claims

---

Live Logos morph authority is wired into teaching + CognitiveTurn: executable HE morph can abstain/refuse; metadata matches canonical; fail-closed on ambiguity; sealed four-arm proof + typed constraint IR.

Prove / re-run:
• uv run pytest tests/test_observed_he_morph_constraint_v0.py -q
• uv run python -c "from generate.observed_he_morph_v0 import run_four_arm_ablation; print(run_four_arm_ablation().as_dict())"
• uv run core test --suite smoke -q
2026-07-20 23:42:48 +00:00
Shay
91bb0a1b8c feat(logos): bulk live morph authority on turn + teaching seams
Wire observed-HE morph constraint into CognitiveTurn answer path and
unify teaching store with the same pure decision function used by the
four-arm ablation. Typed LogosConstraint IR carries rule/morph/pack/span
provenance without free meaning dicts. Executable mode abstains on
plural-vs-singular exclusivity; metadata remains bit-identical to
canonical; adversarial OOV/missing fails closed. Residual dual-system
debt documented honestly (cue-table linguistic_pipeline still parallel).
2026-07-20 16:35:04 -07:00
25504c9d0b Merge pull request 'feat(cognition): fail-closed linguistic governance + trilingual constraint pipeline' (#96) from feat/linguistic-governance-fail-closed-ir into main
Reviewed-on: #96
2026-07-20 23:23:52 +00:00
Shay
e0d1b4754a feat(cognition): fail-closed linguistic governance + trilingual constraint pipeline
Close residual answer-authority debt: typed CoherenceRefusal/ContractViolation/
FieldFailure, structured ProofTrace (atoms→operators→closure), and Shadow Gate
paths that refuse certified answers when contract_assessment is None or geometry
is open. Add shared semantic primitives and Layers A/B/C (English/Hebrew/Koine)
as constraint producers only, with Cl(4,1) structure-sensitive embedding (no
unitize in generate/), three field outcomes, and an articulation firewall that
blocks payload-value citation bypass and uncertified content.
2026-07-20 16:16:56 -07:00
18c578d960 Merge pull request 'feat: Master Convergence Stages 1–4 (land closed stack + skeptic fixes)' (#95) from feat/observed-he-morph-constraint-v0 into main
Reviewed-on: #95
---
Cl(4,1) geometric sovereignty convergence (Master Blueprint Stages Pre→1–4) is on feat/observed-he-morph-constraint-v0 (tip 8c4221d4), with Forgejo PRs #90–#94.

• Validate: uv run core test --suite smoke -q (or full: uv run core test --suite full -q)
• Stage pins: uv run pytest tests/test_geometric_convergence_checklist.py tests/test_stage3_epistemic_inductive.py -q
• HE four-arm ablation: PYTHONPATH=. python3 -c "from generate.observed_he_morph_v0.ablation import run_four_arm_ablation; print(run_four_arm_ablation())"
2026-07-20 22:40:57 +00:00
Shay
8c4221d496 fix(stage3): gate inductive expansion on geometric admissibility
Non-admissible candidates no longer enter work/derived. Only admissible
base and derived edges seed fixed-point steps, so multi-step paths close
only under geometric conditions (Stage 3 exit). Updates tests that
previously locked in admissible=False-but-still-promoted behavior.

[Verification]: tests/test_stage3_epistemic_inductive.py 10 passed
2026-07-20 15:07:12 -07:00
Shay
9f85832baa fix: full-suite gates — suite SoT + multi-root depth pin
- Re-export core.cli._TEST_SUITES from cli_test.TEST_SUITES so argparse
  and tests cannot drift from the runtime packs/smoke/algebra pins
  (Stage dual-pack draft boundary was only on cli_test).
- Align relational ablation multi-root metadata test with Stage 3
  fail-closed policy: ≥2 unique roots do not emit [root:] notes.

[Verification]: Smoke suite passed locally (~133s, 180 passed);
postfix targeted 5/5; full pre-fix was 4 failed / 13281 passed
(2 env dirt/flake classified separately).
2026-07-20 14:58:21 -07:00
Shay
c71c00cca6 fix: skeptic remediations for Stage 3–4 exit gates
- Metadata arm returns baseline decision payload (bit-identical digests).
- TeachingStore auto-applies HE morph rule from compiled pack (live path).
- Inductive derived edges stamp geometric admissibility via pipeline versor
  grounding; refuse ungrounded promotions.
- VaultPromotionPolicy default residual_threshold=1e-6 for COHERENT.

[Verification]: skeptic_fixes 26 passed; stage4 ablation digests equal
2026-07-20 14:08:37 -07:00
3de431dcdc Merge branch 'feat/stage3-he-ambiguity-epistemic-closure' into feat/observed-he-morph-constraint-v0 2026-07-20 21:05:42 +00:00
7755fd4708 Merge branch 'test/stage2-physics-parity-hardening' into feat/stage3-he-ambiguity-epistemic-closure 2026-07-20 21:05:30 +00:00
2a32887809 Merge branch 'docs/stage1-governance-boundary-freeze' into test/stage2-physics-parity-hardening 2026-07-20 21:05:18 +00:00
68cf8258fa Merge branch 'main' into docs/stage1-governance-boundary-freeze 2026-07-20 21:05:03 +00:00
1f1a94a39b Merge pull request 'feat(physics,cognition): Cl(4,1) geometric sovereignty convergence' (#90) from feat/cl41-geometric-convergence-sovereignty into main
Reviewed-on: #90
2026-07-20 21:04:49 +00:00
Shay
121e9ebb3c feat(he): Stage 4 observed-HE morph constraint v0 + four-arm ablation
Vertical slice feat/observed-he-morph-constraint-v0:

- Load observed HE morphology from compiled packs/data/he_logos_micro_v1
  with exact source_span provenance.
- Authored PluralAbstainRuleV0 → language-independent CanonicalConstraint.
- TeachingStore.add consumer seam: ABSTAIN/FAIL_CLOSED → CONTESTED.
- Sealed four-arm ablation: canonical, metadata (inert), executable
  (decision change), adversarial OOV/missing (fail closed).
- No English-to-Hebrew pseudo-morphology.

[Verification]: observed-HE 5 passed; teaching regression 15 passed; smoke 180 passed
2026-07-20 14:00:01 -07:00
Shay
f9f94d8df8 feat(cognition): Stage 3 geometric coherence, inductive closure, OOV pins
Complete Stage 3 residual gates on live pipeline authority:

- GeometricCoherenceVerdict distinguishes field-closed vs unverified
  without inventing EpistemicState.COHERENT (dual taxonomy ownership doc).
- Bounded expand_relation_closure over teaching-store triples with budget,
  cycle safety, base multi-tail contradictions, replayable provenance in
  operator_invocation / trace_hash.
- OOV/egress authority tests: conformal neighbors context, cga_inner nearest,
  vault_hits not surface gate.

[Verification]: Stage 3 unit 18 passed; pipeline regression 27 passed; smoke 180 passed
2026-07-20 13:54:51 -07:00
Shay
aaa8503f0b feat(recognition): Stage 3 fail-closed multi-root depth ambiguity
Stop silent roots[0] commitment when multiple HE/GRC roots are observed.
Return typed RootSenseAmbiguity, mark runnable assessments non-runnable
with AMBIGUOUS_ROOTS provenance, and refuse multi-root node canonicalization
without authored single-candidate resolution.

[Verification]: stage3 root ambiguity + oov pipeline tests passed (39)
2026-07-20 13:47:02 -07:00
Shay
b1dc57ff22 test(physics): Stage 2 hardening pins for scale domain, L2 excision, parity
Executable Stage 2 exit evidence: shared fraction-decrease scale domain,
identity L2 helper absence, GoldTether geometric residual path, RATIFIED|
DEMOTED-only ratifier, active Cl(4,1) product/conformal/Gram/GT/sandwich
smoke, dual-backend vs Python-authoritative parity boundary (no false
rotor_power Rust claims), and LE f64 SHA-256 digests.

[Verification]: algebra suite green (includes Stage 2 pins); stage2 9 passed 1 skipped
2026-07-20 13:45:05 -07:00
Shay
8494a239e4 docs(governance): Stage 1 ADR collision freeze + dual-pack serve boundary
Reconcile Master Blueprint ADR-0240–0253 titles with the live Accepted
registry without renumbering history. Claim ADR-0253 for the freeze policy
itself; reserve 0254–0261 for Blueprint gaps. Document packs/data vs
packs/he|grc dual boundary and pin serve isolation in smoke/packs suites.

[Verification]: Smoke 180 passed (includes 4 dual-pack boundary pins)
2026-07-20 13:43:25 -07:00
Shay
6ffea249ec fix(cognition): break ContractAssessment import cycle in pipeline
Lazy-import ContractAssessment inside geometry contract assessment so
problem_frame_contracts → chat → cognition → problem_frame_contracts
cannot form a partial-init cycle. Unblocks GSM8K rat1/wave_a runners.

[Verification]: rat1+wave_a+pipeline+surface 38 passed; import path ok
2026-07-20 13:36:53 -07:00
Shay
120e9554ab fix(cognition): pre-stage land repairs after L2/PASSTHROUGH excision
Close residual failures from geometric sovereignty hardening without
restoring scalar-L2 or PASSTHROUGH authority:

- Ratify CORRECTION/COMPARISON via vocab-grounded tag and multi-token
  subject anchors so teaching capture and cognition intent accuracy hold.
- Keep observational wave leakage from vetoing teaching while
  identity_wave_gate is off; syntactic override still rejects.
- Surface GoldTetherViolationError as fail-closed tether residual rather
  than aborting lifecycle observation.
- Replace excised legacy identity-eval path with a geometry-blind baseline.
- Align sensorium corridor and lift instrument assertions with sandwich
  unitary close and honest PARITY when baseline already solves.

[Verification]: smoke 176 passed; cognition 122 passed 1 skipped;
teaching 109 passed; claim batch 34 passed
2026-07-20 13:34:59 -07:00
Shay
e7d116c924 feat(physics,cognition): Cl(4,1) geometric sovereignty convergence
Excise identity L2 dual-mode and pipeline PASSTHROUGH cold-starts; enforce
wave-only IdentityCheck with MissingWaveStateError; hard-fail GoldTether
transitions via GoldTetherViolationError; dual-competing Shadow Coherence
Gate with populated contract_assessment; auto-compile field packets before
intent ratify; conformal argmax ratification and content-addressed proof
atoms; sandwich multi-modality ingress with GoldTether digests.

Amend ADR-0243/0244 (docs/adr + research) for wave-only / SUPERSEDED sketches.
Pin binary gates in tests/test_geometric_convergence_checklist.py.

[Verification]: Smoke suite passed locally (~136–142s, 176 passed);
cognition suite passed (122 passed, 1 skipped); lifecycle suite 51 passed.
2026-07-20 12:20:05 -07:00
4b9dbe7236 Merge pull request 'fix(a2k): reject out-of-range fraction-decrease scales' (#89) from fix/a2k-fraction-decrease-scale-range into main
Reviewed-on: #89
2026-07-20 04:42:05 +00:00
Shay
ac4c3e04ad test(a2k): prove geometric path refuses out-of-range decrease scales
Regression coverage for the audit repro (5/4), zero/one/gt-one geometric
no-bypass, injected Fraction domain mutations, promotable resolver
refusal, and flip the PR #87 preexisting gap pin to require operator
refuse alongside baseline.
2026-07-20 04:40:35 +00:00
Shay
1a6efe0d13 fix(a2k): share fraction-decrease scale domain on geometric admission
Obligation assessment required 0 < scale < 1 (scale_out_of_range) while
_versor_binding_from_scale_value admitted any positive finite scale, so
resolve_promotable_fraction_decrease could still bind and return a
negative decrease for inputs like 5/4.

Add _is_valid_fraction_decrease_scale as the single semantic-domain
predicate and enforce it in both assess_fraction_decrease and
_fraction_decrease_scale_binding so geometric VersorBinding cannot
grant permission the obligation layer denies.
2026-07-20 04:40:35 +00:00
6b8a013280 Merge pull request 'docs(analysis): PR #87 post-merge integrity audit' (#88) from chore/postmerge-pr87-integrity-audit into main
Reviewed-on: #88
2026-07-20 04:37:04 +00:00
Shay
375da93e61 docs(analysis): PR #87 post-merge integrity audit
Evidence-led verification of merged relational-operator ablation:
canonical semantics, fixture independence, condition labels, scale>1
isolation, production/gate isolation, HE/GRC roadmap authority, and
reproducibility. Verdict: VERIFIED, no corrective PR needed.

[Verification]: Ablation 20 passed; runner digest match; organ pre-existing
37 passed; smoke 176 passed locally (~133s).
2026-07-19 21:24:34 -07:00
5fae5a67f2 Merge pull request 'feat(eval): deterministic relational operator ablation + HE/GRC Logos roadmap' (#87) from feat/deterministic-relational-operator-ablation into main
Reviewed-on: #87
---
Delivered

┌─────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────┐
│ Item                        │ Location                                                                         │
├─────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────┤
│ Cartography ledger          │ docs/analysis/relational-operator-ablation-cartography-2026-07-19.md             │
├─────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────┤
│ Ablation dossier            │ docs/analysis/relational-operator-ablation-dossier-2026-07-19.md                 │
├─────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────┤
│ HE/GRC Logos roadmap        │ docs/analysis/hebrew-koine-greek-logos-pack-capability-roadmap-2026-07-19.md     │
├─────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────┤
│ Ablation code + sealed eval │ generate/relational_operator_ablation.py, evals/relational_operator_ablation/v1/ │
├─────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────┤
│ Tests                       │ tests/test_relational_operator_ablation.py                                       │
└─────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────┘

Git

Branch: feat/deterministic-relational-operator-ablation
Remote: Forgejo core-labs/core (5 commits)

1. df029a84 — cartography ledger
2. 1d4d51bc — ablation runners
3. 87b01868 — sealed eval lane v1
4. 84f7a6f7 — tests + ablation dossier
5. 08881ab6 — HE/GRC Logos roadmap + cross-links

Pull request

#87

• Title: feat(eval): deterministic relational operator ablation + HE/GRC Logos roadmap
• Mergeable: yes
• [Verification]: smoke 176 + ablation 20 + runner n=8 wrong=0 documented on the PR

Fresh start for next PR

Roadmap recommends:

┌──────────┬──────────────────────────────────────────────────────────────────────────────┐
│ Field    │ Value                                                                        │
├──────────┼──────────────────────────────────────────────────────────────────────────────┤
│ Branch   │ feat/observed-he-morph-constraint-v0                                         │
├──────────┼──────────────────────────────────────────────────────────────────────────────┤
│ Worktree │ ../core-observed-he-morph-constraint                                         │
├──────────┼──────────────────────────────────────────────────────────────────────────────┤
│ Scope    │ Observed-Hebrew morph constraint only (not pack bulk-load, not English math) │
└──────────┴──────────────────────────────────────────────────────────────────────────────┘
2026-07-20 04:16:08 +00:00
Shay
08881ab665 docs(analysis): land HE/GRC Logos pack capability roadmap
Audit-only dossier: current-state matrices, dual pack systems, holonomy
limits, no-go list, and recommended next branch
feat/observed-he-morph-constraint-v0. Cross-link cartography and ablation
dossiers; no pack expansion or ablation fixture changes.
2026-07-19 21:14:21 -07:00
Shay
84f7a6f7cc test(eval): prove relational operator ablation invariants + dossier
Unit, integration, and adversarial tests; isolate pre-existing A2k scale>1
gap; final engineering dossier with measurement table.
2026-07-19 21:00:15 -07:00
Shay
87b01868fa feat(eval): sealed relational operator ablation lane v1
Eight-case fixture, measurement runner, and committed report for baseline
/ operator / depth / metadata_only / invalid conditions (wrong=0).
2026-07-19 21:00:15 -07:00
Shay
1d4d51bc9b feat(generate): deterministic relational operator ablation runners
Baseline scalar frame path, live geometric operator path, inactive depth
contribution provenance, metadata-only control, and fail-closed invalid
condition for fraction_decrease — without inventing EN→HE/GRC role maps.
2026-07-19 21:00:15 -07:00
Shay
df029a8485 docs(analysis): cartography ledger for relational operator ablation
Evidence matrix, live-path maps, claim corrections, and go/no-go for a
narrow fraction_decrease ablation (not ancient-language GSM8K magic).
2026-07-19 21:00:15 -07:00
d8d62b8ea3 Merge pull request 'feat(trackb): S1–S4 symbolic SME, selector, pure-S1 coverage gain (Inc2)' (#86) from feat/trackb-symbolic-sme-s2s4 into main
Reviewed-on: #86
2026-07-20 03:12:47 +00:00