feat(engine): workflow-start read path — overview projection, unified menu with action keys#387
Open
leeovery wants to merge 3 commits into
Open
feat(engine): workflow-start read path — overview projection, unified menu with action keys#387leeovery wants to merge 3 commits into
leeovery wants to merge 3 commits into
Conversation
startDetail(cwd) collates every active work unit by type (next-phase
state, epic active_phases), the inbox (live + archived), and the
completed/cancelled sets — ported behaviour-identical from the
workflow-start adapter, with shared manifest semantics required from
workflow-shared/discovery-utils. startOverview renders the Workflow
Overview block (box cap, non-empty type sections, continuous numbering,
inbox hint, counts line); startMenu returns { keys, rendered } — keys
carry machine actions (continue_work_unit with work_type/work_unit/route,
start_new with pre_seed, view_inbox / view_completed / manage) so skills
route on keys, never labels.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ures Byte-exact expected strings for the overview (all five type sections + inbox hint + counts line; single-section; continuous numbering across sections; inbox-hint pluralisation; epic phase-label fallback) and the menu (full render with conditional i/v present, omitted without inbox / closed units, cancelled-only v, and the keys array — actions, routes, work types, pre_seeds). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…sed active-work The adapter moves onto runGateway: the no-args index dump (and any stray positional form) stays byte-identical, now built on domain/start.cjs; the new view verb emits one DATA + DISPLAY + MENU snapshot (state flags, counts, ACTIONS table with pre_seed markers; rendered overview; rendered menu). active-work.md collapses its hand-rendered display and menu templates to the prescribed view call — emit DISPLAY verbatim as a code block, the signpost blockquote as markdown, MENU verbatim as markdown — and routes selections on the ACTIONS entry's action key, with the view re-run on every return to section A. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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 5 of the engine stack (on #386). The front door joins the engine — same shape as the epic beachhead (#384).
domain/start.cjs—startDetailports the all-units collation;domain/projections/start.cjs— the Workflow Overview block (grouped flat list, continuous numbering, inbox hint, closed counts) + the unified menu with action keys (continue_work_unitentries carryroute: /workflow-continue-{type} {wu};start_newcarries itspre_seed).index(head insert) byte-identical: the 56-test start discovery suite passes UNTOUCHED, and old-vs-new stdout diffed identical.viewemits the DATA/DISPLAY/MENU snapshot.active-work.md: 163 → 68 lines — call → emit verbatim → STOP → route on keys, with the re-render loop on inbox/view/manage returns. The per-type continue routing table is gone.Judgment calls to review
active_phasesfalls back to titlecasedphase_label(template had no rule; empty└─row would be broken output).pre_seedsurfaces as an ACTIONS-line marker, in the style of(recommended)/(blocked: …).Tests
107/107 (
npm test, +9 start projection goldens); start discovery 56/56 file-untouched; epic discovery 98/98; migration 045 15/15; typecheck clean.🤖 Generated with Claude Code