Use when (1) creating GitHub issues from feature plans or bug reports, (2) documenting bugs found during development, (3) managing the project backlog. Creates well-structured GitHub issues with templates and labels.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: gmacko-dev-issue-create
description: Use when (1) creating GitHub issues from feature plans or bug reports, (2) documenting bugs found during development, (3) managing the project backlog. Creates well-structured GitHub issues with templates and labels.
license: MIT
compatibility: opencode
metadata:
phase: development
tier: workhorse
permission: ask
---
# Gmacko Issue Creator
Create well-structured GitHub issues using the `gh` CLI with proper templates, labels, and linking.
## Prerequisites
- `gh` CLI installed and authenticated
- Repository exists on GitHub (gmacko org)
- Issue templates in `.github/ISSUE_TEMPLATE/`
## Workflow
```dot
digraph issue_create {
rankdir=TB;
node [shape=box];
start [label="Start" shape=ellipse];
type [label="1. Determine Issue Type"];
gather [label="2. Gather Information"];
validate [label="3. Validate Requirements"];
valid [label="Valid?" shape=diamond];
preview [label="4. Preview Issue"];
confirm [label="5. Confirm Creation"];
approved [label="Approved?" shape=diamond];
create [label="6. Create Issue via gh"];
link [label="7. Link to Plan"];
done [label="Issue Created" shape=ellipse];
fix [label="Revise"];
start -> type -> gather -> validate -> valid;
valid -> preview [label="yes"];
valid -> fix [label="no"];
fix -> gather;
preview -> confirm -> approved;
approved -> create [label="yes"];
approved -> fix [label="no"];
create -> link -> done;
}
```
## Issue Types & Templates
### Bug Report
Use `.github/ISSUE_TEMPLATE/bug.yml`:
- Title prefix: `[Bug]:`
- Required: description, reproduction steps, expected/actual behavior
- Labels: `type:bug`, `status:needs-triage`
### Feature Request
Use `.github/ISSUE_TEMPLATE/feature.yml`:
- Title prefix: `[Feature]:`
- Required: problem statement, proposed solution, acceptance criteria
- Labels: `type:feature`, `status:needs-triage`
### Task (from feature plan)
Custom format:
- Title prefix: `[Task]:`
- Parent issue reference
- Labels: `type:task`, appropriate area label
## Label Taxonomy
### Type Labels
- `type:bug` - Something isn't working
- `type:feature` - New functionality
- `type:task` - Implementation task
- `type:docs` - Documentation
- `type:chore` - Maintenance/tooling
### Status Labels
- `status:needs-triage` - Needs review
- `status:ready` - Ready for implementation
- `status:in-progress` - Being worked on
- `status:blocked` - Waiting on dependency
- `status:needs-review` - PR submitted
### Area Labels
- `area:web` - Next.js app
- `area:mobile` - Expo app
- `area:api` - tRPC routers
- `area:db` - Database/schema
- `area:shared` - Shared packages
### Priority Labels
- `priority:critical` - Blocking users
- `priority:high` - Significant impact
- `priority:medium` - Normal priority
- `priority:low` - Nice to have
## Execution Steps
### Step 1: Determine Issue Type
Ask:
> What type of issue should I create?
> 1. Bug report
> 2. Feature request
> 3. Task (from existing plan)
> 4. Documentation update
### Step 2: Gather Information
**For Bugs:**
```
REQUIRED INFORMATION
====================
1. Title (concise description)
2. Bug description
3. Steps to reproduce
4. Expected behavior
5. Actual behavior
6. Platform(s) affected
7. Environment (dev/staging/prod)
8. Error logs (if any)
9. Sentry link (if any)
```
**For Features:**
```
REQUIRED INFORMATION
====================
1. Title (feature name)
2. Problem statement (what problem does it solve?)
3. Proposed solution
4. Acceptance criteria (testable conditions)
5. Platform(s) affected
6. Priority suggestion
7. Link to INITIAL_PLAN.md section (if applicable)
8. Mockups/screenshots (if any)
```
**For Tasks:**
```
REQUIRED INFORMATION
====================
1. Title (task description)
2. Parent issue/feature
3. Detailed description
4. Acceptance criteria
5. Area (web/mobile/api/db)
6. Estimated effort
7. Dependencies
```
### Step 3: Validate Requirements
Ensure all required fields are complete:
```
VALIDATION CHECKLIST
====================
[OK] Title is descriptive (5-50 chars)
[OK] Problem/description is clear
[OK] Acceptance criteria defined
[OK] Platform(s) specified
[MISSING] Steps to reproduce (required for bugs)
```
If missing required fields, ask for them.
### Step 4: Preview Issue
Show the user what will be created:
```markdown
ISSUE PREVIEW
=============
**Title**: [Bug]: Login button unresponsive on mobile
**Labels**: type:bug, area:mobile, priority:high, status:needs-triage
**Body**:
## Bug Description
The login button on the sign-in screen doesn't respond to taps...
## Steps to Reproduce
1. Open the app
2. Navigate to sign-in
3. Tap the login button
4. Nothing happens
## Expected Behavior
Button should trigger authentication flow
## Actual Behavior
No response, no error
## Platform
- Mobile iOS (Expo)
## Environment
- Production
## Error Logs
No errors in console
---
Does this look correct?
```
### Step 5: Confirm Creation
**IMPORTANT**: Creating issues is an external side effect. Always confirm.
> I'm about to create this issue on GitHub.
>
> Repository: gmacko/[project-name]
> Title: [Bug]: Login button unresponsive on mobile
> Labels: type:bug, area:mobile, priority:high
>
> Proceed? (yes/no)
### Step 6: Create Issue via gh
Execute the `gh` command:
```bash
# For bug reports
gh issue create \
--title "[Bug]: Login button unresponsive on mobile" \
--label "type:bug,area:mobile,priority:high,status:needs-triage" \
--body-file /tmp/issue-body.md
# For features
gh issue create \
--title "[Feature]: Add dark mode support" \
--label "type:feature,area:web,area:mobile,priority:medium,status:needs-triage" \
--body-file /tmp/issue-body.md
# For tasks with parent
gh issue create \
--title "[Task]: Implement dark mode toggle component" \
--label "type:task,area:web,status:needs-triage" \
--body "Parent: #123
## Description
Create the dark mode toggle component...
## Acceptance Criteria
- [ ] Toggle switches theme
- [ ] Preference persisted
"
```
### Step 7: Link to Plan (if applicable)
If this issue relates to a feature plan:
1. Update the plan document to reference the issue
2. Add issue link to `docs/ai/handoffs/{feature}-plan.md`
```markdown
## Related Issues
- #456 - Main feature issue
- #457 - Database task
- #458 - API task
- #459 - UI task
```
Report success:
> Issue created successfully!
>
> **URL**: https://github.com/gmacko/[project]/issues/456
> **Number**: #456
>
> Next steps:
> - Add to project board (if using)
> - Assign to developer
> - Link related issues
## Batch Creation
For creating multiple issues from a feature plan:
```
BATCH CREATION
==============
Creating issues for feature: Dark Mode Support
1. [Feature]: Dark mode support - Epic
2. [Task]: Database schema for theme preferences - #457
3. [Task]: API endpoint for theme settings - #458
4. [Task]: Web theme toggle component - #459
5. [Task]: Mobile theme toggle screen - #460
All issues created and linked to parent #456.
```
## Red Flags
| Rationalization | Correction |
|-----------------|------------|
| "I'll create without confirmation" | ALWAYS confirm before `gh issue create` |
| "Labels aren't important" | Proper labels enable filtering and triage |
| "No need for acceptance criteria" | Criteria required for QA verification |
| "I'll link the plan later" | Link immediately for traceability |
## Error Handling
### gh not authenticated
```
gh auth login
```
### Repository not found
```
gh repo view gmacko/[project-name]
# If missing, create first:
gh repo create gmacko/[project-name] --private
```
### Label doesn't exist
```
# Create missing labels
gh label create "type:bug" --color "d73a4a" --description "Something isn't working"
gh label create "type:feature" --color "a2eeef" --description "New feature or request"
```
## Dependencies
- Requires: `gh` CLI authenticated
- Input: Bug report, feature request, or task description
- Output: GitHub issue URL
- Related: `gmacko-dev-feature-plan` (provides task breakdown)
No comments yet. Be the first to comment!