Post Plan Workflow logo

Post Plan Workflow

Community
jpicklyk
post-plan-workflow

Internal, hook-triggered: materializes MCP items from the approved plan and dispatches implementation.

Overview

Publisherjpicklyk
Repositorytask-orchestrator
Skill namepost-plan-workflow
Stars
204
Forks
22
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by jpicklyk on GitHub. Read the source before you install it.

Installation

Install the Post Plan Workflow AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/jpicklyk/task-orchestrator.git /tmp/task-orchestrator
mkdir -p .claude/skills
cp -r /tmp/task-orchestrator/claude-plugins/task-orchestrator/skills/post-plan-workflow .claude/skills/post-plan-workflow
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Post Plan Workflow in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Post Plan Workflow on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Post Plan Workflow is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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.

Prefer a stashed docRef over re-authoring note bodies. On HTTP+REST workspaces, the plan-capture hook stashes the just-approved plan as a plan document as ExitPlanMode fires, and reports the slug via additionalContext (Task Orchestrator: plan stashed as plan document '<slug>' (root <rootId>)). When that context is present, or manage_plan_documents(operation="list", rootId=..., status="pending") confirms a pending document for this root, use it as the source of truth for materialization — quote/reference its content instead of retyping the plan into note bodies. Fall back to the plan text already in context when no stashed doc exists (stdio setups, or the hook failed open).

  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 based on the plan and the project's .taskorchestrator/config.yaml — this activates gate enforcement for each item. If the config defines separate schemas for containers vs. child tasks, apply the appropriate tag at each level.
    • Anchor the root under the project when known: resolve the project rootId from session context (injected by the SessionStart hook) or .taskorchestrator/config.yaml's project.rootId. When known, set the new root item's parentId to that rootId (directly, or to the appropriate category container beneath it if one already exists) so materialized work lands inside the project's tree instead of at a bare depth 0. When no rootId is known, create at depth 0 as before.
  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 (feature-summary, task-scope, etc.) with content from the plan before advancing.
    • feature-implementation root: keep its feature-summary note lean — goal (2-3 sentences), a findings→tasks table mapping plan findings to the child items just created, dependency edges between those children, and a pointer to non-goals (target under 2k chars). Put full alternatives/blast-radius/risk-flags/test-strategy detail in each child's task-scope note instead — that's where /spec-quality's full bar applies.
  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(operation="delete", itemIds=["<uuid>"], 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
  • Resolve each note's guidance/skill via query_items(operation="schema", itemId=...) (expectedNotes itself is keys-only); embed guidance in the delegation prompt as authoring instructions
  • When a note's skill is set, include in the delegation prompt: "Before filling the <key> note, invoke /<skill> and follow its framework." This ensures subagents receive deterministic skill routing rather than relying on guidance prose
  • Agents own phase entry only — each agent calls advance_item(trigger="start") once to enter work phase, fills work-phase notes, and returns. The orchestrator handles all further transitions (work→review or work→terminal depending on schema). Agents do NOT call advance_item a second time
  • Fill work-phase notes (implementation-notes, session-tracking, 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(ancestorId="<featureRootId>") to confirm upstream items completed — dependency gating implicitly verifies agents transitioned their items. ancestorId catches blockers anywhere in the feature's subtree (not just direct children, which parentId alone would miss). If downstream items are still blocked, investigate the upstream blocker
  • Do not call advance_item or complete_tree for terminal transitions on items delegated to agents — the orchestrator reviews and advances to terminal after agents return

Do NOT use AskUserQuestion between phases — proceed autonomously.

Phase 3: Verify

After all agents complete:

  1. Run query_items(operation="search", 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

Workflow Complete

The post-plan workflow is done. Report the final status to the user — what completed, what needs attention, and any items still in progress.

Frequently asked questions

What does the Post Plan Workflow AI skill do?

Internal, hook-triggered: materializes MCP items from the approved plan and dispatches implementation.

Why use Post Plan Workflow on TypingMind?

Because you install it once and use it with any model. Post Plan Workflow is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Post Plan Workflow in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/jpicklyk/task-orchestrator/tree/main/claude-plugins/task-orchestrator/skills/post-plan-workflow. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Post Plan Workflow?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Post Plan Workflow?

As many as you like. As long as a model supports skills, you can use Post Plan Workflow with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Post Plan Workflow AI skill free?

Yes. It is published on GitHub by jpicklyk under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇