Communityライティング&編集github.com

orderfield

マルチエージェントソフトウェア作業のための契約カーネル。計画はディスク上に存在し、子エージェントはそれを書き換えられません。Closeが証明です。

orderfield とは?

Orderfield は、複数のAIエージェント(Claude、Codex、Orca、Grok、Cursorなど)が協調して大規模なソフトウェア開発プロジェクトを進めるための「契約カーネル(contract kernel)」です。このスキルの核心は、すべての作業状態、計画(ORDER)、タスクの割り当て(packet)、および進捗の残余(residual)をディスク上のファイルシステムに保存し、エージェント間のコンテキスト損失や会話の断片化に耐性を持たせることです。各エージェントは「子」として振る舞い、親エージェント(リーダー)が定義した契約に従い、ディスク上の計画を書き換えることはできません。Orderfield は `of` コマンドラインインターフェースを提供し、`of init` でプロジェクトを開始、`of pack` でタスクを子エージェントに割り当て、`of resume` で中断状態から再開、`of close` で作業の完了を証明します。これにより、複数の会話セッションやエージェントにまたがる複雑なソフトウェア構築が、一貫性と追跡可能性を保ちながら実行可能になります。

対応✓Claude Code✓Codex CLI✓Cursor✓Antigravity✓OpenCode
npx skills add pedroknigge/orderfield

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

orderfield は何をしますか?

あなたはリーダーです。スライスを実装してはいけません。ディスクがセッションです。

/of がこのスキルです。再開、パック、残余、コントラスト、クローズ。起点はポインターであり、スポーンピンではありません。

ハーネス(Claude、Codex、Orca、Grok、Cursor、OpenCode、Antigravity/agy)はプロセスを開始および停止します。ORDER、パケット、残余、および体制決定はディスク上に存在します。カーネル、製品、またはマルチスライスビルドが排他的な所有者、コンパクションに耐えるSPEC、およびクロージング前のof contrastを必要とする場合に使用します。1つのエージェントで十分な場合は、フィールドを開かないでください。

契約語彙: docs/glossary.md。比較対象(Orca、AWS CAO、Agent Teams、CrewAI/LangGraph、デュアルハーネススキル): README.md。不変条件: references/principles.md。

子エージェントはパケット内で自由に移動します。しきい値の残余は、そのウェーブでの追加スポーンをブロックしますが、それ自体でORDERを変更することはありません。

カーネルは、公開JSONスキーマ、アトミックなファイル単位の書き込みとマルチファイル変更のためのフィールド全体のWAL(ステージ + MANIFEST + パブリッシュ)、MUTATING_COMMANDS(init、new、pack、unpack、collect、integrate、phase、patch、next-wave、migrate、spec、checkpoint、close、gc)のためのクロスプロセスフィールドロック、パック上限、正規のパケットID/パス/リビジョン、残余バインディング、統合リプレイ、ガード付きフェーズ/ウェーブ遷移、スポーンブロッキング、および作業がofを通じて行われる場合のクローズドレジームメニューを強制します。役割の遵守、製品ワークスペースの所有権、同一ハーネスの選択、真実の子作成メトリクス、およびCLI外への直接書き込みはプロトコルのままです。製品ファイルをロックしたり、ワークツリーを自動的に作成したり、メトリクスを証明したり、従わない子を監視したりすることはありません。of worktreeはオプトインヘルパーであり、プロセスマネージャーではありません。

次に入力するもの

ディスクの状態あなたが入力するもの
.orderfield/ORDER.json が存在するof resume — そして同じターンで表示された next を実行
ORDERがなく、真のマルチスライス作業of init --mission "…" --source "<逐語的なブリーフ>"
所有者が既知of pack --slice "…" --owns-requirement ID の後 of handoff --packet または of spawn
スライスが巨大に見えるof pack --explain --slice "…" --role explorer — 理由を示すが書き込まない
叙事詩の途中、次のハーネスまたは人間of handoff(フィールドパケット)または of handoff --json — アンパックしない
残余が収束したof collect --wave N → of integrate --wave N
公開サーフェスが実行されたof spec --verified-contract ID → of contrast → of close --checklist → of close
マルチウェーブをクローズする準備ができたof close --checklist — contrast RESOLVED かつ residual が空であること。Flying(residual MISSING)はクローズされない
クローズの意味docs/close-is-proof.md — RFC: contrast RESOLVED + residual 空 + CLOSE.json。residual 空はクローズではない
子がフィールドが間違っていると言うof patch … の後 of next-wave
いくつかの未マッチのオープンフィールドがある--field を付加(.orderfield/ACTIVE に書き込む)、または of new
いくつかの兄弟がいて、フライングパックが必要of fields / of fields --json — ホーム間のオープンパックを一覧表示。of status --json は1つのフィールドのまま
長いミッション(叙事詩 → ウェーブ → 修正 → クローズ)docs/long-mission.md — 動詞に従って進む。スーパーバイザーを発明しない
セッションがCLOSEDを表示、--tokens、またはレポーターをアンパックof eval recovery/adversarial-dual-truth — ディスクが優先。--tokens は終了。レポーターの収集/統合
人間がインストール/検証を依頼 ofbash docs/demo/mortal-install.sh --global(または --root PATH)。of doctor が ok を出力する必要あり。固定: README / PUBLISH。pip ではない。デーモンではない
stderr/doctor が新しい of を表示ユーザーに確認。同意の場合: ORDERFIELD_VERSION=… bash install.sh --global --from-release(リリース tar.gz + SHA256SUMS)。1日1回。同意なしにミッドORDERをアップグレードしない
マルチハーネス残余 / 深いスキル dest が residual.codex を失ったof eval recovery/multi-harness-residual — Claude/Codex/Cursor は1つの残余を共有。Codex argv は依然としてスキーマを指定する
of doctor がFAILを出力フィールド/カーネル — ACTIVE/stub/packs/schemas/lock を修正。skill SKEW 単独は WARN / exit 0(bash install.sh --global)
next=HOLD で子がフライング中最後の PULSE 行をそのターンでユーザーに引用。それらのパケットに留まる

pack、spawn、contrast、またはcloseを主張するターンに同じターンでこれらの of コマンドがない場合、それは壊れた実行です。

いつ使用するか

  • ユーザーが明示的にOrderfield、/orderfield、/of、Haken slaving、しきい値委任、またはオーダーフィールドを呼び出した場合。
  • 1つのコンテキストに収まらず品質を損なう複雑なソフトウェア(カーネル、製品、マルチスライスビルド)。
  • 複数のスライスまたはライターが明示的な所有権を必要とする場合、または複数のハーネスが調整する必要がある場合。
  • リポジトリに .orderfield/ORDER.json が既に存在する場合。

ハーネス名だけではトリガーになりません。タスクが1つのエージェント、1つの通常のサブエージェント、または1つのスキルに適合する場合は、フィールドを開かないでください。スキルは子よりも優先されます。

自動レポート (HITL)

Orderfieldは、HITL確認後に自身の欠陥を pedroknigge/orderfield に自動報告します。これはカーネル/スキル/CLI/ドキュメント/インストールの自己テレメトリーであり、ヘルプデスクではなく、コンシューマーワーキングツリーに対するチケットでもありません。コンシューマーの git origin は永遠に範囲外です。amarilla-platformのフォークはこれらのIssueを受け取ることができません。of issue を使用してください。ワンウェーブ制約ではありません。

Orderfieldのものである場合にのみ自動報告:

  • カーネルが無効なスキーマを発行 / WALが一貫性を失った / packがcollectが受け入れられないパケットを生成 / スポーンメタデータが一貫性を失った / contrastが自己矛盾 / ドキュメントとコードの主張の不一致 / インストール/アップデートピンの失敗 / 子フォージまたはロックの不変条件違反。

自動報告しない:

  • 子が終了しなかった、SPECが不完全、製品テストがレッド、スライスが気に入らなかった、コンシューマービルドエラー、「ユーザーが行き詰まっている」。これらはディスク上に残ります(residual → integrate)。

不明な場合は、下書き + HITL、デフォルトで投稿しない。

同じターンに明示的な人間の確認なしにGitHub Issueを作成しないでください。

  • 確認 → 作成(HITL後に of issue を --dry-run なしで実行。実行することが送信です)。
  • 拒否 / 後で編集 / 無視 → 作成しない(または of issue --dry-run のみ)。

両方とも契約です。自動投稿、yolo投稿、および子からの投稿は禁止されています。

of issue は常に --repo pedroknigge/orderfield をターゲットにします。ORDERがなくても動作します。stdlibのみ: カーネルはログイン済みアカウントで gh を起動します(gh auth)。なりすましをしないでください。トークンを発明しないでください。消費者originに投稿しないでください。カーネルはstdinでプロンプトを表示しません — HITLはリーダー/人間のままです。

of issue --search
of issue --title "…" --body "…" --label bug --dry-run
of issue --title "…" --body-file scratch/ISSUE.md --label enhancement

子(OF_CHILD がセットされている、ヘッドレススポーン、または人間に尋ねられないセッション)は決して投稿しません。下書きを自身のスクラッチ(ISSUE.md または issues/<slug>.md: タイトル、本文、ラベル bug または enhancement、証拠パス)に書き込むか、of issue --dry-run を実行し、残余で下書きを指名します。あなたはHITLを求め、その後 of issue。

最初にオープンIssueを検索します(of issue --search)。重複をスキップします。シークレット、トークン、プライベートトランスクリプト、フィールド内部残余(これらはディスク上に残ります: residual → integrate)を提出しないでください。個別の調査結果ごとに1つの下書きまたはIssue。日記ではありません。子の手順: SLAVE.md。

必須リーダープロセス

of がPATHにある場合(インストーラーは ~/.local/bin/of にシンボリックリンクを作成します)、それを実行します。そうでない場合は、python3 <skill>/scripts/of.py を実行します。作業リポジトリでは、状態はスキル内ではなく、そのリポジトリの .orderfield/ にあります。人間がインストールまたはインストールの確認を依頼した場合は、bash docs/demo/mortal-install.sh --global(チェックアウト/抽出されたツリー)または --root PATH(hermeticルック用)を実行し、次に of doctor が ok を出力する必要があります。固定レシピ: README / PUBLISH。pip、スーパーバイザー、または2番目のインストーラーを発明しないでください。

ツール呼び出しの規律。 pack、spawn、contrast、またはcloseを主張するターンに同じターンでこれらの of コマンドがない場合、それは壊れた実行です。CLIが戻った後にのみ、過去形で発表します。

自動復活。 オープンフィールド(spec_closed false)は、チャットを切り替えたり、コンパクションでコンテキストを失ったり、ユーザーが他の場所で無関係なタスクを実行したりしても一時停止しません。そのワークスペースでのすべてのリーダーターン: 最初に of resume し、auto_continue を読み、次に同じターンで印刷された next アクションを実行します — 必要に応じてhandoff/spawn/collect/integrate/patch/next-wave/contrast/close。resumeの後に停止してユーザーが「続けて」と言うのを待ってはいけません。ユーザーが明示的にミッションを一時停止または停止しない限り(pause / stop / wait on the field / cancel the mission / of init --force)、再開するかどうかを尋ねてはいけません。resumeが名簿(PICK --field、exit 2)または外部フィールド(いくつかのオープンフィールドがあり、このセッションIDがバインドされた起点と一致しない)を印刷した場合、それはこのセッションの next ではありません — どのフィールドか、または of new を尋ねてください。一意のオープンフィールドは、OF_SESSION_ID が ORDER.origin.session_id と異なる場合でも自動継続します — 起点は来歴であり、再開権限ではありません。自身が所有するオープンフィールドで of resume を実行しながら、next の作業を何も行わないターンは、壊れた実行です。

ステアリングポリシー(Eve類似)。 ターンが進行中に、オープンフィールドに対する新しいユーザーメッセージは、キューに入れられた別のミッションではなくステアリングとして扱われます: 契約を修正またはパッチする(of spec --amend、of patch)、待機中の子を続行する(HOLD)、または統合する — ユーザーが明示的にミッションをキャンセルしない限り、of init --force は行わないでください。オープンフィールドに対する指示的なゴーアヘッド(dale、do it、as discussed)は、それらの単語の of spec --amend ではなく、next を実行することです。インターリーブされたチャットとコンパクションは一時停止ではなく、コンテキストをディスクに戻すステアリングです。

コンテキストレイアウト(指示 vs スキル vs パケット vs サブエージェント): docs/context-control.md。

コンパクション後、またはインターリーブされたチャットから戻った後、最初のアクションは依然として of resume です — チャットメモリではなくディスクから再構築します。

0. ディスクから再開する(ORDERが存在する場合)

python3 <skill>/scripts/of.py resume

フィールドが存在する場合、ここから開始します。パケット/残余/状態とオプションのチェックポイントサマリーから進行中を再構築します。フィールドが既に開いている場合は of init を行わないでください。既にパケットを持ち残余がない子を再パックしないでください。Resumeは1画面です。自動スポーン、ログダンプ、または体制の追加は行いません。field(open | closed)と**auto_continue**(yes → このターンで next を実行。no → フィールドはクローズ、いくつかのオープンフィールドの中での外部origin、または名簿)を印刷します。一意のオープンフィールドは、OF_SESSION_ID が ORDER.origin.session_id と異なる場合でも yes を印刷します。ORDER.origin が存在する場合、1行 origin <harness> [<session_id>] を印刷します。キーがない場合はその行を省略します。起点は来歴(どのハーネスセッションがフィールドを開いたか)であり、再開権限やトランスクリプトではありません。ライブウェーブは state.wave にパケット/残余を加えたものです — 古い session.json は優先されません。デッドスポーンホストは同じディスクです: 開始されたスポーンメタデータと不完全なWALの残骸は、パックされた子を隠しません。オープンフィールドで of init を行わないでください(recovery/multi-day-resume、recovery/process-death-resume)。

兄弟フィールド。 1つのワーキングツリーに複数のフィールドを保持できます(.orderfield/fields/<id>/)。of new は他のフィールドを殺さずに兄弟を開き、.orderfield/ACTIVE に書き込みます — これは無関係な叙事詩です。of new --parent はバインドされた叙事詩のネストされたフェーズを開きます(ORDER.parent)。of close はACTIVEをその親に戻します(of merge ではありません)。同じミッションで、このORDERに新しい制約/完了条件/フェーズがある場合は、バインドされたフィールドで of patch を実行します。of fields はそれらを一覧表示します(* = ACTIVE。open/closed。phase/wave/packed-age。choose)。また、オープンホーム間の進行中の子(residual MISSING)の packs セクションも表示されます。of fields --json は叙事詩ダッシュボードオブジェクトです(PackRoster。recovery/cross-field-pack-roster)。--open / --all / --cursor は多くのホームをページングします。--field <id> または OF_FIELD(ACTIVEを更新)を渡します。Status/resumeはoriginの一致後にACTIVEに従います。ネストされたホームが存在する場合、残されたトップレベルのORDERスタブは無視されます。異なるIDのスタブに対する --field は失敗します。of migrate はそれを ORDER.json.stub にアーカイブします(recovery/root-stub-ambiguous)。カーネルはstdinでプロンプトを表示しません。resumeが PICK --field(exit 2)を印刷した場合、ユーザーにどのフィールドにアタッチするか、または of new を実行するかを尋ねてください。auto_continue no が外部フィールドと言う場合、そのフィールドの next を実行しないでください — --field でアタッチするか、兄弟を開いてください。一意のオープンフィールドの後のセッションは外部ではありません。同じブリーフ、他のエージェント → アタッチ。無関係なブリーフ → of new。同じ製品に対する飛行中の追加要求 → of spec --amend、of new ではありません。マップ: docs/nested-fields.md。クローズテンプレート: docs/close-honesty.md。ロングミッションウォーク: docs/long-mission.md。

ブリーフには、completed(残余あり: ステータス、result_ref、owns_requirements、所有パスの存在)と**in_flight** / parked(残余MISSING: parked_reason、スクラッチ、所有者、所有パスの present/missing、スライス、パック経過時間、agents_note)の子がリストされます。任意の残余がMISSINGである間、of status / of resume / of pulse は running を印刷します — residual MISSING。ハーネスクローム(Churned / done)はフィールドではありません。

関連スキル