home/common/programs/ai/pi-coding-agent/skills/task-pipeline/SKILL.md
Structured workflow for research → plan → tickets → work. Use when starting or continuing a task with /task, /plan, or /tickets commands.
npx skillsauth add megalithic/dotfiles task-pipelineInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A phased workflow for complex tasks. State lives in files, not session memory. Any session can pick up where the last one left off by reading the docs.
All work happens in a worktree at <repo>/.worktrees/<branch>/. Docs go in plans/:
plans/
task.md # research findings (fixed filename)
plan.md # implementation plan (fixed filename)
Fixed filenames because worktrees already isolate tasks — no need for unique slugs. Overwrite if exists.
Entry: /task <description> or /task (to continue existing research)
Any text after /task is the research context — the problem to investigate, requirements, constraints, etc. The agent passes this directly to the researcher subagent.
This phase runs in an isolated subagent (researcher) that physically cannot modify files. The main agent's only jobs are: invoking the subagent and saving output.
plans/task.md exists: main agent reads it and passes contents as context to the researcher subagent{ agent: "researcher", task: "<research task with context>" }plans/task.md# <task description>
## Findings
- Finding 1 with evidence
- Finding 2 with source references
- ...
## Open questions
- Question that couldn't be answered
- ...
## Sources
- file paths, URLs, session references
Keep writing until you can't find more. The user will tell you when to move on.
Entry: /plan or /plan <context>
This phase runs in an isolated subagent (planner) that physically cannot modify files.
plans/task.md — the research findingsplans/task.md doesn't exist: tell the user to run /task first/plan <context>), prepend it to the research findings before passing to the planner{ agent: "planner", task: "<user context + research findings>" }plans/plan.md# Plan: <task description>
Research: `plans/task.md`
## Steps
### Step 1: <title>
- **What:** description
- **Files:** paths to change
- **Verify:** how to confirm it works
### Step 2: <title>
- **What:** description
- **Files:** paths to change
- **Verify:** how to confirm it works
## Notes
- Design decisions, trade-offs, things to watch out for
Each step maps 1:1 to a ticket. Steps are ordered by dependency.
The user reviews and iterates. Do not proceed to tickets until the user explicitly says to.
Entry: /tickets
plans/plan.mdplans/.ticket-context.md if it doesn't exist (see context seeding in ticket-creator skill)tk list — check all tickets are opentk show <id> — verify description has file hints, acceptance criteria are numbered and independently verifiabletk dep cycle — no cycles allowedtk ready -T ready-for-development — at least one ticket must be unblocked| From | To | Trigger |
| -------- | -------- | ------------------------------ |
| — | Research | /task <description> |
| Research | Research | /task (continue) |
| Research | Plan | /plan or /plan <context> |
| Plan | Plan | /plan <context> (iterate) |
| Plan | Tickets | /tickets |
| Tickets | Work | work-tickets in the worktree |
You can go back: run /plan after tickets exist to revise, then /tickets to recreate. Clean up old tickets first (tk close or recreate with new deps).
testing
Apply Strunk's timeless writing rules to ANY prose humans will read - documentation, commit messages, error messages, explanations, reports, or UI text. Makes your writing clearer, stronger, and more professional.
tools
Web search using DuckDuckGo (free, unlimited). Falls back to pi-web-access extension for content extraction.
tools
Interact with web pages using agent-browser CLI. MUST run 'browser connect 9222' FIRST to use existing browser with authenticated sessions.
tools
Remote control tmux sessions for interactive CLIs (python, gdb, etc.) by sending keystrokes and scraping pane output.