{"id":"automation-shape-routing","name":"automation-shape-routing","summary":"エージェント自動化のフロントドア:インライン、バウンデッドファンアウト、再利用可能なスキル/ワークフロー/ゲート、永続的なエージェントネイティブワーカー、または明示的なGas Cityを選択できます。","body":"# Automation Shape Routing\n\nChoose the smallest execution shape that preserves the required evidence and\ncontrol. This skill routes; it does not build or start a substrate.\n\nOrdered routing works because each rung is strictly cheaper to operate than the\nnext: if the smallest shape truly preserves the evidence and control the task\nneeds, every larger shape can only add coordination cost, never correctness.\n\nNamed failure mode — **substrate romance**: routing to persistent workers\nbecause the topology is interesting, not because any deciding axis demands it.\n\nAnti-pattern: starting the chosen substrate as part of routing \"to save a\nstep\". Corrective: return the one-line verdict and let the owner start under\nits own authority.\n\n## Critical Constraints\n\n- **Route only; do not start a substrate. Why:** choosing an execution shape is\n  a judgment step, while launching NTM, Agent Mail, or Gas City changes runtime\n  state and requires separate operator authority.\n- **Prefer the smallest shape that preserves evidence. Why:** persistence and\n  coordination add recovery and ownership costs that one-shot work cannot repay.\n- **Partition write scopes before choosing concurrency. Why:** a larger worker\n  topology cannot make overlapping production writes safe.\n\n## Route in order\n\n1. **One deliverable?** Do it inline. Use a small in-session fresh-context\n   fanout only when independent perspectives are the product. Do not create a\n   reusable artifact for a one-off task.\n2. **Reusable sequential procedure?** Use `skill-builder`.\n3. **Must-never-regress constraint?** Route through `operationalize` to a gate.\n4. **Fixed typed DAG, headless, no attach/steer?** Use `workflow-builder` only\n   where that runtime is explicitly selected and available.\n5. **Persistent, attachable roles over caller-supplied packets?** Use\n   `agent-native`. NTM is the pane adapter; Agent Mail coordinates only\n   explicitly selected live actors.\n6. **Durable city of quests with GC-native supervision/store?** Route to\n   `using-gc` only when the operator explicitly selects Gas City. GC is not an\n   automatic fallback or an `ao` runtime enum.\n\n## Deciding axes\n\n| Axis | Lightweight choice | Escalated choice |\n|---|---|---|\n| lifetime | current turn | persistent/attachable worker |\n| topology | one writer or bounded fanout | durable role graph |\n| control | no mid-run steering | observe/nudge/replace |\n| output | one artifact | reusable skill/workflow/gate |\n| store | caller-owned packet set | operator-selected GC quest store |\n| contention | one writer | partition, then Agent Mail reservation |\n\nParallelism buys independence, not guaranteed speed. Refuse persistent\norchestration for one-shot work, colliding write scopes, or a sequential chain\nthat has no exploitable concurrency.\n\n## Handoff\n\nReturn exactly one of:\n\n- `inline` or `bounded-fanout`\n- `skill-builder`\n- `workflow-builder`\n- `agent-native` with a named reason persistent panes help\n- `using-gc` with explicit operator choice\n- `operationalize:gate`\n\nName the deciding axis and owner, then stop. The caller may invoke that owner\nseparately; do not copy or start the delegated workflow from this router.\n\n## Output Specification\n\n- **Artifact directory:** stdout only; this routing decision creates no file.\n- **Filename convention:** none. Emit exactly one routing-verdict line.\n- **Serialization/schema format:** `shape=<allowed-shape>; axis=<deciding-axis>;\n  owner=<owning-skill>` using one of the shapes listed under Handoff.\n- **Owner mapping:** `inline` and `bounded-fanout` use `current-agent`;\n  `skill-builder`, `workflow-builder`, `agent-native`, and `using-gc` use the\n  same value for owner; `operationalize:gate` uses `operationalize`.\n- **Validator command:** validate a captured `$verdict` as exactly one line\n  with the declared shape/owner mapping:\n\n  ```bash\n  printf '%s\\n' \"$verdict\" | awk '\n    NR > 1 { extra = 1 }\n    {\n      valid = ($0 ~ /^shape=(inline|bounded-fanout); axis=[^;]+; owner=current-agent$/ ||\n               $0 ~ /^shape=skill-builder; axis=[^;]+; owner=skill-builder$/ ||\n               $0 ~ /^shape=workflow-builder; axis=[^;]+; owner=workflow-builder$/ ||\n               $0 ~ /^shape=agent-native; axis=[^;]+; owner=agent-native$/ ||\n               $0 ~ /^shape=using-gc; axis=[^;]+; owner=using-gc$/ ||\n               $0 ~ /^shape=operationalize:gate; axis=[^;]+; owner=operationalize$/)\n    }\n    END { exit !(NR == 1 && !extra && valid) }\n  '\n  ```\n- **Downstream handoff:** return the named owner to the caller without invoking\n  it; `inline` and `bounded-fanout` describe the recommended execution shape but\n  do not authorize this routing skill to begin execution.\n\n## Quality Rubric\n\n- [ ] The verdict names exactly one allowed shape and one deciding axis.\n- [ ] Persistent or city-shaped routes cite the operator's explicit selection.\n- [ ] Concurrent routes state that production write scopes do not overlap.\n- [ ] The router delegates to the owner without copying or starting its workflow.","author":"@boshu2","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/boshu2/agentops/tree/main/images/gemini/skills/automation-shape-routing","license":"Apache-2.0","category":"writing","lang":"en","tokens":1155,"stars":0,"calls30d":2,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":[]}}