Replaces the labels-as-milestones pattern (carried over from the retired SQLite milestone subsystem) with pql's native initiative/epic hierarchy, which already modelled this: initiative T-745 (Development Cascade) holds the six phases as epics. A ticket is in a phase by being parented under that phase epic — self-maintaining, no label to apply or forget. The `phase:4` label had already drifted (66 tickets under the Phase-4 epic T-750 but only 42 labelled). Fixes: - T-750 (Phase 4) -> in_progress to mark the active phase (sequential per D-166). - Re-parented the 2 strays (T-974 Atlas-to-tile epic, T-1008 economy task) under T-750. - Dropped all 42 phase:4 labels (tombstoned in the changelog). - /whats-next, /ticket, ticket-cli.md, CLAUDE.md now gate on `pql ticket list --under <active-phase-epic> --unblocked` instead of `--label phase:4`. - Fixed the label-action verb in the docs: pql uses `add|rm`, not `add|remove`. - pql-requirements #9 flipped: no milestone entity / labels-as-milestones needed — the initiative/epic tree is the answer. Verified: `pql plan rebuild` reconstructs the mutations; `--under T-750 --unblocked` returns the active phase's ready work. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3.2 KiB
3.2 KiB
name, description, user-invocable, allowed-tools
| name | description | user-invocable | allowed-tools |
|---|---|---|---|
| ticket | Manage project tickets in the pql planning store. Use when the user says "ticket", "create a ticket", "show tickets", "board", "phase", or invokes /ticket. Wraps the pql CLI for structured project management. | true | Bash, Read, Grep, Glob |
Ticket Skill
Manage tickets via pql (.pql/pql.db, rebuilt from the git-tracked
.pql/changelog/). Ids are T-NNN (T-440 == legacy #440). Full command reference:
.claude/rules/ticket-cli.md.
Commands
List / browse
pql ticket list [--status S] [--team T] [--label L] [--assigned A] [--decision D-NNN] \
[--unblocked] [--leaf] [--under T-N]
pql ticket board [--team T] # kanban view, grouped by status
pql ticket show T-440 [--with-context] [--with-children] [--with-blockers] [--tree]
pql ticket show T-1,T-2,T-3 # batch
(pql ticket list has no --type/--priority filter — list and read the JSON, or use
--under <epic> for an epic's subtree.)
Create
pql ticket new <type> <title> [--parent T-N] [--priority P] [--decision D-NNN] [--team T] [--description TEXT] [--assign A]
Types: initiative, epic, story, task, bug. Priorities: critical, high, medium, low.
Update
pql ticket status T-440 in_progress # backlog|ready|in_progress|review|done|cancelled (batch with commas)
pql ticket assign T-440 dudley
pql ticket team T-440 server # comma teams allowed: server,client
pql ticket setparent T-9 T-2
pql ticket append T-440 "extra context" # --file PATH / --stdin
pql ticket label T-440 add|rm <label>
Dependencies
pql ticket show T-440 --with-blockers # what blocks this
pql ticket block T-7 --by T-440 # T-440 blocks T-7
pql ticket unblock T-7 --from T-440
Phases (the cascade hierarchy, not labels or a milestone entity)
pql ticket list --under T-750 --unblocked # ready work in the active phase (Phase 4)
pql ticket setparent T-990 T-750 # put a ticket in the phase (re-parent)
pql ticket show T-745 --tree # the cascade: initiative -> 6 phase epics
The active phase is the in_progress phase epic under T-745 (sequential per D-166).
Refinement & planning
pql ticket refine list # tickets with no description
pql ticket refine next [--skip N]
pql ticket refine write T-5 '{"description":"..."}'
pql plan whatsnext # next ticket to work on
pql plan review # next ticket awaiting review
pql plan status # decision + ticket dashboard / counts
Workflow
- Decisions from
governance/records become initiatives - Initiatives break into epics (major work areas)
- Epics break into stories (user-facing deliverables)
- Stories break into tasks (concrete work items)
- Phase gating is the cascade hierarchy (initiative T-745 → six phase epics), not labels/milestones
/whats-nextselects the next batch viapql ticket list --under <active-phase-epic> --unblocked- Mutations flow to the git-tracked
.pql/changelog/; the pre-commit hook exports + stages it