About project-tickets
project-tickets is a user-invoked planning skill that converts an approved SPEC into numbered issues in a local Markdown tracker. It verifies the handoff, drafts dependency-aware vertical slices, and publishes tickets only after the user approves their shape.
Key features
- 01Verify SPEC approval and completeness
- 02Draft demoable vertical-slice tickets
- 03Track dependencies and parallel work
- 04Iterate on ticket shape with the user
- 05Publish numbered Markdown issue files
Use cases
- 01Turn an approved SPEC into implementation tickets
- 02Plan work with explicit dependencies
- 03Apply an approved change proposal to tickets
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ light-cheng/ skills --skill project-ticketsAfter installing, type/project-ticketsin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
ATTRIBUTION.mdagents/openai.yamlreferences/EXAMPLES.mdTICKET-CONTRACT.mdWORKFLOW.mdDetails
From the project READMEProject Tickets
project-tickets is an explicit, user-invoked planning stage. Run it only
after an explicit $project-tickets request. It turns a verified SPEC into
numbered, one-file-per-ticket issues on the local markdown tracker.
Resolve the tracker and working area from docs/agents/light-project.md and
its docs/agents/issue-tracker.md locator when present. If the configured
tracker is not the supported local-markdown contract, report BLOCKED with the
missing adapter instead of silently writing .scratch files.
Core behavior
- Verify the SPEC handoff. Read the SPEC at the supplied path; a missing,
malformed or
Approval: pendingSPEC is a handoff gap — report it and stop. A SPEC with noApproval:line: ask the user, and on yes record it. - Draft tracer-bullet vertical slices. Each slice is a narrow, complete,
demoable path through the relevant layers, with
Blocked byedges,ready work, andparallelizablegroups. - Quiz the user. Show title, Blocked by, and what each ticket delivers; iterate until the granularity and edges are approved.
- Publish one file per ticket under
.scratch/<feature>/issues/, numbered from01in dependency order with the approved shape unchanged. Then append the approval (who, when, their words) to the SPEC's## Commentsas aTickets approvedline.
Applying a change proposal. When the user passes an approved proposal
from .scratch/<feature>/changes/, apply exactly its Tickets: line (add,
drop, split, reorder, change Blocked by or acceptance). When its SPEC: line
is none or a SPEC applied line is already under ## Comments, set
**Status:** to applied with a status line; otherwise add
- <date> Tickets applied — project-tickets. A proposal in any other status, or a
change it does not list, goes back to the user unchanged.
Handoff
After publishing, describe the frontier and recommend explicit $light-implement
on the chosen ticket, then stop.
Optional capabilities
.scratch/<feature>/plan.htmlexists → after publishing, calllight-html-planto refresh it. Missing page or capability → skip.
References
- WORKFLOW.md — full slicing procedure and wide-refactor sequencing.
- TICKET-CONTRACT.md — canonical ticket file shape and Wayfinding compatibility.
- EXAMPLES.md — dog-food and boundary examples.