feat(engine): epic dashboard beachhead — domain projections, action-key routing, adapter on the gateway#384
Open
leeovery wants to merge 5 commits into
Open
feat(engine): epic dashboard beachhead — domain projections, action-key routing, adapter on the gateway#384leeovery wants to merge 5 commits into
leeovery wants to merge 5 commits into
Conversation
domain/epic.cjs builds the EpicDetail (ported from the continue-epic adapter, shared functions still required from discovery-utils); domain/projections/epic.cjs renders the stage-grouped dashboard, the Key block, and the action-keyed menu over it. Conventions gain titlecase and TREE_WIDTH (65 — tree content width incl. gutter; the deliberate narrow-wrap choice). lib.cjs exposes engine.detail.* and engine.project.*. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ck/view discover()/format() keep their byte-identical labelled output (detail building now comes from engine.detail.epicDetail); the new view verb emits one snapshot — DATA (flags, phase_counts, the ACTIONS key table with routes and recommended/blocked markers), DISPLAY (dashboard + key), MENU (rendered menu). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…routes on action keys epic-display-and-menu.md section A becomes one scoped view call — DISPLAY emitted verbatim as a code block, MENU verbatim as markdown, STOP. Selection handling keys off the ACTIONS entry's action value; route selection invokes the entry's stored route. Resume/cancel/ reactivate keep their hand-drawn displays. SKILL.md Step 9 collapses the label-matching table to invoking the selected route. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Map-branch dashboard (long unbreakable token hard-split inside the gutter, every body line within TREE_WIDTH), no-map branch with a wrapped recommendation, brand-new branch, key category subsets, and menu ordering/gating/blocked-entry/keys-route coverage. Added to the npm test list. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… pattern in CONVENTIONS Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Jun 12, 2026
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
PR 2 of the engine stack (stacked on #383 — Phase 1 of the build sequence in
ideas/deterministic-tree-and-menu-renderer.mdonfeat/renderer). The beachhead: the epic dashboard read path moves from prose into the engine.domain/epic.cjs—epicDetailported from the continue-epic adapter (shared fns still fromdiscovery-utils; behaviour identical).domain/projections/epic.cjs—epicDashboard/epicKey/epicMenu: the entire section A–C ofepic-display-and-menu.mdas code, including stage dividers, the discovery-map tree (wrap budget enforced — the original gutter-orphan bug is now structurally impossible), build-phase trees, gating, recommendation, and the menu with machine action keys + routes.discovery.cjs=runGateway({ index, fallback, view }).index/fallbackoutputs byte-identical to before (verified by diff on fixtures; the 98-test discovery suite passes UNCHANGED).view {wu}emits the demarcated DATA / DISPLAY / MENU snapshot.epic-display-and-menu.md: 848 → 411 lines — sections A–C are now call → emit verbatim → STOP → route on the selected key'saction/route. The 16-row label-prefix routing table in SKILL.md Step 9 is gone. Soft gates readphase_countsfrom DATA. Resume/cancel/reactivate flows unchanged.TREE_WIDTH = 65(total rendered width incl. gutter) — the deliberate narrow-wrap choice, now a named constant.Display changes (intentional, per the design log)
8-col body gutter (was 9),
↳ From …provenance lines, plans-not-ready + Key merged into the one DISPLAY block, proper├─/└─for multi-dep blocked plans.Judgment calls to review
(Phase {N}, Task {M}): M = completed-task count (the .md leaves M undefined).s/speckeeps its menu position when recommended (a command option can't move to slot 1); gains(recommended).Tests
npm test55 pass (incl. new byte-golden projection suite with a 67-char unbreakable-token wrap case); discovery suite 98 pass unchanged; typecheck clean.🤖 Generated with Claude Code