Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/Morrison-Lab/ai-config --skill gii명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
| name | gii |
| description | Grab issues and implement in series. |
| user-invocable | true |
| allowed-tools | ["Bash","Agent","Read","Edit","Write"] |
Loop: grab the highest-priority open issue → implement → open MR/PR → ARDI to clean → repeat with the next issue. Stack MRs when needed.
Detect the forge (GitHub / GitLab) from git remote get-url origin.
Note the default branch (main / master).
For each iteration:
gi (Grab Issue)Run the full GI procedure:
pr-on-claimTrack each completed issue in a running table:
| # | Issue | MR/PR | Rounds | Status |
|---|---|---|---|---|
| 1 | #12 | #30 | 2 | ✅ Clean |
(Examples use GitHub #N notation; on GitLab the MR IID is !N.)
A clean-but-unmerged MR is not a stopping point. Merging is human-gated
(you don't self-merge), but that gates only the merge, not the loop — keep
going to the next issue instead of pausing to wait for a human to merge first.
Stacking is what lets the loop keep moving without merges. See
stack-dont-pause.
After ARDI completes clean on the current MR/PR:
If the MR was merged (user said "merge" or auto-merge is on):
base the next branch on origin/main (which now includes the fix).
If the MR is open but clean (not yet merged): base the next branch on the current MR's branch — this creates a stacked MR. Note the dependency in the new MR's description:
⚠️ Stacked on #30 — merge that first.
Track the stack so the final report shows the merge order.
Stop the loop when:
If stopping due to max-issues, ask:
"Completed 5 issues — want me to keep going, or stop here?"
Go back to step (a) with the next issue.
Within an iteration, hand independent sidecar work off to a subagent via the
Agent tool instead of doing it inline --- a history/precedent investigation,
a verification pass on the implementation, research into how a similar issue
was solved elsewhere. Keep the critical path (claim, draft PR, implement,
ARDI) on the main thread so the loop keeps moving; this is a single sidecar
call within one iteration, not a way to run whole issues concurrently --- for
that, see gip.
When the sidecar task is judgment-heavy (a tricky bug hunt, an
architecturally significant call, an adversarial review pass before the
implementation goes out for real review), give the subagent a stronger model
via the Agent tool's model parameter (e.g. model: 'opus') instead of
leaving it at the session default. Symmetrically, override to a cheaper/faster
tier (model: 'fable' or 'haiku') for mechanical, bounded sidecar work --- a
lookup, a formatting check, a repeated verification --- rather than defaulting
to the session's own tier; see
select-model's decision tree for both
directions. When the sidecar task is a heavy fan-out read/draft/verify pass
and a separately-billed provider is available (e.g. the codex CLI), prefer
spending that budget first and keep Claude/Agent-tool quota in reserve --- see
delegate-to-codex.
When stacking MRs (basing a new branch on an unmerged MR branch):
Branch from the tip of the previous MR branch, not from main:
git checkout -b feat/<next-slug> <previous-mr-branch>
Note the dependency in the new MR description (use #<N> on GitHub,
!<N> on GitLab):
⚠️ Stacked on #<N> (GitHub) / !<N> (GitLab) — merge that first.
Depends on: #<N>
If the base MR gets changes (from ARDI on a later review round), rebase/merge the stacked MR on top of the updated base before its own ARDI round.
Merge order matters — report it clearly at the end.
When the loop ends, print a summary:
## GII Session Summary — <timestamp>
| # | Issue | MR/PR | Rounds | Status |
|---|-------|-------|--------|--------|
| 1 | [#12](url) | [#30](url) | 2 | ✅ Clean |
| 2 | [#8](url) | [#31](url) | 1 | ✅ Clean |
| 3 | [#15](url) | [#32](url) | 3 | ✅ Clean |
### Merge order
1. [#30](url) — fix: auth timeout
2. [#31](url) — feat: retry logic (stacked on #30)
3. [#32](url) — docs: v3 migration guide
**Stopping Point**: All 3 issues completed / backlog clear. Clean stopping point reached.
gip — the parallel counterpart: when a batch of issues is provably
independent (no stacking dependency, no file overlap), gip lifts that subset
out and works it concurrently in worktree-isolated subagents instead of
serially. This loop stays serial for everything gip can't prove independent.gi — the inner loop; each iteration is a full GI invocationpr-on-claim — each iteration opens its draft PR up front (step 6) so the
in-flight issue is visible before implementingardi — drives each MR/PR to clean review within GIcheck-history — invoked per-issue to avoid undoing past worksplit-concerns — if an issue's implementation grows too large, splitdefer-issue — if sub-tasks emerge, defer them (they'll be picked up
in a later iteration of this very loop)sync-pr-branch — used when stacking to keep branches currentselect-model — decision tree for picking a subagent's model tier when
delegating sidecar work (see "Delegate sidecar work when helpful")delegate-to-codex — when a sidecar task is a heavy fan-out
read/draft/verify pass and codex is available, prefer it firstIssue selection never pauses for confirmation, per gi's step 3, so there is
no per-issue confirmation for "just go" to skip.
What the loop still does, in every mode:
stack-prs's decision gate (same file but different regions usually merges
cleanly from main and doesn't need the stack)