git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/list-tickets" ~/.claude/skills/majiayu000-claude-skill-registry-list-tickets && rm -rf "$T"
skills/data/list-tickets/SKILL.mdList Tickets
Purpose
This skill provides commands for discovering and listing open tickets. Open tickets are those in
.ushabti/tickets/ that have not been archived.
Listing Open Tickets
Basic List Command
List all ticket files in
.ushabti/tickets/:
ls .ushabti/tickets/*.yaml 2>/dev/null || echo "No tickets found"
This shows filenames only. Example output:
.ushabti/tickets/T0001-add-search-functionality.yaml .ushabti/tickets/T0005-improve-error-messages.yaml .ushabti/tickets/T0008-refactor-agent-roles.yaml
List with Details
Show ticket files with modification times:
ls -lh .ushabti/tickets/*.yaml 2>/dev/null || echo "No tickets found"
Extract Ticket IDs
Get just the ticket IDs:
ls .ushabti/tickets/T[0-9][0-9][0-9][0-9]-*.yaml 2>/dev/null | \ sed -E 's/.*\/(T[0-9]{4})-.*/\1/' || echo "No tickets found"
Example output:
T0001 T0005 T0008
Count Tickets
Count how many open tickets exist:
ls .ushabti/tickets/*.yaml 2>/dev/null | wc -l
Reading Ticket Contents
To read a specific ticket:
cat .ushabti/tickets/T0001-*.yaml
To read all tickets (useful for searching):
for ticket in .ushabti/tickets/*.yaml; do echo "=== $ticket ===" cat "$ticket" echo "" done
Important Notes
Exclusions
These commands explicitly ignore:
- Archived tickets: Files in
are never listed.ushabti/tickets/.archived/ - Non-YAML files: Only
files are considered tickets.yaml - Subdirectories: Only files directly in
are listed.ushabti/tickets/
Empty Directory
If no tickets exist, the commands handle this gracefully:
withls
suppresses error messages2>/dev/null
provides user-friendly output|| echo "No tickets found"
Sorting
By default,
ls sorts alphanumerically, which matches ticket ID order due to zero-padding (T0001, T0002, T0010).
Example Usage
Scenario: User asks "What tickets are open?"
Run:
ls .ushabti/tickets/*.yaml 2>/dev/null || echo "No tickets found"
If tickets exist, show filenames. If no tickets exist, respond "No tickets found".
Scenario: Agent needs to check if any tickets exist
Run:
ls .ushabti/tickets/*.yaml 2>/dev/null | wc -l
If result is 0, no tickets exist. If greater than 0, tickets exist.
Scenario: User asks for ticket details
Run:
for ticket in .ushabti/tickets/*.yaml; do echo "=== $ticket ===" cat "$ticket" echo "" done
This displays all ticket contents with clear separation.
Integration with Other Skills
- Use
to determine the next ID when creating a ticketfind-next-ticket-number - Use
to add a new ticket to the listcreate-ticket - Use
to remove a ticket from the active list (moves toarchive-ticket
).archived/ - Use
to understand ticket schema and workflowsdescribe-tickets
Output Format
The skill intentionally provides raw output (filenames, counts, YAML content) rather than formatted reports. This keeps the skill simple and allows agents to format output based on context.