← ClaudeAtlas

issue-proposalslisted

Repo-internal routine skill. Fetches open GitHub issues on gtapps/claude-code-hermit, filters out ones with linked open PRs or existing proposals, picks one, runs it through /tackle-issue --investigate-only as a viability gate, and on a SHIP / SHIP WITH CAVEAT recommendation creates a hermit proposal via /claude-code-hermit:proposal-create. One issue per run; dedup by gh-issue-<N> tag across all proposal statuses. Not shipped to downstream operators — hardcoded to this repo.
gtapps/claude-code-hermit · ★ 60 · AI & Automation · score 81
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