CtrlK
BlogDocsLog inGet started
Tessl Logo

team-coordinate

Universal team coordination skill with dynamic role generation. Uses team-worker agent architecture with role-spec files. Only coordinator is built-in -- all worker roles are generated at runtime as role-specs and spawned via team-worker agent. Beat/cadence model for orchestration. Triggers on "Team Coordinate ".

76

Quality

71%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./.claude/skills/team-coordinate/SKILL.md
SKILL.md
Quality
Evals
Security

Team Coordinate

Universal team coordination skill: analyze task -> generate role-specs -> dispatch -> execute -> deliver. Only the coordinator is built-in. All worker roles are dynamically generated as lightweight role-spec files and spawned via the team-worker agent.

Architecture

+---------------------------------------------------+
|  Skill(skill="team-coordinate")                 |
|  args="task description"                           |
+-------------------+-------------------------------+
                    |
         Orchestration Mode (auto -> coordinator)
                    |
              Coordinator (built-in)
              Phase 0-5 orchestration
                    |
    +-------+-------+-------+-------+
    v       v       v       v       v
 [team-worker agents, each loaded with a dynamic role-spec]
  (roles generated at runtime from task analysis)

  CLI Tools (callable by any worker):
    ccw cli --mode analysis  - analysis and exploration
    ccw cli --mode write     - code generation and modification

Shared Constants

ConstantValue
Session prefixTC
Session path.workflow/.team/TC-<slug>-<date>/
Worker agentteam-worker
Message busmcp__ccw-tools__team_msg(session_id=<session-id>, ...)
CLI analysisccw cli --mode analysis
CLI writeccw cli --mode write
Max roles5

Role Router

This skill is coordinator-only. Workers do NOT invoke this skill -- they are spawned as team-worker agents directly.

Input Parsing

Parse $ARGUMENTS. No --role needed -- always routes to coordinator.

Role Registry

Only coordinator is statically registered. All other roles are dynamic, stored as role-specs in session.

RoleFileType
coordinatorroles/coordinator/role.mdbuilt-in orchestrator
(dynamic)<session>/role-specs/<role-name>.mdruntime-generated role-spec

CLI Tool Usage

Workers can use CLI tools for analysis and code operations:

ToolPurpose
ccw cli --mode analysisAnalysis, exploration, pattern discovery
ccw cli --mode writeCode generation, modification, refactoring

Dispatch

Always route to coordinator. Coordinator reads roles/coordinator/role.md and executes its phases.

Orchestration Mode

User just provides task description.

Invocation: Skill(skill="team-coordinate", args="task description")

Lifecycle:

User provides task description
  -> coordinator Phase 1: task analysis (detect capabilities, build dependency graph)
  -> coordinator Phase 2: generate role-specs + initialize session
  -> coordinator Phase 3: create task chain from dependency graph
  -> coordinator Phase 4: spawn first batch workers (background) -> STOP
  -> Worker executes -> SendMessage callback -> coordinator advances next step
  -> Loop until pipeline complete -> Phase 5 report + completion action

User Commands (wake paused coordinator):

CommandAction
check / statusOutput execution status graph, no advancement
resume / continueCheck worker states, advance next step
revise <TASK-ID> [feedback]Revise specific task with optional feedback
feedback <text>Inject feedback into active pipeline
improve [dimension]Auto-improve weakest quality dimension

Coordinator Spawn Template

v2 Worker Spawn (all roles)

When coordinator spawns workers, use team-worker agent with role-spec path:

Agent({
  subagent_type: "team-worker",
  description: "Spawn <role> worker",
  team_name: <team-name>,
  name: "<role>",
  run_in_background: true,
  prompt: `## Role Assignment
role: <role>
role_spec: <session-folder>/role-specs/<role>.md
session: <session-folder>
session_id: <session-id>
team_name: <team-name>
requirement: <task-description>
inner_loop: <true|false>

Read role_spec file to load Phase 2-4 domain instructions.
Execute built-in Phase 1 (task discovery) -> role-spec Phase 2-4 -> built-in Phase 5 (report).`
})

Inner Loop: Determined per-task from task description InnerLoop: field, not per-role:

  • Serial chain (2+ tasks, each blockedBy previous): inner_loop: true — single worker loops
  • Parallel tasks (no mutual blockedBy): inner_loop: false — separate workers per task
  • Single-task roles: inner_loop: false

Completion Action

When pipeline completes (all tasks done), coordinator presents an interactive choice:

AskUserQuestion({
  questions: [{
    question: "Team pipeline complete. What would you like to do?",
    header: "Completion",
    multiSelect: false,
    options: [
      { label: "Archive & Clean (Recommended)", description: "Archive session, clean up team" },
      { label: "Keep Active", description: "Keep session for follow-up work" },
      { label: "Export Results", description: "Export deliverables to target directory, then clean" }
    ]
  }]
})

Action Handlers

ChoiceSteps
Archive & CleanUpdate session status="completed" -> TeamDelete -> output final summary with artifact paths
Keep ActiveUpdate session status="paused" -> output: "Resume with: Skill(skill='team-coordinate', args='resume')"
Export ResultsAskUserQuestion(target path) -> copy artifacts to target -> Archive & Clean

Specs Reference

SpecPurpose
specs/pipelines.mdDynamic pipeline model, task naming, dependency graph
specs/role-spec-template.mdTemplate for dynamic role-spec generation
specs/quality-gates.mdQuality thresholds and scoring dimensions
specs/knowledge-transfer.mdContext transfer protocols between roles

Session Directory

.workflow/.team/TC-<slug>-<date>/
+-- team-session.json           # Session state + dynamic role registry
+-- task-analysis.json          # Phase 1 output: capabilities, dependency graph
+-- role-specs/                 # Dynamic role-spec definitions (generated Phase 2)
|   +-- <role-1>.md             # Lightweight: frontmatter + Phase 2-4 only
|   +-- <role-2>.md
+-- artifacts/                  # All MD deliverables from workers
|   +-- <artifact>.md
+-- .msg/                       # Team message bus + state
|   +-- messages.jsonl          # Message log
|   +-- meta.json               # Session metadata + cross-role state
+-- wisdom/                     # Cross-task knowledge
|   +-- learnings.md
|   +-- decisions.md
|   +-- issues.md
+-- explorations/               # Shared explore cache
|   +-- cache-index.json
|   +-- explore-<angle>.json
+-- discussions/                # Inline discuss records
|   +-- <round>.md

team-session.json Schema

{
  "session_id": "TC-<slug>-<date>",
  "task_description": "<original user input>",
  "status": "active | paused | completed",
  "team_name": "<team-name>",
  "roles": [
    {
      "name": "<role-name>",
      "prefix": "<PREFIX>",
      "responsibility_type": "<type>",
      "inner_loop": false,
      "role_spec": "role-specs/<role-name>.md"
    }
  ],
  "pipeline": {
    "dependency_graph": {},
    "tasks_total": 0,
    "tasks_completed": 0
  },
  "active_workers": [],
  "completed_tasks": [],
  "completion_action": "interactive",
  "created_at": "<timestamp>"
}

Session Resume

Coordinator supports resume / continue for interrupted sessions:

  1. Scan .workflow/.team/TC-*/team-session.json for active/paused sessions
  2. Multiple matches -> AskUserQuestion for selection
  3. Audit TaskList -> reconcile session state <-> task status
  4. Reset in_progress -> pending (interrupted tasks)
  5. Rebuild team and spawn needed workers only
  6. Create missing tasks, set dependencies via TaskUpdate({ addBlockedBy })
  7. Kick first executable task -> Phase 4 coordination loop

Error Handling

ScenarioResolution
Unknown commandError with available command list
Dynamic role-spec not foundError, coordinator may need to regenerate
Command file not foundFallback to inline execution
CLI tool failsWorker proceeds with direct implementation, logs warning
Explore cache corruptClear cache, re-explore
Fast-advance spawns wrong taskCoordinator reconciles on next callback
capability_gap reportedCoordinator generates new role-spec via handleAdapt
Completion action failsDefault to Keep Active, log warning
Repository
catlog22/Claude-Code-Workflow
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.