$ulw-loop
.omo/ulw-loop 상태와 증거 원장을 사용해 목표가 검증될 때까지 이어 가는 루프입니다.
$ulw-loop는 LazyCodex의 지속성 커맨드입니다. 희망 섞인 상태 보고가 아니라, 실제 사용 시나리오에서 캡처한 증거를 기준으로 결과가 검증될 때까지 작업을 이어 갑니다.
작업이 열린 형태이고, 에이전트의 "끝났다" 선언이 아니라 증거로 완료 여부를 판단하고 싶을 때 사용합니다.
문법
$ulw-loop "task description" [--completion-promise=TEXT] [--strategy=reset|continue]| 구성 요소 | 의미 |
|---|---|
"task description" | 도달하고자 하는 결과입니다. 단계가 아니라 원하는 결과를 적습니다. |
--completion-promise=TEXT | 호환 구문. 완료 전 충족해야 할 약속 문구를 지정할 때 씁니다. |
--strategy=reset | 호환 구문. 반복을 새 상태에서 시작해야 할 때 씁니다. |
--strategy=continue | 호환 구문. 반복 사이 상태를 이어 가야 할 때 씁니다. |
실제 실행 상태는 .omo/ulw-loop 아래에 남습니다.
| 파일 | 역할 |
|---|---|
.omo/ulw-loop/brief.md | 원래 요청과 지속 제약 |
.omo/ulw-loop/goals.json | 목표와 성공 기준 |
.omo/ulw-loop/ledger.jsonl | pass, fail, block, steering, checkpoint 증거 원장 |
동작 방식
이 루프는 의도적으로 에이전트 스스로의 판단만으로는 끝나지 않도록 설계되어 있습니다.
계속해서 작업합니다
에이전트는 목표를 성공 기준으로 나누고, 필요한 작업을 계획하고, 증거를 모읍니다. 최신 흐름은 omo ulw-loop create-goals, complete-goals, record-evidence, checkpoint 같은 내부 CLI 상태를 사용합니다.
완료 약속을 출력합니다
작업이 끝났다고 판단해도 그것은 의도를 알리는 신호일 뿐, 루프를 끝내지는 않습니다. 각 성공 기준마다 관측 가능한 증거가 필요합니다.
Oracle가 검증합니다
검증자는 증거를 바탕으로 결과를 검토합니다. 테스트만으로는 충분하지 않고, HTTP 호출, tmux transcript, 브라우저 스크린샷, 컴퓨터 사용 로그, CLI stdout, 데이터 diff 같은 실제 표면의 증거가 필요합니다.
실패 시 계속 진행합니다
검증에 실패하면 같은 기준을 다시 실행하거나, 실패·차단 상태를 원장에 기록하고 다음 판단으로 넘어갑니다.
실패 한도
최신 워크플로우는 무한히 돌지 않도록 실패 한도를 둡니다.
| 기준 | 한도 |
|---|---|
| 한 goal에서 전체 통과 없이 반복 | 5사이클 |
| 같은 criterion의 같은 실패 | 3회 |
언제 사용하나요
- 작업이 열린 형태일 때 — "불안정한 테스트 스위트를 통과시켜줘", "빌드를 그린 상태로 만들어줘", "이 마이그레이션을 끝내줘".
- 완료 여부를 상태 보고가 아니라 증거로 판단하고 싶을 때.
- 검증자가 승인할 때까지 에이전트가 계속 반복하도록 맡기고 싶을 때.
코드 전에 계획이 필요한 결정 중심의 작업이라면 $ulw-plan을 사용하세요. 이미 만들어진 계획을 마지막 체크박스까지 실행하려면 $start-work를 사용하세요.