Skip to content

feat: add readiness gate, E2E lane split, and design propagation#120

Merged
shinpr merged 2 commits intomainfrom
feat/implementation-readiness
May 2, 2026
Merged

feat: add readiness gate, E2E lane split, and design propagation#120
shinpr merged 2 commits intomainfrom
feat/implementation-readiness

Conversation

@shinpr
Copy link
Copy Markdown
Owner

@shinpr shinpr commented May 2, 2026

Summary

Strengthens the workflow so design and verification context reaches the executor and the implementation is observable from Phase 1, by adding a readiness gate, splitting E2E into two lanes, and propagating design context through the planning chain.

Changes

New: recipe-prepare-implementation

A self-contained recipe that runs after work-plan approval and before any recipe-*-build invocation. Verifies five readiness criteria (Verification Strategy references resolve, E2E preconditions covered, Phase 1 observability, UI rendering surface, local lane procedure) and resolves gaps via Phase 0 tasks through the standard 4-step cycle. Exits no-op when readiness is already satisfied. Registered under dev-workflows only (the dev-workflows-frontend plugin uses it through the dev-workflows plugin when both are installed).

Implementation Readiness gate

  • work-planner emits Implementation Readiness: pending in the plan header.
  • recipe-*-build and recipe-*-implement read the marker and halt-and-confirm via AskUserQuestion when status is pending or escalated.
  • recipe-prepare-implementation promotes the marker to ready or escalated and persists a ## Implementation Readiness Report section into the work plan body.
  • subagents-orchestration-guide describes the marker contract abstractly without naming specific recipes (preserves recipe → agent → skill dependency direction).

E2E lane split (fixture-e2e / service-integration-e2e)

  • fixture-e2e: browser harness with mocked backend / fixture-driven state. ROI ≥ 20 floor, MAX 3 per feature, runs alongside the UI feature phase, no infrastructure required.
  • service-integration-e2e: against a running local stack. ROI > 50 beyond reserved slot, MAX 1-2 per feature, executed only in the final phase.
  • acceptance-test-generator output schema replaces generatedFiles.e2e with generatedFiles.fixtureE2e / generatedFiles.serviceE2e; per-lane absence reasons.
  • work-planner E2E gap check evaluates each lane independently with explicit AND/OR grouping.
  • test-implement/references/e2e.md documents both Playwright patterns (fixture interception vs live-stack seed/auth).

UI Spec component and Connection Map propagation

  • work-planner produces a UI Spec Component → Task Mapping table (when a UI Spec is provided) and a Connection Map table (when implementation crosses runtime boundaries).
  • task-decomposer propagates matching rows into each task's Investigation Targets so the executor sees the relevant UI Spec sections and boundary context.
  • ui-spec-designer adds a heading uniqueness rule and disambiguation pattern so component references resolve uniquely.

Design-side update path in review recipes

  • recipe-review and recipe-front-review change Step 4 from a single fix-all toggle to per-finding routing: c (code-side fix), d (DD update), s (skip), with an "accept all recommended routes" default offer.
  • New Step 5d invokes technical-designer (update mode) → document-reviewerdesign-sync (when multiple DDs exist) before code-side fixes, so DD updates can drop c findings that become satisfied.

Consumed Task Set in build recipes

  • recipe-build, recipe-front-build, and recipe-fullstack-build compute a single restricted task set ({plan-name}-task-*.md for single-layer; {plan-name}-{layer}-task-*.md for fullstack), excluding *-task-prep-*, _overview-*, *-phase*-completion, review-fixes-*, integration-tests-*-task-*.
  • The same set is reused for the readiness gate, autonomous execution iteration, and final cleanup, preventing stale or cross-recipe task files from being picked up.
  • Verify Generation step recomputes the set after task-decomposer runs.

Final Cleanup pattern

  • Every task-creating recipe (build / implement / review / add-integration-tests / prepare-implementation) deletes its consumed task files at completion.
  • README adds a FAQ entry recommending users gitignore docs/plans/ (it's ephemeral working state).

Anchored examples (language-agnostic posture)

  • integration-e2e-testing and related agent files reference RTL+MSW for React/TS as one example among possible stacks (e.g., MSW for JS/TS, WireMock for JVM, responses for Python). Playwright remains the default browser harness reference.
  • Atomic Design coverage targets become opt-in (When the project adopts Atomic Design ...) in quality-fixer-frontend, test-implement/references/frontend.md, typescript-rules, technical-designer-frontend.

Dependency direction enforcement

  • Agents and skills no longer name specific recipes (e.g., recipe-prepare-implementation, recipe-plan).
  • Where coordination context is needed, the wording is abstract (external orchestration / upstream planning flow).
  • README references in skill content removed (plugins cannot read README; cleanup instructions are self-contained).

Version

0.16.170.17.0 (semver minor: new recipe and new behavior, no breaking change to recipe invocations).

Test Plan

  • claude plugin validate passes for marketplace.json and all three plugin manifests (run by lefthook pre-commit; verified locally).
  • pnpm sync regenerates dev-workflows/, dev-workflows-frontend/, dev-skills/ without diff against the canonical sources.
  • Spot-check a /recipe-prepare-implementation [plan-path] invocation in a sample project: verifies readiness criteria, generates Phase 0 prep tasks when gaps exist, exits no-op when ready, persists Readiness Report.
  • Spot-check /recipe-build with a pending work plan: confirms halt-and-ask via AskUserQuestion.
  • Spot-check /recipe-review with mixed c / d findings: confirms Step 5d runs before Step 6 and DD updates drop satisfied c findings.

- New recipe-prepare-implementation: verifies the work plan is implementable
  and resolves gaps via Phase 0 tasks before build, or exits no-op when
  readiness criteria already pass.

- Implementation Readiness header on work plans: work-planner emits "pending";
  recipe-*-build and recipe-*-implement halt-and-confirm on pending or
  escalated.

- Split E2E into two lanes: fixture-e2e (browser harness with mocked backend,
  ROI >= 20 floor, MAX 3) and service-integration-e2e (against live local
  stack, ROI > 50, MAX 1-2, final phase only). acceptance-test-generator
  output schema, work-planner gap check, and test-implement guidance updated
  accordingly.

- UI Spec component and Connection Map propagation: work-planner produces
  task-mapping tables; task-decomposer routes the relevant rows into each
  task's Investigation Targets so design context reaches the executor.

- Design-side update path in recipe-review and recipe-front-review:
  per-finding c/d/s routing with "accept all recommended routes" default.
  Step 5d (DD update via technical-designer + document-reviewer + design-sync)
  runs before code-side fixes.

- Consumed Task Set in build recipes: a single restricted task pattern is
  computed up front and reused for the readiness gate, autonomous execution,
  and final cleanup, preventing stale or cross-recipe task files from being
  picked up.

- Final Cleanup in every task-creating recipe: docs/plans/ is treated as
  ephemeral working state. README adds a FAQ recommending users gitignore it.

- Anchored examples in language-agnostic skills: integration-e2e-testing
  references RTL+MSW for React/TS as one example among possible stacks;
  work-planner / task-decomposer follow the same pattern. Atomic Design
  coverage targets become opt-in in frontend skills.

- Dependency direction enforced: agents and skills no longer name specific
  recipes; subagents-orchestration-guide uses abstract external-orchestration
  terminology.

Version 0.16.17 -> 0.17.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@shinpr shinpr self-assigned this May 2, 2026
The previous version of recipe-prepare-implementation's description listed
specific build-recipe names; build-recipe internals named owners by recipe
("owned by recipe-X"). Per the recipe -> agent -> skill dependency direction
principle, recipe-to-recipe references in machine-read metadata and internal
LLM-facing rationale are not allowed (user-facing AskUserQuestion text remains
permitted as actionable guidance).

- recipe-prepare-implementation description and the no-work-plan stop message
  no longer name specific recipes.
- Build recipes' Consumed Task Set rationale describes excluded files by their
  workflow-phase purpose (readiness preflight tasks / decomposition overview /
  phase-completion files / post-implementation review fixes / integration-test
  add-on scaffolding) instead of by owning recipe name.

User-facing pending-halt prompts in build/implement recipes still name
/recipe-prepare-implementation as the suggested next action — those are user
announcements and the principle exception applies.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@shinpr shinpr merged commit 4e833cb into main May 2, 2026
1 check passed
@shinpr shinpr deleted the feat/implementation-readiness branch May 2, 2026 15:37
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