Issue Creator
Creates GitHub issues with proper context using gh issue create and the repository's issue templates.
Instructions
1. Determine Issue Type
Use AskUserQuestion to select:
- Bug report — something broken, unexpected behavior
- Feature request — new capability or enhancement (goes to Discussions, see below)
- Task/chore — internal work, refactoring, documentation
2. Auto-Detect Project Context
Read project metadata before creating the issue:
# Version
grep "^version=" gradle.properties
# Kotlin version
grep "^kotlin " gradle/libs.versions.toml
# Current branch and recent changes
git branch --show-current
git log --oneline -5
3. Create Issue by Type
Bug Report
Title prefix: [Bug]: . Auto-labels: bug, needs-triage.
Template fields (from .github/ISSUE_TEMPLATE/bug_report.yml):
- Fakt Version (auto-detected from
gradle.properties)
- Kotlin Version (auto-detected from
libs.versions.toml)
- Platform — KMP / JVM only / Android only
- Gradle Version (optional)
- KMP Targets (optional, if KMP)
- Module Setup — Single-module / Multi-module
- Bug Description — structured: what's happening, steps to reproduce, code example, error logs
gh issue create \
--title "[Bug]: {description}" \
--label "bug,needs-triage" \
--body "$(cat <<'EOF'
### Fakt Version
{version}
### Kotlin Version
{kotlinVersion}
### Platform
{platform}
### Bug Description
**What's happening:**
{description}
**Steps to reproduce:**
1. ...
**Code example:**
```kotlin
// minimal reproduction
Error/build logs:
{logs}
EOF
)"
#### Feature Request
The repository has no feature-request issue template and blank issues are disabled: `.github/ISSUE_TEMPLATE/config.yml` routes ideas to GitHub Discussions (Ideas category). Point the user there; if they want a tracked issue instead, create it as a Task/chore.
#### Task/Chore
No template required (internal use). Use conventional title format.
```bash
gh issue create \
--title "{type}: {description}" \
--label "{labels}" \
--body "$(cat <<'EOF'
## Context
{context}
## Scope
{scope}
## Checklist
- [ ] {step1}
- [ ] {step2}
EOF
)"
4. Available Labels
Auto-applied by templates:
bug + needs-triage (bug reports)
enhancement + needs-triage (feature requests)
Category labels:
compiler, gradle-plugin, documentation, performance, testing, ci/cd
Priority labels:
priority: high, priority: medium, priority: low
Contributor labels:
good first issue, help wanted, needs-investigation, needs-discussion
Lifecycle labels:
idea, approved, breaking-change, dependencies, security
Note: Category and lifecycle labels must exist in the repository before use. Run gh label list to check available labels, or gh label create to add missing ones. Only bug, enhancement, and needs-triage are auto-created by issue templates.
5. Add Context from Codebase
When the issue relates to specific code, gather relevant context:
# Find affected files
# Read error messages from recent builds
# Check if related issues exist
gh issue list --label "{label}" --state open
Include file paths, function names, and module affected in the issue body.
Note: GitHub issue templates use YAML form schema. When creating via gh issue create --body, the structured fields render as markdown headers in the created issue.
6. Output
After creating the issue, display:
- Issue URL
- Issue number
- Labels applied
- Assigned template
Related Skills
pr — analogous GitHub creation workflow
compilation — provides error context for bug reports