henrylach/taskplane/create-taskplane-task
Claude Code and agent skill by henrylach/taskplane
- community
Checking that the SKILL.md file is still in the repository.
Creates structured Taskplane task packets (PROMPT.md, STATUS.md) for autonomous agent execution via the task-orchestrator extension (/orch). Use when asked to "create a task", "create a taskplane task", "stage a task", "prepare a task for execution", "write a PROMPT.md", "set up work for the agent", "queue a task", or whenever the user wants to define work that will be executed autonomously by another agent instance.
Install
npx vskill@latest install henrylach/taskplane/create-taskplane-taskSKILL.md
Create Taskplane Task
Creates structured task packets (PROMPT.md + STATUS.md) for autonomous execution via the task-orchestrator extension (/orch). The orchestrator handles the execution loop, fresh-context management, cross-model reviews, wave scheduling, and live dashboard — so PROMPT.md stays focused on WHAT to do, not HOW to execute.
Architecture
The skill only creates files. All execution behavior lives in the orchestrator and the current execution engine (orchestrator + agent-host, direct process hosting, no TMUX).
Prerequisites
If `.pi/taskplane-config.json` does not exist (and .pi/task-runner.yaml is also absent), the project has not been initialized. Tell the user to run taskplane init first — the skill cannot create tasks without knowing where task areas live.
Configuration
Read `.pi/taskplane-config.json` first (JSON, canonical). Fall back to .pi/task-runner.yaml only if the JSON config does not exist. Use canonical JSON keys when documenting behavior; YAML keys are compatibility aliases.
Primary keys to read:
taskRunner.taskAreas(legacy alias:task_areas) — folder paths, prefixes, CONTEXT.md locations per areataskRunner.referenceDocs(legacy alias:reference_docs) — available Tier 3 docs for "Context to Read First"taskRunner.standards— project coding rules and standards docstaskRunner.testing.commands— how to run teststaskRunner.selfDocTargets(legacy alias:self_doc_targets) — where agents log discoveriestaskRunner.protectedDocs(legacy alias:protected_docs) — docs requiring user approval to modifytaskRunner.neverLoad(legacy alias:never_load) — docs to exclude from task execution context
Task Creation Workflow
Step 1: Determine Location & Next ID
The user will rarely specify which area to use — figure it out from context.
When there's only one area (typical for new projects), use it directly.
When there are multiple areas, match the task to the right area:
- Read the project config (
taskplane-config.jsonortask-runner.yaml) →taskRunner.taskAreas(ortask_areasin fallback YAML) to get all areas - Read each area's
CONTEXT.md— the "Current State" section describes what
that area owns (its domain, services, file scope)
- Match the task description to the area whose scope best fits:
- A task about PTO accrual →
time-offarea - A task about the orchestrator itself →
task-systemarea - A task about login flows →
identity-accessarea
- If ambiguous (task spans multiple areas), prefer the area that owns the
primary file being modified, or ask the user
After selecting the area:
- Read that area's
CONTEXT.mdand find theNext Task IDcounter - Use that ID for the new task
- Increment the counter in the same CONTEXT.md edit
Note: Task area structures evolve over time. A new project starts with a single taskplane-tasks/ folder and one area. As the project grows, users add domains and platform areas in the config. The skill adapts — it always reads the config to discover what areas exist rather than assuming a layout.
Step 2: Assess Complexity & Size
You MUST explicitly score and assign review level before creating PROMPT.md.
Quick reference (full rubric in Complexity Assessment):
- Score each dimension 0-2: Blast radius, Pattern novelty, Security, Reversibility
- Sum → Level: 0-1→L0 (None), 2-3→L1 (Plan), 4-5→L2 (Plan+Code), 6-8→L3 (Full)
- Size: S (<2h), M (2-4h), L (4-8h), XL (8h+ → must split)
Do not default to Review Level 0. Level 0 is only appropriate for trivial changes (doc updates, config, boilerplate). Most M-sized tasks score ≥2 and require at least Level 1.
Step 3: Create Task Folder
Step 4: Create PROMPT.md
Use the template in references/prompt-template.md.
Step 5: Create STATUS.md
Use the STATUS.md template in references/prompt-template.md. (If omitted, the execution engine can auto-generate it from PROMPT.md.)
Step 6: Update Tracking
- CONTEXT.md — Increment
Next Task ID(done in Step 1)
Step 7: Report Launch Command
For batch execution of multiple tasks: /orch all
Complexity Assessment
Evaluate the task to determine cross-model review level.
Review Levels
| Level | Label | Reviewer Calls | |
|---|---|---|---|
| 0 | None | Zero — doc updates, config, boilerplate | |
| 1 | Plan Only | Plan review before implementation | |
| 2 | Plan + Code | Plan review + code review after implementation | |
| 3 | Full | Plan + code + test review |
Scoring (0-2 per dimension, sum for level)
| Dimension | 0 (Low) | 1 (Medium) | 2 (High) | |
|---|---|---|---|---|
| Blast radius | Single file | Single service | Multiple services | |
| Pattern novelty | Existing patterns | Adapting patterns | New patterns | |
| Security | No auth/data | Touches auth | Modifies auth/encryption | |
| Reversibility | Easy revert | Needs migration | Data model change |
- Score 0-1 → Level 0 · Score 2-3 → Level 1 · Score 4-5 → Level 2 · Score 6-8 → Level 3
Per-Step Override
Individual steps can override the task-level review:
Per-Step Reviews vs. Consolidated Reviews (Checkpoint Markers)
A second axis sits alongside the Review Level: how many reviews fire for a given level. PROMPT authors should make this choice deliberately.
Default — per-step reviews: at Review Level ≥ 1, the worker fires a plan review BEFORE each implementation step and (at Level ≥ 2) a code review AFTER. A 5-implementation-step Level 2 task therefore fires ~5 plan + ~5 code = ~10 reviews. This is the right default for tasks where each step is an independent piece of work (e.g., a multi-cluster polish bundle, a multi-feature sprint).
Opt-in — consolidated via checkpoint markers: a PROMPT can include **Plan-review checkpoint** or **Code review checkpoint** markers in specific steps. The worker treats those markers as instructions to fire the corresponding review at that step only, instead of per-step. A single-deliverable task that decomposes into 1 design step + 3 mechanical implementation steps + 1 verify-everything step might mark the design step as the plan checkpoint and the verify step as the code checkpoint, for a total of 2 reviews instead of ~8.
When to use which:
- Per-step (default): independent multi-feature work, polish bundles,
refactor sweeps. Per-cluster review feedback is more useful than a consolidated review across unrelated changes.
- Consolidated (checkpoint markers): single-deliverable tasks where
the steps are mechanical applications of one design decision. TP-186 (the review_step death-spiral fix) is a real example: 1 prompt-design deliverable + 3 mechanical implementation steps + 1 code-review- everything step → 2 reviews total instead of ~8.
How to choose at PROMPT-authoring time: ask "would the reviewer benefit from seeing each step in isolation, or only the whole picture?" If each step touches a different concern, per-step. If every step is the same change applied to a different file, consolidate.
Task Sizing
| Size | Duration | Action | |
|---|---|---|---|
| S | < 2 hours | Create as-is | |
| M | 2-4 hours | Ideal size — create as-is | |
| L | 4-8 hours | Split if possible | |
| XL | 8+ hours | Must split into M/L tasks with dependencies |
Rule of thumb: More than ~3 major implementation steps → split it.
Tiered Context Loading
PROMPT.md tells the worker what to load. Less is better.
| Tier | What | Loaded By | |
|---|---|---|---|
| 1 | PROMPT.md + STATUS.md | Always (automatic) | |
| 2 | Area CONTEXT.md | When referenced in "Context to Read First" | |
| 3 | Specific reference docs | Only the docs this task needs |
Populate "Context to Read First" in PROMPT.md using docs from the project config → taskRunner.referenceDocs (legacy YAML: reference_docs). List only what the task actually needs.
Docs listed in config → taskRunner.neverLoad (legacy YAML: never_load) must NOT appear in any task.
STATUS.md Hydration
STATUS.md is the worker's ONLY memory between iterations. It needs enough structure so progress survives when an iteration ends mid-step — but not so much structure that it becomes a rigid script the worker follows mechanically.
Philosophy: Adaptive Planning, Not Exhaustive Scripting
Hydration exists because workers discover things at runtime they couldn't know upfront: the actual function signatures, the edge cases that emerge from reading source, the reviewer feedback that reshapes approach. The goal is adaptability in the face of unknowns — not granularity for its own sake.
The right level of detail depends on predictability:
| How predictable is the work? | Approach | |
|---|---|---|
| You know exactly what files/methods/tests are needed | List them as checkboxes | |
| You know the general shape but details depend on source code | Write intent-level checkboxes; trust the worker to figure out implementation specifics | |
| You genuinely don't know what's needed until a prior step runs | Use ⚠️ Hydrate marker |
Anti-pattern to avoid: Creating 15+ micro-checkboxes that spell out every function name, parameter, and assertion before the worker has even read the source code. This wastes task-creation time, produces items that frequently need revision anyway, and turns the worker into a checkbox-follower instead of a problem-solver.
Task Creator Responsibilities
Match STATUS.md to PROMPT.md granularity — no more, no less. PROMPT.md steps should express outcomes the worker needs to achieve, not dictate how to achieve them.
Good granularity examples:
| PROMPT.md says | STATUS.md should have | |
|---|---|---|
| "Implement CRUD operations for Projects" | - [ ] Implement Create, Read, Update, Delete for Projects (one checkbox — the worker can figure out 4 methods) | |
| "Add repo-aware fields to persistence schema" | - [ ] Add repo fields to schema and update serialization | |
| "Test merge failure scenarios" | - [ ] Add tests for merge failure paths | |
| "Update merge flow to work per-repo" | - [ ] Refactor merge to partition by repo and - [ ] Aggregate per-repo results (two checkboxes — these are genuinely distinct outcomes) |
Over-hydrated examples (avoid):
| ❌ Too granular | ✅ Better | |
|---|---|---|
| 10 checkboxes naming every function, parameter, and import to change | 2-3 checkboxes describing the behavioral changes | |
| Separate checkboxes for "create file", "add imports", "add function", "export function" | One checkbox: "Create helper module with X capability" | |
| One checkbox per test assertion | One checkbox per test scenario or category |
Use `⚠️ Hydrate` markers for steps that genuinely depend on runtime discoveries — where the task creator cannot know the items upfront:
When to use markers vs. pre-hydration:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/create-taskplane-task/SKILL.md
Popularity
- Repository stars
- 198
- Repository forks
- 15
- 7-day trend score
- 26
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/henrylach/taskplane/create-taskplane-task)