원문 캡처 · pullboard.dev
원문 캡처 · pullboard.dev

Pullboard는 에이전트가 작업을 맡고 제출해 병합하기까지의 규칙을 상태별로 적용한다. 작업 기준을 중간에 완화하거나 담당 구역 밖의 파일을 커밋하는 등 규칙을 어기면 해당 규칙의 이름과 다음 조치를 즉시 알리고, 작업을 막는다.

규칙을 적용하는 방식

Pullboard는 각 규칙을 Git 훅, 고정된 기준, 고정된 커밋, 두 번째 에이전트의 판정으로 강제한다. 작업 항목이 어떤 상태에 있는지, 상태 간 이동은 무엇인지, 누가 이동을 승인할 수 있는지, 잘못된 이동에 어떤 거부 메시지가 나오는지를 코드에서 정의한다. 상태 전이도

에이전트 개발 수명 주기(Agentic Development Lifecycle, ADLC)에서는 사람이 사양을 승인하고, 에이전트가 각자 배정된 구역에서 작업을 맡아 구현한 뒤 제출한다. 병합 전에는 두 번째 에이전트가 검증한다. 전체 절차도

네 가지 점검 지점

각 규칙을 어기면 해당 규칙의 이름과 함께 즉시 거부된다.

  • 작업을 맡을 때: 기준은 고정된다. 구현 도중 누구도 기준을 완화할 수 없다.
  • 커밋할 때: 에이전트는 배정된 구역 안에서만 커밋한다.
  • 제출할 때: 테스트가 통과해야 제출할 수 있으며, 제출한 작업은 Git에 고정된다.
  • 검증할 때: 작업을 만든 에이전트는 자기 작업을 검증할 수 없다.

다음 예시는 각 지점에서 규칙을 어겼을 때 나오는 메시지를 보여준다.

text
~/storefront
# at claim: the coordinator tries to soften a frozen bar
$ pullboard edit 2 --criterion "Most orders email a receipt"
pullboard: [HELD] item #2 is claimed; change its route, criterion or check only while it is open
# at commit: web-1 stages a file outside its lane
$ git commit -m "feat(web): show live rates [G1]"
pullboard pre-commit: blocked
  - outside the web lane: api/rates.js (coordinator's); shout its owner instead
# at submit: red tests are refused, green work is pinned
$ pullboard submit 1
pullboard: [GATE_RED] the gate is red at 6a40215c0a5a; fix it, commit, submit again.
$ pullboard submit 1
pinned as refs/pullboard/items/1/7e3790a6828f, so this work can't be lost
# at verify: the builder tries to accept its own work
$ pullboard verify 1 accept --note "looks fine"
pullboard: [SELF_VERIFY] the builder never verifies its own work; another agent must

추가로 적용되는 규칙

작업 배정(lease)은 기본적으로 2시간 동안 유지된다. 작업이 멈춘 채 시간이 지나면 배정이 만료되고 항목이 다시 열리며, claim <id>로 작업을 맡는다.

검증자는 자신이 확인 중인 항목을 예약한다. 다른 판정은 예약이 끝날 때까지 기다리며, next --verify로 검증할 항목을 가져온다.

거부된 커밋은 다시 제출할 수 없다. 수정 작업을 먼저 커밋해야 하며, 관련 거부 코드는 HEAD_NOT_NEW다.

커밋 메시지 헤더에는 해당 커밋이 반영하는 사양 항목을 적어야 한다. 이 규칙은 commit-msg 훅으로 적용한다.

hold <lane>으로 사유를 적어 작업 구역을 중단할 수 있다. 중단된 구역에서는 다음 작업을 배정하지 않는다.

질문은 답변을 받을 때까지 열린 상태로 남는다. --decision으로 표시한 결정 요청만 담당자에게 전달된다.

명령과 문서

각 명령의 플래그와 거부 조건은 문서에 정리돼 있다. 설치와 도움말 확인 명령은 다음과 같다.

text
npm i -g pullboard
pullboard help