github-issue-conventions
Where remaining work goes on a GitHub repo: an issue via `gh`.
Skill by leroyguillaume
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/leroyguillaume-github-issue-conventions
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/github-issue-conventions
What's inside
- Skill name
github-issue-conventions- Description
- Where remaining work goes on a GitHub repo: an issue via `gh`. TRIGGER when: you spot out-of-scope work (bug, follow-up, cleanup, missing test); the user asks to file or track something; you are about to write remaining work into a file. SKIP when: the repo has no GitHub `origin` remote (say it in chat instead), or the work is small enough to just do now.
- License
- MIT
- Instructions
- 108 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# GitHub issue conventions (`gh` CLI) **Remaining work lives in an issue, never scattered through the repo's files.** A committed `TODO.md`, a "roadmap" heading in the README, a `## Status` checklist — they all rot within a month, conflict on every branch, and become a second, worse tracker sitting next to the real one. A document describes the project as it is, in the present tense; what remains to do is not part of it. **The one exception is a root `ROADMAP.md`**, when the project keeps one. It holds the shape of what is coming; the tracker still holds the actionable tickets, and every other file stays in the present tense. Never create one unasked. **GitHub only.** Everything here assumes an `origin` remote on GitHub — check before reaching for `gh`: ```bash git remote get-url origin ``` If the repo is not on GitHub, there is no issue to open: tell the user what you found, in chat, and stop. Do **not** fall back to writing it in a file. ## Never open an issue unasked Opening an issue is a public, outward-facing act on the user's account, exactly like a commit or a push. Same rule: **propose, then wait for an explicit yes.** Present it ready to run — title, body, labels — and let the user say go: ```bash gh issue create \ --title "handle a 429 from the credentials API" \ --body "$(cat <<'BODY' `sync_secret` in `src/reconcile.rs:88` treats every non-2xx as fatal, so a rate-limited call burns the retry budget instead of backing off. Done when a 429 is retried with the `Retry-After` delay and covered by a test. BODY )" \ --label bug --label rust ``` The permission does not carry forward: the next issue needs its own ask. ## Before creating one, look for it Issues duplicate easily, and a duplicate is worse than none — it splits the discussion in two. ```bash gh issue list --search "429 rate limit" --state all --limit 20 ``` If it already exists, add a comment to it rather than opening a twin. ## Title It is read in a list of fifty: - Imperative mood, lowercase, no trailing period, aim for ≤ ~70 chars. - An optional `area:` prefix when it sharpens the scope, matching the repo's existing issues. Read `gh issue list --limit 30` first and follow the style that is already there rather than imposing a new one. - Say the thing, not the feeling: `retry a 429 from the credentials API`, not `improve error handling`. ## Body Three short parts, and nothing else: 1. **What is true today** — the behaviour or the gap, with the file and line that show it (`src/reconcile.rs:88`). Present tense, no narrative of how it got there. 2. **Why it matters** — the consequence for a user or an operator, one sentence. If you cannot name one, the issue may not be worth opening. 3. **Done when** — the observable condition that closes it, including the test that proves it. This is what stops an issue from living forever. No essay, no speculative design, no task breakdown invented on the spot. Link the ADR, PR or upstream issue when one exists instead of restating it. ## Labels Read the repo's real labels and use them verbatim — a name that does not exist makes `gh` fail the whole command: ```bash gh label list --limit 100 ``` Then apply one issue-triage label (`bug` / `enhancement` / `question` / …) plus the area or technology labels that fit. The release-note category labels (`fix`, `feature`, …) belong on the pull request that ships the change (see `github-repo-settings` for the split). Never invent a label to fit the issue; creating one is deliberate `github-repo-settings` work. If the right label does not exist, use the closest one and say so. ## Closing the loop - **Let the PR close it**, and reference follow-ups from it — the body conventions are in `github-pr-conventions`. - **Nothing stays behind in the code.** No `TODO`, no `FIXME`, no `XXX` — not even one carrying the issue number. The issue is the marker; a second copy in a comment only adds one more thing that goes stale and lies. Once the issue exists, the code says nothing about it.
From leroyguillaume/claude, MIT.
More from leroyguillaume/claude
- 0.624score
adr-conventions
leroyguillaume
Architecture Decision Records in `docs/adr/`.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
api-conventions
leroyguillaume
HTTP/RPC API payloads in any language: DTOs, JSON casing, pagination, OpenAPI docs.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
architecture-conventions
leroyguillaume
ARCHITECTURE.md: the system as it stands, in the present tense.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
argocd-conventions
leroyguillaume
Argo CD objects in any GitOps repository.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
ci-conventions
leroyguillaume
Platform-agnostic CI pipelines: quality gate, Trivy scans, path filters, caching, releases.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
contributing-conventions
leroyguillaume
CONTRIBUTING.md: dev setup, tests, pre-commit and CI.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
dependency-update-conventions
leroyguillaume
Dependabot and Renovate configuration and their PRs.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
diagram-conventions
leroyguillaume
Diagrams in committed files: format and diagram type.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
docker-conventions
leroyguillaume
Dockerfiles: base images, multi-stage builds, non-root USER, hadolint and Trivy.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
documentation-conventions
leroyguillaume
Docs a human can maintain: one home per fact, links not copies.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
frontend-conventions
leroyguillaume
Frontend code: TypeScript, React, Biome, mobile-first.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
github-actions-conventions
leroyguillaume
GitHub Actions mechanics: workflows, pinned actions, SARIF, release notes, Releases, Pages.
SkillAFreshness: A★ 7Claude Code +9
Signals
- Stars
- 7
- Forks
- 3
- Open issues
- 0
- Last commit (this folder)
- Oct 4, 2026 (24 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/leroyguillaume/claude
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from leroyguillaume
- 0.624score
api-conventions
leroyguillaume
HTTP/RPC API payloads in any language: DTOs, JSON casing, pagination, OpenAPI docs.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
architecture-conventions
leroyguillaume
ARCHITECTURE.md: the system as it stands, in the present tense.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
argocd-conventions
leroyguillaume
Argo CD objects in any GitOps repository.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
ci-conventions
leroyguillaume
Platform-agnostic CI pipelines: quality gate, Trivy scans, path filters, caching, releases.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
contributing-conventions
leroyguillaume
CONTRIBUTING.md: dev setup, tests, pre-commit and CI.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
adr-conventions
leroyguillaume
Architecture Decision Records in `docs/adr/`.
SkillAFreshness: A★ 7Claude Code +9
Cite this page
github-issue-conventions skill. Agent Mart. https://agentmart.dev/skills/leroyguillaume-github-issue-conventions (last updated 2026-10-24)