cancel について
cancel は、実行中の処理やバックグラウンドジョブを確認・キャンセルする Ouroboros スキルです。指定した実行のキャンセルや、現在のプロジェクトに属する実行の一括キャンセルに対応し、結果も報告します。
主な機能
- 01プロジェクトの実行中処理を一覧表示
- 02実行またはバックグラウンドジョブをキャンセル
- 03プロジェクトの実行を一括キャンセル
- 04キャンセル状況とエラーの報告
活用シーン
- 01停止したプロジェクト実行の終了
- 02IDを指定したバックグラウンドジョブのキャンセル
- 03選択前に実行中の処理を確認
- 04キャンセル完了の確認
MCP 対応
Ouroboros MCP ツールでプロジェクトの実行を一覧表示し、実行やジョブをキャンセルします。ツールが利用できずシェルにアクセスできる場合は、Ouroboros CLI を使えます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ q00/ ouroboros --skill cancelインストール後、Claude Code で/cancelを入力して読み込まれたか確認します。
詳細
/ouroboros:cancel
Ouroboros MCP ツールを使って、シェルアクセスのないホスト上でも、停止した実行や孤立した実行、バックグラウンドジョブをキャンセルします。
/ouroboros:cancel # list this project's active executions, ask which to cancel
/ouroboros:cancel <id> # cancel one execution (orch_... or execution id) or job (job_...)
/ouroboros:cancel --all # cancel every running or paused execution of this project
手順
MCP ツールの読み込み(遅延スキーマのガード)
Ouroboros ツールは遅延読み込みされる場合があり、あるターンで読み込まれたスキーマが次のターンまでにアンロードされることがあります。各 ouroboros_* 呼び出しの直前に、アクティブなランタイムのツール検出機能を使ってツールを読み込んでください。ouroboros_project_status には "+ouroboros project status"、ouroboros_cancel_execution と ouroboros_cancel_job には "+ouroboros cancel" を指定します。スキーマが読み込まれていない状態で呼び出すと、"Invalid tool parameters" で失敗します。ツールがすでに呼び出し可能な場合、検出は何も行わず、空の結果が返されることが想定されます。フォールバックは、ツールが本当に存在しない場合にのみ使用してください。
アクティブな実行の一覧表示
現在のプロジェクトの絶対パスを project_dir に設定して、ouroboros_project_status を呼び出します。status が running または paused の実行がアクティブです。それぞれの session_id、started_at、seed_goal を表示してください。プロジェクトの実行数が limit を超えているために呼び出しが失敗した場合は、報告された実行数を limit に設定して一度だけ再試行してください。この一覧に含まれるのは、このプロジェクトに関連付けられた実行のみです。バックグラウンドジョブを一覧表示するツールはないため、この会話中に開始ツールから返された job_... ID も提示してください。
手順
- ID が指定されておらず、「all」でもない場合:上記の手順で一覧表示し、アクティブなランタイムの
ask_user機能を使って、どれをキャンセルするか尋ねてから、以下の手順で選択された ID をキャンセルします。アクティブな実行がなければ、その旨を伝えます(run_shellが利用可能な場合は、このプロジェクト以外の実行にはouroboros cancel execution --listを使えることも伝えます)。ユーザーがキャンセルを望まない場合は、何もキャンセルしません。 - ID が指定されている場合:
job_で始まる ID はバックグラウンドジョブです。job_idを指定してouroboros_cancel_jobを呼び出します。それ以外の ID(orch_...セッション ID または実行 ID)は実行です。execution_idと、ユーザーが指定している場合はreasonを指定してouroboros_cancel_executionを呼び出します。 - 「cancel all」/「cancel everything」の場合:一括キャンセルツールはありません。上記の手順で一覧表示し、実行中または一時停止中の実行ごとに
ouroboros_cancel_executionを呼び出します。これはこのプロジェクトの実行のみが対象であることを伝えてください。マシン上のすべての実行を対象にするには、run_shellを使ってouroboros cancel execution --allを実行する必要があります。
結果の報告
ouroboros_cancel_execution:new_statusがcancelledの場合、キャンセルされています。cancellation_requestedの場合、稼働中のワーカーに停止が要求され、ワーカー自身がキャンセルを記録します。確認するにはooo statusを実行するよう提案してください。「already in terminal state」エラーの場合は、キャンセル対象がなかったことを意味します。警告を添えて、その実行をスキップしてください。「Execution not found」は ID が誤っていることを意味します。「Held by another live owner」は、その実行を所有するプロセスだけがキャンセルできることを意味します。このメッセージはそのまま伝えてください。「Failed to persist cancellation」は再試行可能です。一度だけ再試行してください。ouroboros_cancel_job:statusがcancel_requestedの場合、ジョブと関連付けられた実行に停止が要求されています。cancelledの場合は完了しています。それ以外の終了ステータス(completed、failed、interrupted)の場合、ジョブはすでに終了しており、何もキャンセルされていません。「Job not found」は ID が誤っていることを意味します。
その他のエラーはそのまま伝えてください。その後、確認には ooo status、新たに開始するには ooo run を提案してください。
フォールバック(MCP サーバーがない場合)
キャンセルツールが本当に存在せず、アクティブなランタイムで run_shell を利用できる場合は、キャンセルイベントをイベントストアに直接書き込む CLI を使用してください。ouroboros cancel execution --list(プロンプトを表示せずにアクティブな実行を出力し、その後 ask_user で確認します)、ouroboros cancel execution <session_id>、または ouroboros cancel execution --all を実行します。理由を記録するには --reason "<text>" を追加し、出力された内容(Cancelled execution: <id>、Cancellation requested for execution: <id>、または No active executions found.)を、警告があればその文言のまま報告してください。run_shell が利用できない場合は、キャンセルには Ouroboros MCP サーバー(ooo setup)またはシェルが必要であることをユーザーに伝えてください。
RFC #1392 状態ブレッドクラムフッター
最終回答の末尾は、必ず ◆ <current state> → next: <recommended action> の1行で締めくくってください。利用可能な場合は ouroboros_session_status でライブセッションの状態を取得し、そうでない場合はこのスキルの実際の結果から状態を判断してください。直線的な Step N of M フッターは使わないでください。次のステップが実際の選択肢である場合は、2~3個の選択肢を示してください。