Agent skill

Team Topology

by Cotal-AI in Cotal-AI/Cotal

Define a multi-agent team for ANY task on ANY system as an explicit deployment topology - pick the shape from the task's dominant risk, specify the runtime/communication/trust layers, place model…

Apache-2.0Auto-check passedAgent Workflows

Install Team Topology

skills CLI
$ npx skills add Cotal-AI/Cotal --skill team-topology -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Cotal-AI/Cotal team-topology --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Cotal-AI/Cotal.git skills-src && mkdir -p .claude/skills && cp -r skills-src/claude-plugin/cotal-skills/skills/team-topology .claude/skills/team-topology && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
team-topology
GitHub stars
322
Token cost
~2.9k tokens
SKILL.md length
1,567 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
Apache-2.0

At a glance

Define a multi-agent team for ANY task on ANY system as an explicit deployment topology - pick the shape from the task's dominant risk, specify the runtime/communication/trust layers, place model…

  • Works in 5 steps: pick the shape from the dominant risk → specify three layers → place capability by lane → …
  • The user asks to define/design/lay out the team
  • SKILL.md covers When to use, Step 1: pick the shape from…, Step 2: specify three layers and Step 3: place capability by lane, plus 5 more sections
  • Calls opencode

What it does

Team Topology is an agent skill from Cotal-AI/Cotal. Define a multi-agent team for ANY task on ANY system as an explicit deployment topology - pick the shape from the task's dominant risk, specify the runtime/communication/trust layers, place model capability by lane, present it as a diagram + table + trust-boundary note + open choices, and deploy ONLY after the user agrees to the proposed shape. Use when the user asks to "define/design/lay out the team", "what topology are we deploying", "how should the agents be arranged", "design the team for <task", "what…

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Multi-agent orchestration, Deployment and Subagents. It works with Model Context Protocol. The repository describes itself as: The open standard for agent coordination. The licence is Apache-2.0.

When your agent uses it

  • The user asks to define/design/lay out the team
  • What topology are we deploying
  • How should the agents be arranged
  • Design the team for <task

Example prompts

  • “define/design/lay out the team”
  • “what topology are we deploying”
  • “how should the agents be arranged”
  • “/team-topology”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. pick the shape from the dominant risk
  2. specify three layers
  3. place capability by lane
  4. present it (the deliverable is a PROPOSAL)
  5. agree, then execute

What it can do on your machine

Read from SKILL.md and the folder at commit a64403e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • opencode

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Team Topology loads about 2.9k tokens when it runs. Until then it costs about 192 tokens; SKILL.md has 1,567 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~192
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Cotal-AI/Cotal at commit a64403e, republished under its Apache-2.0 licence (© Cotal-AI). 1,567 words, ~2,853 tokens.

Download SKILL.mdSave it as .claude/skills/team-topology/SKILL.md (or your agent's skills folder).
name
team-topology
description
Define a multi-agent team for ANY task on ANY system as an explicit deployment topology - pick the shape from the task's dominant risk, specify the runtime/communication/trust layers, place model capability by lane, present it as a diagram + table + trust-boundary note + open choices, and deploy ONLY after the user agrees to the proposed shape. Use when the user asks to "define/design/lay out the team", "what topology are we deploying", "how should the agents be arranged", "design the team for <task>", "what formation for <task>", or wants a team expressed as a topology (nodes, edges, models, trust boundaries) rather than spawned ad hoc. Substrate-agnostic - Cotal mesh, harness subagents, Workflow stages, containers, or any orchestration system.

Team topology

A method for defining a multi-agent team for a task as an explicit topology: not "spawn some agents" but a legible deployment you can draw, hand off, and reason about. Who runs where, who talks to whom, what each node can touch, which model sits in which seat. Substrate-agnostic: the same method applies to a Cotal mesh, harness subagents, workflow stages, or plain processes.

When to use

  • The user asks to define / design / lay out a team or formation, or asks "what topology?".
  • You are about to stand up more than one or two agents and want them arranged deliberately.
  • You need to communicate a running deployment in a scannable form.

Step 1: pick the shape from the dominant risk

A topology is a defense against the way the task fails by default. Name the task's dominant risk, then pick the shape that structurally prevents it:

Task typeDominant riskShape
audit / review / researchmissed findings, groupthinkhub-and-spoke fan-out: independent finder lanes, an adversarial verify tier, coordinator synthesizes
fix / implementationwrite races, unverified changeswriter lanes + merge authority: 1-2 writers in isolated workspaces, everyone else fenced read-only, a proof gate before merge
staged transform (migration, ETL, generation)loss at handoffspipeline: stages connected by explicit artifacts, each stage validates its input
open design questionanchoring on the first ideapanel + judge: N proposals produced blind, then scored and synthesized
long-running ops / monitoringdrift, silent deathoperator + watchdog: one active node, one that only checks liveness and invariants

This catalog is a starting set, not a menu. Hybrids are normal (an audit's repro tier is a small pipeline), and inventing a shape for the task at hand is expected. The number of channels, tiers, and agents is a free parameter: derive it from the task's size, risk, and budget (a quick check might be 1 channel / 2 agents; a deep audit 4 channels / 10). Never copy a previous deployment's headcount out of habit.

Every shape keeps one coordinator: the single node that spans the whole topology, holds the consolidated state, and owns final decisions. Usually that is you, the main session.

Step 2: specify three layers

Survey the live substrate state first - topologies rarely deploy onto a blank slate:

  • Who is already up. Roster / process list / task list: live peers from earlier generations, stale managers or supervisors, orphaned nodes. Decide per node: reuse, stop, or ignore - never assume greenfield, and never let a stale sibling silently share a channel with the new team.
  • Channel/stream state. Does each channel already exist, and what do its history/replay semantics do to a NEW joiner - does joining backfill old traffic into their context? Replay into a fresh blind reviewer contaminates the lane; replay into a resuming coordinator may be exactly right. Choose fresh vs reused channels deliberately and set the replay/backfill mode per channel as part of the design, not as a discovered surprise.
  • Names. Check for collisions against live AND dead/retired nodes. On substrates where teardown races or stale state can bleed onto a same-name successor, a dead name is not reusable - mint fresh generation-suffixed names.

Then specify the three layers:

  1. Runtime: what actually executes each node (mesh peers as OS processes, harness subagents, workflow stages, containers) and the facts someone would otherwise assume wrong: shared vs isolated filesystem, one broker or many, per-node credentials or shared, where each node is rooted.
  2. Communication: the edges. One channel/stream per team; point-to-point for private lanes; files/artifacts for pipeline handoffs. Name channels <purpose>.<task> (review.control-surface, fix.billing). State which nodes sit on which edge, and that no one else does.
  3. Trust: what each node can read and write, enforced by mechanism, not by request: ACL-scoped credentials, read-only roles, isolated worktrees/sandboxes, a single merge authority. If a node must not edit, fence it so it cannot, and name the fence.

Step 3: place capability by lane

First, enumerate what actually exists - never fill a seat from memory. Before naming any model, look up the harnesses, providers, model IDs, and variant/effort levels available in the current environment, and cite where each came from. A seat naming a model that does not exist (a misremembered ID, a variant the provider doesn't offer, a "default" left unspecified) invalidates the proposal. Sources to check, in order:

  • Existing persona/agent definitions that have actually run (e.g. .cotal/agents/*.md model:/variant: frontmatter, .claude/agents/*.md) - ground truth for IDs that work on this machine.
  • Harness/provider config (e.g. ~/.config/opencode/opencode.json provider blocks with model IDs, limits, and their exact variants; connector configs) for what is wired up.
  • The harness's own listing when one exists (e.g. opencode models).

Every seat gets an explicit model + variant; "default" is not a placement. If the user names a preference pool or per-provider caps (e.g. "at most N of provider X"), treat those as hard constraints and show the resulting counts.

Models are not uniform, and no vendor is assumed. Fill each seat by strength class, with whatever vendor/model best provides it in the current environment: adversarial-strong on attack/verify lanes, code-strong on implementation and deep review, research-capable on spec/fidelity lanes, fast-and-cheap on mechanical or high-fan-out runs. Two deliberate reasons to mix vendors across lanes: independent lanes on different vendors have less-correlated blind spots (a diversity mechanism, especially for verify tiers), and no single provider outage or rate limit stalls the whole team. Present placement as a table so it is auditable, and note any per-node override of a persona/stage default:

NodeEdgeModelLane
(name)(channel/stage)(vendor/model, by strength class)one line: what this node does and does not do
Show full SKILL.md (650 more words)Show less

Step 4: present it (the deliverable is a PROPOSAL)

Every definition or status report produces all four:

  1. the ASCII diagram of the shape (runtime spine, edges, coordinator at the hub),
  2. the node/model/lane table,
  3. a one-paragraph trust-boundary note: who the sole cross-edge node is, what confines everyone else, who may write,
  4. the open topology choices as a short list (merge lanes? swap a model? add/drop a node?) so the user can steer the shape.

Step 5: agree, then execute

The lifecycle is design → present → agree → deploy, and agreement is a hard gate:

  • What you presented in Step 4 is a proposal, not a launch order. Do not spawn anything yet.
  • Iterate with the user on the open choices; re-present the affected parts after each change (a changed row, not the whole document).
  • Deploy only on the user's explicit go. When they say "go" with no edits, deploy exactly as drawn; any deviation forced during deployment (a model unavailable, a channel name taken) is reported back as a changed table row, not silently absorbed.
  • After deploying, verify the topology is what was agreed (nodes up, confinement in force, coordinator subscribed to every edge), then report the as-deployed state in the same diagram + table format so drift from the agreed shape is visible.

Hard rules (any substrate)

  • One coordinator. Exactly one node spans edges; every other node lives on its one edge.
  • One node per role. Never fan out siblings of the same lens; extras are noise, not coverage.
  • Writers are few and fenced. Default to one writer per workspace; a second writer gets its own isolated workspace and goes through the merge authority. Everyone else is read-only, or read+run-only for testers.
  • Independent lanes stay blind until synthesis. Findings and proposals meet at the coordinator or a verify tier, not in each other's context.
  • Cold third opinions are point-to-point. A tie-breaker node is reached directly (DM, separate session), never seated on a team channel.
  • State every bound. Node count, scope, and anything intentionally excluded are written down, so absence reads as a decision, not an oversight.

Substrate notes

  • Cotal mesh: each peer is its own process + minted credential under a manager (name the runtime: pty/orca/tmux/cmux/herdr). Confine via persona allowSubscribe/allowPublish frontmatter; author the .cotal/agents/<name>.md first, then (re)spawn so the credential is minted with the ACL. Spawn with an explicit cwd (the default roots peers in the manager's workspace). Verify your own subscriptions after joining every channel. Survey before spawning: roster + manager liveness (a dead manager inside up needs supervise; a stale long-lived manager pins pre-merge code and split-brains spawns), never reuse a dead agent's name, set channel replay deliberately (a joiner with replay ON back-reads history; a channel's durable backstop only activates on leave+rejoin, a bare re-join no-ops). Never disturb a live shared broker: kill by PID, no broad pkill. mesh-teams runs the review/implement/test loop; this skill specifies the shape it runs in.
  • Harness subagents / workflows: the coordinator is the main session; prefer a streaming pipeline over barrier-synchronized stages; give parallel writers isolated workspaces; and use structured, schema-validated returns where the harness supports them.

Worked example (one instantiation, not the template)

An audit of a security-critical feature, run hub-and-spoke on a Cotal mesh: three channels (review.* finders, audit.* verifiers, test.* testers); four finder lanes split by lens (security, distributed-systems, architecture, fact/spec), each on a different vendor's strongest fitting model; two adversarial verifiers on two further vendors, prompted to refute, not confirm; two read+run-only testers reproducing the HIGHs live; the coordinator subscribed to all three channels, reconciling severities across tiers. Sized at 3 channels / 8 agents because the surface was large and the risk was missed findings. The same method on a small fix task might instead produce 1 channel, 1 writer, 1 reviewer; on a migration, a 3-stage pipeline with no channels at all. The shape, the headcount, and the vendor mix are all outputs of Steps 1-3, never constants.

© Cotal-AI, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in claude-plugin/cotal-skills/skills/team-topology of Cotal-AI/Cotal.

Open the folder on GitHubat commit a64403e

Compare with similar skills

Team Topology next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Team Topology compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Team Topology this skillCotal-AI/Cotal322—~2.9kAutomated safety check: PassApache-2.0
Ruflo Multi-Agent Orchestrationruvnet/ruflo74k1 repos~975Automated safety check: PassMIT
Puppetmaster Agent Orchestrationprofessorpalmer/Puppetmaster467—~3.2kAutomated safety check: PassMIT
Generate Harness DslQoderAI/better-harness2.4k—~761Automated safety check: PassMIT
OMA Multi-Agent Orchestratorfirst-fluke/oh-my-agent1.3k—~3.1kAutomated safety check: PassMIT
Agent Deck Sessionsartwist-polyakov/polyakov-claude-skills208—~965Automated safety check: PassMIT

Similar skills

  • Sets up and drives Ruflo, an npm-installed orchestration layer for multi-agent swarms, persistent memory, routing, hooks and its MCP tool catalog.

    74k GitHub starsUsed in 1 repo~975 tokens
    Agent WorkflowsAuto-check passed
  • Puppetmaster Agent Orchestration

    professorpalmer/Puppetmaster

    Operates and supervises Puppetmaster, a multi-agent orchestrator, through its MCP tools or CLI, picking the right verb for edits, reviews, audits and long-running jobs.

    467 GitHub stars~3.2k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Generate Harness Dsl

    QoderAI/better-harness

    Generate, revise, or review complete Harness as Code .harness files when a coding-agent workflow, agent role, skill, tool contract, MCP connection, runtime, or deployment must be compiler-valid and…

    2.4k GitHub stars~761 tokensUpdated 3 days ago
    Agent WorkflowsAuto-check passed
  • OMA Multi-Agent Orchestrator

    first-fluke/oh-my-agent

    Splits a complex feature into prioritized tasks, spawns specialist CLI subagents in parallel, tracks them through shared memory and verifies each result.

    1.3k GitHub stars~3.1k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Agent Deck Sessions

    artwist-polyakov/polyakov-claude-skills

    Launches, monitors and collects results from child AI agent sessions with the agent-deck terminal session manager.

    208 GitHub stars~965 tokensUpdated 2 days ago
    Agent WorkflowsAuto-check passed
  • Run Wave

    jpicklyk/task-orchestrator

    Resolves ready MCP work items into a run plan, shows it to you, then executes it through the Workflow tool or direct subagent dispatch, with post-run verification.

    208 GitHub stars~5k tokensUpdated today
    Agent WorkflowsAuto-check passed

More from Cotal-AI/Cotal

  • Cotal Setup

    Cotal-AI/Cotal

    Set up Cotal on this machine: install it, start a local agent mesh (NATS + JetStream), verify it, and put an agent on it.

    322 GitHub stars~442 tokensUpdated today
    Auto-check passed
  • Pixel Face

    Cotal-AI/Cotal

    Create or improve a 32×32 pixel-art persona face for the Frontier Faces demo (examples/04-frontier-faces/personas.mjs) — the animated agent avatars rendered by face-term.mjs / the browser…

    322 GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Run several independent Cotal features concurrently by creating one Git worktree and one spawn-capable mesh manager per feature; each manager staffs a review panel in a dedicated channel, adds one…

    322 GitHub stars~5.3k tokensUpdated today
    Auto-check passed
  • Cold Review

    Cotal-AI/Cotal

    Write the brief for a single independent cold reviewer and grade what it returns, keeping it isolated from the panel that already graded the change.

    322 GitHub stars~4.2k tokensUpdated today
    Auto-check passed

Categories

Questions about Team Topology

What does Team Topology do?

Define a multi-agent team for ANY task on ANY system as an explicit deployment topology - pick the shape from the task's dominant risk, specify the runtime/communication/trust layers, place model…. Team Topology is an agent skill from Cotal-AI/Cotal. Define a multi-agent team for ANY task on ANY system as an explicit deployment topology - pick the shape from the task's dominant risk, specify the runtime/communication/trust layers, place model capability by lane, present it as a diagram + table + trust-boundary note + open choices, and deploy ONLY after the user agrees to the proposed shape.

When should I use Team Topology?

Team Topology fits situations like: the user asks to define/design/lay out the team; what topology are we deploying; how should the agents be arranged; design the team for <task.

How do I install Team Topology in Claude Code?

Run `npx skills add Cotal-AI/Cotal --skill team-topology -a claude-code`. Or copy the skill folder (claude-plugin/cotal-skills/skills/team-topology in Cotal-AI/Cotal) into .claude/skills/team-topology in your project. Claude Code loads it when a task matches its description.

How do I install Team Topology in Codex?

Run `npx skills add Cotal-AI/Cotal --skill team-topology -a codex`. Or copy the skill folder (claude-plugin/cotal-skills/skills/team-topology in Cotal-AI/Cotal) into .agents/skills/team-topology in your project. Codex loads it when a task matches its description.

Can I use Team Topology in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Cotal-AI/Cotal --skill team-topology -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/team-topology, .gemini/skills/team-topology, .github/skills/team-topology and .opencode/skills/team-topology in your project.

What does Team Topology need to run?

Going by SKILL.md and its folder, Team Topology needs the command-line tools its instructions call (opencode).

Does Team Topology access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Team Topology safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Team Topology use?

Team Topology is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Team Topology use?

About 2.9k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Team Topology?

Skills that share tags, products or a category with Team Topology: Ruflo Multi-Agent Orchestration (ruvnet/ruflo, 74k stars), Puppetmaster Agent Orchestration (professorpalmer/Puppetmaster, 467 stars), Generate Harness Dsl (QoderAI/better-harness, 2.4k stars) and OMA Multi-Agent Orchestrator (first-fluke/oh-my-agent, 1.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Team Topology?

Cotal-AI (a GitHub organization) maintains it in Cotal-AI/Cotal, which has 322 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 11, 2026.

Source: Cotal-AI/Cotal on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.