issue-tracker-githublisted
Install: claude install-skill eric-sabe/engsys
# Issue tracker: GitHub Issues + Projects
This skill is the GitHub implementation of the **shared issue-tracker operation
contract**. Commands and agents call these operations *by name* without knowing the
backend; the Linear pack (`issue-tracker-linear`) implements the same names so the two
are swappable. Keep the operation names below stable.
Builds on the knowledge already in the core `gh-cli` and `github-issues` skills — read
those for full `gh` flag coverage and issue-body templates. This skill does not repeat
them; it maps the **contract operations** onto concrete commands.
**Identifiers:** GitHub issues are referenced as `#123`. Boards are GitHub ProjectV2
("Projects"). The repo (`<owner>/<repo>`) and the Project number/owner are project facts —
read them from `CLAUDE.md`.
## Discipline: bodies come from tmp/ files, never heredocs
Every operation that writes multi-line markdown (issue body, comment, PR body) writes
the content to a `tmp/` file first and passes it with `--body-file`. Do **not** inline
multi-line bodies via heredoc/`echo` — it mangles backticks, quotes, and `$`. One-line
bodies may use `--body "..."`.
```bash
# Write the body, then reference it.
# tmp/issue-body-<slug>.md
# tmp/comment-<slug>.md
# tmp/pr-body-<slug>.md
```
## Contract operations
### create-issue(title, body-from-tmp-file, type/label, [project, phase]) -> id + URL
```bash
# 1. Write the body to tmp/issue-body-<slug>.md (see github-issues for templates).
# 2. Create. --type/