mcpField
U
unit-executor

unit-executor

github.com/willoscarエージェントワークフロー51742 回インストール3 週間前に更新
リポジトリ

unit-executor について

パイプラインのワークスペースで、実行可能な Unit を選び、受け入れ条件を確認して確定するまで、一つだけ実行するスキルです。証拠付きの完了または診断可能なブロックを記録し、次の Unit は開始せずに停止します。

主な機能

  1. 01実行可能な Unit を一つ選択
  2. 02実行 Attempt を開始して追跡
  3. 03Unit が指定する Skill を実行
  4. 04受け入れ条件と厳格な品質ルールを確認
  5. 05完了またはブロック理由を確定

活用シーン

  1. 01実行可能な Pipeline Unit を一つ処理
  2. 02具体的な理由とともにブロックを記録
  3. 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 の投影だけを修正してはいけません。

コメント