baton は何をしますか?
バンドルされたPythonエンジンを、信頼できるローカルタスク台帳として使用します。コマンドは明示的に実行してください。このスキルはデーモンを起動したり、モデルの使用制限を検出したり、他のエージェントに自動的に連絡したりしません。
チャットアクションの解釈
ユーザーは通常、チャットでこのスキルを呼び出します(例: /baton handover TASK-01 to pc1-codex、$baton continue TASK-01、またはホストに応じて /baton:baton status)。残りの単語をアクションリクエストとして解釈し、対応するエンジンコマンドをユーザーに対して実行します。これらはこの1つのスキルに対するリクエストであり、個別に登録されたコマンドやターミナルコマンドではありません。
| 要求されたアクション | エンジンアクション |
|---|---|
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 "機能を実装" --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: 意味のある進捗"; オプションで --push。現在所有しているファイルをコミットします。 |
ReleaseFiles | --task-id T1 --collaborator-id <所有者> --files <パス> 意図的なクレーム解放用。 |
AtomicHandoff | --task-id T1 --collaborator-id <所有者> --target-agent-id <受信者> --reason "実装を続行"; --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 "承認されたマイルストーン" --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ではありません。
- 1台のPCのボードがローカルの権限です。別々のPCはブランチとGit同期を使用します。同期されたボードレプリカは分散ロックを提供しません。ドライブフォルダを共有トランザクション台帳として扱わないでください。
--backup-path <ローカル同期フォルダ>は、一方向のボードスナップショットを書き込みます。同期クライアントがクラウドアップロードを処理します。エンジンにはネイティブのDrive、OneDrive、またはTeraBox APIアダプタはありません。- レビュー承認はタスクを完了としてマークし、そのクレームを解放します。検証済みのマージ/デリバリーは別の操作です。エンジンがリモートプッシュを確認した場合のみ
DELIVERY: COMPLETEを報告し、返されたLOCAL_ONLYまたはINCOMPLETEは保持します。 - リカバリが UNRESOLVED を報告した場合、ジャーナルとローカルファイルを保存します。指定されたチェックアウトを検査し、関連する編集を保存し、クリーンアップ後に再試行します。ファイルを保存する代わりに破棄を使用しないでください。
- ResetWorkspace はボードをアーカイブし、リーダーIDと
--confirm-resetが必要です。ワークスペースのリセットがユーザーのリクエストの範囲内である場合にのみ使用してください。
このスキルには、ファイルシステムとシェルアクセスを持つコーディングエージェントが必要です。ホストの実際のスキル呼び出しを使用してください。/baton は普遍的に登録されたターミナルまたはチャットボットAPIではありません。