issue-createlisted
Install: claude install-skill alunduil/alunduil-chezmoi
# Issue create
Don't file first. Search and inspect before composing.
## Dedup pre-flight
Open *and* closed — omitting `--state` searches both:
```bash
gh search issues "<keywords>" --repo <owner>/<repo> --limit 20
```
Read near-matches with `gh api repos/:owner/:repo/issues/<N>`. Decide:
- **Same outcome already open** — update the existing one
(`mcp__github__issue_write` with `method: update` for the body,
`mcp__github__add_issue_comment` for new context). Don't file a new
one.
- **Same outcome closed for stale reasons** — reopen it
(`mcp__github__issue_write`, `method: update`, `state: open`) with a
comment citing what changed. Don't file a new one.
- **Adjacent** (same area, different angle) — file new, cite the
existing in *Additional context*; consider an `issue-links` edge.
- **Partially covers** — narrow the new issue to the uncovered
slice; cross-reference both ways.
- **Nothing close** — file new.
If torn, surface the call rather than silently pick.
## Detect repo conventions
```bash
ls .github/ISSUE_TEMPLATE/ 2>/dev/null
# REST reads — see ~/.claude/CLAUDE.md "GitHub API budget".
gh api 'repos/:owner/:repo/labels?per_page=100' --jq '.[].name'
gh api repos/:owner/:repo/milestones \
--jq '.[] | "\(.number)\t\(.title)"' # open only — can't assign a closed one
gh api 'repos/:owner/:repo/issues?per_page=5&state=all' \
--jq '.[].title' # skim recent house style
```
Template present → read it and fill its fields into th