Brainstorm → GitHub Issue
Relationship to Superpowers
If Superpowers is installed, this skill and Superpowers' own brainstorming
skill are sequential, not competing:
- This skill captures intent — a short problem/outcome write-up — and
runs first, before any implementation planning.
- Superpowers'
brainstorming produces the full spec — the detailed,
implementation-relevant design — and runs second, once the intent issue
exists.
Don't let this skill's synthesis expand into spec-writing territory
(alternatives considered, technical constraints, out-of-scope boundaries)
— that's Superpowers' job, seeded from this issue by the
superpowers-issue-bridge skill.
When this applies
The user has been discussing a problem, need, or idea conversationally
(with any AI agent — this isn't specific to a coding session) and now wants
that discussion turned into a tracked GitHub issue. Do not run this while
the problem is still being explored — only once the user signals it's
ready (e.g. "create the issue for this," "file this," "let's turn this
into an issue").
Preconditions
- Check for
docs/agents/issue-tracker.md. If it doesn't exist, tell the
user to run the configure-issue-tracker skill first, and stop — don't
guess a tracker or repo.
- Read the tracker config from that file:
- GitHub backend: use the
owner/repo it records. Confirm gh
is authenticated (gh auth status); if not, tell the user to run
gh auth login and stop.
- Local markdown backend: write to
.scratch/<feature>/ instead of
creating a GitHub issue — skip all gh steps below and use a
slugified title as the filename.
- Other/freeform backend: follow whatever the recorded notes
describe; ask the user if the notes don't cover this case.
- If the user explicitly names a different repo/tracker for this one
run, use that instead of the config — a one-off override doesn't
require re-running setup.
Steps
Re-read the brainstorming conversation and extract, in the user's own
words wherever possible:
- Title — a short name for the problem/feature (this becomes the
issue title, not a
# heading inside the body).
- Problem — what's wrong today, for whom, and why it matters.
- Proposed outcome — what "better" looks like, stated as an outcome
not an implementation.
- Affected users and systems — who and what this touches.
- Constraints — any hard limits already mentioned (compliance,
security, scope boundaries, deadlines).
- Open questions — anything genuinely unresolved. Leave real
uncertainty in rather than inventing a confident answer.
If any section has no real content from the conversation, write
"None identified" rather than fabricating detail — do not pad sections
to look complete.
Draft the issue body using exactly this template. The title is used
twice — once as the GitHub issue title itself, and once as the H1 at
the top of the body, so the content still reads correctly if exported,
printed, or viewed outside GitHub's issue chrome:
# {title}
## Problem
{problem}
## Proposed outcome
{proposed_outcome}
## Affected users and systems
{affected}
## Constraints
{constraints}
## Open questions
{open_questions}
Show the drafted title and body to the user and ask for confirmation
or edits before creating anything. Do not create the issue silently.
Once confirmed, create it:
gh issue create \
--repo <owner>/<repo> \
--title "<title>" \
--body-file <tmp-file> \
--label <label from docs/agents/issue-tracker.md, default: intent>
(Create the label first with gh label create <label> if it doesn't
exist yet — don't fail silently if the label is missing.)
Report the issue URL back to the user. This issue is the entry point
("intent issue") for the project/feature going forward — later stages
(spec, plan, PR) should reference its number. If Superpowers is
installed, tell the user this issue is now ready to hand off: starting
Superpowers' brainstorming skill referencing this issue number (the
superpowers-issue-bridge skill handles seeding it in) is the natural
next step.
What NOT to do
- Don't run this mid-brainstorm — wait for explicit confirmation the
discussion is done.
- Don't invent content for empty sections.
- Don't create the issue without showing the draft first.
- Don't guess the target repo if it can't be inferred.
Non-Claude-Code version (plain prompt)
For tools without a skills/auto-discovery mechanism, paste this as a
one-off prompt once brainstorming is done:
Based on our conversation above, draft a GitHub issue using exactly this
template — an H1 with the title, then Problem, Proposed outcome,
Affected users and systems, Constraints, Open questions — each section a
few sentences, using "None identified" for anything we didn't actually
discuss. Give me the title and body as plain text; don't create anything
yet, just show me the draft.
Then create it yourself with:
gh issue create --repo <owner>/<repo> --title "<title>" --body-file draft.md --label intent
1---2name: brainstorm-to-issue3description: Turns a completed brainstorming conversation about a problem into a GitHub issue using a fixed five-section intent template (Problem, Proposed outcome, Affected users and systems, Constraints, Open questions). Trigger this when the user says the brainstorm is done and asks to file, create, or open an issue for it — not while still exploring the problem.4---56# Brainstorm → GitHub Issue78## Relationship to Superpowers910If Superpowers is installed, this skill and Superpowers' own `brainstorming`11skill are sequential, not competing:1213- This skill captures **intent** — a short problem/outcome write-up — and14 runs first, before any implementation planning.15- Superpowers' `brainstorming` produces the full **spec** — the detailed,16 implementation-relevant design — and runs second, once the intent issue17 exists.1819Don't let this skill's synthesis expand into spec-writing territory20(alternatives considered, technical constraints, out-of-scope boundaries)21— that's Superpowers' job, seeded from this issue by the22`superpowers-issue-bridge` skill.2324## When this applies2526The user has been discussing a problem, need, or idea conversationally27(with any AI agent — this isn't specific to a coding session) and now wants28that discussion turned into a tracked GitHub issue. Do not run this while29the problem is still being explored — only once the user signals it's30ready (e.g. "create the issue for this," "file this," "let's turn this31into an issue").3233## Preconditions34351. Check for `docs/agents/issue-tracker.md`. If it doesn't exist, tell the36 user to run the `configure-issue-tracker` skill first, and stop — don't37 guess a tracker or repo.382. Read the tracker config from that file:39 - **GitHub backend:** use the `owner/repo` it records. Confirm `gh`40 is authenticated (`gh auth status`); if not, tell the user to run41 `gh auth login` and stop.42 - **Local markdown backend:** write to `.scratch/<feature>/` instead of43 creating a GitHub issue — skip all `gh` steps below and use a44 slugified title as the filename.45 - **Other/freeform backend:** follow whatever the recorded notes46 describe; ask the user if the notes don't cover this case.47 - If the user explicitly names a different repo/tracker for this one48 run, use that instead of the config — a one-off override doesn't49 require re-running setup.5051## Steps52531. Re-read the brainstorming conversation and extract, in the user's own54 words wherever possible:55 - **Title** — a short name for the problem/feature (this becomes the56 issue title, not a `#` heading inside the body).57 - **Problem** — what's wrong today, for whom, and why it matters.58 - **Proposed outcome** — what "better" looks like, stated as an outcome59 not an implementation.60 - **Affected users and systems** — who and what this touches.61 - **Constraints** — any hard limits already mentioned (compliance,62 security, scope boundaries, deadlines).63 - **Open questions** — anything genuinely unresolved. Leave real64 uncertainty in rather than inventing a confident answer.652. If any section has no real content from the conversation, write66 "None identified" rather than fabricating detail — do not pad sections67 to look complete.683. Draft the issue body using exactly this template. The title is used69 twice — once as the GitHub issue title itself, and once as the H1 at70 the top of the body, so the content still reads correctly if exported,71 printed, or viewed outside GitHub's issue chrome:7273 ```markdown74 # {title}7576 ## Problem77 {problem}7879 ## Proposed outcome80 {proposed_outcome}8182 ## Affected users and systems83 {affected}8485 ## Constraints86 {constraints}8788 ## Open questions89 {open_questions}90 ```91924. Show the drafted title and body to the user and ask for confirmation93 or edits before creating anything. Do not create the issue silently.945. Once confirmed, create it:9596 ```bash97 gh issue create \98 --repo <owner>/<repo> \99 --title "<title>" \100 --body-file <tmp-file> \101 --label <label from docs/agents/issue-tracker.md, default: intent>102 ```103104 (Create the label first with `gh label create <label>` if it doesn't105 exist yet — don't fail silently if the label is missing.)1061076. Report the issue URL back to the user. This issue is the entry point108 ("intent issue") for the project/feature going forward — later stages109 (spec, plan, PR) should reference its number. If Superpowers is110 installed, tell the user this issue is now ready to hand off: starting111 Superpowers' `brainstorming` skill referencing this issue number (the112 `superpowers-issue-bridge` skill handles seeding it in) is the natural113 next step.114115## What NOT to do116117- Don't run this mid-brainstorm — wait for explicit confirmation the118 discussion is done.119- Don't invent content for empty sections.120- Don't create the issue without showing the draft first.121- Don't guess the target repo if it can't be inferred.122123---124125## Non-Claude-Code version (plain prompt)126127For tools without a skills/auto-discovery mechanism, paste this as a128one-off prompt once brainstorming is done:129130> Based on our conversation above, draft a GitHub issue using exactly this131> template — an H1 with the title, then Problem, Proposed outcome,132> Affected users and systems, Constraints, Open questions — each section a133> few sentences, using "None identified" for anything we didn't actually134> discuss. Give me the title and body as plain text; don't create anything135> yet, just show me the draft.136137Then create it yourself with:138139```bash140gh issue create --repo <owner>/<repo> --title "<title>" --body-file draft.md --label intent141```