Create GitHub Issue from Conversation
Consult the gh issue manual for more details.
Create a well-structured GitHub issue using gh CLI, populated with context from the current conversation.
Instructions
Determine the repo -- confirm you're inside a git repo with a GitHub remote:
gh repo view --json nameWithOwner -q '.nameWithOwner'
If this fails, ask the user which repo to file against.
Synthesize the conversation into a GitHub issue body following the structure below.
Create the issue using gh:
gh issue create --title "<concise title>" --body "$(cat <<'ISSUE_EOF'
<issue body here>
ISSUE_EOF
)"
Report back with the issue URL.
Issue Body Structure
Build the issue body in this exact order:
Section 1: What & Why
Open with a short (2-4 bullet) summary answering:
- What needs to happen?
- Why does it matter? (user pain, system constraint, business goal)
This section should stand alone -- a reader who stops here should understand the ask.
Section 2: Context & Discussion
This is the bulk of the issue. Capture everything relevant from our conversation:
- Background -- what led to this discussion
- Current behavior -- how things work today (or don't)
- Desired behavior -- what success looks like
- Constraints & decisions -- trade-offs we discussed, options we rejected and why
- Technical details -- relevant code paths, configs, schemas, API shapes, error messages
- Related work -- links to PRs, issues, docs, or external references mentioned
Formatting rules for this section:
- Use
## Headings and ### Subheadings to organize by topic
- Use bullet points over paragraphs
- Use markdown tables for comparisons, option matrices, or structured data
- Embed images/screenshots if any were shared (use
 syntax)
- Wrap code snippets, commands, file paths, and config in fenced code blocks with language tags
- Use
<details><summary>...</summary>...</details> to collapse verbose content (logs, full configs, large code blocks) so the issue stays scannable
- Do NOT strip context -- preserve the substance of our discussion, but reorganize it logically
Section 3: Implementation Plan
End with the plan we've aligned on (even if rough). Frame it for a future agent or developer picking this up cold:
- Number the steps
- Call out key files to create or modify
- Note any open questions or decisions still TBD (prefix with
[ ])
- If there are dependencies between steps, make the order explicit
- If we haven't aligned on a plan yet, write
## Implementation Plan\n\n_TBD -- no plan agreed on yet._
Labels & Assignment (optional)
- If the conversation implies a category (bug, feature, enhancement, tech-debt), add
--label flags
- Do NOT assign unless the user explicitly asks
Style Rules
- Title: imperative mood, under 70 chars (e.g., "Add retry logic to webhook delivery")
- No fluff: skip filler phrases like "It would be great if..." -- be direct
- Bias to structure: headers > paragraphs, bullets > prose, tables > lists-of-pairs
- Preserve signal: don't summarize away details that a future implementer would need
- Mark uncertainty: if something was discussed but not decided, say so explicitly with "TBD" or an open checkbox
[ ]
1---2name: gh-create-issue3description: Create structured GitHub issues from conversation context using gh CLI4---56# Create GitHub Issue from Conversation78Consult the [gh issue manual](resources/auto/manual-gh_issue.md) for more details.910Create a well-structured GitHub issue using `gh` CLI, populated with context from the current conversation.1112## Instructions13141. **Determine the repo** -- confirm you're inside a git repo with a GitHub remote:1516 ```bash17 gh repo view --json nameWithOwner -q '.nameWithOwner'18 ```1920 If this fails, ask the user which repo to file against.21222. **Synthesize the conversation** into a GitHub issue body following the structure below.23243. **Create the issue** using `gh`:2526 ```bash27 gh issue create --title "<concise title>" --body "$(cat <<'ISSUE_EOF'28 <issue body here>29 ISSUE_EOF30 )"31 ```32334. **Report back** with the issue URL.3435## Issue Body Structure3637Build the issue body in this exact order:3839### Section 1: What & Why4041Open with a short (2-4 bullet) summary answering:4243- **What** needs to happen?44- **Why** does it matter? (user pain, system constraint, business goal)4546This section should stand alone -- a reader who stops here should understand the ask.4748### Section 2: Context & Discussion4950This is the bulk of the issue. Capture everything relevant from our conversation:5152- **Background** -- what led to this discussion53- **Current behavior** -- how things work today (or don't)54- **Desired behavior** -- what success looks like55- **Constraints & decisions** -- trade-offs we discussed, options we rejected and why56- **Technical details** -- relevant code paths, configs, schemas, API shapes, error messages57- **Related work** -- links to PRs, issues, docs, or external references mentioned5859**Formatting rules for this section:**6061- Use `## Headings` and `### Subheadings` to organize by topic62- Use bullet points over paragraphs63- Use markdown tables for comparisons, option matrices, or structured data64- Embed images/screenshots if any were shared (use `` syntax)65- Wrap code snippets, commands, file paths, and config in fenced code blocks with language tags66- Use `<details><summary>...</summary>...</details>` to collapse verbose content (logs, full configs, large code blocks) so the issue stays scannable67- Do NOT strip context -- preserve the substance of our discussion, but reorganize it logically6869### Section 3: Implementation Plan7071End with the plan we've aligned on (even if rough). Frame it for a future agent or developer picking this up cold:7273- Number the steps74- Call out key files to create or modify75- Note any open questions or decisions still TBD (prefix with `[ ]`)76- If there are dependencies between steps, make the order explicit77- If we haven't aligned on a plan yet, write `## Implementation Plan\n\n_TBD -- no plan agreed on yet._`7879## Labels & Assignment (optional)8081- If the conversation implies a category (bug, feature, enhancement, tech-debt), add `--label` flags82- Do NOT assign unless the user explicitly asks8384## Style Rules8586- **Title**: imperative mood, under 70 chars (e.g., "Add retry logic to webhook delivery")87- **No fluff**: skip filler phrases like "It would be great if..." -- be direct88- **Bias to structure**: headers > paragraphs, bullets > prose, tables > lists-of-pairs89- **Preserve signal**: don't summarize away details that a future implementer would need90- **Mark uncertainty**: if something was discussed but not decided, say so explicitly with "TBD" or an open checkbox `[ ]`