automation-shape-routing
GitHub自动化执行形状路由技能,根据任务需求(如持久性、并发性)选择最小且合适的执行拓扑(如内联、工作流或持久代理),仅返回建议不启动服务。
Trigger Scenarios
Install
npx skills add boshu2/agentops --skill automation-shape-routing -g -y
SKILL.md
Frontmatter
{
"name": "automation-shape-routing",
"context": {
"intent": {
"mode": "task"
},
"window": "inherit",
"intel_scope": "none"
},
"consumes": [
"task-intent"
],
"metadata": {
"tier": "meta",
"effects": [],
"disposition": "keep_optional_adapter",
"capabilities": [
"automation_shape_routing"
],
"dependencies": [],
"canonical_status": "canonical"
},
"produces": [
"automation-shape-verdict"
],
"practices": [
"hexagonal-architecture",
"team-topologies",
"pragmatic-programmer"
],
"context_rel": [
{
"kind": "supplier-to",
"with": "skill-builder"
},
{
"kind": "supplier-to",
"with": "workflow-builder"
},
{
"kind": "supplier-to",
"with": "agent-native"
},
{
"kind": "supplier-to",
"with": "using-gc"
},
{
"kind": "supplier-to",
"with": "operationalize"
}
],
"description": "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\".",
"hexagonal_role": "supporting",
"output_contract": "a one-line routing verdict naming the shape and deciding axis",
"skill_api_version": 1
}
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 owner, then stop. The caller may invoke that owner separately; do not copy or start the delegated workflow from 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: return the named owner to the caller without invoking it;
inlineandbounded-fanoutdescribe the recommended execution shape but do not authorize this routing skill to begin execution.
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.
Version History
-
7b07a7d
Current 2026-08-19 21:58
对齐技能契约与操作规范,确保路由仅为建议且不隐式启动下游执行或服务。
- 3f402e5 2026-07-24 22:06


