home / skills / jpicklyk / task-orchestrator / post-plan-workflow

This skill orchestrates post-plan materialization and implementation by coordinating MCP items, dependencies, and agent workflows for seamless execution.

npx playbooks add skill jpicklyk/task-orchestrator --skill post-plan-workflow

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
3.2 KB
---
name: post-plan-workflow
description: Internal workflow for post-plan materialization — creates MCP items from the approved plan and dispatches implementation. Triggered automatically after plan approval when MCP tracking is active.
user-invocable: false
---

# Post-Plan Workflow — Materialize and Implement

Plan approval is the green light for the full pipeline. Proceed through all three phases without stopping.

## Phase 1: Materialize

Complete materialization **before** any implementation begins.

1. **Create MCP items** from the approved plan using `create_work_tree` (preferred for structured work with dependencies) or `manage_items` (for individual items). Apply appropriate schema tags (e.g., `tags: "feature-implementation"`) based on the plan — this activates gate enforcement for the item.
2. **Wire dependency edges** between items — use `BLOCKS` for sequencing, `fan-out`/`fan-in` patterns for parallel work
3. **Check `expectedNotes` in create responses** — if the item's tags match a schema, the response includes the expected note keys and phases. Fill required queue-phase notes (`requirements`, `acceptance-criteria`, etc.) with content from the plan before advancing.
4. **Verify all item UUIDs exist** — confirm the full item graph is materialized before proceeding

**If `create_work_tree` fails:** Check partial state with `query_items(operation='overview')`. Delete partial items with `manage_items(delete, recursive=true)` and retry.

Do NOT dispatch implementation agents until materialization is complete. Agents need MCP item UUIDs to self-report progress.

## Phase 2: Implement

Dispatch subagents to execute the plan:

- Each subagent **owns one MCP item** — include the item UUID in the delegation prompt
- If `expectedNotes` entries include `guidance`, embed it in the delegation prompt as authoring instructions when filling notes
- **Agents own their lifecycle transitions** — each agent calls `advance_item(trigger="start")` when beginning work and `advance_item(trigger="complete")` when done (or `trigger="start"` to advance through intermediate phases if the item has review-phase notes)
- Fill work-phase notes (`implementation-notes`, `test-results`, etc.) as the agent works
- Respect dependency ordering — do not dispatch an agent for a blocked item until its blockers complete
- **Between waves:** call `get_blocked_items(parentId=...)` to confirm upstream items completed — dependency gating implicitly verifies agents transitioned their items. If downstream items are still blocked, investigate the upstream blocker
- **Do not** call `advance_item` or `complete_tree` on items delegated to agents — agents handle their own transitions. Duplicate transition calls are harmless but wasteful

Do NOT use `AskUserQuestion` between phases — proceed autonomously.

## Phase 3: Verify

After all agents complete:

1. Run `query_items(parentId=..., role="work")` — any results are items agents failed to transition. Use `/status-progression` to diagnose and manually advance stuck items
2. Run `get_context()` health check to see what completed, what stalled, and what needs attention
3. Review any stalled items — check which notes are missing with `get_context(itemId=...)`
4. Address blockers or incomplete work as needed

Overview

This skill automates the post-plan materialization and implementation workflow for MCP-managed plans. It creates MCP items from an approved plan, wires dependencies and gating, then dispatches implementation agents and verifies completion. The workflow enforces a strict three-phase sequence: materialize, implement, verify.

How this skill works

After plan approval the skill calls create_work_tree or manage_items to materialize MCP items and tags them to trigger schema gates. It ensures dependency edges and required queue-phase notes are present, then dispatches subagents with item UUIDs so they can own lifecycle transitions and fill work-phase notes. Finally it runs health checks and diagnostics to surface stuck items and missing notes.

When to use it

  • After a plan is approved and MCP tracking is enabled
  • When you need structured task graphs with dependency gating
  • When multiple autonomous agents will execute plan items
  • When you require persistent tracking and auditability of work
  • When you want automated checks to catch incomplete materialization before dispatch

Best practices

  • Always complete full materialization (create items, wire edges, populate required queue-phase notes) before dispatching any agents
  • Prefer create_work_tree for structured plans; use manage_items for single or ad hoc items
  • Embed expectedNotes guidance into delegation prompts so agents can author required notes correctly
  • Dispatch one subagent per MCP item and include the item UUID in the delegation prompt
  • Verify dependency readiness with get_blocked_items between waves and avoid dispatching blocked items
  • Use query_items and get_context to diagnose and manually advance any stuck work during verification

Example use cases

  • Materialize a feature-implementation plan into an MCP work tree, tag items, and dispatch developers as subagents
  • Orchestrate parallel research tasks using fan-out/fan-in edges and enforce acceptance-criteria notes before review
  • Run automated verification after an implementation wave to detect items that never transitioned
  • Recover from a partial create_work_tree failure by querying overview, cleaning partial items, and retrying
  • Coordinate multi-agent integration work where each agent reports progress via MCP item transitions

FAQ

What if create_work_tree fails partway?

Query partial state with query_items(operation='overview'), delete partial items with manage_items(delete, recursive=true), then retry create_work_tree.

Can I dispatch agents before every item UUID exists?

No. Agents need item UUIDs to self-report. Always verify all item UUIDs exist and expectedNotes are filled before dispatch.

Who calls advance_item and complete_tree?

Delegated agents should call advance_item for their owned items as they start and complete. The orchestrator should not advance items delegated to agents except for manual recovery.