Skip to content

Commit 49672a2

Browse files
committed
Lock v1 reference system: merge gates, evidence qualification, batch tiers
Align CI_MERGE_GATES and BRANCH_PROTECTION with reference-authority required check; PR template and reviewer checklist updated for Policy B. Flagship README evidence qualification, REFERENCE_REFRESH_LOG cadence, EXPORT_PROVENANCE refresh_history, ENGINEERING_STATUS solver dates. Batch policy v2: viability enforced, throughput_advisory non-blocking; validate_published_bundle_profile for tier-aware bundle files.
1 parent 381004e commit 49672a2

31 files changed

Lines changed: 439 additions & 56 deletions

.github/pull_request_template.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
## Testing
66

7-
- [ ] Default CI (`quality`, `conic-trusted-shape`, `governance-audit`) is green or pending
7+
- [ ] Default CI (`quality`, `conic-trusted-shape`, `governance-audit`, `reference-authority`) is green or pending
88

99
## Solver / parity / published runs
1010

.github/workflows/reference-authority.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,15 @@ jobs:
2828
python -m pip install -e ".[dev]"
2929
- name: verify-reference-system
3030
run: make verify-reference-system
31-
- name: Committed batch acceptance report (viability policy)
31+
- name: Published bundle file profile (all tiers)
32+
run: python scripts/validate_published_bundle_profile.py
33+
- name: Committed batch acceptance report (viability — required)
3234
run: |
3335
python scripts/check_batch_acceptance.py \
36+
--tier viability \
37+
--report benchmarks/reports/batch_solve_report.latest.json
38+
- name: Batch throughput advisory (non-blocking)
39+
run: |
40+
python scripts/check_batch_acceptance.py \
41+
--tier throughput_advisory \
3442
--report benchmarks/reports/batch_solve_report.latest.json

.github/workflows/solver-ci.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ jobs:
100100
python scripts/reference_correctness_summary.py --out-dir "$VDIR"
101101
python scripts/performance_benchmark.py --out-dir "$VDIR" --repeats 5 --sweep --batch-sizes 4,8,16
102102
python scripts/batch_solve_report.py --input "$VDIR/performance_summary.json" --out "$VDIR/batch_solve_report.json"
103-
python scripts/check_batch_acceptance.py --report "$VDIR/batch_solve_report.json"
103+
python scripts/check_batch_acceptance.py --tier viability --report "$VDIR/batch_solve_report.json"
104+
python scripts/check_batch_acceptance.py --tier throughput_advisory --report "$VDIR/batch_solve_report.json" || true
104105
python scripts/differentiation_check.py --out-dir "$VDIR"
105106
python -m conicshield.parity.cli \
106107
--reference-dir tests/fixtures/parity_reference \

CONTRIBUTING.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ These checks run on every PR to `main` and should be green:
1818
| `quality` | Lint, types, default pytest, verification scripts |
1919
| `conic-trusted-shape` | CLARABEL/SCS structural conic correctness (no vendor secrets) |
2020
| `governance-audit` | Published-run index integrity, governance audit CLI, publish rehearsal |
21+
| `reference-authority` | `verify-reference-system`, batch viability, published bundle profile |
2122

2223
## Path-filtered checks
2324

Makefile

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ else
2323
PYTHON ?= python
2424
endif
2525

26-
.PHONY: test test-reference test-slow test-solver test-vendor-moreau smoke-solver smoke-check env-check reference-correctness perf-benchmark diff-check trust-dashboard parity-native-licensed artifact-validation-report parity-report audit dashboard validate-fixture lint typecheck format format-check cov cov-gates compile-deps verify-extended bootstrap-moreau upgrade-host-realistic-vendor host-realistic-rehearsal export-upstream-rehearsal batch-solve-report check-batch-acceptance verify-reference-system reference-authority-check reference-authority-snapshot capture-inter-sim-graph refresh-live-upstream-export refresh-live-upstream-export-live host-realistic-refresh-cycle host-realistic-refresh-milestone sync-published-readmes
26+
.PHONY: test test-reference test-slow test-solver test-vendor-moreau smoke-solver smoke-check env-check reference-correctness perf-benchmark diff-check trust-dashboard parity-native-licensed artifact-validation-report parity-report audit dashboard validate-fixture lint typecheck format format-check cov cov-gates compile-deps verify-extended bootstrap-moreau upgrade-host-realistic-vendor host-realistic-rehearsal export-upstream-rehearsal batch-solve-report check-batch-acceptance check-batch-throughput-advisory validate-published-bundle-profile verify-reference-system reference-authority-check reference-authority-snapshot capture-inter-sim-graph refresh-live-upstream-export refresh-live-upstream-export-live host-realistic-refresh-cycle host-realistic-refresh-milestone sync-published-readmes
2727

2828
test:
2929
$(PYTHON) -m pytest -q
@@ -61,7 +61,13 @@ batch-solve-report:
6161
$(PYTHON) scripts/batch_solve_report.py
6262

6363
check-batch-acceptance:
64-
$(PYTHON) scripts/check_batch_acceptance.py
64+
$(PYTHON) scripts/check_batch_acceptance.py --tier viability
65+
66+
check-batch-throughput-advisory:
67+
$(PYTHON) scripts/check_batch_acceptance.py --tier throughput_advisory
68+
69+
validate-published-bundle-profile:
70+
$(PYTHON) scripts/validate_published_bundle_profile.py
6571

6672
host-realistic-refresh-cycle:
6773
$(PYTHON) scripts/host_realistic_refresh_cycle.py --run-id host-realistic-20260525 --force
@@ -105,7 +111,7 @@ refresh-live-upstream-export-live: capture-inter-sim-graph
105111
$(PYTHON) scripts/refresh_live_upstream_export.py \
106112
--graph-json benchmarks/external_evidence/live_dumps/offline_transition_graph_host_realistic.json
107113

108-
verify-reference-system: reference-authority-check
114+
verify-reference-system: reference-authority-check validate-published-bundle-profile
109115
$(PYTHON) -m pytest \
110116
tests/governance/test_published_run_index.py \
111117
tests/governance/test_host_realistic_publish_evidence.py \
@@ -114,6 +120,7 @@ verify-reference-system: reference-authority-check
114120
tests/governance/test_conic_suite_report_clusters.py \
115121
tests/governance/test_published_run_catalog.py \
116122
tests/governance/test_check_batch_acceptance.py \
123+
tests/governance/test_validate_published_bundle_profile.py \
117124
tests/governance/test_native_arm_publish_evidence.py \
118125
tests/governance/test_run_host_realistic_publish.py \
119126
tests/governance/test_host_realistic_refresh_cycle.py \

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@ The **export → bank → publish → parity** loop is closed in-repo at **`vend
4949
| Flagship published run (`real_projector`, native arm, green gates) | [`benchmarks/published_runs/host-realistic-20260525/`](benchmarks/published_runs/host-realistic-20260525/) |
5050
| One-command orchestration / refresh | [`scripts/run_host_realistic_publish.py`](scripts/run_host_realistic_publish.py), [`scripts/upgrade_host_realistic_vendor.py`](scripts/upgrade_host_realistic_vendor.py) |
5151

52-
Optional: replace the committed export with a **live** inter-sim dump ([`docs/HOST_REALISTIC_RUNBOOK.md`](docs/HOST_REALISTIC_RUNBOOK.md)). Solver paths (reference vs sequential native vs true batch): [`docs/SOLVER_PATHS_AND_BATCHING.md`](docs/SOLVER_PATHS_AND_BATCHING.md). Native batching: `Backend.NATIVE_MOREAU_BATCH` via [`conicshield/core/solver_factory.py`](conicshield/core/solver_factory.py); compare with [`scripts/performance_benchmark.py`](scripts/performance_benchmark.py) and [`scripts/batch_solve_report.py`](scripts/batch_solve_report.py).
52+
Live export path: `make capture-inter-sim-graph``make refresh-live-upstream-export-live` (see [`docs/HOST_REALISTIC_REFRESH_PROCEDURE.md`](docs/HOST_REALISTIC_REFRESH_PROCEDURE.md)). Current committed export is `live_upstream_dump` with **host-realistic fork** topology validated through inter-sim `RLEnvironment` — not a full Maps/session navigation graph.
53+
54+
Solver paths (reference vs sequential native vs true batch): [`docs/SOLVER_PATHS_AND_BATCHING.md`](docs/SOLVER_PATHS_AND_BATCHING.md). Batch API is governed and viability-tested; **do not claim universal batch speedup** in external materials until throughput advisory tiers are met. Differentiation: validation-only ([`docs/DIFFERENTIATION_PUBLIC_STANCE.md`](docs/DIFFERENTIATION_PUBLIC_STANCE.md)).
5355

5456
---
5557

benchmarks/PUBLISHED_RUN_INDEX.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"schema_version": 2,
3-
"generated_at_utc": "2026-05-26T06:05:57Z",
3+
"generated_at_utc": "2026-05-26T06:19:45Z",
44
"published_root": "benchmarks/published_runs",
55
"governed_run_ids": [
66
"host-realistic-20260525",
@@ -40,7 +40,7 @@
4040
"sha256": "692f5803a79c0a4eb7185533e111c1a755d98d4d2cc01afbbccd1f390b3d2e17"
4141
},
4242
"governance_decision.md": {
43-
"sha256": "645a8ee1cc94c445bfdafb6552d05af95f33a0122e92bac2e9a36d6ace8ffaf3"
43+
"sha256": "503347b0097a4833beed9b89e39bfa5c1236c289fce12729bc28631f78e8c17b"
4444
},
4545
"release_decision.json": {
4646
"sha256": "3acae9b15626813f0af3bfd47484c65dc9b34012eb98b98518caf9e176739ccd"
@@ -49,7 +49,7 @@
4949
"sha256": "1db4e6dda92c509858f66dc377689bff9501829fab500f7b883207ed29d21afc"
5050
},
5151
"README.md": {
52-
"sha256": "533c021bbe091372d7a0e426de21d55a41cbc581bd7e84419666a33db695a47f"
52+
"sha256": "e38072afa91b9afb0a5ab883f25ea26f8f4585752b0067969d0d79694849abf1"
5353
}
5454
},
5555
"catalog": {
@@ -102,7 +102,7 @@
102102
"sha256": "8ff93f876bc47fb202e445daafd9bbaec4f958ca739afad95b48057b22b03d4c"
103103
},
104104
"README.md": {
105-
"sha256": "4ebecb32cf3174328e6dbf19695c7f5158e65892dbac4acbe6756b6c584fa489"
105+
"sha256": "9ccfbb53c44adfa21e79f4d52e741c8dfa121dd43cbfa348181e8db73849aabc"
106106
}
107107
},
108108
"catalog": {
@@ -158,7 +158,7 @@
158158
"sha256": "1db4e6dda92c509858f66dc377689bff9501829fab500f7b883207ed29d21afc"
159159
},
160160
"README.md": {
161-
"sha256": "456f6cc5d458c97307b4fb3d7f9a26e722e6251e18dfc0ce663b0c273384b180"
161+
"sha256": "5ab3c47576701bcc6799f47d9d9f6ca0c4f35b3feaacd587b80a2badfb90d604"
162162
}
163163
},
164164
"catalog": {

benchmarks/external_evidence/EXPORT_PROVENANCE.json

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,24 @@
66
"export_kind": "live_upstream_dump",
77
"graph_shape": "host_realistic_fork",
88
"flagship_run_id": "host-realistic-20260525",
9-
"notes": "Live upstream dump replaced committed structural export. Re-run make upgrade-host-realistic-vendor.",
9+
"notes": "Graph captured via inter-sim RLEnvironment (host-realistic fork). Not a Maps/session-built navigation graph. Cadence: docs/REFERENCE_REFRESH_LOG.md.",
1010
"exported_at_utc": "2026-05-26T06:05:03Z",
11-
"source_graph_json": "benchmarks/external_evidence/live_dumps/offline_transition_graph_host_realistic.json"
11+
"source_graph_json": "benchmarks/external_evidence/live_dumps/offline_transition_graph_host_realistic.json",
12+
"refresh_history": [
13+
{
14+
"refresh_index": 1,
15+
"completed_at_utc": "2026-05-26T04:36:00Z",
16+
"trigger": "event-driven",
17+
"git_ref": "2ff5fea",
18+
"export_kind": "structural_committed"
19+
},
20+
{
21+
"refresh_index": 2,
22+
"completed_at_utc": "2026-05-26T06:05:21Z",
23+
"trigger": "event-driven-live-export",
24+
"git_ref": "381004e",
25+
"export_kind": "live_upstream_dump"
26+
}
27+
],
28+
"last_flagship_refresh_at_utc": "2026-05-26T06:05:21Z"
1229
}

benchmarks/published_runs/host-realistic-20260525/README.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,30 @@ Governed benchmark bundle for `conicshield-transition-bank-v1`.
1111
| Parity fixture gold source | no |
1212
| Family `current_run_id` | yes |
1313
| Governance `state` | `published` |
14+
| Committed export `export_kind` | `live_upstream_dump` |
1415

1516
## What this run proves
1617

1718
- Validated artifact surface (`validate_run_bundle`)
1819
- Benchmark arms in `summary.json` with governance gates in `governance_status.json`
20+
- Host-realistic export → bank → publish → parity loop is closed in-repo when `host_realistic` is yes
21+
22+
## Evidence qualification
23+
24+
- **Export loop:** closed in-repo; source export is `benchmarks/external_evidence/offline_graph_export_upstream.json` (`export_kind: live_upstream_dump`).
25+
- **Live capture:** when `export_kind` is `live_upstream_dump`, the graph was validated through pinned **inter-sim-rl `RLEnvironment`** (see `benchmarks/external_evidence/live_dumps/*.provenance.json`).
26+
- **Graph content:** host-realistic **fork topology** (Root → NodeA/NodeB/NodeC), not a full Maps/session-built navigation graph unless provenance explicitly says otherwise.
27+
- **Cadence:** recorded in [`docs/REFERENCE_REFRESH_LOG.md`](../../docs/REFERENCE_REFRESH_LOG.md).
1928

2029
## What this run does not claim
2130

2231
- Differentiable runtime shield product guarantees (see `docs/DIFFERENTIATION_PUBLIC_STANCE.md`)
23-
- Live upstream simulator export unless `RUN_PROVENANCE.json` says so
32+
- Universal batch speedup on all micro-scenarios (viability only; see `docs/SOLVER_PATHS_AND_BATCHING.md`)
33+
- Full upstream navigation-session graph unless capture provenance documents a richer dump
2434

2535
## Ops
2636

2737
- Refresh procedure: [`docs/HOST_REALISTIC_REFRESH_PROCEDURE.md`](../../docs/HOST_REALISTIC_REFRESH_PROCEDURE.md)
2838
- Catalog spec: [`docs/PUBLISHED_BUNDLE_CATALOG.md`](../../docs/PUBLISHED_BUNDLE_CATALOG.md)
39+
- Bundle file profile: `python scripts/validate_published_bundle_profile.py`
2940

benchmarks/published_runs/host-realistic-20260525/governance_decision.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@
2323

2424
## Rationale
2525

26-
Same-family flagship **host-realistic** external-evidence run (`vendor_native`, `real_projector`). Scheduled refresh cycle re-validated export → bundle → parity → finalize; gates remain green. `current_run_id` unchanged.
26+
Same-family flagship **host-realistic** external-evidence run (`vendor_native`, `real_projector`). Refresh cycles re-validated export → bundle → parity → finalize; gates remain green. `current_run_id` unchanged. Live export path executed 2026-05-26 (`export_kind: live_upstream_dump`); graph remains host-realistic fork topology via inter-sim `RLEnvironment`, not a full navigation-session graph.
2727

2828
## Follow-ups
2929

30-
- Optional live inter-sim re-export when upstream dump available (`scripts/refresh_live_upstream_export.py`).
30+
- Re-capture live graph when `third_party/inter-sim-rl/REVISION` sha changes or a richer Maps/session dump exists (`make capture-inter-sim-graph`).
31+
- Record each refresh in `docs/REFERENCE_REFRESH_LOG.md`.
3132
- Parity fixture promotion remains governed by S2 reference policy (`REGENERATION_NOTE.md`).

0 commit comments

Comments
 (0)