Read-only taskwarrior queue report โ pending, blocked, ready tasks and drift vs linked PRs. Use when auditing queue health, orienting before a wave, or for standup summaries.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
Read-only taskwarrior queue report โ pending, blocked, ready tasks and drift vs linked PRs. Use when auditing queue health, orienting before a wave, or for standup summaries.
Read-only status report on the coordination queue. Strictly uses export | jq โ never list โ so parallel Bash batches from downstream skills stay safe.
When to Use This Skill
Use this skill when...
Use task-coordinate / task-add / task-done instead when...
Auditing pending / blocked / stale tasks across the project queue
Picking the top-N candidates for a wave dispatch โ use task-coordinate
Detecting drift between tasks and their linked GitHub issues / PRs
Filing a new task surfaced by drift detection โ use task-add
Folding gh pr status rollups into a standup-ready report
Closing a PR-ready task with a landed commit โ use task-done
Git probes (git rev-parse --show-toplevel, git remote) write to stderr
in a no-git cwd, and stderr from a Context backtick aborts the skill
before its body runs. Project resolution is done in the body (Step 1
below), where 2>/dev/null and exit-code handling are available.
Parameters
Parse $ARGUMENTS:
--mine โ limit to tasks where the agent UDA matches claude-${CLAUDE_SESSION_ID:0:8} (the value /taskwarrior:task-claim writes). Useful for "what am I currently holding?" reports.
--blocked โ only tasks with +blocked / +blocked_on_merge or active depends:
--active โ only +ACTIVE tasks (claimed and in flight)
--stale=N โ highlight tasks modified > N days ago
--stale-claim-after=N โ threshold (hours) for flagging a +ACTIVE claim as stale in the "Stale claims" section. Default 4. Reports only โ never auto-stops.
--project=<name> โ override the auto-detected project filter
--all โ opt out of project filtering and report across every project
No flags โ full report scoped to the current project
Project resolution
Default behaviour is project-scoped โ surfacing tasks from other repos as
"queue noise" is the most common waste of agent context. Resolve the
project identifier in this order:
--project=<name> if provided.
--all โ no project filter.
Basename of git rev-parse --show-toplevel 2>/dev/null, run via the
Bash tool (where stderr suppression and non-zero exits are tolerated).
If no git repo (Step 3 returned empty), basename of the cwd.
Cross-check the resolved name against Known projects. If it is not in
the list, note it (likely a fresh project or no tasks filed yet) but
still apply the filter โ task export returns [] cleanly when the
project has no matching tasks.
Execution
Execute this workflow:
Step 1: Snapshot the queue
Pull full state as JSON in a single call, scoped to the resolved project
(omit project:$PROJECT only when --all is set). task export emits
[] on an empty store โ valid and exit 0. Substitute the literal
project name into the filter โ do not use $() command substitution
in the inline command (shell-operator protections will reject it).
For each task with bpdoc: check the file exists and is readable. Flag
missing or unreadable bpdoc as drift.
For each task with ghid in GitHub mode:
gh issue view "$GHID" --json number,state | jq
Flag:
Task open, issue closed โ drift: stale-open
Task +pr_ready but PR not in OPEN โ drift: pr-state-mismatch
Step 4: PR status fold-in (GitHub mode)
gh pr status --json number,title,state,statusCheckRollup | jq
Join by ghpr UDA. Annotate each matched task with its PR's check
rollup (SUCCESS / FAILURE / PENDING). Tasks tagged +pr_ready
with a green PR are the highest-value drain candidates.
Step 5: Render
Lead the report with the resolved project scope so the reader knows
whether they're seeing a single-project view or --all:
Project: myrepo (auto-detected from git toplevel)
Pass --all for cross-project view, --project=<name> to override.
In flight: +ACTIVE tasks with agent / branch / host / worktree and time since start. Sorted by start ascending (oldest first). Section header notes --mine / --all scope.
Stale claims (>4h or --stale-claim-after): subset of "In flight" with start.before:now-Nh. Recommend /taskwarrior:task-release <id> per row โ the report never auto-stops.
Ready for dispatch: top 5 by urgency from +READY -ACTIVE (taskwarrior's native ready set โ unblocked, not waiting, scheduled-due). These are what /taskwarrior:task-coordinate would emit. Flag any +OVERDUE rows (past due:) at the top.
By milestone: table of pending tasks per bpms
Blocked: tasks waiting on dependencies or external factors
PR-ready (GitHub mode): tasks with green PRs ready to close
Drift: tasks with stale links (issue closed, missing bpdoc, etc.)
Each row cites the command to act on it (/taskwarrior:task-done 7,
/taskwarrior:task-release 4, /taskwarrior:task-claim 11), plus the task's
short UUID (.uuid[0:8]) as a copy-pasteable immutable form โ convenience
only, not the safety mechanism (/taskwarrior:task-claim /
task-release / task-done resolve and mutate by UUID internally
regardless of which form is pasted; see .claude/rules/task-id-stability.md).