Execute decomposed fullstack tasks with layer-aware agent routing
30
23%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/recipe-fullstack-build/SKILL.mdCore Identity: "I am an orchestrator." (see subagents-orchestration-guide skill)
MANDATORY: Read references/monorepo-flow.md from subagents-orchestration-guide skill BEFORE proceeding. Follow the Extended Task Cycle and Agent Routing defined there.
*-backend-task-* → task-executor + quality-fixer*-frontend-task-* → task-executor-frontend + quality-fixer-frontendCRITICAL: Run layer-appropriate quality-fixer(s) before every commit.
Work plan: $ARGUMENTS
Before any task processing, locate the work plan to gate against. Resolution rule:
docs/plans/tasks/ matching the layer-aware patterns {plan-name}-backend-task-*.md and {plan-name}-frontend-task-*.md only. Single-layer tasks ({plan-name}-task-*.md) are excluded here so a stale single-layer run does not redirect this recipe to the wrong work plan*-task-prep-*.md (readiness preflight tasks), _overview-*.md (decomposition overview file), *-phase*-completion.md (per-phase completion files), review-fixes-*.md (post-implementation review fixes), integration-tests-*-task-*.md (integration-test add-on scaffolding){plan-name} prefix as the segment that appears before -backend-task- or -frontend-task-docs/plans/{plan-name}.md for the prefix that has the most recent task-file mtime; ties broken by the lexicographically last {plan-name}.md in docs/plans/Read the work plan header and find the line Implementation Readiness: <status>. Apply this rule:
| Status | Action |
|---|---|
ready | Proceed to Consumed Task Set computation |
escalated | Read the work plan's Readiness Report section, surface remaining gaps to the user via AskUserQuestion: "Implementation Readiness is escalated with the following remaining gaps: [list]. Continue execution? (y/n)". On y proceed; on n stop |
pending | Present via AskUserQuestion: "Implementation Readiness is pending. Run /recipe-prepare-implementation [plan-path] first to verify the work plan is implementable, then resume. Continue without preflight? (y/n)". On y proceed; on n stop |
| absent (line missing) | Treat as pending — older work plans created before the readiness marker existed should be preflighted explicitly |
Compute the Consumed Task Set for this run — the exact files this recipe owns, executes, and later deletes. Use the same restricted pattern as the Implementation Readiness Check:
docs/plans/tasks/ matching the layer-aware patterns {plan-name}-backend-task-*.md and {plan-name}-frontend-task-*.md for the {plan-name} resolved by the readiness check. Single-layer tasks are excluded*-task-prep-*.md, _overview-*.md, *-phase*-completion.md, review-fixes-*.md, integration-tests-*-task-*.md (these originate from other workflow phases)Every subsequent reference to "task files" in this recipe — Task Generation Decision Flow, Task Execution Cycle iteration, and Final Cleanup — uses this set, not the unrestricted docs/plans/tasks/*.md glob.
Analyze the Consumed Task Set and determine the action required:
| State | Criteria | Next Action |
|---|---|---|
| Tasks exist | Consumed Task Set is non-empty | User's execution instruction serves as batch approval → Enter autonomous execution immediately |
| No tasks + plan exists | Consumed Task Set is empty but the resolved work plan exists | Confirm with user → run task-decomposer |
| Neither exists + Design Doc exists | No plan, no Consumed Task Set, but docs/design/*.md exists | Invoke work-planner to create work plan from Design Doc(s), then proceed to task decomposition |
| Neither exists | No plan, no Consumed Task Set, no Design Doc | Report missing prerequisites to user and stop |
When the Consumed Task Set is empty:
No task files in the Consumed Task Set.
Work plan: docs/plans/[plan-name].md
Generate tasks from the work plan? (y/n):Invoke task-decomposer using Agent tool:
subagent_type: "dev-workflows:task-decomposer"description: "Decompose work plan"prompt: "Read work plan at docs/plans/[plan-name].md and decompose into atomic tasks. Output: Individual task files in docs/plans/tasks/. Granularity: 1 task = 1 commit = independently executable. Use layer-aware naming: {plan}-backend-task-{n}.md, {plan}-frontend-task-{n}.md based on Target files paths."Recompute the Consumed Task Set using the same restricted pattern from the Consumed Task Set section above. Confirm it is now non-empty. If it is still empty, escalate to the user — task-decomposer either failed silently or produced files that don't match the expected pattern.
MANDATORY: For each task in the Consumed Task Set, route agents by task filename pattern from monorepo-flow.md reference.
| Filename Pattern | Executor | Quality Fixer |
|---|---|---|
*-backend-task-* | dev-workflows:task-executor | dev-workflows:quality-fixer |
*-frontend-task-* | dev-workflows-frontend:task-executor-frontend | dev-workflows-frontend:quality-fixer-frontend |
*-task-* (no layer prefix) | dev-workflows:task-executor | dev-workflows:quality-fixer (default) |
For EACH task, YOU MUST:
status: "escalation_needed" or "blocked" → STOP and escalate to userrequiresTestReview is true → Execute integration-test-reviewer
needs_revision → Return to step 2 with requiredFixesapproved → Proceed to step 4readyForQualityCheck: true → Proceed to step 4task_filestub_detected → Return to step 2 with incompleteImplementations[] detailsblocked → STOP and escalate to userapproved → Proceed to step 6CRITICAL: Parse every sub-agent response for status fields. Execute the matching branch in the 4-step cycle. Proceed to next task only after layer-appropriate quality-fixer returns approved.
Append the following block to every subagent prompt invoked from this recipe:
Scope boundary for subagents:
Operate within the task scope and referenced files in the prompt.
Use loaded skills to execute that scope.
Escalate when the required fix or investigation falls outside that scope.Verify task files exist per Pre-execution Checklist, then enter autonomous execution mode. When requirement changes are detected during execution, escalate to the user with the change summary before continuing.
After all task cycles finish, run verification agents in parallel before the completion report:
Invoke both in parallel using Agent tool:
doc_type: design-doc, single document_path, code_paths: implementation file list from git diff --name-only main...HEAD)Consolidate results — check pass/fail for each:
status is consistent or mostly_consistent. fail when needs_review or inconsistent. Collect discrepancies with status drift, conflict, or gapstatus is approved or approved_with_notes. fail when needs_revision. blocked → Escalate to userFix cycle (when any verifier failed):
blocked → Escalate to userAll passed → Proceed to Final Cleanup
Before the completion report, delete the implementation task files this recipe consumed. Their work is committed; docs/plans/ is ephemeral working state and is not retained between recipe runs:
docs/plans/tasks/{plan-name}-phase*-completion.md (the per-phase completion files generated by task-decomposer for this {plan-name})docs/plans/tasks/_overview-{plan-name}.md if presentdocs/plans/{plan-name}.md) — the user decides whether to delete it after final reviewIf task files cannot be deleted (filesystem error), report the failure but do not block the completion report.
Fullstack implementation phase completed.
68ecb4a
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.