forge-create-issue
Create Issue
Collaboratively plan and create well-structured Issues through interactive discussion. The Issue is created in the project's Issue tracker — see CONTEXT.md for provider detection.
Input
The issue idea or problem description: $ARGUMENTS
If no argument is provided, ask the user what they'd like to create an issue for.
Process
Step 1: Understand and Clarify
Parse the user's input, then use AskUserQuestion to gather:
- Problem context — what triggered this, who's affected, current vs desired behavior
- Success criteria — how will we know this is done
- Constraints — technical limitations, dependencies
Step 2: Research the Codebase
Before proposing solutions, explore relevant code:
- Find related existing implementations and patterns
- Identify integration points and potential reuse
- Look for similar past implementations
Verify external dependencies are accessible if relevant — flag broken ones before proceeding.
Step 3: Present Alternative Approaches
Always present 2-4 different approaches. Never jump to a single solution.
For each approach:
- One-line summary
- How it works (brief)
- Pros and cons
- Relative complexity (Low / Medium / High)
- Key files affected
Let the user choose or combine approaches.
Step 4: Assess Scope
Evaluate if this should be one Issue or multiple.
Split when: distinct deliverables, different codebase areas, parallelizable work, or effort exceeds 1-2 days.
Keep together when: tightly coupled changes or splitting adds coordination overhead.
When splitting, slice vertically — each Issue is a thin end-to-end path (see vertical-slicing.md). Classify each as AFK or HITL (see afk-vs-hitl.md). Order by dependency.
If splitting makes sense, offer: single Issue, multiple linked Issues, or epic with sub-issues.
Step 5: Draft the Issue
Title: Use conventional commit format — <type>(<scope>): <description>
Labels: When using GitHub, discover available labels with gh label list. When using the markdown provider, choose labels freely — there is no predefined set. Apply at least one type label and relevant area labels.
Body structure:
## Summary
[1-2 sentences]
## Problem / Motivation
[Why this needs to exist]
## Proposed Solution
[Chosen approach with implementation details]
### Alternatives Considered
[Other approaches and why they weren't chosen]
### Implementation Constraints
[When applicable: preferred libraries, config locations, patterns to follow, external dependencies]
## Acceptance Criteria
- [ ] [Specific, testable criteria]
- [ ] Tests added/updated
- [ ] Documentation updated (if applicable)
Step 6: Review and Create
Present the draft to the user. Iterate until satisfied. Then create the Issue using the project's Issue tracker — see issue-operations for provider-specific mechanics.
For GitHub epics, create the parent issue first, then sub-issues with --parent <PARENT_NUMBER>.
Share the issue reference. Suggest using forge-implement to start implementation.
Guidelines
- Be curious — challenge assumptions, ask "why" and "what if"
- Explore first — always research the codebase before proposing solutions
- Never skip alternatives — even if one approach seems obvious
- Don't over-specify — leave room for implementer judgment
- No time estimates
Related Skills
Next step: Use forge-implement to implement the issue.
Example Usage
/forge-create-issue add dark mode support
/forge-create-issue
More from mgratzer/forge
forge-setup-project
Set up or update a project's context infrastructure for agentic engineering — AGENTS.md as lean hot memory, docs/ as earned warm memory, with signal-to-noise scoring for existing guidance. Use when starting a new project, retrofitting an existing codebase, or auditing current guidance quality.
29forge-address-pr-feedback
Analyze and address unresolved feedback on a GitHub pull request. Use when the user has received PR review comments and wants to systematically address each piece of feedback, or when the user mentions PR feedback, review comments, or addressing reviewer concerns.
26forge-implement-issue
⚠️ Renamed to forge-implement. This stub exists for migration — remove it and install forge-implement instead.
23forge-reflect-pr
Review the current PR branch for refactoring opportunities, missing tests, documentation updates, and cleanup before finalizing. Use when the user has finished implementing a feature and wants to self-review before requesting peer review.
22forge-update-changelog
Update CHANGELOG.md with user-facing changes from recent commits. Use when the user has merged a PR, completed a release, or wants to document recent changes in the changelog.
16forge-implement
Implement a feature or fix from an Issue, plan file, or free-text description, following project standards. Use when the user wants to start working on an Issue, implement a feature, fix a bug, or build from a plan or roadmap.
12