Skip to main content

github-issue-writing

GitHub issue body and `[Type] Component:` title — bug/feature templates, repro steps, acceptance criteria. Use when filing a bug or feature request with gh.

Informações da origem

Repositório
laurigates/claude-plugins
Última atividade na origem
15 de agosto de 2026 às 10:12
Idioma detectado do SKILL.md
inglês
Estrelas
60
Forks
6

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
created
2026-01-30T00:00:00.000Z
modified
2026-08-15T00:00:00.000Z
reviewed
2026-04-29T00:00:00.000Z
name
github-issue-writing
description
GitHub issue body and `[Type] Component:` title — bug/feature templates, repro steps, acceptance criteria. Use when filing a bug or feature request with gh.
user-invocable
false
allowed-tools
Bash(gh issue *), Bash(gh label *), Bash(gh repo *), Read, Grep, Glob, TodoWrite
# GitHub Issue Writing Create well-structured, actionable GitHub issues. ## When to Use This Skill | Use this skill when... | Use the alternative when... | |---|---| | Filing a new bug, feature, or chore issue with clear title and acceptance criteria | Use `git-issue` to start working on existing issues end-to-end | | Structuring an issue body with reproduction steps, scope, and definition of done | Use `github-issue-autodetect` to link existing issues from staged diffs | | Choosing the `[Type] Component: Description` title format | Use `github-pr-title` to author the conventional title for the PR that fixes it | | Designing a feature-request issue before implementation begins | Use `git-issue-manage` for transfer/pin/lock/develop-branch admin operations | | Assembling the GitHub issue itself — title format, templates, `gh issue create` | Use `communication-plugin:ticket-drafting-guidelines` for the What/Why/How prose structure and house tone of the body text | ## Issue Title Format ``` [Type] Component: Brief description ``` | Type | Example | |------|---------| | Bug | `[Bug] Auth: Login fails with valid credentials` | | Feature | `[Feature] API: Add rate limiting support` | | Docs | `[Docs] README: Add installation instructions` | | Chore | `[Chore] CI: Update Node.js version` | **Guidelines:** - Be specific (not "Bug" but "Login fails with OAuth") - Include component for triage - Keep under 72 characters ## Bug Report Template ```markdown ## Summary Brief description of the bug. ## Steps to Reproduce 1. Go to '...' 2. Click on '...' 3. See error ## Expected Behavior What should happen. ## Actual Behavior What actually happens. ## Environment - OS: macOS 14.0 - Browser: Chrome 120 - Version: 2.1.0 ``` ## Feature Request Template ```markdown ## Summary What this feature does. ## Motivation Why this is needed. What problem does it solve? ## Proposed Solution Description of desired behavior. ## Acceptance Criteria - [ ] Criterion 1 - [ ] Criterion 2 - [ ] Criterion 3 ``` ## Issue Types GitHub supports first-class issue types. Use `--type` when creating issues: | Type | Use For | |------|---------| | Bug | Something broken that needs fixing | | Feature | New functionality request | | Task | General work item | Note: Available types depend on repository/org configuration. Use `gh issue create --type "Bug"` to leverage them. ## Body Content: Use `--body-file` For any non-trivial body — anything containing backticks, code fences, or multi-line content — use `--body-file <path>`, never `--body "<text>"`. This applies to **all** `gh` commands that accept a body: `gh issue create`, `gh issue edit`, `gh issue comment`, `gh pr create`, `gh pr edit`, `gh pr comment`. ### When to use which | Body shape | Pattern | |---|---| | Trivially short, single line, no backticks | `--body "Short text"` is fine | | Contains backticks (inline code, code fences) | `--body-file /tmp/body.md` — required | | Multi-line | `--body-file /tmp/body.md` — required | | Contains shell metacharacters (`$`, `"`, `'`, `\`) | `--body-file /tmp/body.md` — required | ### Why Shell-quoted `--body` strings escape backticks (`` ` `` becomes `` \` ``), breaking inline code spans and triple-backtick code fences in the rendered issue. Bash heredocs interact unpredictably with the agent's argument escaping. Writing the markdown to a file with the `Write` tool sidesteps shell quoting entirely — the file content is preserved byte-for-byte. ### Pattern ``` 1. Write tool → /tmp/issue-body.md (markdown body, no shell escaping) 2. gh issue create --title "..." --body-file /tmp/issue-body.md ``` The same `--body-file <path>` form is supported by every `gh` command that accepts a body. ## CLI Commands ```bash # Create issue with a body file (preferred for any non-trivial body) gh issue create --title "[Bug] Auth: Login fails" --body-file /tmp/issue-body.md # Trivially short body — inline --body is acceptable gh issue create --title "[Chore] Bump dep" --body "See renovate PR" # With labels gh issue create --title "..." --body-file /tmp/body.md --label "bug" --label "priority: high" # With assignee gh issue create --title "..." --body-file /tmp/body.md --assignee "@me" # With issue type gh issue create --title "..." --body-file /tmp/body.md --type "Bug" # As sub-issue of a parent gh issue create --title "..." --body-file /tmp/body.md gh api repos/{owner}/{repo}/issues/{parent}/sub_issues -f sub_issue_id={new_id} # Search before creating gh issue list --search "login error" --state all ``` ## Linking Issues Pick the mechanism that matches the relationship — GitHub surfaces each one differently and only the native APIs trigger "Blocked" badges on project boards. | Relationship | How to record | Why | |--------------|---------------|-----| | Hard dependency (must happen before) | Native `dependencies/blocked_by` API — see `/git:issue-hierarchy --blocked-by N` | Sidebar "Relationships" entry + Blocked badge on boards | | Composition (part-of scope) | Sub-issue API — see `/git:issue-hierarchy --add N` | Progress bar on parent, tracked separately from dependencies | | Soft reference ("related to") | Plain markdown `Related to #789` in the body | Cross-link only; no lifecycle coupling | | Auto-close on merge | `Fixes #N` / `Closes #N` footer in commit or PR body | Closes issue when the PR merges | Do **not** write `Blocks #123` or `Blocked by #456` in issue bodies any more — those strings used to be GitHub's workaround for missing dependency APIs, but they are no longer parsed. Call `/git:issue-hierarchy` (or the REST endpoints at `issues/{N}/dependencies/blocked_by`) so the relationship shows up in the sidebar and on project boards. ## Quick Reference | Action | Command | |--------|---------| | Create | `gh issue create --title "..." --body-file /tmp/body.md` | | Create with type | `gh issue create --title "..." --body-file /tmp/body.md --type "Bug"` | | Search | `gh issue list --search "keyword"` | | View | `gh issue view N` | | Edit body | `gh issue edit N --body-file /tmp/body.md` | | Comment | `gh issue comment N --body-file /tmp/comment.md` | | Labels | `gh label list` | ## Agentic Optimizations | Context | Command | |---------|---------| | Create issue | `gh issue create --title "..." --body-file /tmp/body.md` | | Create with type | `gh issue create --title "..." --type "Bug" --body-file /tmp/body.md` | | List labels | `gh label list --json name` | | Search issues | `gh issue list --search "keyword" --state all --json number,title` | | View issue | `gh issue view N --json title,body,labels` |
Ver no GitHub