ratchet-cliv0.1.0 · MIT

검사기를 통과해야 에이전트가 다음 일을 받습니다.

ratchet-cli는 작은 명령줄 도구입니다. 할 일을 항목으로 나눠 등록해 두면 한 번에 하나씩 건네주고, 린트·테스트·빌드처럼 직접 정한 검사가 0으로 끝나야 그 항목을 잠급니다. 에이전트가 “다 된 것 같다”고 말해서 넘어가는 길은 없습니다.

GitHub 소스Python 3.10 이상표준 라이브러리만 사용

$ pipx install git+https://github.com/pantagram1031/ratchet-cli
왜

언어 모델은 코드를 잘 쓰지만, 일이 끝났는지는 믿을 만하게 판단하지 못합니다. 그래서 그 판단을 모델에게서 떼어 내 늘 같은 답을 내는 프로그램에 맡깁니다. 이미 믿고 쓰는 테스트와 검사기입니다.

직접 해 보기

검사기마다 종료 코드를 고른 뒤 제출해 보세요. README에 적힌 종료 코드 규칙을 그대로 따른 시뮬레이션이고, 실제 CLI 출력은 아닙니다.

  1. [1] implement /login
  2. [2] implement /logout
  3. [3] rewrite User model to use Pydantic v2
  4. DONE
lint.sh
test.sh

  
종료 코드

종료 코드마다 뜻과, 제출을 막는지 여부입니다.

코드뜻제출을 막나
0통과, 실제로 확인함아니오
1실패예
2경고, 참고용으로 기록warning_blocks=true일 때만
78건너뜀: 도구가 없는 등의 이유로 확인하지 못함예, allow_skipped=true가 아니면
그 밖오류: 검사기 자체가 고장예

아무것도 확인하지 않고 0으로 끝나는 검사기는 가짜 래칫입니다. “확인하지 못했다”고 말하려면 78로 끝내면 됩니다.

5초 둘러보기
$ 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 … (커밋)
Claude Code와 함께
$ ratchet skill > .claude/skills/ratchet/SKILL.md

함께 들어 있는 스킬 파일이 규칙을 알려 줍니다. ratchet next로 항목을 받고, 딱 하나만 하고, ratchet submit을 실행하고, 실패하면 검사기 출력을 읽고, 끝났다는 판단은 스스로 내리지 않습니다.

어디서 왔나

이 도구의 생각은 박준우 님의 글 Reins Engineering과 The Ratchet Pattern에서 가져왔습니다. ratchet-cli는 그 생각을 바탕으로 저희가 만든 작은 CLI입니다.