Loopy Command Set V2 문서가 제안한 표면 6개 명령(/loopy:start, auto, resume, status, history, measure) 대비 현재 loopy-era 엔진이 갖춘 것과 부족한 것을 정리하고, 최소 비용으로 격상하는 단계별 계획.
문서는 엔진 재설계가 아니라 표면 UX 재설계를 요구한다. init-project, team, qa-scenario-gen, qa-cycle, self-improve, eval은 전부 내부로 숨기고, 사용자는 /loopy: 접두사가 붙은 6개 표면 명령만 외운다.
| 표면 명령 | 내부 매핑 | 사용 시점 |
|---|---|---|
/loopy:start | init-project + team + qa-scenario-gen | 최초 1회 |
/loopy:auto | qa-cycle + self-improve + eval + keep/discard | 평소 실행 |
/loopy:resume | checkpoint / pending 재로딩 → auto 재진입 | 중단 복구 |
/loopy:status | metric parse + latest state | 수시 확인 |
/loopy:history | results.tsv + findings 추이 | 사후 검토 |
/loopy:measure | eval only (변경 없음) | 진단 |
start → auto → resume처럼 의도 기반으로 추측 가능. 내부 단계는 변경되어도 표면 API는 안정적이다.| 표면 명령 | 현재 구현 | 엔진 성숙도 | 갭 |
|---|---|---|---|
/loopy:start |
없음 | 부분 (개별 스킬 존재) | init-project → team → qa-scenario-gen을 순서대로 호출하는 오케스트레이션 래퍼 필요 |
/loopy:auto |
없음 | 부분 (eval에 통합됨) | qa-cycle → self-improve → loopy-era-eval을 폐루프로 묶는 오케스트레이션 래퍼 필요 |
/loopy:resume |
구현됨 | 성숙 | /loopy-era-eval resume alias만 추가 |
/loopy:status |
구현됨 | 성숙 | /loopy-era-eval status alias만 추가 |
/loopy:history |
구현됨 | 성숙 | /loopy-era-eval history alias만 추가 |
/loopy:measure |
구현됨 | 성숙 | /loopy-era-eval measure alias만 추가 |
init-project → team Phase 0~2 → qa-scenario-gen을 순차 호출. 각 단계 실패 시 stop + 상세 로그. 이미 team/SKILL.md가 Phase 0에서 init-project를 참조하는 D2 통합이 있으므로 묶기만 하면 됨.~/.claude/skills/loopy-start/SKILL.md (신규, ~60줄)qa-cycle → self-improve → loopy-era-eval을 1회 사이클로 묶어 무한 반복. iteration마다 HARD 비율 기록, 수렴 시 STOP. $ARGUMENTS로 최대 회차 제어(/loopy:auto 30). 내부적으로는 이미 /loopy-era-eval N이 존재하므로 얇은 래퍼.~/.claude/skills/loopy-auto/SKILL.md (신규, ~80줄)/loopy:resume, /loopy:status, /loopy:history, /loopy:measure는 전부 /loopy-era-eval에 이미 있음. Claude Code는 플러그인 네임스페이스를 지원하므로 alias 파일 4개로 해결.~/.claude/commands/loopy-{resume,status,history,measure}.md (각 ~15줄)~/.claude/skills/loopy-era-eval/README.md (신규, ~40줄)/init-project, /team 등은 내부 구현이지만 디버깅용으로 유지. 단, 표면 문서에서는 "내부 전용"으로 표시하여 일반 사용자가 직접 호출하지 않도록 유도. 삭제하지 않음 — V2 문서도 공존을 전제로 함.measure는 파일을 절대 수정하지 않아야 함. 현재 /loopy-era-eval measure가 실제로 git diff를 발생시키지 않는지 확인하는 테스트 추가.~/.claude/logs/loopy-era-eval-results.tsv에 measure-only 검증 항목status 서브커맨드는 HARD 비율만 반환하므로 SOFT 카운트·pending·최근 iteration을 추가.loopy-era-eval/SKILL.md Phase 1 확장 (~20줄 추가)/loopy:resume, /loopy:status, /loopy:history, /loopy:measure 4개 alias를 ~/.claude/commands/에 생성. 각 파일은 15줄 이내. 기존 엔진을 그대로 호출하므로 회귀 위험 제로.
/loopy-era-eval resume 호출/loopy-era-eval status 호출/loopy-era-eval history 호출/loopy-era-eval measure 호출/loopy:start와 /loopy:auto 2개 래퍼 스킬 작성. 이 둘은 단순 alias가 아니라 여러 스킬을 순차 호출하므로 각 단계 실패 처리 + 진행 로그 필요. V2 §4 "내부 매핑 규칙" 표를 그대로 구현.
measure 파일 비변경 검증, status 출력 포맷 확장. V2 문서의 §5, §6 네이밍/UX 규칙을 마지막에 적용한다.
| 리스크 | 영향 | 대응 |
|---|---|---|
| 묶음 실패 시 디버깅 어려움 | 중 | /loopy:auto 실패 시 실패한 내부 단계명을 로그에 표시. 필요 시 원시 /qa-cycle 등 직접 호출 가능 경로 유지. |
| 기존 사용자 마이그레이션 혼란 | 낮음 | 삭제 없이 공존. 기존 /loopy-era-eval도 계속 동작. README에 V2 매핑표 명시. |
| 추상화 레이어 유지 부담 | 낮음 | alias 4개는 15줄 파일, 래퍼 2개는 ~70줄씩. 총 유지 비용 ~200줄 고정. |
| V2 문서와 기존 측정 메트릭 불일치 | 중 | V2 §4가 "loopy-era-eval"을 명시적으로 호출하므로 현재 HARD 비율 엔진과 완벽 호환. 신규 래퍼는 이 엔진을 내부 호출. |
문서의 핵심 통찰은 "기억 가능성·추측 가능성·내부 단계 은닉"이라는 UX 원칙이다. 이 3가지를 만족하는 표면 레이어를 엔진 위에 얹으면, 현재 시스템의 디버깅 유연성을 잃지 않으면서 "게으른 일반 사용자"도 재사용할 수 있게 된다. 제안된 3단계 로드맵은 이 전환을 회귀 위험 없이 수행하는 최단 경로다.