Skip to content

feat(engine): workflow-start read path — overview projection, unified menu with action keys#387

Open
leeovery wants to merge 3 commits into
feat/engine-transactionsfrom
feat/engine-start-view
Open

feat(engine): workflow-start read path — overview projection, unified menu with action keys#387
leeovery wants to merge 3 commits into
feat/engine-transactionsfrom
feat/engine-start-view

Conversation

@leeovery

Copy link
Copy Markdown
Owner

What

PR 5 of the engine stack (on #386). The front door joins the engine — same shape as the epic beachhead (#384).

  • domain/start.cjsstartDetail ports 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_unit entries carry route: /workflow-continue-{type} {wu}; start_new carries its pre_seed).
  • Adapter on the gatewayindex (head insert) byte-identical: the 56-test start discovery suite passes UNTOUCHED, and old-vs-new stdout diffed identical. view emits 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

  • Overview blank-line canonicalisation (exactly one between blocks — old template was ambiguous).
  • Epic with empty active_phases falls back to titlecased phase_label (template had no rule; empty └─ row would be broken output).
  • Display sub-rows titlecase with punctuation preserved; menu labels keep raw lowercase phase_label (as the old template distinguished).
  • pre_seed surfaces 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

leeovery and others added 3 commits June 12, 2026 17:55
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>
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