Claude Code skill

결과물을 원래
의도에 붙든다
Hold delivery
to its intent

/loop이 심장박동이라면 superloop은 박동마다 도는 인수 루프입니다. 전달된 결과에서 인수 기준을 뽑아 스펙에 대조해 검증하고, 격차가 있으면 증명될 때까지 오케스트레이터에게 수정을 지시합니다. /loop is the heartbeat; superloop is the acceptance loop that runs on each beat: derive acceptance criteria from what was delivered, verify each against the spec, and direct the fix until every criterion is proven.

superloop verify - tick #7
$ /loop 30m /superloop verify
superloop verify tick #7 criterion #4: rate limit returns 429
  ORIENT   ledger read, cursor at criterion #4
  PICK     1 criterion: 429 after 100 req/min
  EXECUTE  intent / blast-radius / evidence pass
  VERIFY   429 observed at req #101, body asserted
  RECORD   ledger appended, board updated
  PACE     cron refires in 30m
queue: 2 unverified, 5 proven, 0 blocked

모든 틱은 같은 해부 구조를 따른다Every tick follows the same anatomy

미션이 무엇이든 한 틱은 여섯 단계로 끝납니다. 단계 하나라도 건너뛴 틱은 기록되지 않은 틱이고, 기록되지 않은 일은 일어나지 않은 일입니다. Whatever the mission, a tick is six steps. A tick that skips a step is a tick that was never recorded, and unrecorded work never happened.

01ORIENT
원장을 읽는다Read the ledger

디스크의 원장과 계약이 유일한 진실. 첫 틱은 계약과 보드를 띄운다. 현실(git)과 어긋나면 현실이 이긴다.The on-disk ledger and contract are the only memory; the first tick boots both and the board. When it disagrees with git, reality wins.

02PICK
단위 1개만 고른다Pick one unit

가장 작은 검증 가능한 단위 하나. 배치 금지, 일거리 발명 금지.The smallest verifiable unit. No batching, no inventing work to look busy.

03EXECUTE
검증하거나 수정을 지시Verify, or direct the fix

스펙에 대조해 판정한다. 이미 실패한 기준이면 조용히 고치는 대신 오케스트레이터에게 증거 기반 수정을 지시한다.Judge it against the spec. If a criterion already failed, direct an evidence-backed fix to the orchestrator instead of patching it silently.

04VERIFY
실측으로 증명Prove against ground truth

실제 테스트, 빌드, HTTP 응답, 읽기 전용 DB 증거. 증거 없는 done은 없다.Real tests, builds, HTTP bodies, read-only DB evidence. No done without proof.

05RECORD
원장에 기록Write it down

틱 로그는 append-only. 커서와 예산 카운터를 전진시키고, 증거를 남기고, 보드에 heartbeat.The tick log is append-only. Advance the cursor and budget counters, point to evidence, beat the board.

06PACE
다음 틱을 설계Pace the next tick

캐시 인지 페이싱, 이벤트 대기는 폴링 대신 Monitor. 멈출 때는 깨끗하게.Cache-aware delays; Monitor instead of polling for events. Stop cleanly.

Missions

미션은 하나, verifyOne mission: verify

superloop은 미션 하나만 돕니다: 전달된 의도에서 인수 기준을 뽑아내고, 스펙에 대조해 검증하며, 격차가 있으면 수정을 지시합니다. superloop runs a single mission: derive acceptance criteria from what was delivered, verify each against the spec, and direct any gap to be fixed.

/superloop verify

의도에 대조해 검증Verify against intent

기준 1개를 스펙에 대조해 판정합니다: intent / blast-radius / evidence / degenerate-input 패스. 그린인데 결과가 틀리면 실패로 취급합니다.Judge one criterion against the spec: intent, blast-radius, evidence, and degenerate-input passes. A green signal hiding the wrong outcome still fails.

-> orchestrator-handoff

고치지 않고 지시Direct the fix, don't do it

실패한 기준은 증거 기반 수정 지시가 되어 오케스트레이터에게 갑니다: 기준, 실패 증거, 위반 조항, 범위, 인수 테스트. 조용한 패치는 없습니다.A failed criterion becomes an evidence-backed fix directive: criterion, failing evidence, spec clause violated, scope bound, acceptance test. Never a silent patch.

증명될 때까지 수렴Converge on proof

인수 기준마다 원장 Queue에 상태 하나. 모든 기준이 proven이면 깨끗이 멈추고, 같은 기준이 한도 안에서도 계속 막히면 에스컬레이션합니다. 완료 선언은 지어내지 않습니다.Each acceptance criterion holds one status in the ledger's Queue. Clean stop once every criterion is proven; escalates if the same one keeps failing past the fix-directive limit. The completion promise is never fabricated.

unverifiedin-progressprovenblockedawaiting-approval

무인 운전을 위한 안전 장치Safety rails for unattended runs

루프는 사용자가 자리를 비운 동안 돕니다. 그래서 자율성보다 게이트가 항상 우선합니다. The loop runs while you are away, which is exactly why the gates always outrank autonomy.

동의 게이트Consent gates

공유 브랜치 push·merge, 배포, Jira 전이, 데이터 쓰기는 awaiting-approval로 멈추고 명시적 APPROVED를 기다립니다. 티켓만 멈추고 루프는 계속 돕니다.Pushes, merges, deploys, Jira transitions and data writes pause as awaiting-approval until an explicit APPROVED. The ticket pauses; the loop keeps working.

서킷 브레이커·에스컬레이션Circuit breaker & escalation

같은 단위 3연속 실패는 blocked, 미션 전체 3연속 실패는 루프 중단 후 보고. 테스트 모순이나 green인데 결과가 틀린 신호엔 카운터를 기다리지 않고 즉시 에스컬레이션.Three consecutive failures on a unit means blocked; three across the mission stops the loop. Semantic signals - tests contradicting, a green check hiding a wrong page - escalate at once, without waiting for the counter.

빈 큐 백오프Empty-queue backoff

할 일이 없으면 대기 시간을 늘리고, 3연속 빈 틱이면 루프 종료를 제안합니다. 바빠 보이려고 일을 만들지 않습니다.No work means longer delays; three empty ticks in a row proposes stopping. It never invents work to look busy.

원장 우선Ledger before memory

멱등 키 기반 큐와 append-only 틱 로그가 디스크에 남아, 크래시나 컨텍스트 압축 후에도 정확히 이어서 재개합니다.An idempotent queue and append-only tick log live on disk, so a crash or compaction resumes exactly where it stopped.

계약 우선Contract first

첫 틱 전에 1페이지 계약(scope·permissions·budget·stop·mode·owns)을 원장에 적고 매 틱 읽습니다. 신뢰는 에이전트 수가 아니라 계약의 명확함에서 옵니다.A one-page contract (scope, permissions, budget, stop, mode, owns) is written to the ledger before the first tick and read every tick. Trust comes from contract clarity, not agent count.

예산 상한Budget ceiling

max_ticks·파일 수·런타임·체크인 주기 — 누적 상한에 닿으면 루프를 깨끗이 멈추고 보고합니다. 한 단위를 갈며 주말치 비용을 태우지 않도록.max_ticks, files, runtime, check-in cadence - hitting any cumulative ceiling stops the loop cleanly and reports, so it never burns a weekend grinding one unit.

worktree 격리Worktree isolation

수정 지시로 나온 패치는 전용 git worktree(.superloop/verify/worktree)에서 작업하고, 그린 검증과 동의 후에만 작업 브랜치로 병합합니다. 체크아웃은 깨끗하게 유지됩니다.A fix directive lands in a dedicated git worktree (.superloop/verify/worktree) and merges back only after a green verify and consent, keeping your checkout clean.

점진적 자율성·소유권Autonomy & ownership

새 루프는 report-only로 시작해 신호가 유용할 때 write로 승격합니다. 각 루프는 자신이 소유한 리소스만 쓰므로 여러 루프가 충돌 없이 함께 돕니다.New loops start report-only and earn write once the signal proves useful. Each loop writes only what it owns, so several run side by side without colliding.

설치와 실행Install and run

레포를 받아 스킬 디렉터리에 링크하면 끝입니다. supergoal 스킬과 함께 쓸 때 가장 강력합니다. Clone, symlink into your skills directory, done. It pairs best with the supergoal skill.

# install git clone https://github.com/cskwork/superloop-skill ln -sfn "$(pwd)/superloop-skill" ~/.agents/skills/superloop ln -sfn ~/.agents/skills/superloop \ ~/.claude/skills/superloop
# launch recipes /loop 30m /superloop verify # fixed cadence /loop /superloop verify # self-paced + Monitor /superloop verify # single tick, now bash tui/launch.sh # live board (terminal)