From kanban-skill
Select the next kanban ticket to work on, with optional type/tag/workstream filtering
How this skill is triggered — by the user, by Claude, or both
Slash command
/kanban-skill:ticket-pickerThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Select and begin work on the next kanban ticket. **Only activated when the user explicitly asks to start work on a ticket.** Triggered by phrases like:
Select and begin work on the next kanban ticket. Only activated when the user explicitly asks to start work on a ticket. Triggered by phrases like:
Never auto-pick or auto-start a ticket. Creating a ticket does not mean starting it. Always wait for the user to explicitly ask before beginning work on any ticket.
kanban/todo/Glob kanban/todo/*.md and parse each file's YAML frontmatter for type, priority, depends-on, depends-on-workstreams, workstream, and tags.
kanban/workstreams/Glob kanban/workstreams/*.md and parse each file's YAML frontmatter for slug, status, tickets, and depends-on-workstreams. This is needed to check workstream-level blocking.
Map the user's words to ticket filters:
| User says | Filter |
|---|---|
| "next ticket" (no qualifier) | No filter — all types |
| "next feature ticket" / "feat" | type: feature |
| "next test ticket" / "testing ticket" / "unit testing ticket" | type: test |
| "next bug ticket" / "bug fix" | type: bug |
| "next refactor ticket" | type: refactor |
| "next infra ticket" / "infrastructure" / "tooling" | type: infra |
| "next docs ticket" / "documentation" | type: docs |
| "next spike" / "research ticket" | type: spike |
| "next property-testing ticket" | tags contains property-testing |
| "next high priority ticket" | priority: high |
| "next ticket from " | workstream equals <workstream> |
When the user specifies multiple qualifiers (e.g. "next high priority testing ticket"), apply all filters together.
If no tickets match the filter, tell the user what's available instead of silently picking something else.
A ticket is blocked if ANY of these conditions are true:
Any slug in depends-on does NOT have a matching file in kanban/ready-to-review/ or kanban/done/.
To check: for each slug in depends-on, look for kanban/ready-to-review/<slug>.md or kanban/done/<slug>.md. If neither exists, the ticket is blocked.
Any slug in depends-on-workstreams refers to a workstream that is NOT complete.
To check: for each workstream slug in depends-on-workstreams:
kanban/workstreams/<slug>.mdtickets list from frontmatterkanban/ready-to-review/ or kanban/done/If the ticket has a workstream field, check if earlier tickets in that workstream are complete:
kanban/workstreams/<workstream>.mdtickets list from frontmatterkanban/ready-to-review/ or kanban/done/Note: Workstream ordering is a soft constraint. If the user explicitly requests a specific ticket by name, skip this check.
high priority workstreams > medium > low > tickets not in any workstreamhigh > medium > lowtickets list order)Select the top ticket from the sorted list.
kanban/todo/ to kanban/in-progress/branch field in frontmatter if creating a new branchTDD workflow by ticket type:
feature tickets — Start by writing failing tests (unit and/or property tests) that encode the acceptance criteria. Do not write implementation code until tests exist and fail. Follow Red → Green → Refactor.bug tickets — Start by writing a test that reproduces the defect. The test must fail against current code. Then implement the fix. The test passing is the fitness function.test tickets — Write tests against existing behavior. Note any discovered bugs as new bug tickets.spike tickets — Follow the spike workflow defined in the kanban-tracker skill. Spikes produce design notes and follow-up tickets — not production implementation. Do not refactor existing production code during a spike.refactor, infra, docs) — Ensure existing tests pass before and after changes. Write new tests if the change introduces testable behavior.created date), or first in workstream order if same workstreamworkstream field, respect workstream orderingUser: "pick up the next testing ticket"
kanban/todo/: find test--circuit-breaker-statem.md, test--composer-merge-properties.mdkanban/workstreams/: find test-infra.md which includes both ticketstype: test → both matchtest--circuit-breaker-statem.md depends on infra--propcheck-streamdata-setup → in ready-to-review/ → unblockedtest--composer-merge-properties.md is second in workstream tickets list → predecessor test--circuit-breaker-statem.md not done → blocked by workstream ordertest--circuit-breaker-statem.md is unblockedtest--circuit-breaker-statem.mdkanban/in-progress/, announce, begin workUser: "pick up the next ticket from the streaming-reorg workstream"
kanban/todo/: find tickets with workstream: streaming-reorgkanban/workstreams/streaming-reorg.md:
tickets:
- infra--externalize-llm-config
- refactor--split-streaming-module
- refactor--extract-api-key-handling
depends-on-workstreams: []
infra--externalize-llm-config is first in list → no predecessor → check depends-on → none → unblockedrefactor--split-streaming-module depends on first ticket → blocked by workstream orderrefactor--extract-api-key-handling depends on second ticket → blocked by workstream orderinfra--externalize-llm-configkanban/in-progress/, announce, begin workUser: "pick up the next ticket"
Ticket refactor--artifact-components.md has:
workstream: liveview-cleanup
depends-on-workstreams: [guardrails]
guardrails workstream complete?kanban/workstreams/guardrails.md → tickets: [docs--claude-md-guidelines, infra--create-hooks]docs--claude-md-guidelines.md is in ready-to-review/ or done/ → NO (still in todo/)refactor--artifact-components.md is blocked by workstream dependencynpx claudepluginhub kormie/dot-skillsPicks the next executable task from project-root TODO.md by priority and dependency, marks it in-progress, and executes it. Uses a structured task format with priority, ID, and dep fields.
Browses Arness-labeled issues from GitHub, Jira, or local feature backlog, selects unblocked one via dependency resolution, and routes to implementation pipeline.
Writes high-quality product tickets including user stories, bugs, improvements, spikes, and technical debt for Jira, Linear, Notion, GitHub Issues, or Markdown. Use to create, refine, split, or review tickets.