Automation shape routing
Skill boshu2/agentops/images/gemini/skills/automation-shape-routing
Front door for agent automation: choose inline, bounded fanout, reusable skill/workflow/gate, persistent agent-native workers, or explicit Gas City. Triggers: "build automation", "which orchestration shape", "should this use NTM".From its SKILL.md
npx -y skills add boshu2/agentops --skill automation-shape-routingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- runs commandsInstructs the agent to run 1 command, including `printf '%s\n' "$verdict" | awk '...' (validator command for $verdict)`.
SKILL.md
5.8 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Automation Shape Routing
Choose the smallest execution shape that preserves the required evidence and control. This skill routes; it does not build or start a substrate.
Ordered routing works because each rung is strictly cheaper to operate than the next: if the smallest shape truly preserves the evidence and control the task needs, every larger shape can only add coordination cost, never correctness.
Named failure mode — substrate romance: routing to persistent workers because the topology is interesting, not because any deciding axis demands it.
Anti-pattern: starting the chosen substrate as part of routing "to save a step". Corrective: return the one-line verdict and let the owner start under its own authority.
Critical Constraints
- Route only; do not start a substrate. Why: choosing an execution shape is a judgment step, while launching NTM, Agent Mail, or Gas City changes runtime state and requires separate operator authority.
- Prefer the smallest shape that preserves evidence. Why: persistence and coordination add recovery and ownership costs that one-shot work cannot repay.
- Partition write scopes before choosing concurrency. Why: a larger worker topology cannot make overlapping production writes safe.
Route in order
- One deliverable? Do it inline. Use a small in-session fresh-context fanout only when independent perspectives are the product. Do not create a reusable artifact for a one-off task.
- Reusable sequential procedure? Use
skill-builder. - Must-never-regress constraint? Route through
operationalizeto a gate. - Fixed typed DAG, headless, no attach/steer? Use
workflow-builderonly where that runtime is explicitly selected and available. - Persistent, attachable roles over caller-supplied packets? Use
agent-native. NTM is the pane adapter; Agent Mail coordinates only explicitly selected live actors. - Durable city of quests with GC-native supervision/store? Route to
using-gconly when the operator explicitly selects Gas City. GC is not an automatic fallback or anaoruntime enum.
Deciding axes
| Axis | Lightweight choice | Escalated choice |
|---|---|---|
| lifetime | current turn | persistent/attachable worker |
| topology | one writer or bounded fanout | durable role graph |
| control | no mid-run steering | observe/nudge/replace |
| output | one artifact | reusable skill/workflow/gate |
| store | caller-owned packet set | operator-selected GC quest store |
| contention | one writer | partition, then Agent Mail reservation |
Parallelism buys independence, not guaranteed speed. Refuse persistent orchestration for one-shot work, colliding write scopes, or a sequential chain that has no exploitable concurrency.
Handoff
Return exactly one of:
inlineorbounded-fanoutskill-builderworkflow-builderagent-nativewith a named reason persistent panes helpusing-gcwith explicit operator choiceoperationalize:gate
Name the deciding axis and invoke the owner. Do not copy the delegated workflow into this router.
Output Specification
-
Artifact directory: stdout only; this routing decision creates no file.
-
Filename convention: none. Emit exactly one routing-verdict line.
-
Serialization/schema format:
shape=<allowed-shape>; axis=<deciding-axis>; owner=<owning-skill>using one of the shapes listed under Handoff. -
Owner mapping:
inlineandbounded-fanoutusecurrent-agent;skill-builder,workflow-builder,agent-native, andusing-gcuse the same value for owner;operationalize:gateusesoperationalize. -
Validator command: validate a captured
$verdictas exactly one line with the declared shape/owner mapping:printf '%s\n' "$verdict" | awk ' NR > 1 { extra = 1 } { valid = ($0 ~ /^shape=(inline|bounded-fanout); axis=[^;]+; owner=current-agent$/ || $0 ~ /^shape=skill-builder; axis=[^;]+; owner=skill-builder$/ || $0 ~ /^shape=workflow-builder; axis=[^;]+; owner=workflow-builder$/ || $0 ~ /^shape=agent-native; axis=[^;]+; owner=agent-native$/ || $0 ~ /^shape=using-gc; axis=[^;]+; owner=using-gc$/ || $0 ~ /^shape=operationalize:gate; axis=[^;]+; owner=operationalize$/) } END { exit !(NR == 1 && !extra && valid) } ' -
Downstream handoff: invoke the named owner only after returning the verdict;
inlineremains in the current agent andbounded-fanoutremains in-session.
Quality Rubric
- The verdict names exactly one allowed shape and one deciding axis.
- Persistent or city-shaped routes cite the operator's explicit selection.
- Concurrent routes state that production write scopes do not overlap.
- The router delegates to the owner without copying or starting its workflow.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most automation workflows skills give in ~1.1k tokens
Counted across 813 of the 1,214 authors here whose files we hold, read 2026-09-06
- Use conventional commit message formatin 38 of 813, across 34 files
- Write tests before implementing codein 26 of 813, across 12 files
- Achieve at least 80 percent test coveragein 24 of 813, across 11 files
- Mock external dependencies for unit testsin 22 of 813, across 10 files
- Read product marketing context before asking questionsin 21 of 813, across 6 files
- Implement rollback plans for every deploymentin 21 of 813, across 9 files
- Follow the arrange-act-assert patternin 20 of 813, across 9 files
- Delete branches after mergingin 20 of 813, across 18 files
- Test all edge cases and error scenariosin 20 of 813, across 8 files
- Use semantic selectors for UI testsin 19 of 813, across 7 files
- Define sequence type and audience contextin 18 of 813, across 5 files
- Monitor feature drift and prediction distribution driftin 18 of 813, across 5 files
Said here and by no other author read
- choose the smallest shape preserving required evidence
- partition write scopes before choosing concurrency
- return exactly one routing verdict line
- name the deciding axis and owner
- stop after returning the verdict
- delegate to the owner without starting the workflow
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.