Work off tasks from an external project management tool (Asana, Linear, Jira, etc.). Use when the user says "pick a task", "next task", "what should I work on", "update task", "create task", "mark done", "task status", or similar PM workflow requests. Also activates when starting a new work session and needing to select work. ONLY load this skill when CLAUDE.md configures an external PMT with a tool value other than "none". Do NOT load this skill if the project uses markdown or txt files for task tracking (use the working-off-of-todo-files skill instead).
Work off tasks from an external project management board. This skill handles the full lifecycle: picking tasks, tracking status, creating new tasks, and marking work complete.
On activation, read the project's CLAUDE.md (or CLAUDE.local.md) for a
### Project Management section. It contains:
If this section is missing or says tool: none, fall back to the
working-off-of-todo-files skill and work from ai-notes/**/todo.md.
On activation, before picking new tasks, check for in-progress work:
tmp/current-task.pid for the task id being worked on. If set, fetch
that task from the PM tool and resume it. The PID file is the sole authority
for whether THIS agent has a task in progress — it is per-worktree and
therefore per-agent.current-task.pid exists, this agent has NO in-progress work.
Do NOT fetch the agent board's "current work" section to find tasks —
those tasks belong to OTHER agents running in other worktrees. Proceed
directly to "Pick Next Task".git status
shows uncommitted changes, inspect them to infer what was being worked on.
If you can match changes to a task on the shared board's "in progress"
section, ask the user whether to resume it. If you're confused, ask the
user what to do.Why current-task.pid is authoritative: In a multi-worktree setup,
multiple agents share the same agent board. The PID file lives inside
tmp/ which is per-worktree, making it the only reliable indicator of
what THIS specific agent is working on.
When the user says "pick a task", "next task", "what should I work on" (and no in-progress work exists from step 1):
completed_since=now or opt_fields=completed and filter client-side)
to exclude tasks already marked as done.
If a Priority tag or property exist, sort by it.
Skip tasks assigned to someone else. If a task has an assignee and
that assignee is not the current user (or the agent), do not include it
in the candidate list — someone else is responsible for it. Unassigned
tasks are fair game.tmp/current-task.pid to track it for future sessions.When a task is selected, do ALL of these steps in order:
addProject API) or cross-project references (Linear) — never
duplicate the task. Do not skip this step.When the user says "update task", "add note", "blocked":
When the user says "create task", "new task", "write task":
write-task skill for content formatting. The write-task
skill handles template selection (short vs full), content structure, and
output format (HTML or markdown based on CLAUDE.md).When the user confirms a task is done (or an automated completion criterion defined by the user is met):
tmp/current-task.pid. Only do so
when the task was QA'd and successfully marked complete in the PM tool.When the user says "show task", "task details", "what's this task about":
When the user says "task status", "what am I working on":
tmp/current-task.pid for the task id being worked on. If set, fetch
that task from the PM tool. This is YOUR current task.This skill itself never contains tool-specific API calls. The CLAUDE.md configuration tells the agent which MCP tools to use and what section names map to each workflow state.
### Project Management
- **PM tool**: Asana MCP
- **Shared project**: My Project (GID: 1234567890)
- Sections: Inbox, Up next, In progress, Backlog
- "Ready" section: Up next
- "In progress" section: In progress
- **Agent project**: AI Agent (GID: 0987654321)
- Sections: Current session, Blocked/Needs input, Done
- **Content format**: html
### Project Management
- **PM tool**: Linear MCP
- **Shared project**: My Team (ID: TEAM-123)
- States: Triage, Todo, In Progress, Done, Cancelled
- "Ready" state: Todo
- "In progress" state: In Progress
- **Agent project**: none
- **Content format**: markdown
### Project Management
- **PM tool**: none
- **Fallback**: ai-notes/todo.md
When tool: none, activate the working-off-of-todo-files skill instead.
current-task.pid) on the agent board. Never remove,
move, or update tasks that belong to other agents. If you accidentally
claimed a task that another agent owns, simply clear your PID file and
pick a different task — do not touch the agent board entry.