本文へ移動
cccskills
無料GitHub で公開日本語紹介

ao-orchestrator

AOのプロジェクト担当オーケストレーターに依頼や質問を届け、返答を確認してユーザーに伝えます。

原文原文の説明を見る

Talk to a project's AO orchestrator: pass the user's request to it, wait for its reply and relay it. The default route for starting or changing work, "catch me up", "why", "what next" and plans. Use for "in <project>: <ask>", "tell the orchestrator ...", "catch me up on <project>", "start work on ...".

OrchestratorInc/agent-orchestratorスター 13,873(GitHub 13,873 + cccskills 0)

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • プロジェクトの作業を開始したいとき
  • 進捗やこれまでの経緯を尋ねたいとき
  • 変更依頼をオーケストレーターに伝えたいとき
  • 次の作業や計画について相談したいとき

日本語での紹介

できること

プロジェクトのAOオーケストレーターにユーザーの依頼を届け、返答が届くまで確認して内容を伝えます。作業の開始や変更、状況の整理、理由の確認、次の進め方や計画の相談など、プロジェクトについて判断が必要な依頼をオーケストレーターに取り次ぎます。オーケストレーターが作業中なら依頼を次のターンに回し、作業を変える依頼は進行中のターンへ送ります。返答にユーザーへの質問が含まれる場合は、選択肢を提示して回答を受け取ります。

こんなときに便利

AOで管理しているプロジェクトの作業を始めたいときや、担当エージェントに状況・理由・次の手順を尋ねたいときに使えます。ユーザー自身の希望を、設計判断を加えずにオーケストレーターへ伝えたい場合にも向いています。

使い方の例

  • 「このプロジェクトの作業を始めて」
  • 「プロジェクトの状況を整理して教えて」
  • 「この変更をオーケストレーターに伝えて」

注意点

対象プロジェクトが複数のホストにある場合は、どのホストか指定が必要です。該当プロジェクトが見つからない場合やオーケストレーターがいない場合は、確認を求めます。メッセージ送信は書き込み操作として扱われます。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

資料チェック

SKILL.md の記述から、注意が要る操作と導入の前提を AI が確認しました。点数は実際に動かした結果(実行検証)だけで付けています。

安全面送信・削除・コマンド実行などの扱いが明示されているか
B一部不足依頼ごとの送信と書き込み扱いを明示するが、承認手順は記載なし。
導入のしやすさ必要なツールや API キーが少ないか、書かれているか
B一部不足AO APIとcurl、python3等が前提だが導入手順は共通規則を参照。

点数には入れていません。 2026年10月29日 時点で AI(OpenAI Codex)が判定しました。目安なので、入れる前に原文も確認してください。

評価が違うと思ったら、見直しを依頼する

どの項目が、なぜ違うと思うかを書いてください。ログインは不要です。内容を SKILL.md と照らし合わせて評価を作り直し、この欄に反映します。

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

含まれるファイル(1)

  • SKILL.md6.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Follow the ao-rules skill ("Who does what: orchestrator first"). Sending a message is a write: do it only for what the user asked in this turn.

1. Pick the host and project

Match the user's words against project ids on every host (aoapi GET projects). One match: use it. The same project id on two hosts (two separate projects that share a folder name): ask which host, unless the user named one or memory has a default for that project. No match: list the projects and ask.

2. Find the orchestrator

f(){ <aoapi helper>; aoapi GET "sessions?orchestratorOnly=true&active=true&project=<project>" | python3 -c '
import json,sys
for s in json.load(sys.stdin)["sessions"]: print(s["id"], (s.get("activity") or {}).get("state",""), s.get("provisionState",""))'; }; f
  • One line: that is the orchestrator. Its state tells you if it is busy (active).
  • exited: resume it first with aoapi POST "sessions/<id>/resume-agent" '{}', then go on.
  • Provision state failed: AO could not create its workspace, and messages to it fail. Read the reason with aoapi GET "sessions/<id>" (field provisionError), tell the user in plain words, and ask them to fix it in AO. Stop here.
  • No line: ask "There's no orchestrator in <project> on <host>. Start one with your request?" On yes, start it with the request as its first message (step 3's file and tag), then go to step 4. Its reply is its first turn:

Start an orchestrator

f(){ <aoapi helper>; P='<project>'; TAG="[via Grok Bot #$(date +%H%M%S)]"; F=~/.ao-grok/out/$(date +%F)-<short name>.md
  mkdir -p ~/.ao-grok/out; { printf '%s ' "$TAG"; cat <<'EOF'
<message>
EOF
  } > "$F"
  H=$(aoapi GET "projects/$P" | python3 -c 'import json,sys; d=json.load(sys.stdin); c=(d.get("project",d).get("config") or {}); print((c.get("orchestrator") or {}).get("agent") or (c.get("worker") or {}).get("agent") or "")')
  aoapi POST sessions "$(python3 -c 'import json,sys; b={"projectId":sys.argv[1],"kind":"orchestrator","mode":"chat","displayName":"Orchestrator","prompt":open(sys.argv[2]).read()}; b.update({"harness":sys.argv[3]} if sys.argv[3] else {}); print(json.dumps(b))' "$P" "$F" "$H")" | python3 -c 'import json,sys; d=json.load(sys.stdin); d=d.get("session",d); print("started", d["id"])' && echo "TAG=$TAG"; }; f

After about 10 seconds, check provisionState with aoapi GET "sessions/<new id>". If it is failed, handle it as above.

3. Send

Write the message to a file on via, then send it. The message is the user's request in their words, plus only the context from this chat the orchestrator needs. Don't add your own design choices. Start it with a tag so you can find the reply:

f(){ <aoapi helper>; O='<orchestrator id>'; TAG="[via Grok Bot #$(date +%H%M%S)]"; F=~/.ao-grok/out/$(date +%F)-<short name>.md
  mkdir -p ~/.ao-grok/out; { printf '%s ' "$TAG"; cat <<'EOF'
<message>
EOF
  } > "$F"
  B=$(python3 -c 'import json,sys; print(json.dumps({"message":open(sys.argv[1]).read(),"userAuthored":True}))' "$F")
  if aoapi POST "sessions/$O/send" "$B" >/dev/null; then echo "sent TAG=$TAG F=$F"; return 0; fi
  echo "SEND_FAILED: resuming the agent and trying once more"
  aoapi POST "sessions/$O/resume-agent" '{}' >/dev/null; sleep 5
  aoapi POST "sessions/$O/send" "$B" >/dev/null && echo "sent TAG=$TAG F=$F"; }; f

A failed send prints AO's error. If it still fails after the retry, tell the user the orchestrator isn't accepting messages and to open it in AO.

If the orchestrator was active in step 2, the message waits and runs as its own turn after the current one. Tell the user right away, in one line: "The orchestrator is busy with <what its last turn is about>. Your question is queued and runs next." Then go on to step 4.

If the user wants to change what it is doing right now ("stop that", "use X instead"), steer instead. Write the file and tag as above, then:

f(){ <aoapi helper>; O='<orchestrator id>'; F='<message file>'
  aoapi POST "sessions/$O/conversation/steer-or-send" "$(python3 -c 'import json,sys,uuid; print(json.dumps({"text":open(sys.argv[1]).read(),"clientMessageId":str(uuid.uuid4())}))' "$F")"; }; f

"outcome":"sent" means it arrived (in the running turn, or as a new turn if the orchestrator was idle). Then go to step 4.

4. Wait for the reply

Check every 10 seconds for up to 5 minutes. Done when the orchestrator is no longer active and a turn that starts with your tag has a reply:

f(){ <aoapi helper>; O='<orchestrator id>'; TAG='<tag>'
  for i in $(seq 30); do sleep 10
    st=$(aoapi GET "sessions/$O" | python3 -c 'import json,sys; d=json.load(sys.stdin); d=d.get("session",d); print((d.get("activity") or {}).get("state",""))')
    [ "$st" = active ] && continue
    aoapi GET "sessions/$O/history?offset=0&limit=5" | python3 -c '
import json,sys
for t in json.load(sys.stdin).get("turns") or []:
    if (t.get("userRequest") or "").startswith(sys.argv[1]) and t.get("agentResponse"):
        print(t["agentResponse"]); raise SystemExit(0)
raise SystemExit(1)' "$TAG" && return 0
  done; echo STILL_WORKING; }; f
  • A reply: relay it. Keep it faithful. Shorten only for a phone, and send a long reply as a file.
  • STILL_WORKING: tell the user the orchestrator is still on it, and offer: "I'll message you when it replies." On yes, create a routine that runs step 4 once every 5 minutes for that tag, reports the reply, then deletes itself.
  • The orchestrator asks the user something back: show it as a card if it gives clear options, and send the pick as a new message (step 3).

5. After

If the orchestrator started workers, list them in one line (ao-status "Sessions" for that project). Don't watch them unless the user asks. Their questions reach the user through ao-answer.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

ao-actions

無料概要あり

AOのセッションやPRに対して停止・再開・レビュー・マージなどを行い、ブラウザー画像や成果物の送信、ホスト維持、定期実行も扱います。

  • AOのセッションを中断・再開したいとき
  • PRのレビューやマージを進めたいとき
  • セッションの画面や成果物を受け取りたいとき
OrchestratorInc/agent-orchestrator1.4万2026年10月30日 更新

ao-answer

無料概要あり

AO上でユーザーの返答を待つセッションを見つけ、質問や承認内容を選択肢で示して回答を返します。離席中の判断ルールにも沿って処理します。

  • AOで返答待ちの内容を確認したいとき
  • 特定セッションの質問に答えたいとき
  • 保留中のコマンドや変更を承認したいとき
OrchestratorInc/agent-orchestrator1.4万2026年10月30日 更新

ao-desktop-dev

無料概要あり

AOの実際のデスクトップアプリを起動・再起動し、画面変更を確認するスキル。ローカルデータでの動作確認や、プロセス・ポート競合などの原因調査を支援します。

  • AOの実アプリで画面変更を確認したいとき
  • 分離データや既存データで動作確認
  • 複数PRを組み合わせた画面レビュー
OrchestratorInc/agent-orchestrator1.4万2026年10月30日 更新

ao-rules

無料概要あり

AOを使う各スキルに共通する接続方法やホストの扱い、判断・承認、書き込み、秘密情報のルールを確認できます。

  • AOスキルを使う前に共通ルールを確認したいとき
  • 複数ホストのセッションを区別したいとき
  • リモートホストへの接続方法を確認したいとき
OrchestratorInc/agent-orchestrator1.4万2026年10月30日 更新

ao-setup

無料概要あり

AOが動くコンピューターを検出してホスト情報を記録し、必要に応じてリモート接続や定期確認の設定を進めます。

  • AOを初めて使うために環境を確認したいとき
  • ローカルホストを登録したいとき
  • リモートホストを追加したいとき
OrchestratorInc/agent-orchestrator1.4万2026年10月30日 更新

ao-status

無料概要あり

AOの各ホストで動くセッションの状態や、マージ可能なPR、レビュー通知をまとめて確認し、必要に応じて日次ダイジェストを作成します。

  • AOで実行中や待機中の作業を確認したいとき
  • マージ可能なPRを探したいとき
  • レビュー結果やPRの更新を把握したいとき
OrchestratorInc/agent-orchestrator1.4万2026年10月30日 更新

OrchestratorInc のスキルをすべて見る

このスキルの問題を報告する