AGENT SKILL

ticket-tracker

Use when the request is about the *current state* of GitHub issues rather than creating new ones: "where are my tickets", "show the board", "what's in progress", "what's ready to pick up", "move issue N to in-review", "mark N done", "update the ticket status". Live triage board over GitHub issues via the gh CLI, moving each between backlog -> ready -> in-progress -> in-review -> done using status labels. This is the ticket-level board; ./ideas/roadmap.html is the feature-level one. To file new tickets, use /to-tickets, file-issue for a single ad-hoc one, or /sweep for a batch of small fixes.

License 许可
MIT
最近更新
2026-11-11
Stars
★ 0
Forks
0

01 前言 Front Matter

name
ticket-tracker
description
Use when the request is about the *current state* of GitHub issues rather than creating new ones: "where are my tickets", "show the board", "what's in progress", "what's ready to pick up", "move issue N to in-review", "mark N done", "update the ticket status". Live triage board over GitHub issues via the gh CLI, moving each between backlog -> ready -> in-progress -> in-review -> done using status labels. This is the ticket-level board; ./ideas/roadmap.html is the feature-level one. To file new tickets, use /to-tickets, file-issue for a single ad-hoc one, or /sweep for a batch of small fixes.

02 资源文件 1

03 SKILL.md 正文

Ticket Tracker

The live state-machine layer over GitHub issues. Where triage-issue/to-tickets create tickets, this skill is the ongoing surface that reads and moves them. State lives on GitHub, not in a file, so it is never stale.

Where this sits

PORTFOLIO — many features        ideate  or  chat-to-approach
                                        ↓
                            ./docs/approach.md  →  ./ideas/roadmap.html
                                                        ↓  pick ONE card
FEATURE — one feature per run    to-prd → to-plan → to-tickets → ticket-tracker
                                 non-code work: to-prd → to-tickets
                                                                 ^^^^^^^^^^^^^^ you are here

Never send the user backwards. A missing upstream artifact is written inline or offered, never a reason to stop and run another skill first. The one hard gate is an approved plan.

./ideas/roadmap.html and this board are different altitudes, not rival copies. A roadmap card is a feature — something to be built — and one card fans out into several tickets, which is what this board tracks. Do not tell the user the roadmap is superseded, and do not render a feature-level roadmap from issues; a board full of tickets is not a roadmap.

State machine

A ticket carries exactly one status:* label. States, in order:

status:backlog → status:ready → status:in-progress → status:in-review → status:done

  • backlog — captured, not yet scoped to pick up. Open issues with no status:* label are treated as backlog.
  • ready — scoped and grabbable now.
  • in-progress — actively being worked.
  • in-review — PR open / awaiting review.
  • done — merged/closed. Closing the issue is the terminal action.

Forward moves are the norm; backward moves (e.g. review kicked back to in-progress) are allowed. Reject a move that skips more than one state unless the user is explicit — a jump usually means a missing label, not real progress.

Setup (once per repo)

Before relying on the labels, check they exist:

gh label list --search status: | grep -q status: || {
  gh label create "status:backlog"     -c "#cccccc" -f
  gh label create "status:ready"        -c "#0e8a16" -f
  gh label create "status:in-progress"  -c "#1d76db" -f
  gh label create "status:in-review"    -c "#fbca04" -f
  gh label create "status:done"         -c "#5319e7" -f
}

Show the board

Read live state and group by column. Never render from a cached file.

gh issue list --state open --limit 200 \
  --json number,title,labels,assignees \
  --jq 'sort_by(.number)'

Derive each ticket's state from its status:* label (none → backlog). Print one column per state in order, each ticket as #<number> <title> [@assignee]. Put done/closed items last or omit unless asked. Keep it to a scannable text board.

Move a ticket

Swap the label so exactly one status:* remains, then confirm:

gh issue edit <number> \
  --remove-label "status:<from>" \
  --add-label "status:<to>"
  • If the current state is unknown, read the issue's labels first (gh issue view <number> --json labels).
  • Moving to done: also close the issue — gh issue close <number>.
  • Moving out of done: reopen it — gh issue reopen <number>.
  • After editing, re-read and state the ticket's new position: #<n> is now <state>.

Getting tickets onto the board

This skill tracks tickets; it does not investigate or file them. To add new work:

  • Bugs / reported problems → defer to triage-issue (investigate + file), then the new issue lands in backlog.
  • Planned work → point the user at /to-tickets, then label the batch ready.

Do not duplicate those flows. When a ticket-tracker request implies creating an issue, hand off, then apply the initial status:* label and show the board.

04 同仓库更多 Skills

O-Marsters-1997
O-Marsters-1997/my-claude-code

vault-recall

Answer the user's conceptual or technical question using their Obsidian vault as well as general knowledge. Use when the user asks a question (not a task) whose topic appears in the vault MOC digest from session start. Not for task instructions, not mid-task, and not for writing to the vault (that is to-vault).

★ 0
O-Marsters-1997
O-Marsters-1997/my-claude-code

ingest

Ingest one external source (an article, course lesson, doc, PDF or URL) into the user's Obsidian vault: save the original to raw/, then build wiki/ pages per the vault's § Ingest. Use when the user types /ingest, or says "ingest this", "add this source to my wiki", "put this article/lesson in the vault as a wiki page". Works from any repo. Routing rule: someone else's words go to wiki/ (this skill); the user's own learnings and decisions go to notes/ (/to-vault).

★ 0
O-Marsters-1997
O-Marsters-1997/my-claude-code

to-tickets

Breaks a source into independently-grabbable GitHub tickets. For a code feature the source is the plan (`docs/plans/<feature>.md`, from /to-plan) and every new or changed symbol lands in exactly one ticket, its signatures copied into the ticket body; a non-code feature is cut from the PRD's slices. Cuts tickets for one feature per run. If a code feature has no approved plan, offers /to-plan instead of cutting from prose. In a repo that runs command-centre, also emits `[[task]]` blocks into its config; in a plain treepad repo, emits a Batch Manifest instead so the tickets materialise as stacked worktrees.

★ 0
O-Marsters-1997
O-Marsters-1997/my-claude-code

to-seams

Records an agreed-but-unlanded cross-repo interface as a seam: the file a consumer's agent gets pasted into its prompt as ground truth, plus the `[[seam]]` block command-centre reads for the retirement pointer. Use when two repos need to build against an interface neither has landed yet — "record a seam for X", "we agreed on this schema, seam it", "add a seam so Y can build against Z's new field". Halts for approval before writing either file.

Skill与智能体开发
★ 0
O-Marsters-1997
O-Marsters-1997/my-claude-code

to-roadmap

Prioritises settled features into a Now / Next / Later kanban board, rendered as a self-contained ./ideas/roadmap.html. Each card is a feature, not a ticket — one card later becomes several tickets via /to-prd -> /to-plan -> /to-tickets. Boards the features in ./docs/approach.md, or the "## Accepted ideas" in ./ideas/CONTEXT.md when there is no approach doc. The approach doc is settled truth: this assigns tiers and reasons about ordering, it never re-litigates what was decided.

产品经理
★ 0
O-Marsters-1997
O-Marsters-1997/my-claude-code

to-prd

Turns one feature idea into a PRD built on journeys: a one-line problem, journeys (each ending in an observable state) and delivery slices that say what is usable after each. Interviews, explores the codebase, and saves to docs/prds/<feature>.md. Covers exactly one feature: given a multi-feature source, ask which one. Reads any approach doc or ideate report as priors so it doesn't re-ask what's settled, but needs none. Starts the per-feature spine (/to-prd -> /to-plan -> /to-tickets).

产品经理
★ 0