The R15 suite of the acceptance registry: the ten packages of the 1.5x Research Programme (every one NOT RUN, the gate verbatim, the owner capability and artefact, the X and B lanes as cross-references), the two rules in the suite's note (WITNESS or BOUND on every chip figure; no raw hashes-per-second comparison without an approved equivalence); generated by tools/ci/r15-suite.mjs, regenerated at the merge, checked in the gate
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
76ee67d8fe
commit
aea0e3751d
8 changed files with 609 additions and 12 deletions
128
docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json
Normal file
128
docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
{
|
||||
"document": "IGNEUM - The 1.5x Research Programme (9 October 2026)",
|
||||
"source": "igneum-1p5x-research-plan.md, section 10 'Proposed execution packages' (the table whose rows begin '| R15-')",
|
||||
"status": "PROPOSED; every package NOT RUN; the plan claims no pass",
|
||||
"lane_map_note": "the X and B cross-references on each package are the research-landing hand's reading of the plan against the brief's matrix and track B, for the coordinator to confirm; the lanes block names the owner lanes as the coordinator named them on 9 October",
|
||||
"packages": [
|
||||
{
|
||||
"id": "R15-01",
|
||||
"owner_capability": "Release + measurement",
|
||||
"required_artefact": "Latest exact pack, physical assumptions, source manifest, current ratio reconciliation",
|
||||
"gate": "No cross-version mixed baseline",
|
||||
"lanes": [
|
||||
"X0"
|
||||
],
|
||||
"status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-02",
|
||||
"owner_capability": "GPU + hardware",
|
||||
"required_artefact": "Component power/traffic model and sensitivity analysis",
|
||||
"gate": "No device/whole-machine boundary mismatch",
|
||||
"lanes": [
|
||||
"X0",
|
||||
"X5"
|
||||
],
|
||||
"status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-03",
|
||||
"owner_capability": "GPU + memory analysis",
|
||||
"required_artefact": "Layer-8-off control and held-out cache curves",
|
||||
"gate": "Distinct benefit after best cache adaptation",
|
||||
"lanes": [
|
||||
"X1"
|
||||
],
|
||||
"status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-04",
|
||||
"owner_capability": "GPU systems",
|
||||
"required_artefact": "Compaction, exact-fold alternatives and tuning results",
|
||||
"gate": "Byte agreement, real accepted-work savings",
|
||||
"lanes": [
|
||||
"X2",
|
||||
"X3",
|
||||
"X4"
|
||||
],
|
||||
"status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-05",
|
||||
"owner_capability": "Cryptography",
|
||||
"required_artefact": "Exact published MHPoW control, theorem audit, malicious fixtures",
|
||||
"gate": "No improvised sampled-memory soundness",
|
||||
"lanes": [
|
||||
"B1"
|
||||
],
|
||||
"status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-06",
|
||||
"owner_capability": "GPU + cryptography",
|
||||
"required_artefact": "Theorem-preserving layout/parallelisation feasibility",
|
||||
"gate": "GPU competitiveness and cheap-enough verification",
|
||||
"lanes": [
|
||||
"B3"
|
||||
],
|
||||
"status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-07",
|
||||
"owner_capability": "Cryptography + hardware",
|
||||
"required_artefact": "Joint accepted-proof resource frontier with concrete constants",
|
||||
"gate": "No invalid theorem composition",
|
||||
"lanes": [
|
||||
"B2",
|
||||
"B4"
|
||||
],
|
||||
"status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-08",
|
||||
"owner_capability": "Independent ASIC team",
|
||||
"required_artefact": "Re-optimised SRAM/DRAM/hybrid/recompute/PIM scenarios",
|
||||
"gate": "Full-storage adversary not excluded by price",
|
||||
"lanes": [
|
||||
"X5",
|
||||
"B5"
|
||||
],
|
||||
"status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-09",
|
||||
"owner_capability": "Measurement + economics",
|
||||
"required_artefact": "Blind cohort confirmation and separate P12 outcomes",
|
||||
"gate": "Strongest credible ratio, not average",
|
||||
"lanes": [
|
||||
"X6"
|
||||
],
|
||||
"status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-10",
|
||||
"owner_capability": "Protocol/security",
|
||||
"required_artefact": "Network and pool integration, no-rescue exercise, public evidence",
|
||||
"gate": "Correctness and safe operation remain intact",
|
||||
"lanes": [
|
||||
"B6"
|
||||
],
|
||||
"status": "NOT RUN"
|
||||
}
|
||||
],
|
||||
"lanes": {
|
||||
"B1": "a4490b2dfe9114a55",
|
||||
"B2": "a717f5c9730229ea6",
|
||||
"B3": "a8e608abf1567ff87",
|
||||
"B4": "a46974623d72b032c",
|
||||
"B5": "a1a9876a88f5a72fc (inside X5)",
|
||||
"B6": "a283f5f0d364ceef0",
|
||||
"X0": "a1a9876a88f5a72fc with a690540514aa453d7",
|
||||
"X1": "a6decc31f55cfbd00",
|
||||
"X2": "a884c7bf29d150268",
|
||||
"X3": "ae16e56dd365a2ea6",
|
||||
"X4": "adf5683e5bcd9042b",
|
||||
"X5": "a1a9876a88f5a72fc with the floor lanes",
|
||||
"X6": "a2ecfa95d3206016c"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Igneum 2.0 test harness map
|
||||
|
||||
Generated from tools/ci/test-map.json by tools/ci/test-map-doc.mjs; edit the JSON, never this page. Registry: docs/plans/igneum-2.0-test-registry.json (262 cases).
|
||||
Generated from tools/ci/test-map.json by tools/ci/test-map-doc.mjs; edit the JSON, never this page. Registry: docs/plans/igneum-2.0-test-registry.json (272 cases).
|
||||
|
||||
Rule: a case maps to a cell only where the cell's tests visibly answer it; coverage names what the cell proves and what remains; a mapped cell's green writes RUNNING, PASS only when coverage is full and the evidence file exists; an automated case with no cell reads NOT RUN with its reason, never PASS by inference.
|
||||
|
||||
|
|
@ -620,7 +620,17 @@ Rule: a case maps to a cell only where the cell's tests visibly answer it; cover
|
|||
- TV-30 Energy and claims discipline: TV-30 (token value gate, scope CORE): no gate executed; the harness is the owner role's (GPU + measurement); a supplemental layer, never counted as independent evidence; not yet named in the map
|
||||
- TV-31 Public-claim and activity review: TV-31 (token value gate, scope CORE): no gate executed; the harness is the owner role's (Qualified counsel); a supplemental layer, never counted as independent evidence; not yet named in the map
|
||||
- TV-32 Observed leadership, not a roadmap certificate: TV-32 (token value gate, scope LEADERSHIP CLAIM): no gate executed; the harness is the owner role's (Independent acceptance panel); a supplemental layer, never counted as independent evidence; not yet named in the map
|
||||
- R15-01 R15-01: Release + measurement: R15-01 (1.5x programme package): no package executed; the harness is the lane's (X0); its batch names the case when it lands; not yet named in the map
|
||||
- R15-02 R15-02: GPU + hardware: R15-02 (1.5x programme package): no package executed; the harness is the lane's (X0, X5); its batch names the case when it lands; not yet named in the map
|
||||
- R15-03 R15-03: GPU + memory analysis: R15-03 (1.5x programme package): no package executed; the harness is the lane's (X1); its batch names the case when it lands; not yet named in the map
|
||||
- R15-04 R15-04: GPU systems: R15-04 (1.5x programme package): no package executed; the harness is the lane's (X2, X3, X4); its batch names the case when it lands; not yet named in the map
|
||||
- R15-05 R15-05: Cryptography: R15-05 (1.5x programme package): no package executed; the harness is the lane's (B1); its batch names the case when it lands; not yet named in the map
|
||||
- R15-06 R15-06: GPU + cryptography: R15-06 (1.5x programme package): no package executed; the harness is the lane's (B3); its batch names the case when it lands; not yet named in the map
|
||||
- R15-07 R15-07: Cryptography + hardware: R15-07 (1.5x programme package): no package executed; the harness is the lane's (B2, B4); its batch names the case when it lands; not yet named in the map
|
||||
- R15-08 R15-08: Independent ASIC team: R15-08 (1.5x programme package): no package executed; the harness is the lane's (X5, B5); its batch names the case when it lands; not yet named in the map
|
||||
- R15-09 R15-09: Measurement + economics: R15-09 (1.5x programme package): no package executed; the harness is the lane's (X6); its batch names the case when it lands; not yet named in the map
|
||||
- R15-10 R15-10: Protocol/security: R15-10 (1.5x programme package): no package executed; the harness is the lane's (B6); its batch names the case when it lands; not yet named in the map
|
||||
|
||||
## Count
|
||||
|
||||
203 automated cases: 91 mapped to a cell, 170 NOT RUN with a reason.
|
||||
213 automated cases: 91 mapped to a cell, 180 NOT RUN with a reason.
|
||||
|
|
|
|||
|
|
@ -17506,6 +17506,8 @@
|
|||
"threshold_status": "PROPOSED - FREEZE BEFORE TEST",
|
||||
"run_status": "NOT RUN",
|
||||
"master_status": "NOT RUN",
|
||||
"run_id": "tv-d02-20261009-01",
|
||||
"evidence_path": "docs/plans/igneum-2.0-master/token-value/phase0/d02/README.md",
|
||||
"updated": "2026-10-09T09:00:20.590Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "TV-01",
|
||||
|
|
@ -17555,15 +17557,13 @@
|
|||
"note": "TV-01: the D02 comparison the decision register asks for (BLOCKED rows B0 to B4 in the README: the founder's pick, TV-01's supply spec, TV-04's budget base, TV-03's cohort inputs, D01's tail wording). TV-03: issuance timing under alternative same-cap schedules and the subsidy a delayed entrant sees (tables 1, 4, 5); arrival times as people wait on TV-03's inputs. TV-04: falling issuance at horizons 1, 5, 10 and 20 and the fee-dependence year at the .25x/1x/4x/10x multiples against a stated 1 percent yardstick, the fee series a parameter (table 6); TV-04's role budget replaces the yardstick. | D02, the same-cap emission comparison (Token Value Phase 0, the D02 lane, 9 October 2026): the node fork's emission rule at release-2.0.2-node a284380b replayed by tools/token-value/d02/d02_emission.py for the current pacing (A), the volume's longer same-cap distribution (B, time axis x2, with x3 and x4 swept) and the lane's smooth-glide alternative (C); years 1, 2, 5, 10 and 20; the node's own EmissionTable prints byte-identical rows (evidence/node-crosscheck.log); the outputs regenerate byte-identically (d02-manifest.sha256). No schedule is picked: the founder's word reads 'the schedule pending evidence'. NOT RUN until the independent panel reads it. Recorded by the CI steward at 09:5x UK from docs/plans/igneum-2.0-master/token-value/phase0/d02/registry-batch-tv-d02-20261009-01.json (master 0673ecf8, sha256 f21ffda7...), the requested map cell added; in progress until the decision's evidence is complete."
|
||||
}
|
||||
},
|
||||
"in_progress_since": "2026-10-09T09:00:20.590Z",
|
||||
"approvals": {
|
||||
"scope_approved": null,
|
||||
"implementation_complete": null,
|
||||
"evidence_reproduced": null,
|
||||
"claim_authorised": null
|
||||
},
|
||||
"run_id": "tv-d02-20261009-01",
|
||||
"evidence_path": "docs/plans/igneum-2.0-master/token-value/phase0/d02/README.md",
|
||||
"in_progress_since": "2026-10-09T09:00:20.590Z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "TV-02",
|
||||
|
|
@ -17666,6 +17666,8 @@
|
|||
"threshold_status": "PROPOSED - FREEZE BEFORE TEST",
|
||||
"run_status": "NOT RUN",
|
||||
"master_status": "NOT RUN",
|
||||
"run_id": "tv-d02-20261009-01",
|
||||
"evidence_path": "docs/plans/igneum-2.0-master/token-value/phase0/d02/README.md",
|
||||
"updated": "2026-10-09T09:00:20.590Z",
|
||||
"evidence_record": {
|
||||
"requirement_id": "TV-03",
|
||||
|
|
@ -17715,15 +17717,13 @@
|
|||
"note": "TV-01: the D02 comparison the decision register asks for (BLOCKED rows B0 to B4 in the README: the founder's pick, TV-01's supply spec, TV-04's budget base, TV-03's cohort inputs, D01's tail wording). TV-03: issuance timing under alternative same-cap schedules and the subsidy a delayed entrant sees (tables 1, 4, 5); arrival times as people wait on TV-03's inputs. TV-04: falling issuance at horizons 1, 5, 10 and 20 and the fee-dependence year at the .25x/1x/4x/10x multiples against a stated 1 percent yardstick, the fee series a parameter (table 6); TV-04's role budget replaces the yardstick. | D02, the same-cap emission comparison (Token Value Phase 0, the D02 lane, 9 October 2026): the node fork's emission rule at release-2.0.2-node a284380b replayed by tools/token-value/d02/d02_emission.py for the current pacing (A), the volume's longer same-cap distribution (B, time axis x2, with x3 and x4 swept) and the lane's smooth-glide alternative (C); years 1, 2, 5, 10 and 20; the node's own EmissionTable prints byte-identical rows (evidence/node-crosscheck.log); the outputs regenerate byte-identically (d02-manifest.sha256). No schedule is picked: the founder's word reads 'the schedule pending evidence'. NOT RUN until the independent panel reads it. Recorded by the CI steward at 09:5x UK from docs/plans/igneum-2.0-master/token-value/phase0/d02/registry-batch-tv-d02-20261009-01.json (master 0673ecf8, sha256 f21ffda7...), the requested map cell added; in progress until the decision's evidence is complete."
|
||||
}
|
||||
},
|
||||
"in_progress_since": "2026-10-09T09:00:20.590Z",
|
||||
"approvals": {
|
||||
"scope_approved": null,
|
||||
"implementation_complete": null,
|
||||
"evidence_reproduced": null,
|
||||
"claim_authorised": null
|
||||
},
|
||||
"run_id": "tv-d02-20261009-01",
|
||||
"evidence_path": "docs/plans/igneum-2.0-master/token-value/phase0/d02/README.md",
|
||||
"in_progress_since": "2026-10-09T09:00:20.590Z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "TV-04",
|
||||
|
|
@ -19910,6 +19910,374 @@
|
|||
"text": "Counting note (main's order, 9 October 2026, by 11:00 UK): the VR rules (40) and TV gates (32) are a supplemental layer over the master's 128 cases, the 18 integration gates and the 44 review regressions, never added to them as independent evidence; no TV gate has executed; every VR rule is PROPOSED and requires ratification by the founder and its owner role; the decisions D01 to D06 are UNAPPROVED, the founder's."
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"code": "R15",
|
||||
"title": "R15: the 1.5x Research Programme packages (proposed; every package NOT RUN; the plan claims no pass)",
|
||||
"source": "docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json (igneum-1p5x-research-plan.md, section 10 'Proposed execution packages' (the table whose rows begin '| R15-'))",
|
||||
"gate": "1.5x programme packages closed",
|
||||
"owner": "the X and B lanes per package; the coordinator confirms the cross-references",
|
||||
"fixtures": [
|
||||
"F0"
|
||||
],
|
||||
"summary": "10 packages from IGNEUM - The 1.5x Research Programme (9 October 2026); PROPOSED; every package NOT RUN; the plan claims no pass; the X and B cross-references on each package are the research-landing hand's reading of the plan against the brief's matrix and track B, for the coordinator to confirm; the lanes block names the owner lanes as the coordinator named them on 9 October",
|
||||
"tests": [
|
||||
{
|
||||
"id": "R15-01",
|
||||
"title": "R15-01: Release + measurement",
|
||||
"owner_capability": "Release + measurement",
|
||||
"required_artefact": "Latest exact pack, physical assumptions, source manifest, current ratio reconciliation",
|
||||
"accept": "No cross-version mixed baseline",
|
||||
"setup": "Package R15-01 of the 1.5x Research Programme (docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json); the required artefact: Latest exact pack, physical assumptions, source manifest, current ratio reconciliation",
|
||||
"procedure": "The lane(s) X0 produce the required artefact; the package's gate is read against it by the independent review.",
|
||||
"evidence": "The run record of the package's lane(s) as recorded through tools/ci/test-record.mjs; every chip figure labelled WITNESS or BOUND; no raw hashes-per-second comparison without an approved equivalence.",
|
||||
"priority": "P0",
|
||||
"profile": "P04",
|
||||
"cadence": "Once per programme round",
|
||||
"method": "Automated + independent review",
|
||||
"source": [
|
||||
"R15"
|
||||
],
|
||||
"gate": "1.5x programme package closed",
|
||||
"owner": "the X0 decider (hash lane) baseline batch",
|
||||
"owner_lane": "X0",
|
||||
"lanes": [
|
||||
"X0"
|
||||
],
|
||||
"cross_reference": [
|
||||
{
|
||||
"lane": "X0",
|
||||
"batch": "the X0 decider (hash lane) baseline batch"
|
||||
}
|
||||
],
|
||||
"manual_page": null,
|
||||
"run_status": "NOT RUN",
|
||||
"plan_status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-02",
|
||||
"title": "R15-02: GPU + hardware",
|
||||
"owner_capability": "GPU + hardware",
|
||||
"required_artefact": "Component power/traffic model and sensitivity analysis",
|
||||
"accept": "No device/whole-machine boundary mismatch",
|
||||
"setup": "Package R15-02 of the 1.5x Research Programme (docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json); the required artefact: Component power/traffic model and sensitivity analysis",
|
||||
"procedure": "The lane(s) X0, X5 produce the required artefact; the package's gate is read against it by the independent review.",
|
||||
"evidence": "The run record of the package's lane(s) as recorded through tools/ci/test-record.mjs; every chip figure labelled WITNESS or BOUND; no raw hashes-per-second comparison without an approved equivalence.",
|
||||
"priority": "P0",
|
||||
"profile": "P04",
|
||||
"cadence": "Once per programme round",
|
||||
"method": "Automated + independent review",
|
||||
"source": [
|
||||
"R15"
|
||||
],
|
||||
"gate": "1.5x programme package closed",
|
||||
"owner": "the X0 decider (hash lane) baseline batch; the X5 lane (co-optimised opponents) batch",
|
||||
"owner_lane": "X0, X5",
|
||||
"lanes": [
|
||||
"X0",
|
||||
"X5"
|
||||
],
|
||||
"cross_reference": [
|
||||
{
|
||||
"lane": "X0",
|
||||
"batch": "the X0 decider (hash lane) baseline batch"
|
||||
},
|
||||
{
|
||||
"lane": "X5",
|
||||
"batch": "the X5 lane (co-optimised opponents) batch"
|
||||
}
|
||||
],
|
||||
"manual_page": null,
|
||||
"run_status": "NOT RUN",
|
||||
"plan_status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-03",
|
||||
"title": "R15-03: GPU + memory analysis",
|
||||
"owner_capability": "GPU + memory analysis",
|
||||
"required_artefact": "Layer-8-off control and held-out cache curves",
|
||||
"accept": "Distinct benefit after best cache adaptation",
|
||||
"setup": "Package R15-03 of the 1.5x Research Programme (docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json); the required artefact: Layer-8-off control and held-out cache curves",
|
||||
"procedure": "The lane(s) X1 produce the required artefact; the package's gate is read against it by the independent review.",
|
||||
"evidence": "The run record of the package's lane(s) as recorded through tools/ci/test-record.mjs; every chip figure labelled WITNESS or BOUND; no raw hashes-per-second comparison without an approved equivalence.",
|
||||
"priority": "P0",
|
||||
"profile": "P04",
|
||||
"cadence": "Once per programme round",
|
||||
"method": "Automated + independent review",
|
||||
"source": [
|
||||
"R15"
|
||||
],
|
||||
"gate": "1.5x programme package closed",
|
||||
"owner": "the X1 lane (window-free control) batch",
|
||||
"owner_lane": "X1",
|
||||
"lanes": [
|
||||
"X1"
|
||||
],
|
||||
"cross_reference": [
|
||||
{
|
||||
"lane": "X1",
|
||||
"batch": "the X1 lane (window-free control) batch"
|
||||
}
|
||||
],
|
||||
"manual_page": null,
|
||||
"run_status": "NOT RUN",
|
||||
"plan_status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-04",
|
||||
"title": "R15-04: GPU systems",
|
||||
"owner_capability": "GPU systems",
|
||||
"required_artefact": "Compaction, exact-fold alternatives and tuning results",
|
||||
"accept": "Byte agreement, real accepted-work savings",
|
||||
"setup": "Package R15-04 of the 1.5x Research Programme (docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json); the required artefact: Compaction, exact-fold alternatives and tuning results",
|
||||
"procedure": "The lane(s) X2, X3, X4 produce the required artefact; the package's gate is read against it by the independent review.",
|
||||
"evidence": "The run record of the package's lane(s) as recorded through tools/ci/test-record.mjs; every chip figure labelled WITNESS or BOUND; no raw hashes-per-second comparison without an approved equivalence.",
|
||||
"priority": "P0",
|
||||
"profile": "P04",
|
||||
"cadence": "Once per programme round",
|
||||
"method": "Automated + independent review",
|
||||
"source": [
|
||||
"R15"
|
||||
],
|
||||
"gate": "1.5x programme package closed",
|
||||
"owner": "the X2 lane (compaction) batch; the X3 lane (Ember tuning) batch; the X4 lane (reg64 alternatives) batch",
|
||||
"owner_lane": "X2, X3, X4",
|
||||
"lanes": [
|
||||
"X2",
|
||||
"X3",
|
||||
"X4"
|
||||
],
|
||||
"cross_reference": [
|
||||
{
|
||||
"lane": "X2",
|
||||
"batch": "the X2 lane (compaction) batch"
|
||||
},
|
||||
{
|
||||
"lane": "X3",
|
||||
"batch": "the X3 lane (Ember tuning) batch"
|
||||
},
|
||||
{
|
||||
"lane": "X4",
|
||||
"batch": "the X4 lane (reg64 alternatives) batch"
|
||||
}
|
||||
],
|
||||
"manual_page": null,
|
||||
"run_status": "NOT RUN",
|
||||
"plan_status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-05",
|
||||
"title": "R15-05: Cryptography",
|
||||
"owner_capability": "Cryptography",
|
||||
"required_artefact": "Exact published MHPoW control, theorem audit, malicious fixtures",
|
||||
"accept": "No improvised sampled-memory soundness",
|
||||
"setup": "Package R15-05 of the 1.5x Research Programme (docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json); the required artefact: Exact published MHPoW control, theorem audit, malicious fixtures",
|
||||
"procedure": "The lane(s) B1 produce the required artefact; the package's gate is read against it by the independent review.",
|
||||
"evidence": "The run record of the package's lane(s) as recorded through tools/ci/test-record.mjs; every chip figure labelled WITNESS or BOUND; no raw hashes-per-second comparison without an approved equivalence.",
|
||||
"priority": "P0",
|
||||
"profile": "P04",
|
||||
"cadence": "Once per programme round",
|
||||
"method": "Automated + independent review",
|
||||
"source": [
|
||||
"R15"
|
||||
],
|
||||
"gate": "1.5x programme package closed",
|
||||
"owner": "track B1 (the exact published MHPoW control)",
|
||||
"owner_lane": "B1",
|
||||
"lanes": [
|
||||
"B1"
|
||||
],
|
||||
"cross_reference": [
|
||||
{
|
||||
"lane": "B1",
|
||||
"batch": "track B1 (the exact published MHPoW control)"
|
||||
}
|
||||
],
|
||||
"manual_page": null,
|
||||
"run_status": "NOT RUN",
|
||||
"plan_status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-06",
|
||||
"title": "R15-06: GPU + cryptography",
|
||||
"owner_capability": "GPU + cryptography",
|
||||
"required_artefact": "Theorem-preserving layout/parallelisation feasibility",
|
||||
"accept": "GPU competitiveness and cheap-enough verification",
|
||||
"setup": "Package R15-06 of the 1.5x Research Programme (docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json); the required artefact: Theorem-preserving layout/parallelisation feasibility",
|
||||
"procedure": "The lane(s) B3 produce the required artefact; the package's gate is read against it by the independent review.",
|
||||
"evidence": "The run record of the package's lane(s) as recorded through tools/ci/test-record.mjs; every chip figure labelled WITNESS or BOUND; no raw hashes-per-second comparison without an approved equivalence.",
|
||||
"priority": "P0",
|
||||
"profile": "P04",
|
||||
"cadence": "Once per programme round",
|
||||
"method": "Automated + independent review",
|
||||
"source": [
|
||||
"R15"
|
||||
],
|
||||
"gate": "1.5x programme package closed",
|
||||
"owner": "track B3 (theorem-preserving GPU feasibility)",
|
||||
"owner_lane": "B3",
|
||||
"lanes": [
|
||||
"B3"
|
||||
],
|
||||
"cross_reference": [
|
||||
{
|
||||
"lane": "B3",
|
||||
"batch": "track B3 (theorem-preserving GPU feasibility)"
|
||||
}
|
||||
],
|
||||
"manual_page": null,
|
||||
"run_status": "NOT RUN",
|
||||
"plan_status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-07",
|
||||
"title": "R15-07: Cryptography + hardware",
|
||||
"owner_capability": "Cryptography + hardware",
|
||||
"required_artefact": "Joint accepted-proof resource frontier with concrete constants",
|
||||
"accept": "No invalid theorem composition",
|
||||
"setup": "Package R15-07 of the 1.5x Research Programme (docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json); the required artefact: Joint accepted-proof resource frontier with concrete constants",
|
||||
"procedure": "The lane(s) B2, B4 produce the required artefact; the package's gate is read against it by the independent review.",
|
||||
"evidence": "The run record of the package's lane(s) as recorded through tools/ci/test-record.mjs; every chip figure labelled WITNESS or BOUND; no raw hashes-per-second comparison without an approved equivalence.",
|
||||
"priority": "P0",
|
||||
"profile": "P04",
|
||||
"cadence": "Once per programme round",
|
||||
"method": "Automated + independent review",
|
||||
"source": [
|
||||
"R15"
|
||||
],
|
||||
"gate": "1.5x programme package closed",
|
||||
"owner": "track B2; track B4 (the accepted-proof resource frontier)",
|
||||
"owner_lane": "B2, B4",
|
||||
"lanes": [
|
||||
"B2",
|
||||
"B4"
|
||||
],
|
||||
"cross_reference": [
|
||||
{
|
||||
"lane": "B2",
|
||||
"batch": "track B2"
|
||||
},
|
||||
{
|
||||
"lane": "B4",
|
||||
"batch": "track B4 (the accepted-proof resource frontier)"
|
||||
}
|
||||
],
|
||||
"manual_page": null,
|
||||
"run_status": "NOT RUN",
|
||||
"plan_status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-08",
|
||||
"title": "R15-08: Independent ASIC team",
|
||||
"owner_capability": "Independent ASIC team",
|
||||
"required_artefact": "Re-optimised SRAM/DRAM/hybrid/recompute/PIM scenarios",
|
||||
"accept": "Full-storage adversary not excluded by price",
|
||||
"setup": "Package R15-08 of the 1.5x Research Programme (docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json); the required artefact: Re-optimised SRAM/DRAM/hybrid/recompute/PIM scenarios",
|
||||
"procedure": "The lane(s) X5, B5 produce the required artefact; the package's gate is read against it by the independent review.",
|
||||
"evidence": "The run record of the package's lane(s) as recorded through tools/ci/test-record.mjs; every chip figure labelled WITNESS or BOUND; no raw hashes-per-second comparison without an approved equivalence.",
|
||||
"priority": "P0",
|
||||
"profile": "P04",
|
||||
"cadence": "Once per programme round",
|
||||
"method": "Automated + independent review",
|
||||
"source": [
|
||||
"R15"
|
||||
],
|
||||
"gate": "1.5x programme package closed",
|
||||
"owner": "the X5 lane (co-optimised opponents) batch; track B5 (re-optimised opponents on fresh state and PIM)",
|
||||
"owner_lane": "X5, B5",
|
||||
"lanes": [
|
||||
"X5",
|
||||
"B5"
|
||||
],
|
||||
"cross_reference": [
|
||||
{
|
||||
"lane": "X5",
|
||||
"batch": "the X5 lane (co-optimised opponents) batch"
|
||||
},
|
||||
{
|
||||
"lane": "B5",
|
||||
"batch": "track B5 (re-optimised opponents on fresh state and PIM)"
|
||||
}
|
||||
],
|
||||
"manual_page": null,
|
||||
"run_status": "NOT RUN",
|
||||
"plan_status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-09",
|
||||
"title": "R15-09: Measurement + economics",
|
||||
"owner_capability": "Measurement + economics",
|
||||
"required_artefact": "Blind cohort confirmation and separate P12 outcomes",
|
||||
"accept": "Strongest credible ratio, not average",
|
||||
"setup": "Package R15-09 of the 1.5x Research Programme (docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json); the required artefact: Blind cohort confirmation and separate P12 outcomes",
|
||||
"procedure": "The lane(s) X6 produce the required artefact; the package's gate is read against it by the independent review.",
|
||||
"evidence": "The run record of the package's lane(s) as recorded through tools/ci/test-record.mjs; every chip figure labelled WITNESS or BOUND; no raw hashes-per-second comparison without an approved equivalence.",
|
||||
"priority": "P0",
|
||||
"profile": "P04",
|
||||
"cadence": "Once per programme round",
|
||||
"method": "Automated + independent review",
|
||||
"source": [
|
||||
"R15"
|
||||
],
|
||||
"gate": "1.5x programme package closed",
|
||||
"owner": "the X6 blind run (CI steward) batch",
|
||||
"owner_lane": "X6",
|
||||
"lanes": [
|
||||
"X6"
|
||||
],
|
||||
"cross_reference": [
|
||||
{
|
||||
"lane": "X6",
|
||||
"batch": "the X6 blind run (CI steward) batch"
|
||||
}
|
||||
],
|
||||
"manual_page": null,
|
||||
"run_status": "NOT RUN",
|
||||
"plan_status": "NOT RUN"
|
||||
},
|
||||
{
|
||||
"id": "R15-10",
|
||||
"title": "R15-10: Protocol/security",
|
||||
"owner_capability": "Protocol/security",
|
||||
"required_artefact": "Network and pool integration, no-rescue exercise, public evidence",
|
||||
"accept": "Correctness and safe operation remain intact",
|
||||
"setup": "Package R15-10 of the 1.5x Research Programme (docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json); the required artefact: Network and pool integration, no-rescue exercise, public evidence",
|
||||
"procedure": "The lane(s) B6 produce the required artefact; the package's gate is read against it by the independent review.",
|
||||
"evidence": "The run record of the package's lane(s) as recorded through tools/ci/test-record.mjs; every chip figure labelled WITNESS or BOUND; no raw hashes-per-second comparison without an approved equivalence.",
|
||||
"priority": "P0",
|
||||
"profile": "P04",
|
||||
"cadence": "Once per programme round",
|
||||
"method": "Automated + independent review",
|
||||
"source": [
|
||||
"R15"
|
||||
],
|
||||
"gate": "1.5x programme package closed",
|
||||
"owner": "track B6 (network, pool and verification budgets)",
|
||||
"owner_lane": "B6",
|
||||
"lanes": [
|
||||
"B6"
|
||||
],
|
||||
"cross_reference": [
|
||||
{
|
||||
"lane": "B6",
|
||||
"batch": "track B6 (network, pool and verification budgets)"
|
||||
}
|
||||
],
|
||||
"manual_page": null,
|
||||
"run_status": "NOT RUN",
|
||||
"plan_status": "NOT RUN"
|
||||
}
|
||||
],
|
||||
"notes": [
|
||||
{
|
||||
"at": "2026-10-09T09:07:24.204Z",
|
||||
"text": "Two rules for every R15 row (main's order, 9 October 2026, by 12:30 UK): (1) every chip figure is labelled WITNESS (a measured or placed figure on a named device or model with its evidence path) or BOUND (a modelled limit with its assumptions named), never a bare number; (2) no work unit is compared by raw hashes per second without an approved equivalence (the accepted-work equivalence the independent review approves for the pair of objects compared). The ten packages cross-reference their X and B lanes; the lane's batch names the case when it lands; the plan claims no pass and every package reads NOT RUN until its gate is read against the required artefact."
|
||||
},
|
||||
{
|
||||
"at": "2026-10-09T09:07:39.321Z",
|
||||
"text": "Two rules for every R15 row (main's order, 9 October 2026, by 12:30 UK): (1) every chip figure is labelled WITNESS (a measured or placed figure on a named device or model with its evidence path) or BOUND (a modelled limit with its assumptions named), never a bare number; (2) no work unit is compared by raw hashes per second without an approved equivalence (the accepted-work equivalence the independent review approves for the pair of objects compared). The ten packages cross-reference their X and B lanes; the lane's batch names the case when it lands; the plan claims no pass and every package reads NOT RUN until its gate is read against the required artefact."
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"profiles": {
|
||||
|
|
|
|||
|
|
@ -177,6 +177,10 @@ merge_with_batches() { # <tip> <sha> <msg> [branch]: in a worktree at <tip> me
|
|||
node tools/ci/token-value-suite.mjs --write >/dev/null || { echo "merge-to-master: the VR and TV suites do not regenerate on the merged tree" >&2; git merge --abort 2>/dev/null; return 1; }
|
||||
echo "merge-to-master: regenerated the VR and TV suites on master's registry"
|
||||
fi
|
||||
if [ -f tools/ci/r15-suite.mjs ] && [ -f docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json ]; then
|
||||
node tools/ci/r15-suite.mjs --write >/dev/null || { echo "merge-to-master: the R15 suite does not regenerate on the merged tree" >&2; git merge --abort 2>/dev/null; return 1; }
|
||||
echo "merge-to-master: regenerated the R15 suite on master's registry"
|
||||
fi
|
||||
for f in $BATCHES; do
|
||||
[ "$f" = . ] && continue
|
||||
git checkout -q "$( [ "$mode" = branch ] && echo "$tip" || echo "$sha" )" -- "$f"
|
||||
|
|
@ -381,7 +385,7 @@ bash tools/ci/rule24-crate-gate.sh "$BASE" "$SHA" || { echo "merge-to-master: RE
|
|||
REGISTRY_PATH="${REGISTRY_PATH:-docs/plans/igneum-2.0-test-registry.json}"
|
||||
BATCHES=$(git diff --name-only --diff-filter=AM "$BASE" "$SHA" -- tools/ci/batches/ | grep -E '\.json$' || true)
|
||||
NOTES=$(git diff --name-only --diff-filter=AM "$BASE" "$SHA" -- tools/ci/notes/ | grep -E '\.json$' || true) # {suite, text}, replayed through test-record.mjs --note-file
|
||||
REVGEN=0; git diff --quiet "$BASE" "$SHA" -- tools/ci/review-suite.mjs tools/ci/int-suite.mjs tools/ci/token-value-suite.mjs docs/analysis/review-2026-10-08-b/findings.json docs/analysis/review-2026-10-08-b/dispatch.md docs/plans/igneum-2.0-master/traceability.json docs/plans/igneum-2.0-master/token-value/rules-and-gates.json 2>/dev/null || REVGEN=1 # the REV and INT suites regenerate on the merged tree
|
||||
REVGEN=0; git diff --quiet "$BASE" "$SHA" -- tools/ci/review-suite.mjs tools/ci/int-suite.mjs tools/ci/token-value-suite.mjs tools/ci/r15-suite.mjs docs/analysis/review-2026-10-08-b/findings.json docs/analysis/review-2026-10-08-b/dispatch.md docs/plans/igneum-2.0-master/traceability.json docs/plans/igneum-2.0-master/token-value/rules-and-gates.json docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json 2>/dev/null || REVGEN=1 # the REV and INT suites regenerate on the merged tree
|
||||
[ -n "$NOTES" ] || [ "$REVGEN" = 1 ] && BATCHES="${BATCHES:-.}" # the registry is rebuilt from master's copy whenever any transform rides
|
||||
RULE26_SKIP_PATHS=""; [ -n "$BATCHES" ] && RULE26_SKIP_PATHS="$REGISTRY_PATH"
|
||||
# the harness map page is generated from tools/ci/test-map.json (test-map-doc.mjs); a branch that changed the map regenerated the
|
||||
|
|
|
|||
4
tools/ci/notes/r15-rules-20261009.json
Normal file
4
tools/ci/notes/r15-rules-20261009.json
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"suite": "R15",
|
||||
"text": "Two rules for every R15 row (main's order, 9 October 2026, by 12:30 UK): (1) every chip figure is labelled WITNESS (a measured or placed figure on a named device or model with its evidence path) or BOUND (a modelled limit with its assumptions named), never a bare number; (2) no work unit is compared by raw hashes per second without an approved equivalence (the accepted-work equivalence the independent review approves for the pair of objects compared). The ten packages cross-reference their X and B lanes; the lane's batch names the case when it lands; the plan claims no pass and every package reads NOT RUN until its gate is read against the required artefact."
|
||||
}
|
||||
72
tools/ci/r15-suite.mjs
Normal file
72
tools/ci/r15-suite.mjs
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
#!/usr/bin/env node
|
||||
// The R15 suite of the acceptance registry (main's order through the coordinator, 9 October 2026, by 12:30 UK): the ten packages of
|
||||
// "IGNEUM - The 1.5x Research Programme", generated from docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json, never by hand;
|
||||
// --check refuses drift. Every row NOT RUN, method "Automated + independent review", the package's gate text verbatim as accept, its
|
||||
// owner capability and required artefact carried, its X and B lanes as cross-references (the lane's batch names the case when it lands).
|
||||
// Two rules ride the suite's note (tools/ci/notes): every chip figure is labelled WITNESS or BOUND, and no work unit is compared by raw
|
||||
// hashes per second without an approved equivalence.
|
||||
// node tools/ci/r15-suite.mjs --file <packages.json> [--write | --check] node tools/ci/r15-suite.mjs --self-test
|
||||
import fs from 'node:fs'; import path from 'node:path';
|
||||
const args = process.argv.slice(2); const arg = (n) => { const i = args.indexOf(n); return i >= 0 ? args[i + 1] : undefined; };
|
||||
const ROOT = process.env.TEST_RECORD_ROOT || path.resolve(path.dirname(new URL(import.meta.url).pathname), '..', '..');
|
||||
const REG = process.env.TEST_REGISTRY || path.join(ROOT, 'docs/plans/igneum-2.0-test-registry.json');
|
||||
const MAP = process.env.TEST_MAP || path.join(ROOT, 'tools/ci/test-map.json');
|
||||
const SRC = 'docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json';
|
||||
export const LANE_BATCH_HINT = { X0: 'the X0 decider (hash lane) baseline batch', X1: 'the X1 lane (window-free control) batch', X2: 'the X2 lane (compaction) batch', X3: 'the X3 lane (Ember tuning) batch', X4: 'the X4 lane (reg64 alternatives) batch', X5: 'the X5 lane (co-optimised opponents) batch', X6: 'the X6 blind run (CI steward) batch', B1: 'track B1 (the exact published MHPoW control)', B2: 'track B2', B3: 'track B3 (theorem-preserving GPU feasibility)', B4: 'track B4 (the accepted-proof resource frontier)', B5: 'track B5 (re-optimised opponents on fresh state and PIM)', B6: 'track B6 (network, pool and verification budgets)' };
|
||||
|
||||
export function suite(d) {
|
||||
const tests = (d.packages || []).map((p) => ({ id: p.id, title: `${p.id}: ${p.owner_capability || ''}`.trim(), owner_capability: p.owner_capability || '', required_artefact: p.required_artefact || '',
|
||||
accept: p.gate || '', setup: `Package ${p.id} of the 1.5x Research Programme (${SRC}); the required artefact: ${p.required_artefact || ''}`, procedure: `The lane(s) ${(p.lanes || []).join(', ')} produce the required artefact; the package's gate is read against it by the independent review.`,
|
||||
evidence: 'The run record of the package\'s lane(s) as recorded through tools/ci/test-record.mjs; every chip figure labelled WITNESS or BOUND; no raw hashes-per-second comparison without an approved equivalence.',
|
||||
priority: 'P0', profile: 'P04', cadence: 'Once per programme round', method: 'Automated + independent review', source: ['R15'], gate: '1.5x programme package closed',
|
||||
owner: (p.lanes || []).map((l) => LANE_BATCH_HINT[l] || l).join('; ') || 'unassigned', owner_lane: (p.lanes || []).join(', ') || 'unassigned', lanes: (p.lanes || []).slice(), cross_reference: (p.lanes || []).map((l) => ({ lane: l, batch: LANE_BATCH_HINT[l] || l })),
|
||||
manual_page: null, run_status: 'NOT RUN', plan_status: p.status || 'NOT RUN' }));
|
||||
return { code: 'R15', title: 'R15: the 1.5x Research Programme packages (proposed; every package NOT RUN; the plan claims no pass)', source: `${SRC} (${d.source || ''})`, gate: '1.5x programme packages closed', owner: 'the X and B lanes per package; the coordinator confirms the cross-references', fixtures: ['F0'],
|
||||
summary: `${tests.length} packages from ${d.document || 'the plan'}; ${d.status || ''}; ${d.lane_map_note || ''}`, tests };
|
||||
}
|
||||
const LIVE = ['run_status', 'run_id', 'evidence_path', 'updated', 'evidence_record', 'evidence_records', 'blocked_on', 'method_recorded', 'in_progress_since', 'deferral_note', 'approvals'];
|
||||
export function merge(reg, s) {
|
||||
const old = (reg.suites || []).find((x) => x.code === s.code); const live = new Map((old?.tests || []).map((t) => [t.id, t]));
|
||||
for (const t of s.tests) { const o = live.get(t.id); if (o) for (const k of LIVE) if (k in o) t[k] = o[k]; }
|
||||
if (old?.notes) s.notes = old.notes;
|
||||
reg.suites = [...(reg.suites || []).filter((x) => x.code !== s.code), s]; return reg;
|
||||
}
|
||||
const canon = (o) => JSON.stringify(o, (k, v) => (v && typeof v === 'object' && !Array.isArray(v)) ? Object.fromEntries(Object.keys(v).sort().map((x) => [x, v[x]])) : v);
|
||||
export function mapReasons(map, s) {
|
||||
const mapped = new Set(Object.values(map.cells || {}).flatMap((c) => c.cases || [])); map.not_run = map.not_run || {}; let n = 0;
|
||||
for (const t of s.tests) { if (mapped.has(t.id)) { delete map.not_run[t.id]; continue; } map.not_run[t.id] = `${t.id} (1.5x programme package): no package executed; the harness is the lane's (${t.owner_lane}); its batch names the case when it lands; not yet named in the map`; n++; }
|
||||
return n;
|
||||
}
|
||||
function stripLive(s) { return { ...s, notes: undefined, tests: s.tests.map((t) => { const c = { ...t }; for (const k of LIVE) delete c[k]; return c; }) }; }
|
||||
|
||||
if (args.includes('--self-test')) {
|
||||
let fails = 0;
|
||||
const d = { document: 'doc', source: 'sec 10', status: 'PROPOSED', lane_map_note: 'n', packages: [
|
||||
{ id: 'R15-01', owner_capability: 'Baseline freeze', required_artefact: 'pins', gate: 'No cross-version mixed baseline', lanes: ['X0'], status: 'NOT RUN' },
|
||||
{ id: 'R15-04', owner_capability: 'Compaction', required_artefact: 'rows', gate: 'Byte agreement, real accepted-work savings', lanes: ['X2', 'X3', 'X4'], status: 'NOT RUN' } ] };
|
||||
const s = suite(d);
|
||||
if (!(s.code === 'R15' && s.tests.length === 2 && s.tests[0].accept === 'No cross-version mixed baseline' && s.tests[0].run_status === 'NOT RUN' && s.tests[0].owner_lane === 'X0' && s.tests[1].lanes.join() === 'X2,X3,X4' && s.tests[1].cross_reference.length === 3 && /X3 lane/.test(s.tests[1].owner))) { console.log('self-test failed: the R15 rows do not carry the gate verbatim, NOT RUN, the lanes and their cross-references'); fails = 1; }
|
||||
const reg = { suites: [{ code: 'R15', notes: [{ text: 'n' }], tests: [{ id: 'R15-01', run_status: 'NOT RUN', in_progress_since: 't', evidence_records: { 'c:x': { decision: 'PASS' } }, run_id: 'r' }] }] };
|
||||
merge(reg, s); const t = reg.suites[0];
|
||||
if (!(t.tests[0].in_progress_since === 't' && t.tests[0].evidence_records?.['c:x']?.decision === 'PASS' && t.tests[1].run_status === 'NOT RUN' && t.notes?.length === 1)) { console.log('self-test failed: regenerating lost live fields or notes'); fails = 1; }
|
||||
const map = { cells: { c: { cases: ['R15-01'] } }, not_run: {} }; if (!(mapReasons(map, s) === 1 && !map.not_run['R15-01'] && /X2, X3, X4/.test(map.not_run['R15-04']))) { console.log('self-test failed: the map reasons for unmapped packages'); fails = 1; }
|
||||
if (canon(stripLive(suite(d))) !== canon(stripLive(s))) { console.log('self-test failed: the generator is not deterministic'); fails = 1; }
|
||||
if (!fails) console.log('self-test passed: one R15 row per package (the gate verbatim as accept, NOT RUN, the owner capability and artefact, the lanes as cross-references); regenerating keeps live fields and notes; unmapped packages get their map reasons; the output is deterministic');
|
||||
process.exit(fails);
|
||||
}
|
||||
const file = arg('--file') ? path.resolve(arg('--file')) : path.join(ROOT, SRC);
|
||||
if (!fs.existsSync(file)) { console.error(`r15-suite: no ${file}`); process.exit(2); }
|
||||
const d = JSON.parse(fs.readFileSync(file, 'utf8')); const s = suite(d);
|
||||
const reg = JSON.parse(fs.readFileSync(REG, 'utf8')); const map = fs.existsSync(MAP) ? JSON.parse(fs.readFileSync(MAP, 'utf8')) : { cells: {}, not_run: {} };
|
||||
if (args.includes('--check')) {
|
||||
const cur = (reg.suites || []).find((x) => x.code === 'R15');
|
||||
if (!cur) { console.error('r15-suite: the registry has no R15 suite; run --write'); process.exit(1); }
|
||||
if (canon(stripLive(cur)) !== canon(stripLive(s))) { console.error('r15-suite: the registry\'s R15 suite differs from the generator\'s output; run --write and commit'); process.exit(1); }
|
||||
console.log(`r15-suite: the R15 suite (${s.tests.length} packages) matches ${SRC}`); process.exit(0);
|
||||
}
|
||||
if (args.includes('--write')) {
|
||||
merge(reg, s); const n = mapReasons(map, s);
|
||||
fs.writeFileSync(REG, JSON.stringify(reg, null, 2) + '\n'); fs.writeFileSync(MAP, JSON.stringify(map, null, 2) + '\n');
|
||||
console.log(`r15-suite: R15 written (${s.tests.length} packages, every one NOT RUN); ${n} NOT RUN reasons in the map`); process.exit(0);
|
||||
}
|
||||
console.error('usage: r15-suite.mjs --file <packages.json> [--write | --check] | --self-test'); process.exit(2);
|
||||
|
|
@ -5,3 +5,4 @@ node tools/ci/review-suite.mjs --self-test | grep -v '^self-test passed' || true
|
|||
node tools/ci/review-suite.mjs --findings docs/analysis/review-2026-10-08-b/findings.json --dispatch docs/analysis/review-2026-10-08-b/dispatch.md --prefix REV --check
|
||||
if [ -f docs/plans/igneum-2.0-master/traceability.json ]; then node tools/ci/int-suite.mjs --self-test | grep -v '^self-test passed' || true; node tools/ci/int-suite.mjs --traceability docs/plans/igneum-2.0-master/traceability.json --check; fi
|
||||
if [ -f docs/plans/igneum-2.0-master/token-value/rules-and-gates.json ]; then node tools/ci/token-value-suite.mjs --self-test | grep -v '^self-test passed' || true; node tools/ci/token-value-suite.mjs --check; fi
|
||||
if [ -f docs/plans/igneum-2.0-master/1p5x/research-plan/packages.json ]; then node tools/ci/r15-suite.mjs --self-test | grep -v '^self-test passed' || true; node tools/ci/r15-suite.mjs --check; fi
|
||||
|
|
|
|||
|
|
@ -941,6 +941,16 @@
|
|||
"TV-29": "TV-29 (token value gate, scope CORE): no gate executed; the harness is the owner role's (Protocol + operations); a supplemental layer, never counted as independent evidence; not yet named in the map",
|
||||
"TV-30": "TV-30 (token value gate, scope CORE): no gate executed; the harness is the owner role's (GPU + measurement); a supplemental layer, never counted as independent evidence; not yet named in the map",
|
||||
"TV-31": "TV-31 (token value gate, scope CORE): no gate executed; the harness is the owner role's (Qualified counsel); a supplemental layer, never counted as independent evidence; not yet named in the map",
|
||||
"TV-32": "TV-32 (token value gate, scope LEADERSHIP CLAIM): no gate executed; the harness is the owner role's (Independent acceptance panel); a supplemental layer, never counted as independent evidence; not yet named in the map"
|
||||
"TV-32": "TV-32 (token value gate, scope LEADERSHIP CLAIM): no gate executed; the harness is the owner role's (Independent acceptance panel); a supplemental layer, never counted as independent evidence; not yet named in the map",
|
||||
"R15-01": "R15-01 (1.5x programme package): no package executed; the harness is the lane's (X0); its batch names the case when it lands; not yet named in the map",
|
||||
"R15-02": "R15-02 (1.5x programme package): no package executed; the harness is the lane's (X0, X5); its batch names the case when it lands; not yet named in the map",
|
||||
"R15-03": "R15-03 (1.5x programme package): no package executed; the harness is the lane's (X1); its batch names the case when it lands; not yet named in the map",
|
||||
"R15-04": "R15-04 (1.5x programme package): no package executed; the harness is the lane's (X2, X3, X4); its batch names the case when it lands; not yet named in the map",
|
||||
"R15-05": "R15-05 (1.5x programme package): no package executed; the harness is the lane's (B1); its batch names the case when it lands; not yet named in the map",
|
||||
"R15-06": "R15-06 (1.5x programme package): no package executed; the harness is the lane's (B3); its batch names the case when it lands; not yet named in the map",
|
||||
"R15-07": "R15-07 (1.5x programme package): no package executed; the harness is the lane's (B2, B4); its batch names the case when it lands; not yet named in the map",
|
||||
"R15-08": "R15-08 (1.5x programme package): no package executed; the harness is the lane's (X5, B5); its batch names the case when it lands; not yet named in the map",
|
||||
"R15-09": "R15-09 (1.5x programme package): no package executed; the harness is the lane's (X6); its batch names the case when it lands; not yet named in the map",
|
||||
"R15-10": "R15-10 (1.5x programme package): no package executed; the harness is the lane's (B6); its batch names the case when it lands; not yet named in the map"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue