Claude-skill-registry list-tickets

List all open (non-archived) tickets

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
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"
manifest: skills/data/list-tickets/SKILL.md
source content

List 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
    .ushabti/tickets/.archived/
    are never listed
  • Non-YAML files: Only
    .yaml
    files are considered tickets
  • Subdirectories: Only files directly in
    .ushabti/tickets/
    are listed

Empty Directory

If no tickets exist, the commands handle this gracefully:

  • ls
    with
    2>/dev/null
    suppresses error messages
  • || echo "No tickets found"
    provides user-friendly output

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
    find-next-ticket-number
    to determine the next ID when creating a ticket
  • Use
    create-ticket
    to add a new ticket to the list
  • Use
    archive-ticket
    to remove a ticket from the active list (moves to
    .archived/
    )
  • Use
    describe-tickets
    to understand ticket schema and workflows

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.