Baton은(는) 무엇을 하나요?
번들된 Python 엔진을 권위 있는 로컬 작업 원장으로 사용하세요. 명령을 명시적으로 실행하세요. 이 스킬은 데몬을 시작하거나, 모델 사용량 제한을 감지하거나, 다른 에이전트에 자동으로 연락하지 않습니다.
채팅 액션 해석하기
사용자는 일반적으로 /baton handover TASK-01 to pc1-codex, $baton continue TASK-01 또는 /baton:baton status와 같이 채팅에서 이 스킬을 호출합니다. 남은 단어를 액션 요청으로 해석하고 사용자를 위해 해당 엔진 명령을 실행합니다. 이는 이 하나의 스킬에 대한 요청이지, 별도로 등록된 명령어나 터미널 명령어가 아닙니다.
| 요청된 액션 | 엔진 액션 |
|---|---|
init | 필요한 경우 부트스트랩; 프로젝트 점검; 새 보드에 대해서만 InitFresh 실행 |
join | JoinExisting |
status, tasks, packet TASK | Status, Tasks, WebPacket |
add TASK "Title" with files ... | AddTask; 의존성이 제공되면 포함 |
start TASK, claim TASK | SilentHandshake; Git 작업을 위해 --git-branch를 사용하고 요청 시 격리된 작업 트리 사용. 그런 다음 사용자가 구현을 요청한 경우에만 구현 |
checkpoint TASK with message ... | Checkpoint; 사용자의 업로드 권한이 있는 경우에만 --push 추가 |
progress TASK to 60 percent | UpdateProgress; 정확한 진행률과 노트 포함 |
handover TASK to AGENT, handoff TASK to AGENT | AtomicHandoff; 현재 프롬프트, 변경 사항 및 남은 작업을 대화 내용에서 포함 |
continue TASK, resume TASK | CheckOrContinue; 편집 전에 소유권 결정에 따라 행동 |
done TASK | 관련 프로젝트 검사 실행 후, 구현이 준비되면 Done 실행 |
review TASK | 다른 에이전트로서 고정된 변경 사항과 관련 검사를 검토한 후 SubmitReview 실행 |
reopen TASK, merge TASK, release TAG, revert TASK, recover TAG | 각각 ReopenTask, MergeTask, ReleaseTag, RevertTask, RecoverTag |
release files ... from TASK | 지정된 클레임에 대해 ReleaseFiles 실행 |
resolve recovery | ResolveRecovery; 거부된 경우 해결되지 않은 작업과 저널 유지 |
abandon recovery | 폐기가 명시적으로 요청된 경우에만 ResolveRecovery --abandon-recovery 실행. 남은 수리 작업 보고 |
selftest | SelfTest |
reset workspace | 리더에 의한 명시적 승인된 초기화에 대해서만 ResetWorkspace --confirm-reset 실행 |
요청 및 현재 보드에서 작업 ID와 경로를 확인하세요. 새 프로젝트의 키나 모호한 협력자 ID와 같이 진정으로 누락된 정보는 요청하세요. 항상 이 대화의 협력자 ID를 ID를 필요로 하는 엔진 액션에 명시적으로 전달하세요; 다른 에이전트가 공유 로컬 세션의 저장된 ID를 변경했을 수 있습니다. 대화에서 이전의 인증을 존중하세요. MergeTask와 ReleaseTag는 원격 업로드를 시도하므로, 사용자의 요청이 업로드를 금지하는 경우 설정된 원격 저장소에 대해 사용하지 마세요.
프로젝트 설정하기
요구 사항: Python 3.10+ 및 Git. 사용 가능한 Python 3 인터프리터(python3, python 또는 Windows의 경우 py -3)를 선택하세요. Windows에서 python3 별칭이 작동한다고 가정하지 마세요.
프로젝트의 첫 번째 엔진 명령 전에, 이 스킬 자체의 scripts/bootstrap.py를 찾아 선택한 인터프리터와 --project <절대-프로젝트-경로>를 사용하여 실행하세요. 번들된 엔진을 .collab/collab_engine.py로 복사하고 /.collab/을 프로젝트의 .gitignore에 추가합니다. 원장을 초기화하지 않으며 다른 기존 엔진을 대체하지 않습니다. 엔진이 거부하는 경우 업그레이드를 별도로 해결하세요.
아래 명령은 프로젝트 루트에서 실행됩니다. 필요에 따라 python3를 선택한 인터프리터로 바꾸세요. Git 기반 작업의 경우, 먼저 프로젝트가 기준 커밋과 구성된 Git ID가 있는 Git 저장소인지 확인하세요. 기본 브랜치가 main이 아닌 경우 실제 기본 브랜치를 --base-branch <브랜치>와 함께 사용하세요.
편집 전 소유권 설정하기
Status를 실행하세요. 고유한 협력자 ID로 초기화된 워크스페이스에 참여하세요; 사용자의 인증된 로컬 컨텍스트를 통해 프로젝트 키를 얻으세요. 새 워크스페이스의 경우, 선택한 리더와 프로젝트 키로InitFresh를 사용하세요. 키와 로컬 세션을 Git 밖에 유지하세요.- 작업이 존재하지 않는 경우 의도한 파일 경로와 의존성을 포함하여 작업을 추가하세요.
- 편집 전에
SilentHandshake를 실행하세요. BUSY_REDIRECT는 해당 작업을 클레임하는 것을 거부하는 것입니다; 적격한 대안을 선택하세요. 동일한 프로젝트를 공유하는 동시 브랜치 기반 작업의 경우--use-worktree를 사용하세요. - 의미 있는 진행 상황을 체크포인트로 저장하세요. 소유권을 이전할 때는
AtomicHandoff를 사용하세요; 수신 에이전트는CheckOrContinue를 실행합니다. 핸드오프한 에이전트는 SKIP_ALREADY_HANDED_OFF를 존중해야 합니다. - 구현이 준비되면
Done을 실행한 후, 다른 에이전트가 고정된 커밋을 리뷰하게 하세요. 진정한 리뷰는 평결을 제출하기 전에 변경 사항과 관련 검사를 검사하는 것을 의미합니다.
커밋, 업로드, 병합 및 릴리즈에 대한 사용자의 범위와 기존 인증을 존중하세요. 동료 승인만으로는 외부 게시를 허가하지 않습니다. 권한 없이 다른 에이전트나 사람에게 메시지를 보내지 마세요; 핸드오프 레코드는 다음 에이전트가 실행할 때 소비할 수 있습니다.
엔진 명령어
각 행 앞에 python3 .collab/collab_engine.py --local-path .를 붙이세요. 해당되는 경우 안정적인 --collaborator-id <에이전트>를 제공하세요.
| 액션 | 인수 및 동작 |
|---|---|
InitFresh | --project-key <키> --collaborator-id <리더>; 기존 원장이 있으면 거부합니다. |
JoinExisting | --project-key <키> --collaborator-id <에이전트> --device-cluster-id <클러스터> --same-device true (동일 PC 협업용) |
Status / Tasks | 소유권, 진행 상황 및 전달 상태를 검사합니다. Status는 --render-format CLI 또는 Markdown을 허용합니다. |
AddTask | --task-id T1 --task-title "Implement feature" --files src/feature.py; 선택적 --depends-on T0. |
SilentHandshake | --task-id T1 --collaborator-id <소유자> --git-branch; 선택적 --use-worktree. |
Checkpoint | --task-id T1 --collaborator-id <소유자> --commit-message "checkpoint: meaningful progress"; 선택적 --push. 현재 소유한 파일을 커밋합니다. |
ReleaseFiles | --task-id T1 --collaborator-id <소유자> --files <경로>; 의도적인 클레임 해제용. |
AtomicHandoff | --task-id T1 --collaborator-id <소유자> --target-agent-id <수신자> --reason "Continue implementation"; --last-prompt, --changes-summary, --remaining-todo로 컨텍스트 추가; 선택적 --push. |
CheckOrContinue | --task-id T1 --collaborator-id <에이전트>; 핸드오프를 로드하거나 재개-건너뛰기 가드를 존중합니다. |
Done | --task-id T1 --collaborator-id <소유자>; 리뷰를 위해 깨끗한 작업을 고정합니다; 선택적 --push. |
SubmitReview | `--task-id T1 --collaborator-id <리뷰어> --review-verdict APPROVED |
ReopenTask | --task-id T1 --collaborator-id <소유자-또는-리더>; 보류 중이거나 되돌려진 작업을 수정합니다. |
MergeTask | --task-id T1 --collaborator-id <에이전트> --squash; 푸시를 시도합니다. 다른 작업의 공유 체크아웃을 유지하려면 --use-worktree를 사용하세요; --reapply는 되돌려진 작업을 명시적으로 다시 적용합니다. |
ReleaseTag | --tag v1.0.0 --tag-message "Accepted milestone" --collaborator-id <에이전트>; 검증된 기본 브랜치에 태그를 달고 업로드를 시도합니다. |
RevertTask | --task-id T1 --collaborator-id <에이전트>; 실행 취소 커밋을 생성합니다; 선택적 --push 및 --use-worktree. |
RecoverTag | --tag v1.0.0 --recovery-branch recover/v1.0.0; 마일스톤에서 브랜치를 생성합니다. |
ResolveRecovery | 영향을 받은 체크아웃이 수리된 후에만 해결합니다. --abandon-recovery는 저널을 명시적으로 보관하고 수동 수리 목록을 작성합니다; 해당 수리를 수행하지는 않습니다. |
SelfTest | 일회용 픽스처에서 엔진의 42단계 테스트 스위트를 실행합니다. |
워크트리를 사용하는 브랜치 기반 작업의 경우, 작업의 기록된 worktreePath 내에서 편집하고 프로젝트 검사를 실행하세요.
제한 사항 및 복구
- 클레임은 협력적인 엔진 수준 검사입니다; 편집자와 임의의 Git 명령은 이를 우회할 수 있습니다. 협력자 ID는 라벨일 뿐, 인증된 ID가 아닙니다.
- 한 PC의 보드가 로컬 권위자입니다. 별도의 PC는 브랜치와 Git 동기화를 사용합니다; 동기화된 보드 복제본은 분산 잠금을 제공하지 않습니다. 드라이브 폴더를 공유 트랜잭션 원장으로 취급하지 마세요.
--backup-path <로컬-동기화-폴더>는 단방향 보드 스냅샷을 작성합니다. 동기화 클라이언트가 클라우드 업로드를 처리합니다; 엔진에는 기본 Drive, OneDrive 또는 TeraBox API 어댑터가 없습니다.- 리뷰 승인은 작업을 완료로 표시하고 클레임을 해제합니다; 검증된 병합/전달은 별도 작업입니다. 엔진이 원격 푸시를 확인한 경우에만
DELIVERY: COMPLETE를 보고하고, LOCAL_ONLY 또는 INCOMPLETE가 반환되면 그대로 유지하세요. - 복구가 UNRESOLVED를 보고하면 저널과 로컬 파일을 보존하세요. 명명된 체크아웃을 검사하고, 관련 편집 내용을 저장한 후, 정리 후 재시도하세요. 폐기를 파일 보존의 대체 수단으로 사용하지 마세요.
- ResetWorkspace는 보드를 보관하며 리더 ID와
--confirm-reset이 필요합니다; 사용자 요청 범위 내에서 워크스페이스를 초기화할 때만 사용하세요.
이 스킬은 파일 시스템 및 셸 액세스 권한이 있는 코딩 에이전트가 필요합니다. 호스트의 실제 스킬 호출을 사용하세요; /baton은 보편적으로 등록된 터미널 또는 챗봇 API가 아닙니다.