gh-issue

A GitHub issue-to-pull-request workflow for the Plumb Rust workspace. It guides work from investigation and planning through implementation, tests, review, CI, and cleanup; TDD means writing tests before the related code.

In plain words
What is it for?
Handling one or more related GitHub issues, optionally in an isolated worktree, while recording implementation, review, commit, pull-request, and CI status.
Why use it?
It gives multi-step issue work a defined process and keeps progress available when a session is interrupted or resumed.

Skill for Claude CodeCodex

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/aram-devdocs/plumb/gh-issue
Any agent
npx skills add aram-devdocs/plumb --skill gh-issue
Clone the repo
git clone --depth 1 https://github.com/aram-devdocs/plumb

Made for: Claude Code, Codex.

Per session 59 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,468 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. 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.00059 $0.03468
Opus 5 $0.00030 $0.01734
Sonnet 5 $0.00012 $0.00694
Haiku 4.5 $0.00006 $0.00347

Measured yesterday against content hash ef6bcc6b95ed, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

gh-issue scanned grade A with 0 findings 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 yesterday.

The scan reads SKILL.md. This mod also ships 2 executable files (scripts/gh_issue_run.py, scripts/validate_skill.py), 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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.agents/skills/gh-issue/SKILL.md · 288 lines

How it starts

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

/gh-issue — GitHub issue delivery lifecycle for Plumb

Strict delivery lifecycle that drives one or more GitHub issues from investigation through merged PR against aram-devdocs/plumb.

Use /gh-runbook first when the source is a runbook spec that still needs to be fanned out into grouped issues.

Usage

/gh-issue 17                     # Single issue
/gh-issue 17 18 19               # Multiple related issues (single PR)
/gh-issue 17 --worktree          # Isolated worktree
/gh-issue 17 --resume            # Resume after compaction

State management

# Initialize a new run
python3 .agents/skills/gh-issue/scripts/gh_issue_run.py init-run <primary> <slug> [--issues 17 18 19] [--worktree]

# Update phase or field
python3 .agents/skills/gh-issue/scripts/gh_issue_run.py update-state <primary> <slug> --phase implementing
python3 .agents/skills/gh-issue/scripts/gh_issue_run.py update-state <primary> <slug> --pr 42
python3 .agents/skills/gh-issue/scripts/gh_issue_run.py update-state <primary> <slug> --review spec pass
python3 .agents/skills/gh-issue/scripts/gh_issue_run.py update-state <primary> <slug> --commit abc1234

# Validate a run can be resumed
python3 .agents/skills/gh-issue/scripts/gh_issue_run.py validate-resume <primary> <slug>

# Poll PR CI status
python3 .agents/skills/gh-issue/scripts/gh_issue_run.py poll-pr <primary> <slug>

# Clean up worktree after done
python3 .agents/skills/gh-issue/scripts/gh_issue_run.py cleanup-worktree <primary> <slug>

Phases

investigating > planning > bootstrapped > implementing > verifying > reviewing > pr > waiting-ci > cleanup > done

Lifecycle

Phase 1 — investigating

  1. Fetch issue(s):
    gh issue view <N> --repo aram-devdocs/plumb --json number,title,body,labels,milestone,assignees,comments
    
  2. Identify affected crates, layers, and files via codebase exploration.
  3. Read the root AGENTS.md, the scoped AGENTS.md for any crate touched (crates/plumb-*/AGENTS.md), and .agents/rules/ — the Plumb invariants live there.
  4. Check for blocking dependencies (issues referenced in body).
  5. If the issue came from a runbook spec, re-read the spec in docs/runbooks/ to confirm batch and gate context.
  6. Initialize run state:
    python3 .agents/skills/gh-issue/scripts/gh_issue_run.py init-run <primary> <slug> --issues <N> [<M>...]
    

Read the full file on GitHub · 288 lines

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. yesterday First seen · 288 lines · 59 tokens per session scan A ef6bcc6b95ed

Subscribe to this mod's changes

gh-issue is a skill published in the GitHub repository aram-devdocs/plumb (2 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 59 tokens to every session and 3,468 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. 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

extract-design

Extract the full design language from any website URL. Produces 8 output files including AI-optimized markdown, visual HTML preview, Tailwind config, React theme, shadcn/ui theme, Figma variables, W3C design tokens, and CSS variables. Also runs WCAG accessibility scoring. Use when user says 'extract design', 'get…

Manavarya09/design-extract · 98 tokens

designlang-tokens

Use when styling UI for cal.com — references the extracted design system tokens instead of inventing colors, spacing, or typography.

Manavarya09/design-extract · 30 tokens

uisandbox

Open a real, built web app in UISandbox — the interactive sandbox in the user's browser, 1:1, with the app's own knobs (brand, colours, fonts, radius, spacing…) — or test one change headlessly, verify it still renders 1:1, get a screenshot and the patch. Use when someone wants to look at their app in a sandbox and…

Ideelab/uisandbox · 155 tokens

design-md-extractor

Extract and document the visual style of public websites as reusable DESIGN.md files. Use when the user asks to analyze a website's design system, extract styles, create design tokens, produce DESIGN.md, generate an agent-readable style guide, or build from a website's visual language.

jpoindexter/design-md-extractor · 60 tokens

ss-score

Score a visual artifact's implementation quality 0-100 against its composed StyleSeed rule set — category breakdown, evidence, and prioritized fixes.

bitjaru/styleseed · 31 tokens

ss-setup

Configure StyleSeed by selecting the output grammar, domain, page type, brand recipe, semantic palette recipe, optional aesthetic profile, and bounded brand tokens before scaffolding a first screen.

bitjaru/styleseed · 40 tokens