Use when manage multiple local CLI agents via tmux sessions (start/stop/monitor/assign) with cron-friendly scheduling.
日本語の概要は準備中です。原文の説明を表示しています。
Use when one Claude Code session must supervise several others on this machine — adopting sessions the user started by hand, or spawning workers itself. Covers roster, status requests, a GO board, idle notices, and the GO-token protocol. Works with AOS alone; the AO daemon is optional.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
/master-session — Supervise Other SessionsOne session is the master: it keeps the overview, asks workers for status, and relays the human's decisions. It never does the workers' jobs and never decides for the human. Needs Claude Code with cross-session messaging (ListAgents, SendMessage). Nothing here requires the AO daemon.
ListAgents is the source of truth; message them with SendMessage.claude --bg --name <name> --permission-mode auto "<prompt>", or over ACP as below.aos-acp <codex|opencode|claude> --name <name> --cwd <worktree> --prompt "<task>" --go-wait 600 & (one process per worker; run it in the background and read its log). Details: docs/master-session-acp.md.aos-acp agy ... runs the vendor's agy --print (no ACP server, so no per-tool GO requests; --allow-default maps to agy's modes, see docs/delegation-routing.md). The third-party antigravity-acp shim is not used. Running agy sessions are adopted, not spawned.ao-orchestrator may run the same workers; it adds nothing the token protocol needs.| Job | Channel |
|---|---|
| One-shot task for another harness | mcsc (one level deep, delegate_agy is read-only) |
| A worker that may need a GO | aos-acp |
| A message to a running OpenCode session | aos-bus |
| A durable fleet across repos | AO (optional; AOS must work without it) |
Details and limits (opencode run --auto auto-approves tool calls, a GO is never inherited): docs/delegation-routing.md.
aos-acp in one paragraphbin/aos-acp.mjs is a zero-dependency ACP client: it spawns the adapter (npx -y @agentclientprotocol/codex-acp, opencode acp, npx -y @agentclientprotocol/claude-agent-acp), runs initialize → session/new → session/prompt, streams the worker's text to stdout and logs every event to ~/.aos/acp/<name>.jsonl. A session/request_permission for a guarded command (the go-gate list) is answered allow_once only with a valid GO token for <name>; with --go-wait <sec> the request is parked (log event permission_pending, show it as GO needed) until the token appears or the wait ends. Everything else follows --allow-default deny|allow (deny by default). --model <id> is sent as ACP session/set_config_option (configId: "model", id is adapter-specific, e.g. <model-id>, provider/model); the string is passed through verbatim (no allow-list; an id the adapter does not know fails there), default is the adapter default and is logged. ACP workers are not in ListAgents: the roster lists them from the logs.
Call ListAgents, keep local Claude sessions, drop yourself. Write one line per session: name, repo/branch if known, kind (adopted/spawned). Show it to the human and confirm which sessions are in scope before messaging any.
Send one message per session, never a broadcast. Template:
Status request from the master session (reply in at most 10 lines):
1. Task, repo and branch.
2. Progress: done / in progress / not started.
3. Blockers.
4. Actions waiting on a GO (commands you were blocked from running).
5. Running subagents.
Collate replies into one block per session and show it to the human:
[<session>] <task> — <repo>@<branch>
progress : <one line>
blockers : <none | list>
GO needed: <exact command(s), or none>
subagents: <n running | none>
The human answers per session. Items under GO needed are the human's to decide; list them verbatim, never summarised into something softer.
Without ListAgents/SendMessage the same steps run from a shell: roster = aos-a2a list, status request = aos-a2a send --to <name> "<block>" (read later with aos-a2a status --to <name> <taskId>), idle check = aos-a2a watch <name> --once. Limits: agy is pull-only, and only a Claude Code or OpenCode master can issue GO <session> tokens, so any other master tells the human to type GO in the worker's own window. Details and the role convention (master, task manager, project orchestrator, package worker): docs/master-session-portable.md.
SendMessage with notify_when_idle) only after you sent that session work.[forwarded by master, user said:] "<exact text>". No paraphrase, no added urgency.The one sanctioned way for the human to release a gated action in a worker without switching windows:
GO <session-name> (case-insensitive; the name as shown by ListAgents).UserPromptSubmit hook go-token.mjs writes ~/.aos/go/<session-name>.token (JSON: target, issued_at, master_transcript, master_session). Nothing else happens.go-gate.mjs opens only if the token names this session, is younger than 10 minutes, and the master transcript still ends with that very GO <session-name> as its last human message. The token is deleted on use: single use, no replay.Consequences: any further human message in the master before the worker retries cancels the token; a literal GO typed in the worker still works as before; a chat message that merely says "GO" never counts. The worker's own name comes from its transcript (--name); if absent, set env AOS_SESSION_NAME (aos-acp sets it for its worker). The same token is honoured by the OpenCode plugin's gate (.opencode/plugins/bdb-aos.js, name from AOS_SESSION_NAME or the session title) and by go-gate under agy (AOS_SESSION_NAME only). Who consumes it: the worker's own gate when it has one (Claude hook, OpenCode plugin — aos-acp then only verifies), aos-acp itself for codex, which has none. Limit: the token proves the human typed it in the master transcript, not who wrote the token file — a hostile local process can forge both, so this is a guard against mistakes, not against local malware.
--permission-mode auto. Always pass it.--disallowedTools is variadic and swallows a trailing prompt. Put the prompt before it, or end the flag list with --, and check the worker actually received the task.--name) so the token and ListAgents agree.At session end write docs/sessions/master-<date>.md (or $HOME/.aos/handover/ outside a repo): roster, last GO board, open GO items, what is waiting on whom, and the next command. A fresh master reads it first.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when manage multiple local CLI agents via tmux sessions (start/stop/monitor/assign) with cron-friendly scheduling.
日本語の概要は準備中です。原文の説明を表示しています。
Use when a hybrid memory system that provides persistent, searchable knowledge management for AI agents (Architecture, Patterns, Decisions).
日本語の概要は準備中です。原文の説明を表示しています。
Reference for how BDB structures autonomous software engineering work — the seven-node dispatcher graph (Architect, TechLead, UI/UX, Engineering, Media/EventTech, Reviewer, Shipping) that /startcycle-graph actually runs. Use when you need the high-level lifecycle framing without inventing your own process.
日本語の概要は準備中です。原文の説明を表示しています。
Tools are how AI agents interact with the world. A well-designed tool is the difference between an agent that works and one that hallucinates, fails silently, or costs 10x more tokens than necessary. This skill covers tool design from schema to error handling.
日本語の概要は準備中です。原文の説明を表示しています。
Harness patterns for coding agents — memory, permissions, context engineering, delegation, skills, hooks, bootstrap.
日本語の概要は準備中です。原文の説明を表示しています。
agenttrail: live map of a multi-agent build in the browser: which plan component is being worked on, by which agent or harness, what is done and what is stuck. Use when a multi-agent pipeline starts (/startcycle, /startcycle-graph, /teamwork-preview) or after a plan-canvas approve, when the user asks to see what the agents are doing ("live map", "build board", "who is running now"), or by yourself whenever a multi-agent run is under way — no user prompt needed.
日本語の概要は準備中です。原文の説明を表示しています。