skills/td/SKILL.md
Manage tasks and issues with the td CLI. Use for creating, tracking, querying, and handing off work items. Covers task lifecycle, session management, structured handoffs, epics, dependencies, and boards.
npx skillsauth add espennilsen/pi tdInstall 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.
td is a local-first task management CLI optimized for AI-assisted development workflows. It tracks issues, sessions, structured handoffs, and progress logs.
Every session follows this pattern:
Start — Load context and begin a new session:
td usage --new-session # Full context dump (issues, logs, handoffs)
td status # Quick dashboard: focus, reviews, blocked, ready
Pick work — Find what to work on:
td next # Highest-priority open issue
td ready # All open issues sorted by priority
td list --mine # Issues assigned to current session
Start an issue — Set focus and mark in-progress:
td start <issue-id> # Sets focus + status to in_progress
Log progress — Track decisions, blockers, attempts:
td log "Implemented auth middleware" # Progress (default)
td log --blocker "Waiting on API key from team" # Blocker
td log --decision "Using JWT over session tokens" # Decision
td log --tried "Attempted Redis caching" # Attempted approach
td log --result "Redis too complex, using in-memory" # Result
td log --hypothesis "Rate limiting might fix 429s" # Hypothesis
Handoff — Capture structured state before ending session:
td handoff <issue-id> \
--done "Implemented login endpoint" \
--done "Added JWT validation" \
--remaining "Add refresh token flow" \
--remaining "Write tests for auth middleware" \
--decision "Using RS256 for JWT signing" \
--uncertain "Should we support OAuth2 providers?"
Submit for review — When work is complete:
td review <issue-id> # Submit for review (preferred)
Review — Different session approves or rejects:
td reviewable # What can I review?
td approve <issue-id> # Ship it → closed
td reject <issue-id> --reason "Need tests" # Back to in_progress
# Basic
td create "Fix login redirect bug"
# Full options
td create "Add OAuth2 support" \
--type feature \
--priority P1 \
--description "Support Google and GitHub OAuth2 providers" \
--labels "auth,backend" \
--parent <epic-id>
# Types: task (default), bug, feature, epic, chore
# Priorities: P0 (critical) → P4 (minimal)
# Points: Fibonacci — 1, 2, 3, 5, 8, 13, 21
td list # All open issues
td list --all # Include closed
td list --type bug # Only bugs
td list --priority P0 # Only critical
td list --status in_progress # In progress
td list --labels auth # By label
td list --epic <epic-id> # All tasks in an epic
td list --sort priority # Sort by field
td list --long # Detailed output
td list --json # JSON output
td query "status = open AND type = bug"
td query "priority <= P1" # P0 and P1
td query "created >= -7d" # Last 7 days
td query "title ~ auth OR description ~ auth"
td query "log.type = blocker" # Issues with blockers
td query "implementer = @me AND is(in_progress)"
td query "descendant_of(<epic-id>)" # All children of epic
td query "rework()" # Rejected issues
td board create "Active Bugs" "type = bug AND is(open)"
td board create "My Work" "implementer = @me AND NOT is(closed)"
td board list # Show all boards
td board show "Active Bugs" # Run saved query
open → in_progress → in_review → closed
↕ ↕ ↕
blocked blocked rejected → in_progress (rework)
td start <id> # open → in_progress (sets focus)
# ... do work, log progress ...
td handoff <id> --done "..." --remaining "..." # capture state
td review <id> # in_progress → in_review (requires handoff)
# Different session reviews:
td reviewable # what can I review?
td approve <id> # in_review → closed (ship it)
td reject <id> --reason "Missing error handling" # in_review → in_progress (back to work)
td block <id> # → blocked
td unblock <id> # → open
td close <id> # → closed (skip review, for admin closes only)
td reopen <id> # → open
review → approve/reject for non-trivial work — don't skip to closeclose is for admin purposes only: duplicates, won't-fix, trivial/minor tasksreject sends work back to in_progress for rework — always include a --reasontd dep add <id> <depends-on-id> # A depends on B
td dep rm <id> <depends-on-id> # Remove dependency
td depends-on <id> # What does this issue need?
td blocked-by <id> # What's waiting on this issue?
td critical-path <id> # Longest dependency chain
# Create an epic
td create "Auth System" --type epic --priority P1
# Add child tasks
td create "Login endpoint" --parent <epic-id>
td create "JWT validation" --parent <epic-id>
# View hierarchy
td tree <epic-id> # Visual tree
td list --epic <epic-id> # All descendants
td epic list # List all epics with progress
td session "working on auth" # Name current session
td session --new # Start fresh session
td whoami # Show current session identity
td focus <id> # Set focus without starting
td unfocus # Clear focus
td resume <id> # Show context + set focus
td show <id> # Full detail with logs, handoffs, comments
td show <id> --children # Include child issues
td comments <id> # List comments
td comment <id> "Note about this" # Add a comment
td status # Dashboard: session, focus, reviews, blocked, ready
td next # Highest-priority open issue
td ready # Open issues sorted by priority
td blocked # All blocked issues
td in-review # Issues awaiting review
td reviewable # Issues you can review
td deleted # Soft-deleted issues
td restore <id> # Restore deleted issue
td usage --new-session or td statustools
# pi-a2a Long-Running Tasks Skill ## Overview The pi-a2a extension supports **long-running tasks** that can execute for hours or days without timeouts. This is essential for: - Data processing pipelines - Batch operations - Research and aggregation tasks - External API jobs with unpredictable duration - Any A2A task that exceeds the standard timeout ## When to Use **Use long-running tasks when:** - Task execution time is unpredictable or known to exceed 10 minutes - The remote agent is proc
development
Orchestrate cmux terminal panes — split terminals, run parallel processes, read output from other panes, and use the built-in browser. Use when working inside cmux and you need to run a dev server, watch tests, spawn sub-agents, or preview web pages.
testing
Review UI designs and implementations for accessibility, consistency, usability, and visual quality. Use when asked to review a design, audit accessibility, check UI consistency, compare implementation against mockups, or evaluate a user interface.
tools
Create, review, and improve skills for Pi agents. A skill is a folder with a SKILL.md that teaches an agent specialized workflows, domain knowledge, or tool integrations. Use when asked to create a new skill, improve an existing skill, review a skill for quality, scaffold a skill from a workflow, or convert documentation into a skill. Also triggers on "make a skill for", "build a skill", "skill for [topic]", "teach the agent to", or "package this workflow as a skill".