Best for
- Use when scoping a PR or plan from a GitHub issue, or before filing or reversing one in your own tracker.
laurigates/claude-plugins/git-plugin/skills/git-issue-scoping/SKILL.md
Read an issue's full comment thread and re-verify its cited evidence at HEAD. Use when scoping a PR or plan from a GitHub issue, or before filing or reversing one in your own tracker.
Decision brief
Invoke before building a PR, plan, or prototype off a GitHub issue — including issues in repos you own, and before filing or reversing one in your own tracker.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/laurigates/claude-plugins --skill "git-plugin/skills/git-issue-scoping"Inspect the Agent Skill "git-issue-scoping" from https://github.com/laurigates/claude-plugins/blob/c056e44b978db58648ad20440dc1515cb09af09d/git-plugin/skills/git-issue-scoping/SKILL.md at commit c056e44b978db58648ad20440dc1515cb09af09d. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
WebFetch (and any "summarize this issue" step) returns a compressed view. It faithfully captures the issue body and headline asks, but silently drops the back-and-forth in the comments where the real decisions live. You then design against the body's framing, build a prototype,…
When an issue is the basis for a contribution, read the comments first:
No maintainer to defer to is exactly why this gets skipped. Two failures:
Distinct from the sections above, which are about discussion you failed to read. Here you read everything, and the issue is simply out of date: it cites file.ts:230 and asserts what is there, and between filing and today some unrelated PR fixed it. A well-written issue makes thi…
Any external contribution scoped from an issue, especially a popular repo where
Permission review
The documentation asks the agent to read local files, directories, or repositories.
**Re-read every file:line the issue cites, at HEAD, before writing anythingEvidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 54 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Invoke before building a PR, plan, or prototype off a GitHub issue — including issues in repos you own, and before filing or reversing one in your own tracker.
Before building a PR (or even an approach) off a GitHub issue, read every comment in the thread — not a fetched summary, not just the body. Issues that look like simple feature requests are often where the maintainer has already converged on a specific design with other experts. A summary compresses exactly the part that matters: the decided mechanism, the agreed scope, and the work someone has already volunteered to do.
Applies to repos you own too (§ Your own tracker): the deference part is about upstream, but the load-bearing part is that a tracker records decisions past-you made and no longer remembers.
WebFetch (and any "summarize this issue" step) returns a compressed view. It
faithfully captures the issue body and headline asks, but silently drops the
back-and-forth in the comments where the real decisions live. You then design
against the body's framing, build a prototype, and discover — only if you go
back and read the comments — that:
Canonical break (jnv #114 → PR #116, 2026-06): a WebFetch summary presented the issue as "extend completion beyond JSON paths." The actual 33-comment thread was a design discussion in which the maintainer and the jaq author had converged on token-based segmentation (jaq's
load::lextoken trees) plus a newyieldfilter (an unmerged jaq PR) for the in-paren case, with an explicit scope ladder. We built a byte-scanner PoC and a PR body that re-litigated settled questions — caught only when the user asked "did we check all the comments?" The PR had to be reframed before it was safe to surface.
When an issue is the basis for a contribution, read the comments first:
gh issue view <n> --repo <owner>/<repo> --json title,body,author,comments \
--jq '.body, (.comments[] | "--- " + .author.login + " ---\n" + .body)'
Specifically extract, before writing any code:
gh pr view → merged? released?) before depending on them.If you only have a summary and a gap has passed, re-read the live thread before acting — the discussion may have moved.
No maintainer to defer to is exactly why this gets skipped. Two failures:
gh issue list -R <o>/<r> --state all --search "<kw>" --json number,title,stateObserved 2026-08 (pal-mcp-server), ten minutes apart: filed a detailed issue duplicating a month-old one that had already diagnosed the same broken publish pipeline — then merged a PR doing the very migration that issue explicitly deferred. Neither was caught by review; both surfaced only from listing open issues afterwards.
The tell: calling something "the obvious fix" on a subsystem broken long enough for someone to have written about it — long-broken means investigated. When reversing a decision, say so on the PR and issue, quoting the old reasoning, so the next reader sees a decision changed rather than forgotten.
Distinct from the sections above, which are about discussion you failed to
read. Here you read everything, and the issue is simply out of date: it
cites file.ts:230 and asserts what is there, and between filing and today
some unrelated PR fixed it. A well-written issue makes this worse — precise
line numbers and quoted snippets read as verified fact, and the better the
write-up, the less anyone re-checks it.
Observed 2026-08-13 (thelma #1055). A security issue's central claim was "no
responseSchemaenforcement on the Gemini call —gemini.ts:230does not pass it." True when filed on 05-13; false by the time it was worked. #1060 had added it in between. The issue even listed "responseSchemaenforcement is deliberately removed (currently absent)" as a trigger to re-evaluate — so writing the doc from the issue verbatim would have shipped a threat model asserting the absence of the control that was by then its primary defence, and inverted one of its own triggers.
diagnose-at-the-failure-point.md.gh issue view <n> --json createdAt against
git log -S'<symbol>' -- <path> finds the PR that moved it. An issue older
than a few weeks on an active file should be assumed stale until checked.WebFetch/research step stand in for the primary source.~/.claude/rules/verify-upstream-before-patching.md — same instinct (check
the authoritative source before acting) for vendored code; this is the
issue-thread analogue.~/.claude/rules/tool-use-patterns.md (WebFetch) — a summary is lossy; for a
decision that gates real work, go to the full source, not the fetched digest.git-plugin:git-issue — the consumer: the end-to-end issue→PR workflow that
scopes from the issue thread this skill teaches you to read in full.The cost asymmetry is stark: reading the thread is one gh issue view and a few
minutes; skipping it costs a misaligned prototype, a PR that signals you didn't
read the discussion, and a reframe-or-close under the maintainer's eye. The full
thread is the spec; the summary is a lossy proxy for it.
Frequently asked questions
Invoke before building a PR, plan, or prototype off a GitHub issue — including issues in repos you own, and before filing or reversing one in your own tracker.
The source record exposes this install command: npx skills add https://github.com/laurigates/claude-plugins --skill "git-plugin/skills/git-issue-scoping". Inspect the command and pinned source before running it.
Static rules flagged read-files in the source; the page lists the matching lines and excerpts.