issue-proposalslisted
Install: claude install-skill gtapps/claude-code-hermit
# Issue Proposals
Routine skill: autonomous issue→proposal pipeline. Fetches one open GitHub issue,
vets it through `/tackle-issue --investigate-only`, and creates a proposal only if the
verdict is SHIP or SHIP WITH CAVEAT.
Intended to run daily as a hermit routine. The routine is **not** auto-registered by
this skill. Add an entry to `.claude-code-hermit/config.json` (`routines[]` with
`skill: issue-proposals`, a `schedule`, and `enabled: true`), then `/claude-code-hermit:hermit-routines load`.
Until then the skill only runs when invoked manually: `/issue-proposals`.
## Steps
### 1. gh guard
Run `gh auth status --hostname github.com 2>&1`. If exit code is non-zero:
```
Append to SHELL.md ## Findings:
[HH:MM] issue-proposals: gh unavailable — re-auth with `gh auth login`
```
Stop cleanly. Do not emit an error — this is a routine no-op, not a failure.
### 2. Fetch candidates
```bash
gh issue list \
--repo gtapps/claude-code-hermit \
--state open \
--json number,title,url,updatedAt,labels \
--limit 30
```
If the result is an empty array: append to SHELL.md Progress Log:
`[HH:MM] issue-proposals — no open issues` and stop.
### 3. PR filter
```bash
gh pr list \
--repo gtapps/claude-code-hermit \
--state open \
--json number,body,headRefName \
--limit 100
```
Build a set of referenced issue numbers from:
- PR bodies: regex `(?i)\b(?:close[sd]?|fix(?:es|ed)?|resolve[sd]?)\b\s*:?\s+#(\d+)`.
A GitHub closing keyword is **required**, so bare `#N` menti