영속 자율주도 드라이버 (스로틀 결선)
개요
세션이 닫혀도 24/7 백로그→작업을 자동 기동하는 영속 자율 드라이버. 레이트리밋 스로틀 거버너와 결선해 부하를 게이트한다. 사용자 요청("영속")으로 구축.
무엇을 했는지
드라이버 ~/.claude/scripts/crowny-autoloop.sh
- 전용 백로그 큐
~/.claude/autoloop/backlog.psv— 사용자/세션이add로 작업 적재. 빈 큐 = idle(무해), 백로그에 있는 것만 실행(작업 창작 안 함). - tick 파이프라인: 킬스위치 → 단일 인스턴스 락(mkdir) → 스로틀 전역 백오프 확인 → 대기작업 1건 →
분업으로 모델 결정 → 스로틀 슬롯 비블로킹 확보(포화면 다음 tick) → 진행표시 → 헤드리스claude -p --model <id> --max-turns 40 --dangerously-skip-permissions(가드레일 append) → 완료/실패 기록 + 스로틀ok/해제. - 명령:
add <작업유형> "<프롬프트>" [경로]/tick/status/on·off/log/clear-done. - prompt는 base64 저장(구분자/개행 안전). 모델 매핑: opus→claude-opus-4-8, sonnet→claude-sonnet-4-6, haiku→claude-haiku-4-5, fable→claude-fable-5, 미상→sonnet.
영속화 ~/Library/LaunchAgents/org.crowny.autoloop.plist
- StartInterval 180s, RunAtLoad, Background/Nice 5. 로그
~/.claude/autoloop/launchd.log. launchctl load -w로 등록 완료 (org.crowny.autoloop).
안전장치
- 킬스위치
off(즉시 정지) /on. 파일~/.claude/autoloop/OFF. - 단일 인스턴스 락 → 동시에 1작업만(보수적). 락 TTL 2400s로 죽은 tick 회수.
- 스로틀 게이트 필수 → 백오프 중 tick 건너뜀, 슬롯 포화면 작업 보류.
- --max-turns 40 = 회로차단기(무한루프 방지, 실측 작동 확인).
사용법 (다른 세션도 동일)
bashA=~/.claude/scripts/crowny-autoloop.sh
$A add 단순코딩 "finance 지갑 합산 점검하고 고쳐라" /Users/ef/crowny-finance
$A add 글밥빠른작업 "academy 미션 콘텐츠 10개 작성"
$A status # 큐 + 진행
$A off # 전체 정지
계약: add한 작업은 --dangerously-skip-permissions로 전권 자율 실행된다. 신중히 적재할 것.관련 파일
~/.claude/scripts/crowny-autoloop.sh(드라이버)~/Library/LaunchAgents/org.crowny.autoloop.plist(영속)~/.claude/autoloop/(backlog.psv, autoloop.log, run_*.log, OFF)- 결선:
crowny-throttle.sh(게이트),분업(모델),한선씨-가드레일.md(주입)
잔여 이슈 / 교훈
- 사고+교훈: LaunchAgent 로드 시 백로그에 남은 '대기' 테스트 작업이 즉시 실제 claude로 실행됨 → max-turns에서 자동정지(무해). 로드 전 백로그 비울 것.
clear-done은 완료/실패만 제거, '대기'는 수동. - 현재 ON·빈 백로그(idle). 작업을
add해야 실제 가동. - 동시성 1 → 늘리려면 스로틀 한도 + 락 구조 확장 필요.
- (A) 세션 내
/loop(자기페이스)는 별도로 항상 사용 가능 — 세션 살아있는 동안만.