ticket-lifecycle

ticket-lifecycle is a skill for Claude Code, Codex from jonthebeef/deckhand. It costs 166 tokens per session (6,513 once invoked), scanned A, original, MIT.

A workflow for taking GitHub Issues through a GitHub Projects board, a kanban-style work tracker, from implementation to review, automated checks, and merging.

In plain words
What is it for?
Use it to process one or more tickets, implement fixes, review the code, resolve findings, wait for CI, merge changes, and update the board.
Why use it?
It gives a consistent process for moving work from an issue to a completed change while handling review feedback and CI, the automated build and test checks.

Skill for Claude CodeCodex

Part of the deckhand plugin — 2 skills shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/jonthebeef/deckhand/ticket-lifecycle
Any agent
npx skills add jonthebeef/deckhand --skill ticket-lifecycle
Clone the repo
git clone --depth 1 https://github.com/jonthebeef/deckhand

Made for: Claude Code, Codex.

Or install deckhand, the plugin that ships this one along with the rest of its 2 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for ticket-lifecycle

README.md
[![agentmods](https://agentmods.dev/badge/skills/jonthebeef/deckhand/ticket-lifecycle.svg)](https://agentmods.dev/skills/jonthebeef/deckhand/ticket-lifecycle)
Your own site
<a href="https://agentmods.dev/skills/jonthebeef/deckhand/ticket-lifecycle"><img src="https://agentmods.dev/badge/skills/jonthebeef/deckhand/ticket-lifecycle.svg" alt="Measured on agentmods" height="20"></a>
Per session 166 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,513 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00166 $0.06513
Opus 5 $0.00083 $0.03256
Sonnet 5 $0.00033 $0.01303
Haiku 4.5 $0.00017 $0.00651

Measured 4d ago against content hash 5c9a6a094efb, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

ticket-lifecycle scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

The scan reads SKILL.md. This mod also ships 1 executable file (setup.sh), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

> REMOTE=$(curl -fsS --max-time 3 https://raw.githubusercontent.com/jonthebeef/deckhand/main/skills/ticket-lifecycle/VERSION 2>/dev/null)
skills/ticket-lifecycle/SKILL.md · 335 lines

How it starts

The opening of the file, as written. The whole thing — 335 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Ticket Lifecycle

Automated batch ticket processing for any GitHub-Projects-driven repo. Take a set of GitHub issues, implement fixes, run code review, address feedback, watch CI, merge when green, and move tickets across the Kanban board.

⛔ Invocation rule — this skill is MODULAR.

Ticket Lifecycle is for running a GitHub Projects board's tickets through their full lifecycle; reach for it when that is what the user wants, not for every passing mention of a bug or issue. The full Phase 0→7 sequence describes the ideal run: many tickets in parallel worktrees, fresh-context reviewers, the lot. But the value of the skill is the discipline of the phases, not the parallelism. Most sessions will use a subset:

  • Solo / single ticket, sequential, no worktrees → still use this skill. Drop Phase 2's parallelism, run one Implement → Simplify → Review → Fix-loop → Merge cycle. Phase 0 (load learnings) and Phase 3.5 (capture learnings) still apply.
  • Fixing review feedback on an existing PR → start at Phase 4. You already have implementation; just run the fix-and-review loop until clean, then Phase 6 (Merge) and Phase 7 (Cleanup).
  • Already-merged ticket, board cleanup pending → jump to Phase 7.
  • Can't dispatch subagents at all → run the phases yourself in the main thread. The review-isolation rule (Phase 3) becomes "open a fresh Claude Code session for the review" instead of "dispatch an isolated agent". The discipline still holds.
  • Tiny one-line fix → Phases 1 (read), 2 (implement + test), 6 (merge), 7 (board move) are usually enough. Skip Simplify and Review only if the change is genuinely trivial and the user has signalled they don't want a fresh-eyes review.

Do not skip this skill because you can't run all of it. The wrong move is "I can't do Phase 2 in parallel worktrees, therefore I won't use Ticket Lifecycle at all" — that throws away Phases 0, 3, 3.5, 4, 5, 6, 7 along with it. Instead: announce which phases apply, which you're skipping, and why. Then run the applicable phases properly.

Phases are independently valuable. Phase 3 (isolated review) on its own catches bugs. Phase 4 (review loop) on its own raises PR quality. Phase 5 (sub-issue linking) on its own keeps the backlog navigable. Use what fits.

When the user wants the board-driven lifecycle, invoke and state which phases you're using.

⚠ First-invocation protocol (read this BEFORE running any phase).

deckhand only operates on a GitHub Projects board, so first establish which situation you're in by reading references/board-config.md:

  • Configuredboard-config.md has no <...> placeholders (<OWNER>, <REPO>, <PROJECT_NUMBER>, <PROJECT_ID>, <STATUS_FIELD_ID>, <EPICS_OPTION_ID>, etc.). Proceed with the workflow as normal — this is the everyday case, and "pick up #N" / "process prioritized" should just work.
  • Not configured, but a board is in play — placeholders remain, but the user is clearly doing GitHub Projects board work, or the repo's owner has a board (a quick gh project list --owner <owner> returns one). Offer to wire deckhand up: run setup (below), then proceed. Ask first; don't force it.
  • No board in play — placeholders remain AND there is no GitHub Projects board to drive (not a GitHub repo, or gh project list comes back empty, and the user only said something generic). Step aside: briefly say deckhand runs off a GitHub Projects board and you don't see one here, offer to set one up if they'd like, and otherwise do nothing. Do NOT run board operations or push setup on someone who has no board.

When a board is in play but not yet configured, set it up before any board operation. You — the assisting Claude — must run setup before any board operation.

Two options, in order of preference:

  1. Run the bundled script: bash <path-to-skill>/setup.sh. It's interactive — it will ask the user for owner, repo, and project number, auto-discover the rest via gh api graphql, and write the populated config to this skill's references/board-config.md (and to managing-project-backlog/board-config.md if it's installed alongside). When invoking from Claude Code, ask the user the three questions in chat, then call the script and pipe the answers in — or perform the equivalent GraphQL discovery yourself and write board-config.md directly.

  2. Do it inline: if the user can't run an interactive script, you can do the discovery yourself. Ask the user for owner / repo / project number, then run:

    gh api graphql -f query='query{user(login:"<OWNER>"){projectV2(number:<NUM>){id title fields(first:50){nodes{... on ProjectV2SingleSelectField{id name options{id name}}}}}}}'
    

    (swap user for organization if the owner is an org). Show the user the discovered column list, ask them to map each of the six workflow terms (Epics / Backlog / Prioritized / Doing / Review / Done) to one of their actual columns, then write the populated references/board-config.md yourself.

Do not invent IDs. Do not skip setup and hope it works — every Phase that touches the board needs real IDs. Only proceed to the rest of the workflow once board-config.md has no <...> placeholders left.

The skill assumes the logical workflow columns Epics / Backlog / Prioritized / Doing / Review / Done. Your actual column names can be anything — setup maps your column names to these terms. The skill also assumes a CLAUDE.md at repo root with project standards and (optionally) a lessons doc.

Read the full file on GitHub · 335 lines

Files

What ships with it

4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 335 lines · 166 tokens per session scan A 5c9a6a094efb

Subscribe to this mod's changes

ticket-lifecycle is a skill published in the GitHub repository jonthebeef/deckhand (6 stars, last pushed 2mo ago), licensed MIT. It adds 166 tokens to every session and 6,513 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

project-switching

Project switching implementation in sidecar: project discovery, state management, UI flow, modal rendering, filtering, theme preview, and plugin reinitialization. Use when working on the project switcher feature, project management, worktree switching, or the project configuration system.

marcus/sidecar · 57 tokens

manager

Sync session work into GitHub issues, or query track status across repos. Write: find/update issue + W-label. Read: "что по ". Triggers: "создай issue", "синкни сессию", "manager". Not day/week plans (daily-tasks).

serejaris/personal-corp-os · 63 tokens

corp-doctor

Use when a Personal Corp operating loop needs setup, repair, a new department, or task routing: HQ files and agent rules, GitHub issue workflow, corp- owner map, department repositories, or deciding which repo an issue belongs to. Triggers: "corp doctor", "почини контур", "заведи отдел", "куда положить задачу"…

serejaris/personal-corp-os · 102 tokens

pm-prioritize

Use when ranking a list of requirements, features, or backlog items using RICE / ICE / MoSCoW / Kano. Built-in decision tree picks the right framework based on data availability and decision context. Output is a transparent matrix, 2×2 Impact/Effort quadrant, and a Sprint allocation proposal. User-invoked only — do…

serejaris/personal-corp-os · 140 tokens

pm-roadmap

Сводит статус итерации, оценивает прогресс milestones, фиксирует изменения приоритетов, отслеживает зависимости и выдаёт roadmap в формате Now/Next/Later с атрибуцией задержек по 5 причинам, health score и фреймворком обрезки scope при нехватке ресурсов. User-invoked only — do NOT auto-trigger. Triggers on…

serejaris/personal-corp-os · 128 tokens

retro

Use when the user asks for "ретро", "обзор недели", or "что было за неделю" and the department needs a fact-based closeout plus its next Area goal.

serejaris/personal-corp-os · 39 tokens