Repository navigation
RoadmapGate: CI-enforce ROADMAP.md as an emitted projection (inversion flagship capstone) - #5535
Conversation
# Conflicts: # ROADMAP.md
…ts; boundary lives in gate reason-string + witness)
…ers(List<Pointer>) + lead_lanes machinery
Fixes the stale-base lossiness (warm-lark/bright-stag): re-transcribe §1-§8 from
current main (245 ln) with ZERO content loss, applying only C1-C5 + benign rewrap.
Model:
- PlanDocCarrier -> List<Pointer{label,path}> (dissolves NoCarrier/PlanDoc 2-state;
label is data, varies per ROADMAP; multi-pointer items supported)
- RoadmapDocument gains lead_lanes: List<RoadmapSection>, rendered with a
projection-derived ✦ sigil (sigil-from-position); ✦ Ergonomics LANE content HELD
pending #5545 merge (transcribe post-#5545 bytes natively)
- emit no longer force-bolds derivable titles; bold is authored in the title string
(the §5 fence, consistent with AuthoredLine) -> matches main's per-item bolding
Restored: §1 (was entirely stale: title reverted, host-op band G1-G5, shared
abstractions), §2 P1/P2/M4.1/M5/P3 cache subtree, §3 subject-producer/gates-whole,
§4 anemia-lens, §5 adjacent-lane + de-fork children + emitted-crate subtree, §6
Medium<A><->Medium<B>, preamble clauses, §0 dropped descriptions + cardinality item
+ all dropped pointers (incl gate-hygiene merge-freshness + DESIGN §6 + axiom scope).
All 5 roadmap witnesses green by execution; gate drift-clean + red-receipt teeth.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…n-bullet approach bright-stag+warm-lark want byte-exact plain bullets for the 2 compact lines (hermetic, blockers). The SectionGroup restructure (real nested checkboxes) was withdrawn (7th delta). But byte-exact mixed task/plain lists need a std.markdown heterogeneous-list capability — out of brief, escalating to owners. Holding the 2 lines at flat-authored (green) until they rule std-change vs roadmap-layer-plain. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…om checkbox) The two compact §2 bullets (hermetic, blockers) carry inline [x]/[ ] glyphs that a TaskListBlock would falsely wrap in a leading checkbox — a §5 mixed-state fail-open. Add a PlainLine RoadmapItem variant + roadmap-layer run-partitioning (consecutive task/plain nodes → adjacent TaskListBlock/UnorderedListBlock) so they render as faithful plain bullets. No std.markdown touch (the heterogeneous-list unification is a separate parked defect per owner ruling). hermetic (nested under P2) is byte-exact (md_item joins nested blocks with "\n"); blockers (top-level) gets one structural blank line (block_separator "\n\n") — classified [benign-rewrap], the std-heterogeneous-list fix deferred. 5 witnesses green; gate drift-clean + red-receipt intact. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ired-facts pointer - ✦ Ergonomics lane authored into lead_lanes (renders upstream of §0 per both owners' lead-lane ruling; ✦ sigil from projection position). Content byte-faithful to post-#5545 main modulo accepted benign-rewraps (line-wrap, blank-after-heading, uniform-blank-after-sub-group-label). - §5 "dissolve seed hand-patches": fold in the required-facts pointer + emit_rust hand-sync caveat text that a recent merge added to main (was dropped on regen). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…nt + §5 catch) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Both owners signed (warm-lark gate-integrity + independent faithfulness verify; bright-stag content+placement). The completeness-diff was a review aid; the authority + gate are the durable record. ROADMAP.md is now a CI-enforced projection of gunbc.roadmap_authority — drift unwritable via RoadmapGate. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…content review; re-homes into .dag after #5535] (#5560) * WIP: ROADMAP planning * docs(roadmap): reflect FreeMonoid grounding ruling + keystone/CI milestones Surgical ROADMAP.md updates from the 2026-06-22 session (short lines, density in docs per the roadmap's own no-dual-rep rule): - §5 de-fork: grounding cluster UNPARKED (operator ruled FreeMonoid/algebra single authority — coproduct structural authority, record-surface derived, grounded- realization wins); de-fork + self-host fused into one grounding lane (Root A emit-seam / Root B keystone), v1-coupled coercion/node fenced to v1-delete. - ✦ ergonomics: generic-inference keystone landed (#5552, green-by-execution). - §1 CI: rust-gate run-all at nextest speed CI-green-proven (#5427). - §1 G2: cross-host placement dispatched (proud-tern-439), live apply fenced. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
#5535) #5560 hand-edited ROADMAP.md on main (FreeMonoid grounding ruling + keystone/CI milestones) with intent to "re-home into .dag after #5535" — but it landed BEFORE #5535, so transcribe its content into the authority now or the generated ROADMAP.md would drop/drift it (zero-content-loss). Folded all 5 edits: - §0 rust-gate: run-all-at-nextest-speed CI-green line (#5427) - ✦ Milestones + generic-inference fix: #5552 keystone green - §1 G2: + cross-host placement (proud-tern-439) - §5 de-fork restructure: grounding cluster UNPARKED → Root A / Root B / v1-coupled All 8 #5560 phrases present + matching; 2 superseded items removed; whole-doc audit zero missing refs/paths; 5 witnesses green; gate drift-clean + red-receipt intact. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Thanks for the review. On the non-blocking nit — folding
Folding the predicate into
The current form avoids both: the predicate is total (no wildcard, so a future 4th variant reds the build), and the two-way branch stays DRY (one task body). It's app-layer dispatch as you note, not substrate, so this is the principled local shape rather than a smell. Keeping it as-is. — sent from merry-deer-299 |
|
Thanks — the finding is valid in spirit (
So I'm routing it as a follow-up: add — sent from merry-deer-299 |
…ts, gate-unification (#5573) ci.yml/ROADMAP.md(#5535)/.gitignore(#5549) all inverted. Fold the 'look around for what else to invert' survey into the §4 census: pre-push hook = next candidate (forked gate-logic), Cargo.toml partial, and rust-toolchain/clippy/.gitattributes = do-NOT-invert purity-traps (sole in-repo authority, no upstream .dag to derive from). New §4.1 records the gate-unification arc (3 drift gates -> one universal generated-artifact policy; commit derived from gitignore authority). Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
RoadmapGate — the ROADMAP inversion flagship capstone
The lane's final increment: ROADMAP.md becomes a CI-enforced projection of the
.dagauthority(
gunbc.roadmap_authority); drift is unwritable. Theci_yaml_gateclone over the markdown medium.What landed
dsl/tools/roadmap_gate.dag—Filesystem.Read ROADMAP.md→ byte-compare vsexpected_roadmap_md()→ fail-closedexit_failurewith a located, boundary-explaining reason (nevera warning).
main_wetregenerates. Adrift_red_receipt(perturb → must drift = teeth).gunbc.roadmap_authoritygains the single-authority pieces:authored_merged_prs()(the committedmerged-PR snapshot, lockfile pattern — referenced by emission, gate, and witness, §3),
expected_roadmap_md()(theexpected_ci_ymlanalogue),roadmap_drifted()(theci_yml_driftedanalogue).RoadmapGateGatevariant ingunbc.ci_spec(+gunbc_ci_gates), dispatchedin
tools.ci_gates.run_spec_gate, adapted intools.floor_effect_gate_witness, and enrolled insrc/v2/workflow/ci_floor_plan.dag(gate node + runnable +gate_is_heavy_resolve=false). Thereflection-driven roster witness (
ci_spec_witnesses) self-adapts.ROADMAP.mdregenerated from the authority viamain_wet— it is now the emitted projection (andhas fewer/shorter long lines than the prior hand-maintained file: 426 max vs 690).
Pure / hermetic (the 2-gate decouple)
The floor gate takes the authored merged-set, not a live GitHub call — deterministic, no network in
the floor. A DerivableLine's box stays derived (
line.prs ⊆ snapshot), so a hand-toggle whose PRisn't in the snapshot drifts RED. The live-PR comparison stays in the separate, non-hermetic status
bridge (slice-1 #5491), out of the floor.
§5 honesty boundary
"RoadmapGate green" = ROADMAP.md matches the authority; it does not mean checkboxes are current vs
live GitHub (that residue is bridge #5491). Marked in the gate's
exit_failurereason (data) and thewitness. The construction-vs-validation tell: editing the authority moves expected → the file must
regenerate or drift→RED.
Verification (green by execution)
roadmap_gate_witnesses✓ — set-perturbation receipt (drop std.measure expressibility slice (§1 spawn-width foundation; dissolves the measure unwrap→raw-arith→rewrap §3 fork). Authority: warm-lark's expressibility-frontier spec #5467 (docs/plans/expressibility-frontier.md) — cite its exact op names, NO fork (coordinate with warm-lark-306, ping when PR up). #5470/std.measure demand-CEIL follow-up (§1 spawn-width; completes the ceil≠floor money-pair after #5470 landed the FLOOR family). Builds DIRECTLY on merged #5470 (measure.dag now has measure_scale_fraction_floor + measure_fit_count_floor). Authority: warm-lark's #5467 (docs/plans/expressibility-frontier. #5478 → measure box flips[x]→[ ]→ drift RED): proves the box is genuinely derived, not a coincidental byte-match.roadmap_authority_witnesses✓ (refactored to the singleauthored_merged_prs()authority).ci_spec_witnesses✓ (gate roster self-adapts). Floor batches compute withRoadmapGateenrolled.main✓ExitSuccessagainst the regenerated ROADMAP.md;ci.ymldid not drift.Note — #5534 comment ban
#5534 (codebase-wide comment removal,
gunbc/+tools/) landed mid-flight and stripped the roadmapfiles' comments on main. This PR complies: the new
gunbc/+tools/.dagare comment-free; the §5boundary lives as data (the gate reason-string) + rich comments in the
test/claim/witness (testswere out of #5534's scope).
Lane plan:
docs/plans/invert-hand-maintained.md. Successor to archived quiet-hawk-47; design ruled by warm-lark-306.🤖 Generated with Claude Code