ticket-status
Skill1 starsChanged 18 days agoMITView on GitHub
Use to see all in-flight ticket worktrees at a glance — a dashboard table of each worktree's ticket, branch, PR, integration status, running dev server, and task-file status. Works in any repo; resolves conventions from config or by detecting.
In this repository15 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- context-auditSkill
- daily-reportSkill
- disk-cleanupSkill
- end-of-daySkill
- finish-ticketSkill
- gmail-organizeSkill
- gov-job-finderSkill
- rebuild-integrationSkill
- resume-ticketSkill
- save-conversationSkill
- side-noteSkill
- start-of-daySkill
- start-ticketSkill
- transcribe-videoSkill
The file
Files
Ticket Status — Dashboard
Overview
Produces one table across every active worktree so you can see all parallel ticket work at a glance. Run anywhere. Project-agnostic — resolves conventions the same way as start-ticket.
Steps
0. Resolve project conventions
Find and read the config the way start-ticket step 0 does (the main checkout's copy first): worktreeDir, baseBranch, integrationBranch, taskFilesDir, project, contextBranch. Detect anything missing. project is the folder under taskFilesDir holding the ticket files — resolve it the same way start-ticket does. With contextBranch set or in local mode, task files are read from $HUB/<taskFilesDir> (start-ticket's Context home rule), not from each worktree.
1. Gather
git fetch origin 2>/dev/null
git worktree listFor each worktree under worktreeDir (skip the main checkout, and the integration worktree <worktreeDir>/<integrationBranch>, which holds no ticket):
- Ticket — derive the ticket id from the branch name.
- Dir — the worktree directory basename.
- Branch — the checked-out branch.
- PR —
gh pr list --head <branch> --state all --json number,state,title→ number + state (or "none"). - In integration branch? — if
integrationBranchis set:git merge-base --is-ancestor "$(git rev-parse <branch>)" <integrationBranch> && echo ✓ || echo ✗. Omit this column if no integration branch is configured. - Dev server — detect whether a dev server for this worktree's app is running (e.g. check the app's expected port via
lsof -ti, or look for a running process in that worktree path). - File status — read
<taskFilesDir>/<project>/*/<ticket-id>-*.md(under$HUBwhencontextBranchis set or local mode is on) if present and report both axes:status:(implementation —in progress/complete/blocked) andticket:(delivery —in-review/merged/done). A file with noticket:field is still pre-PR; show—.
2. Output
One markdown table, one row per worktree:
| Ticket | Dir | Branch | PR# | PR state | In integration | Dev server | Impl status | Delivery |
(Drop the "In integration" column if no integration branch is configured.)
Below the table, call out anything actionable:
- branches missing from the integration branch;
- integration drift (if
integrationBranchis set) — commits on it that neither the base branch nor any open ticket branch carries. They come from squash-merged, closed or rewritten branches, so the integration branch no longer matches what will ship:
Non-zero ⇒ say how many and point atopen_refs() { # open PR branches that exist on origin; a function, since zsh won't word-split a variable gh pr list --state open --author @me --json headRefName -q '.[].headRefName' | while read -r b; do git rev-parse -q --verify "origin/$b" >/dev/null && echo "origin/$b"; done } git rev-list --no-merges --count origin/<integrationBranch> --not origin/<baseBranch> $(open_refs)/rebuild-integration. Excludedocs/custom-agents/commits from the count when the integration branch is also the context branch (the old dual-role layout), since those are meant to stay; - merged PRs whose worktrees can be removed (
git worktree remove ...); - port collisions (two worktrees claiming the same app);
- with
contextBranchset or in local mode, any branch whose diff vsorigin/<baseBranch>touchesdocs/custom-agents/— those files belong oncontextBranchand would put the folder back on the base branch when the PR merges; - stale delivery status — a task file still at
ticket: in-reviewwhose PR showsMERGED. Say so and point at/start-of-day, which reconciles the field and offers the worktree cleanup. This is a read-only dashboard — don't rewrite task files here.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

