Skip to content

feat(engine): entry-gate + phase-note — entry validation derives engine-side#497

Merged
leeovery merged 1 commit into
mainfrom
feat/render-entry-validation
Jul 22, 2026
Merged

feat(engine): entry-gate + phase-note — entry validation derives engine-side#497
leeovery merged 1 commit into
mainfrom
feat/render-entry-validation

Conversation

@leeovery

@leeovery leeovery commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Stage 6b of the render-surfaces programme (design log: #489; base: #496). The last surface family: entry prerequisite validation moves from prose read-and-branch to engine derivation.

Surfaces

render entry-gate <wu>.<phase>.<topic> — full absorption: the engine reads the manifest and returns either an empty response (clear — the flow proceeds) or the terminal DISPLAY: entry blocker. State machines per target phase:

  • planning — every specification status mapped: missing, in-progress, proposed ("Not Started"), superseded (naming the superseding topic), promoted (naming the cc unit); completed = clear.
  • implementation — plan missing / not completed.
  • review — plan missing / implementation missing / implementation not complete.
  • specification — work-type-aware: feature & cross-cutting check the topic's discussion; bugfix the investigation; epic requires at least one completed discussion (with the distinct no-discussions vs none-completed blocks).

validate-spec.md (6 conditional blocks + a manifest read) and validate-source.md (4 work-type branches × 2-3 blocks + reads) each collapse to one call and two branches; implementation/review validate-phase drop their read-and-branch prerequisite sections. Every blocker text byte-matches the old prose.

render phase-note <wu>.<phase>.<topic> --verb <Word> [--noun <word>] — the entry one-liners (Resuming/Reopening/Starting …), ten templates swapped across seven entries (planning keeps its "Reopening plan" wording via --noun).

Selection not-found — the continue-* view snapshot for an unknown name now appends the per-type terminal display; five validate-selection references emit the section instead of authoring it.

Test plan

  • entry-gate: the full state matrix — 6 planning states, 3 implementation, 4 review, and the work-type-aware specification set including both epic variants; unsupported phase is loud.
  • phase-note default/override/validation; not-found byte-exact per type.
  • npm test — 1518/1518. Typecheck + conventions lint clean.

🤖 Generated with Claude Code

Stack

  1. feat(engine): render surface catalogue — resume-gate and task-list pilots #490
  2. feat(engine): finding + findings-summary surfaces — review-findings loop unified #491
  3. feat(engine): task-gate surfaces — proposed-task, tasks-overview, author-task-gate, phase-tree #492
  4. feat(engine): selection projection + bridge continuation surfaces #493
  5. feat(engine): transaction confirmation sections — lifecycle verbs carry their own chrome #496
  6. feat(engine): entry-gate + phase-note — entry validation derives engine-side #497 👈 current
  7. feat(engine): the fence is the frame — boxedFrame retired (D8) #498
  8. feat(engine): topic complete + discovery-session close fold their kb warnings (7a) #499
  9. feat(engine): resume-gate variants + entry-gate --own + phase-completed --paths (7b) #500
  10. test(conventions): templated-fence ratchet — check 13 lands D4 (7c) #501

@leeovery
leeovery force-pushed the feat/render-transaction-folds branch from 7278f98 to b37c869 Compare July 22, 2026 14:24
@leeovery
leeovery force-pushed the feat/render-entry-validation branch from d375ed8 to c2fe68a Compare July 22, 2026 14:24
@leeovery
leeovery force-pushed the feat/render-transaction-folds branch from b37c869 to b3991a4 Compare July 22, 2026 14:25
@leeovery
leeovery force-pushed the feat/render-entry-validation branch from c2fe68a to 776855e Compare July 22, 2026 14:25
@leeovery
leeovery force-pushed the feat/render-transaction-folds branch from b3991a4 to e8afd7d Compare July 22, 2026 14:25
@leeovery
leeovery force-pushed the feat/render-entry-validation branch from 776855e to 8df11bf Compare July 22, 2026 14:26
@leeovery
leeovery force-pushed the feat/render-transaction-folds branch from e8afd7d to d269db1 Compare July 22, 2026 14:26
@leeovery
leeovery force-pushed the feat/render-entry-validation branch from 8df11bf to 1c86946 Compare July 22, 2026 14:26
@leeovery
leeovery changed the base branch from feat/render-transaction-folds to main July 22, 2026 14:26
…erives engine-side

The last surface family: entry prerequisite checks leave the prose.

- entry-gate <wu>.<phase>.<topic> — the engine derives the verdict from
  manifest state and returns either nothing (clear — proceed) or the
  terminal blocker display: planning maps every specification status
  (missing / in-progress / proposed / superseded with its successor /
  promoted with its target); implementation and review check their
  plan/implementation prerequisites; specification is work-type-aware
  (feature and cross-cutting: the topic discussion; bugfix: the
  investigation; epic: at least one completed discussion). validate-spec
  and validate-source collapse onto one call each; implementation and
  review validate-phase drop their read-and-branch sections.
- phase-note — the entry one-liners (Resuming/Reopening/Starting X)
  render from the address with an optional noun override (planning
  says "plan"); ten prose templates swapped.
- selection not-found — the continue-* view snapshot for an unknown
  name now carries the terminal display; the five validate-selection
  references emit the section instead of authoring the block.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@leeovery
leeovery force-pushed the feat/render-entry-validation branch from 1c86946 to 3bc63d7 Compare July 22, 2026 14:26
@leeovery
leeovery merged commit 5fcc994 into main Jul 22, 2026
@leeovery
leeovery deleted the feat/render-entry-validation branch July 22, 2026 15:18
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