Skip to content

ROADMAP slice-2 step-3a: whole-document projection + pure golden witness - #5520

Merged
briansrls merged 17 commits into
mainfrom
session/quiet-hawk-47
Jun 22, 2026
Merged

briansrls merged 17 commits into
mainfrom
session/quiet-hawk-47

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Jun 22, 2026 •

Copy link
Copy Markdown
Contributor

ROADMAP slice-2 step-3a: the whole-document projection (pure layer)

Widens the per-section projection (step-2, project_roadmap_section) to the whole ROADMAP — the markdown
analogue of ci.yml's project_workflow_to_yaml(ci_workflow). The .dag is the authority; ROADMAP.md
is its emitted projection.

  • gunbc.roadmap_document:
    • RoadmapSection { title, nodes, edges } — minted (O3 DFS): a ## section is a separate
      presentation axis (it carries authored prose, a plan pointer, and multiple sub-grouped lists), not a
      single work-node + flat subtree. Its work content is the existing RoadmapNode/RoadmapEdge graph,
      reused whole.
    • RoadmapDocument { preamble, sections } — earns its keep over a bare List via the preamble; kept
      distinct from std.markdown.MarkdownDocument (authority vs medium, §3).
    • project_roadmap_to_markdown(doc, merged) -> MarkdownDocument — a pure fold: preamble blocks, then
      each section's blocks via the existing project_roadmap_section (no re-coin). The checkbox boxes are
      derived from each line's binding (CompletesIff → from the merged set; HandChecked → authored).

Proof by execution

dsl/test/claim/roadmap_document_test.dag (auto-enrolled in the CI floor): a byte-exact golden
(the ci.yml expected_ci_yml shape over the markdown medium) over a synthetic 2-section authority,
plus a drift receipt (clean matches the golden; a perturbed merged set diverges → the CompletesIff
box is genuinely derived, not baked) and discriminating contains-checks (preamble, both H2s, authored
box + plan link, [x]/[ ] flip).

Scope / next

SCAFFOLD (dissolution: the v2 Markdown TargetModel once self-host gives one-grammar-both-ways). This is
the pure projection layer; the effectful RoadmapGate (read the real ROADMAP.md, byte-compare) and
the full real-ROADMAP authority — with prose carried as opaque authored Strings (the §5 fence) and a
RoadmapItem = DerivableLine | AuthoredLine line model folding in CompletionBinding — land as the next
slice. The deliverable is the frame inversion (boxes/bindings/labels/pointers — the high-pain
status/structure drift), not whole-file byte-exact prose.

🤖 Generated with Claude Code

briansrls and others added 17 commits June 21, 2026 21:48
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…r + witness

Re-homed the consolidated, witness-verified slice-1 (orig bold-bee-822 #5489) onto the
surviving session branch. Checkbox is DERIVED from PR merge-state (extdeps.github.pulls
merged_at, the §3 authority); status_drifted = committed box ≠ derived. Discriminating
witness green by execution. Host-fed gate edge + emit are follow-on slices.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…tion

A blanket 'cited-PR-merged + box [ ] ⇒ drift' rule false-positives on partial-evidence
lines (ROADMAP §0 rust-gate cites merged #5456, correctly [ ]) — a fail-closed-but-wrong
gate (§5). Model now splits CompletesIff (derivable + gated) from HandChecked (honest
un-derivable residue, never gated). Added the decisive non-tautology witness: a HandChecked
line citing a merged PR while [ ] evaluates GREEN (RED under the blanket rule). Tightened the
ROADMAP sub-line + recorded the boundary in plan §5.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Addresses the non-blocking review note (claude-opus-4-7): CheckboxState is a fieldless sum
with working structural ==/!= (as code_change_workflow.dag already uses), so the hand-rolled
equality was needless §2 redundancy. Witness still green by execution.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…DAG authority model

Per parent (warm-lark-306): the slice-1 completes-iff binding IS the first row of the work-DAG
authority model; slice-2 (emit(work_model, Markdown)) widens it rather than re-coining a parallel
completion edge (§3).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…P line

A roadmap line = RoadmapNode { node: ProcessNodeId, line: RoadmapStatusEntry, carrier },
composing existing authorities (no re-coin, §2/§3): identity+deps from ctrl.process_algebra
decomposition (RoadmapParent = TopLevel|UnderParent), status from slice-1 RoadmapStatusEntry,
title+plan-doc carrier as host-fed presentation. Dangling-link wall via carrier_resolves.
Discriminating witness green by execution; perturbation-proven on the carrier wall + parent lookup.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
# Conflicts:
#	docs/plans/invert-hand-maintained.md
# Conflicts:
#	docs/plans/invert-hand-maintained.md
project_roadmap_to_markdown(RoadmapDocument) -> MarkdownDocument widens the per-section
projection (step-2) to the whole ROADMAP: preamble + sections, each delegating to the
existing project_roadmap_section (no re-coin). RoadmapSection minted (sections are a
separate presentation axis, not a single work-node+subtree); RoadmapDocument earns its keep
via the preamble. Pure projection witness is byte-exact golden (the ci.yml expected_ci_yml
shape, markdown medium) + drift receipt (box derived from the merged set, not baked).

The effectful RoadmapGate + full real-ROADMAP authority (with prose fenced as opaque
authored Strings) land as the next slice.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@gunbai-bot gunbai-bot Bot changed the title Invert hand-maintained docs - generate ROADMAP from .dag authority plus drift-gate, starting with the PR-to-checkbox status slice ROADMAP slice-2 step-3a: whole-document projection + pure golden witness Jun 22, 2026
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review June 22, 2026 05:40
@gunbai-bot

gunbai-bot Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor Author

CI/coherence triage — neither failure is from this PR:

  • Modeling-coherence UNAVAILABLE: the failure is /home/briansrls/ctrl/plans/lib/reducible.dag:18: unresolved import: module 'std.reducible' not found … circular dependency plans.coherence -> plans.reducible -> …. src/v2/std/reducible.dag was DELETED on main (it's in the merge that synced this branch), so the private ctrl tree's plans.reducible now dangles. The coherence gate resolves gunbc+ctrl together and fail-closes on the ctrl import before evaluating this PR's diff — so it's a main-driven ctrl-tree breakage affecting every open gunbc PR, not anything step-3a touched. This PR's own dsl resolves green (roadmap_document witness, 30 sources).
  • CI '1 failing': a cancelled sibling run on this SHA (concurrency-key artifact); the live run is in progress.

No fix to push here — the coherence break needs the ctrl tree's plans.reducible updated to not import the deleted std.reducible. — sent from quiet-hawk-47

@briansrls
briansrls merged commit b44684a into main Jun 22, 2026
1 of 2 checks passed
@briansrls
briansrls deleted the session/quiet-hawk-47 branch June 22, 2026 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant