unit-executor について
パイプラインのワークスペースで、実行可能な Unit を選び、受け入れ条件を確認して確定するまで、一つだけ実行するスキルです。証拠付きの完了または診断可能なブロックを記録し、次の Unit は開始せずに停止します。
主な機能
- 01実行可能な Unit を一つ選択
- 02実行 Attempt を開始して追跡
- 03Unit が指定する Skill を実行
- 04受け入れ条件と厳格な品質ルールを確認
- 05完了またはブロック理由を確定
活用シーン
- 01実行可能な Pipeline Unit を一つ処理
- 02具体的な理由とともにブロックを記録
- 03完了確定前に出力ファイルを検証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ willoscar/ research-units-pipeline-skills --skill unit-executorインストール後、Claude Code で/unit-executorを入力して読み込まれたか確認します。
同梱ファイルscripts/run.py
詳細
ユニット実行ツール
最も重要な原則は原子性です。1回の実行で1つのユニット試行を開始し、承認された完了を1件コミットするか、診断可能なブロックを1件記録します。2つ目のユニットを開始することはありません。
入力
UNITS.csvと選択したユニットの行。- その行の
inputsフィールドで宣言されているファイル。 - ユニットがチェックポイントでゲートされている場合は
DECISIONS.md。
出力
- ユニットの
outputsフィールドで宣言されているファイル。 - 更新された
UNITS.csv、実行エビデンス、および任意のSTATUS.md投影。 - 厳格な品質チェックで完了がブロックされた場合は
output/QUALITY_GATE.md。
手順
1. 照合してユニットを1つ選択する
Pipeline アダプターを通じてワークスペースを確認します。指定されたユニット、または依存関係が DONE である最初の TODO ユニットを選択します。HUMAN チェックポイント、未解決の Decision、進行中の試行、または整合性エラーによって選択が妨げられる場合は停止します。
完了条件:実行可能なユニットがちょうど1つ選択されるか、具体的な次のアクションとともにブロック条件が1件記録されていること。
2. 試行を開始する
ステータスセルを編集するのではなく、必ずアダプターを通じてセマンティックな作業を開始します。
uv run python scripts/pipeline.py mark \
--workspace workspaces/<name> \
--unit-id <U###> \
--status DOING \
--note "starting semantic execution"
完了条件:ユニットが DOING であり、対応する進行中の試行が1つ実行を担っていること。
3. 宣言されたスキルを実行する
選択したユニットのスキルと、この分岐で必要なコンテキストポインターのみを読み込みます。無関係なワークスペースアーティファクトを変更せず、宣言された出力を生成します。
完了条件:必要な出力がすべて存在するか、失敗が BLOCKED としてコミットできるほど具体的であること。
4. 完了を検証してコミットする
要求されている場合は、ユニットの受け入れルールと厳格な品質契約を評価します。アダプターを通じてコミットします。
uv run python scripts/pipeline.py mark \
--workspace workspaces/<name> \
--unit-id <U###> \
--status DONE \
--note "acceptance checked"
受け入れ条件を満たさない場合は、具体的な理由とともに BLOCKED を使用します。UNITS.csv を直接編集しないでください。アダプターが試行、アーティファクト、マニフェスト、Decision、ステータス投影の整合性を保ちます。
完了条件:受け入れおよび来歴のエビデンスを伴って完了が DONE になるか、診断可能な失敗を伴って BLOCKED になること。
5. 1つのユニットを処理したら停止する
ワークスペースの投影を更新し、完了またはブロックされたユニットを報告します。エンドツーエンドでの完了を主張せず、次の実行可能なユニットも開始しないでください。
完了条件:この実行中に実行状態が変わったユニットがちょうど1つであり、次の担当者がワークスペースのファイルから作業を再開できること。
コンテキストポインター
- 選択した
UNITS.csvの行が、依存関係、入力、出力、受け入れ条件、チェックポイント、スキルの識別情報を管理します。 - 選択したスキルがセマンティックな動作を管理します。
- ロックされた Pipeline が、ユニット間のゲートと対象アーティファクトを管理します。
- ユニット間で自動的に続行するには、
research-pipeline-runnerを使用します。
スクリプト
クイックスタート
uv run python .codex/skills/unit-executor/scripts/run.py \
--workspace workspaces/<name>
すべてのオプション
--workspace <path>:既存のワークスペース。--unit-id <U###>:実行可能な特定のユニットを実行します。--inputs、--outputs、--checkpoint:Pipeline ランナーとの互換性のための引数です。--strict:スキャフォールドのような出力をブロックし、品質ゲートのレポートを書き込みます。
使用例
厳格モードでユニットをちょうど1つ実行します。
uv run python .codex/skills/unit-executor/scripts/run.py \
--workspace workspaces/<name> \
--strict
同等のアダプターコマンド:
uv run python scripts/pipeline.py run-one \
--workspace workspaces/<name> \
--strict
ヘルパーは、DONE または IDLE の場合に 0、BLOCKED または ERROR の場合に 2 を返します。
トラブルシューティング
- 実行可能なユニットがない場合は、ステータスを変更する前に、依存関係、チェックポイントの承認、進行中の試行を確認します。
DONEのユニットで出力が欠けている場合は、説明を添えてアダプター経由で再開します。CSV の投影だけを修正してはいけません。