team-creation
GitHub根据角色描述生成或扩展 Scion Agent 团队模板,输出标准化的目录结构和配置文件。
Trigger Scenarios
Install
npx skills add GoogleCloudPlatform/scion --skill team-creation -g -y
SKILL.md
Frontmatter
{
"name": "team-creation",
"description": "Create or extend scion agent team templates from a high-level description of roles and workflow. Use when the user describes a multi-agent team, panel, crew, pipeline, or any scenario requiring coordinated LLM agents with distinct roles. Also use when adding new roles to an existing team, modifying workflows, or restructuring agent coordination. Produces ready-to-use template directories in .scion\/templates\/ by default, or in a custom path if specified."
}
Scion Team Creation & Extension Skill
You create and extend scion agent templates — the blueprints that define specialized agent roles. Given a description of a team (roles, responsibilities, workflow), you produce template directories that can be used to start agents with scion start <name> --type <template>.
When extending an existing team, review the current templates to understand the established patterns, naming, and workflow before making changes.
Template Directory Structure
Each template lives in .scion/templates/<template-name>/ and contains:
.scion/templates/<template-name>/
├── scion-agent.yaml # REQUIRED: template metadata and config
├── agents.md # REQUIRED: agent behavioral instructions
├── system-prompt.md # REQUIRED: role persona and expertise framing
└── skills/ # OPTIONAL: harness skills (agentskills.io standard)
└── <skill-name>/
└── SKILL.md
Custom templates automatically inherit from the built-in default template, which provides shell configs, git setup, and base scion infrastructure. You do NOT need to create a home/ directory or duplicate any infrastructure files.
Template Naming
- Directory names use kebab-case:
panel-judge,code-reviewer,team-lead - Names should be descriptive of the role, not the project
Required File Formats
scion-agent.yaml
Every template MUST have this file. Minimal valid config:
schema_version: "1"
description: "Short description of this agent role"
agent_instructions: agents.md
system_prompt: system-prompt.md
Optional fields you may include when the role requires them:
max_turns: 50 # Maximum conversation turns
max_duration: "30m" # Maximum wall-clock time (e.g. "1h", "30m")
env:
ROLE: "reviewer"
services:
- name: chromium
command: ["chromium", "--headless", "--no-sandbox", "--remote-debugging-port=9222"]
restart: always
ready_check:
type: tcp
target: "localhost:9222"
timeout: "10s"
skills:
- uri: "skill://scion/global/idea-refine@latest"
- uri: "skill://scion/core/scion@^1.0"
optional: true
Fields to Never Use
These fields are deprecated or cause broken agent startup — never include them in generated scion-agent.yaml files:
| Field | Reason |
|---|---|
harness |
Deprecated — causes runtime error |
harness_config |
Unnecessary; project defaults apply automatically |
explicit_workspace |
Causes interactive theme prompt instead of running |
config_dir |
Breaks harness startup |
A minimal valid scion-agent.yaml needs only schema_version, description, and agent_instructions. Add only the fields listed under "Optional fields" above.
agents.md (Agent Instructions)
This file contains the behavioral instructions injected into the agent's context.
The primary contents should focus on task and job work describing what the agent should do, how it should behave, and any constraints on its work.
Do not include instructions on how to use the scion CLI (starting agents, messaging, scion look, etc.) — every agent automatically receives base CLI operating instructions from the platform.
system-prompt.md (Optional)
Frames the agent's persona, expertise, and perspective — who the agent is, while agents.md shapes what it does. Example:
# Expert Code Reviewer
You are a senior software engineer with deep expertise in code quality,
security, and maintainability. You approach code review methodically,
prioritizing correctness and clarity over style preferences.
If the role doesn't need a distinct persona, omit this file and remove the system_prompt line from scion-agent.yaml.
This file can contain broad direction around skillsets.
Harness Skills
Templates can include a skills/ directory containing reusable skill definitions that follow the agentskills.io standard. Each skill is a subdirectory with a SKILL.md file:
skills/
└── my-skill/
└── SKILL.md
A SKILL.md file has YAML frontmatter with name and description, followed by markdown content:
---
name: my-skill
description: >-
Short description of what this skill does and when the agent should use it.
---
Skill instructions and reference material here.
During agent provisioning, Scion automatically merges skills from the template into the correct harness-specific location (e.g. .claude/skills/ for Claude, .gemini/skills/ for Gemini). The agent's LLM harness discovers and loads these skills at runtime.
Use skills to package domain knowledge, tool-usage patterns, or specialized workflows that a role needs. Skills are portable across harnesses and reusable across templates.
Registry Skills (URI References)
In addition to local skills/ directories, templates can declare skill dependencies from the skill bank registry using URI references in scion-agent.yaml. These skills are downloaded and installed at provision time.
URI Format
skill://<registry>/<scope>/<name>@<version>
- registry: The registry host (typically
scion) - scope: Where the skill lives —
core(platform skills),global(hub-wide),project/<id>(project-scoped), oruser/<id>(user-scoped) - name: The skill name
- version: Version constraint — an exact version (
1.0.0), a range (^1.0), orlatest
Examples:
skill://scion/global/idea-refine@latest— a global-scope skill from the Hubskill://scion/core/scion@^1.0— a core platform skillskill://scion/project/my-custom-skill@1.0.0— a project-scoped skill
Declaring Skills in scion-agent.yaml
Add a skills: list to scion-agent.yaml:
skills:
- uri: "skill://scion/global/idea-refine@latest"
- uri: "skill://scion/core/scion@^1.0"
optional: true # provisioning succeeds even if this can't be resolved
- uri: "skill://scion/global/code-reviewer@latest"
as: "review" # install under a different directory name
Each entry supports three fields:
uri(required): The skill URIoptional(defaultfalse): Whentrue, provisioning continues even if the skill can't be resolved. Whenfalse, unresolvable skills cause provisioning to fail.as(optional): Install the skill under a different directory name than its registry name
When to Use URI References vs Local Skills
- URI references: Use for published, shared skills from the skill bank — skills that exist independently of this template and may be updated separately. Good for widely-useful skills like
idea-refine, domain-specific utilities, or skills maintained by other teams. - Local
skills/directory: Use for skills specific to this template's workflow that aren't published to the registry. Also for skills you want to customize beyond what the registry version provides.
If a skill is useful to multiple templates and is published to the registry, reference it by URI rather than copying the SKILL.md locally. Local skills take precedence over registry skills of the same name, so you can always override a URI-referenced skill with a local version if needed.
The Orchestrator Pattern
Every team MUST have exactly one orchestrator (also called lead, supervisor, or coordinator). This is the agent the user starts directly — it then creates and manages the other agents.
The orchestrator's agents.md should focus on:
- What templates are available and what each role does
- The workflow: when to start which agents, what tasks to give them, how to handle their results
- Communication patterns: what information flows between roles and when
- Completion criteria: how the orchestrator knows the overall task is done
Workers don't communicate directly with each other — the orchestrator reads output from one and relays relevant information to others.
Orchestrator agents.md Structure
## Role: Team Orchestrator
You are the orchestrator for [team description]. Your job is to:
1. [high-level workflow step 1]
2. [high-level workflow step 2]
## Available Agent Roles
- `<template-1>`: [what this role does, expected input, what it produces]
- `<template-2>`: [what this role does, expected input, what it produces]
## Workflow
[Step-by-step instructions: when to create agents, what to tell them,
how to handle results, when the overall task is complete.]
Creating a New Team
1. Analyze the Description
Identify from the user's description:
- Roles: What distinct agent types are needed?
- Workflow: How do the agents interact? Sequential pipeline, parallel work, debate, review cycle?
- Orchestration: Who starts whom? Who collects results?
2. Design the Team Structure
- Identify one role as the orchestrator — the entry point the user will start
- All other roles are workers — started and managed by the orchestrator
- Map out the communication flow
3. Create Templates
For each role, create the template directory with its files. Write worker templates first, then the orchestrator (since it references worker template names).
4. Add Skills When Appropriate
If a role needs specialized domain knowledge or tool-usage patterns that would benefit from being a discrete, reusable skill file rather than inline in agents.md:
- For skills already published in the registry: Add a URI reference in
scion-agent.yamlunderskills:. This is preferred — it avoids duplicating skill content and picks up registry updates automatically. - For custom skills specific to this template: Create a
SKILL.mdfile in the template'sskills/directory.
5. Validate
- Every template has
scion-agent.yamlwithschema_version: "1" - The orchestrator references the correct template names
- Template directory names are kebab-case
- The workflow matches the user's intent
- No CLI usage instructions are duplicated in templates
- For skills referenced by URI: verify the URI format is correct (
skill://registry/scope/name@version) - Required skills (non-optional) will cause provisioning to fail if unresolvable — mark skills
optional: trueif the team can function without them
Extending an Existing Team
When adding to or modifying an existing team:
1. Review Current State
Read the existing templates in .scion/templates/ to understand:
- The current roles and their responsibilities
- The orchestrator's workflow and how it references workers
- Naming conventions and patterns already established
- Any existing skills in template
skills/directories - Skill may be hard copied between templates if they are relevant to more than one type.
2. Determine the Change
- Adding a role: Create a new worker template, then update the orchestrator's
agents.mdto reference it — add the new template to the "Available Agent Roles" section and integrate it into the workflow. - Modifying a role: Update the existing template's
agents.mdand/orsystem-prompt.md. Check if the orchestrator's workflow needs adjustment. - Changing workflow: Update the orchestrator's
agents.mdworkflow section. May require changes to worker instructions if handoff patterns change. - Adding capabilities: Consider whether the new capability belongs as inline instructions in
agents.mdor as a discrete skill in the template'sskills/directory.
3. Maintain Consistency
- Follow the naming conventions already in use
- Keep the communication patterns consistent (workers report to orchestrator)
- Update the orchestrator whenever worker templates change
Gotchas
- Don't duplicate CLI usage instructions. Every agent already receives base scion CLI instructions from the platform.
- Don't create
home/directories in custom templates. The default template provides all infrastructure. - Template names = directory names. The
descriptioninscion-agent.yamlis cosmetic; the--typevalue is the directory name. - Skills are harness-portable. Write
SKILL.mdcontent without assuming a specific harness — scion mounts skills into the correct location automatically. - URI skills resolve at provision time. Agents must be connected to a Hub with the skill in its registry. Use
optional: truefor skills that are nice-to-have but not essential. - Local skills take precedence. If a template's
skills/directory contains a skill with the same name as a URI-referenced skill, the local version wins. - Never set
harness,harness_config,explicit_workspace, orconfig_dir— these fields are deprecated or cause broken agent startup. Omit them entirely. Project defaults handle harness selection automatically.
Version History
- 0.1.0-dev Current 2026-07-25 08:01


