Epic of the RHLGA-1 release plan (docs/rhl/rhlga-1-plan.md), drafted 2026-09-23 by the ruchy session from the operator's order relayed verbatim by the cop (aprender-cf). Pattern: apex #130–#134 (one milestone per tag, one epic per milestone).
v5.0.0 — "RHL ships, the test suite tells the truth, the release is real"
The first non-beta 5.x. RHL-001 (the high-level language interface) ships labelled experimental; every GA criterion of docs/specifications/ruchy-5.0-sovereign-platform.md §10 is MET under the readings ruled in the plan (§2 Q3, §5).
Rows are roadmap ids (docs/roadmaps/roadmap.yaml) or issues. done_when is the row's own falsifier. A row is DONE only when its merged sha is an ancestor of origin/main.
| row / ticket |
done_when |
state |
| RHL-16, RHL-2 (#235), RHL-3 (#236) |
cargo test --lib rhl |
merged |
| G2 part 1 (#237): RUNMAIN-1, TESTRUN-1, UNDEFCALL-1, ENUMEQ-1, TRANSPILENOT-1/CMP-1, CLASSNEW-1, METHODS-1, … |
each ticket's test file |
merged |
| RHL-4, RHL-5, RHL-6, RHL-9, MCPTOOLS-1 |
ruchy test passes all 12 v2 programs; pv validate on each unit contract; tests/rhl_mcp.rs stdio e2e |
built, PR next |
G2 part 2: the remaining 65 workspace failures; --all-features doctests; JIT match; the MCP handler hang |
cargo test --workspace --all-features --no-fail-fast exit 0 |
open |
| RHL-7 (F7), RHL-8 (F8) measurements, published whatever they say |
docs/rhl/reports/f7.json, f8.json with verdict and seed |
open |
| G1/G3: all 13 GA criteria measured |
jq -e 'length==13 and all(.[]; .status=="MET")' criteria.json |
open |
| #224 (lang-next spec), #176, #195, #163, #147, #155, #140 |
each issue's reproduction, run on the release candidate |
open |
Release gates
| gate |
command |
positive control (must go RED) |
| CRUX: known answer on the RELEASED binary |
ruchy test docs/rhl/breaks/v2/valid/01-gx10-disk-watch.rhl prints example "gx10 disk watch example" … ok; ruchy run of the RUNMAIN-1 two-function file prints y |
a copy with then ticket count is 0 must exit 1, naming the example |
| CRUX: F3 round trip |
ruchy convert RHL → YAML → RHL is byte-identical over the corpus |
a one-token change must change the YAML bytes |
| dogfood |
make pre-release-gate (receipt go) plus a fresh-CARGO_HOME cargo install ruchy --version 5.0.0 printing ruchy 5.0.0 |
the gate's own planted failures (release-known-breaks.txt) must fail it |
Operator decisions: none outstanding; plan questions Q1–Q6 were ruled by quorum (plan §5), and the publish is authorised by the operator's directive.
Epic of the RHLGA-1 release plan (
docs/rhl/rhlga-1-plan.md), drafted 2026-09-23 by the ruchy session from the operator's order relayed verbatim by the cop (aprender-cf). Pattern: apex #130–#134 (one milestone per tag, one epic per milestone).v5.0.0 — "RHL ships, the test suite tells the truth, the release is real"
The first non-beta 5.x. RHL-001 (the high-level language interface) ships labelled experimental; every GA criterion of
docs/specifications/ruchy-5.0-sovereign-platform.md§10 is MET under the readings ruled in the plan (§2 Q3, §5).Rows are roadmap ids (
docs/roadmaps/roadmap.yaml) or issues. done_when is the row's own falsifier. A row is DONE only when its merged sha is an ancestor oforigin/main.cargo test --lib rhlruchy testpasses all 12 v2 programs;pv validateon each unit contract;tests/rhl_mcp.rsstdio e2e--all-featuresdoctests; JITmatch; the MCP handler hangcargo test --workspace --all-features --no-fail-fastexit 0docs/rhl/reports/f7.json,f8.jsonwith verdict and seedjq -e 'length==13 and all(.[]; .status=="MET")' criteria.jsonRelease gates
ruchy test docs/rhl/breaks/v2/valid/01-gx10-disk-watch.rhlprintsexample "gx10 disk watch example" … ok;ruchy runof the RUNMAIN-1 two-function file printsythen ticket count is 0must exit 1, naming the exampleruchy convertRHL → YAML → RHL is byte-identical over the corpusmake pre-release-gate(receiptgo) plus a fresh-CARGO_HOMEcargo install ruchy --version 5.0.0printingruchy 5.0.0release-known-breaks.txt) must fail itOperator decisions: none outstanding; plan questions Q1–Q6 were ruled by quorum (plan §5), and the publish is authorised by the operator's directive.