검사기를 통과해야 에이전트가 다음 일을 받습니다.
ratchet-cli는 작은 명령줄 도구입니다. 할 일을 항목으로 나눠 등록해 두면 한 번에 하나씩 건네주고, 린트·테스트·빌드처럼 직접 정한 검사가 0으로 끝나야 그 항목을 잠급니다. 에이전트가 “다 된 것 같다”고 말해서 넘어가는 길은 없습니다.
$ pipx install git+https://github.com/pantagram1031/ratchet-cli언어 모델은 코드를 잘 쓰지만, 일이 끝났는지는 믿을 만하게 판단하지 못합니다. 그래서 그 판단을 모델에게서 떼어 내 늘 같은 답을 내는 프로그램에 맡깁니다. 이미 믿고 쓰는 테스트와 검사기입니다.
검사기마다 종료 코드를 고른 뒤 제출해 보세요. README에 적힌 종료 코드 규칙을 그대로 따른 시뮬레이션이고, 실제 CLI 출력은 아닙니다.
- [1] implement /login
- [2] implement /logout
- [3] rewrite User model to use Pydantic v2
- DONE
lint.shtest.sh종료 코드마다 뜻과, 제출을 막는지 여부입니다.
| 코드 | 뜻 | 제출을 막나 |
|---|---|---|
0 | 통과, 실제로 확인함 | 아니오 |
1 | 실패 | 예 |
2 | 경고, 참고용으로 기록 | warning_blocks=true일 때만 |
78 | 건너뜀: 도구가 없는 등의 이유로 확인하지 못함 | 예, allow_skipped=true가 아니면 |
그 밖 | 오류: 검사기 자체가 고장 | 예 |
아무것도 확인하지 않고 0으로 끝나는 검사기는 가짜 래칫입니다. “확인하지 못했다”고 말하려면 78로 끝내면 됩니다.
$ cd my-existing-project $ ratchet init # .ratchet/ 생성, 코드는 건드리지 않음 $ ratchet add "implement /login" $ ratchet add "implement /logout" $ ratchet next # → [1] implement /login # 작업… $ ratchet submit # 검사기를 모두 돌리고, 통과하면 잠금 $ ratchet status # 개수와 최근 결과
앞 항목이 통과하기 전에는 다음 항목이 나오지 않습니다. submit 전에 ratchet next를 다시 실행해도 같은 항목이 나오므로, 중간에 멈춰도 안전합니다.
모든 기록은 프로젝트 안 .ratchet/에 남습니다.
.ratchet/ ├── state.json # 항목, 커서, 현재 항목 (git 제외, 개발자별) ├── config.json # warning_blocks, allow_skipped 등 ├── history.jsonl # 덧붙이기만 하는 기록 (커밋, 팀 자산) └── validators/ # 직접 정한 검사: lint.sh, test.sh … (커밋)
$ ratchet skill > .claude/skills/ratchet/SKILL.md함께 들어 있는 스킬 파일이 규칙을 알려 줍니다. ratchet next로 항목을 받고, 딱 하나만 하고, ratchet submit을 실행하고, 실패하면 검사기 출력을 읽고, 끝났다는 판단은 스스로 내리지 않습니다.
이 도구의 생각은 박준우 님의 글 Reins Engineering과 The Ratchet Pattern에서 가져왔습니다. ratchet-cli는 그 생각을 바탕으로 저희가 만든 작은 CLI입니다.