一键导入
gh-issues
Walk over all open GitHub issues that are unassigned or assigned to the current user, and process each one via the gh-issue skill, sequentially.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Walk over all open GitHub issues that are unassigned or assigned to the current user, and process each one via the gh-issue skill, sequentially.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Cut a new agnostic-ai release end to end. Use when the user wants to ship a new version (tag + GitHub Release).
Fetch a GitHub issue, create a branch, implement with TDD, and open a PR
A sample skill for golden snapshot tests.
dos
tres
uno
| name | gh-issues |
| description | Walk over all open GitHub issues that are unassigned or assigned to the current user, and process each one via the gh-issue skill, sequentially. |
| argument-hint | [--limit N] [--label foo] [--dry-run] |
| disable-model-invocation | false |
| allowed-tools | Read, Bash(gh *), Bash(git *), Bash(go *), Bash(make *), Bash(./agnostic-ai *), Skill(gh-issue) |
Process every open GitHub issue that is unassigned or assigned to the current user (@me), one after another, by delegating each to the gh-issue skill. Stop on first hard failure so it can be inspected.
--limit N — process at most N issues this run (default: all).--label foo — only issues carrying label foo.--dry-run — list issues that would be processed; do not invoke gh-issue.Strip leading # if user passes #123 style.
Fetch open issues that are unassigned or assigned to @me, oldest first. GitHub search does not OR these cleanly, so run two queries and merge:
# Unassigned
gh issue list \
--state open \
--search "no:assignee" \
--json number,title,labels,assignees,createdAt \
--limit 200
# Assigned to me
gh issue list \
--state open \
--assignee "@me" \
--json number,title,labels,assignees,createdAt \
--limit 200
Merge:
number.assignees array is empty or contains the current user (gh api user -q .login).--label filter if given.--limit if given.createdAt (FIFO).Print the queue: #<num> <title> [assignee] per line, where [assignee] is unassigned or @me. If empty, exit cleanly.
Before touching any issue:
git status --porcelain
git fetch origin main
git checkout main && git reset --hard origin/main
Abort if worktree dirty. Never auto-stash.
For each issue in the queue:
Re-check assignment state (someone else may have grabbed it):
gh issue view <num> --json assignees -q '.assignees[].login'
me=$(gh api user -q .login)
$me listed → already mine, proceed (skip self-assign step).Invoke the gh-issue skill with the issue number. That skill owns:
gh issue edit <num> --add-assignee @me (no-op if already assigned).main (prefix from labels: fix/, feat/, docs/).go test ./... green locally.## [Unreleased].Related to #<num>.ref(...) commit) before opening the PR.--assignee Chemaclass, matching label, Closes #<num> in body.After gh-issue returns, wait for CI green on the PR:
gh pr checks --watch
Fix red checks on the branch before moving on.
Merge when allowed:
gh pr merge --squash --admin --delete-branch
Fall back to --auto --squash --delete-branch if --admin is rejected.
Sync main for next iteration:
git checkout main && git fetch origin main && git reset --hard origin/main
Continue with next issue.
Halt the loop and surface the failure when:
gh-issue errors out or leaves the worktree dirty.go test ./... fails after implementation.agnostic-ai sync --check drifts after spec/adapter edits.--admin bypass.--limit reached.Do not retry blindly. Report which issue failed and why.
With --dry-run, only execute Phase 1 and print the queue. No assignment, no branching, no commits.
gh authenticated, can read issues, open and merge PRs.main exists and tracks origin/main.gh-issue skill available in this session.go test ./... once before commit..claude/rules/go-style.md). Open separate PRs for refactors that the issue did not ask for.