Create GitHub issues using the gh CLI. Use when the user wants to create a new issue, report a bug, request a feature, or create a task in GitHub. Trigger keywords - create issue, new issue, file bug, report bug, feature request, github issue.
Installs into .claude/skills of the current project.
Are you the author of Create Github Issue?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/openrind-create-github-issue)
---
name: create-github-issue
description: Create GitHub issues using the gh CLI. Use when the user wants to create a new issue, report a bug, request a feature, or create a task in GitHub. Trigger keywords - create issue, new issue, file bug, report bug, feature request, github issue.
---
# Create GitHub Issue
Create issues on GitHub using the `gh` CLI. Issues must conform to the project's issue templates.
## Prerequisites
The `gh` CLI must be authenticated (`gh auth status`).
## Issue Templates
This project uses YAML form issue templates. When creating issues, match the template structure so the output aligns with what GitHub renders.
### Bug Reports
Do not add a type label automatically. The body must include an **Agent Diagnostic** section — this is required by the template and enforced by project convention. The diagnostic must identify the OpenShell version tested, whether the latest release or known fixes were checked, and whether possible duplicate issues were searched. If the agent cannot verify the latest release or search existing issues, say so explicitly instead of guessing. Apply area or topic labels only when they are clearly known.
```bash
gh issue create \
--title "bug: <concise description>" \
--body "$(cat <<'EOF'
## Agent Diagnostic
- Skills loaded: <skills used during investigation>
- OpenShell version tested: <version from openshell --version or other source>
- Latest release checked: <version checked, or unable to verify>
- Known fixes reviewed: <release notes / merged PRs checked, or unable to verify>
- Possible duplicates reviewed: <existing issues searched, or unable to verify>
- Findings: <what the agent found and tried>
- Remaining reason for filing: <why this still appears to be a bug>
## Description
**Actual behavior:** <what happened>
**Expected behavior:** <what should happen>
## Reproduction Steps
1. <step>
2. <step>
## Environment
- OS: <os>
- Docker: <version>
- OpenShell: <version>
- Latest release checked: <yes/no and reason>
- Possible duplicates checked: <yes/no and reason>
## Logs
```
<relevant output>
```
EOF
)"
```
### Feature Requests
Do not add a type label automatically. The body must include a **Proposed Design** — not a "please build this" request. Apply area or topic labels only when they are clearly known.
```bash
gh issue create \
--title "feat: <concise description>" \
--body "$(cat <<'EOF'
## Problem Statement
<What problem does this solve? Why does it matter?>
## Proposed Design
<How should this work? Describe the system behavior, components involved,
and user-facing interface.>
## Alternatives Considered
<What other approaches were evaluated? Why is this design better?>
## Agent Investigation
<If the agent explored the codebase to assess feasibility, paste findings here.>
EOF
)"
```
### Tasks
For internal tasks that don't fit bug/feature templates:
```bash
gh issue create \
--title "<type>: <description>" \
--body "$(cat <<'EOF'
## Description
<Clear description of the work>
## Context
<Any dependencies, related issues, or background>
## Definition of Done
- [ ] <criterion>
EOF
)"
```
GitHub built-in issue types (`Bug`, `Feature`, `Task`) should come from the matching issue template when possible, or be set manually afterward. Do not try to emulate them through labels.
Creating an issue does not accept it for roadmap work or queue agent work. Agents never apply the `roadmap` label, add issues to the roadmap project, or apply `agent:plan-requested` or `agent:implementation-requested`. Community issues proceed through `triage-issue`; a human decides whether technically validated work should be accepted and places it on the roadmap. The request labels queue work for unattended agents; a user may instead direct an agent to a specific issue.
## Useful Options
| Option | Description |
| ------------------- | ---------------------------------- |
| `--title, -t` | Issue title (required) |
| `--body, -b` | Issue description |
| `--label, -l` | Add label (can use multiple times) |
| `--milestone, -m` | Add to milestone |
| `--project, -p` | Add to project |
| `--web` | Open in browser after creation |
## After Creating
The command outputs the issue URL and number.
**Display the URL using markdown link syntax** so it's easily clickable:
```
Created issue [#123](https://github.com/OWNER/REPO/issues/123)
```
Use the issue number to:
- Reference in commits: `git commit -m "Fix validation error (fixes #123)"`
- Create a branch following project convention: `<issue-number>-<description>/<username>`