CtrlK
BlogDocsLog inGet started
Tessl Logo

team-roadmap-dev

Unified team skill for roadmap-driven development workflow. Coordinator discusses roadmap with user, then dispatches phased execution pipeline (plan -> execute -> verify). All roles invoke this skill with --role arg. Triggers on "team roadmap-dev".

67

Quality

60%

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 ./.codex/skills/team-roadmap-dev/SKILL.md
SKILL.md
Quality
Evals
Security

Team Roadmap Dev

Roadmap-driven development with phased execution pipeline. Coordinator discusses roadmap with the user and manages phase transitions. Workers are spawned as team-worker agents.

Architecture

Skill(skill="team-roadmap-dev", args="<task-description>")
                    |
         SKILL.md (this file) = Router
                    |
     +--------------+--------------+
     |                             |
  no --role flag              --role <name>
     |                             |
  Coordinator                  Worker
  roles/coordinator/role.md    roles/<name>/role.md
     |
     +-- roadmap-discuss -> dispatch -> spawn workers -> STOP
                                    |
                    +-------+-------+-------+
                    v       v       v
                 [planner] [executor] [verifier]
                 (team-worker agents)

Pipeline (per phase):
  PLAN-N01 -> EXEC-N01 -> VERIFY-N01 (gap closure loop if needed)

Multi-phase:
  Phase 1 -> Phase 2 -> ... -> Phase N -> Complete

Role Registry

RolePathPrefixInner Loop
coordinatorroles/coordinator/role.md
plannerroles/planner/role.mdPLAN-*true
executorroles/executor/role.mdEXEC-*true
verifierroles/verifier/role.mdVERIFY-*true

Role Router

Parse $ARGUMENTS:

  • Has --role <name> → Read roles/<name>/role.md, execute Phase 2-4
  • No --roleroles/coordinator/role.md, execute entry router

Delegation Lock

Coordinator is a PURE ORCHESTRATOR. It coordinates, it does NOT do.

Before calling ANY tool, apply this check:

Tool CallVerdictReason
spawn_agent, wait_agent, close_agent, send_message, assign_taskALLOWEDOrchestration
list_agentsALLOWEDAgent health check
request_user_inputALLOWEDUser interaction
mcp__ccw-tools__team_msgALLOWEDMessage bus
Read/Write on .workflow/.team/ filesALLOWEDSession state
Read on roles/, commands/, specs/ALLOWEDLoading own instructions
Read/Grep/Glob on project source codeBLOCKEDDelegate to worker
Edit on any file outside .workflow/BLOCKEDDelegate to worker
Bash("ccw cli ...")BLOCKEDOnly workers call CLI
Bash running build/test/lint commandsBLOCKEDDelegate to worker

If a tool call is BLOCKED: STOP. Create a task, spawn a worker.

No exceptions for "simple" tasks. Even a single-file read-and-report MUST go through spawn_agent.


Shared Constants

  • Session prefix: RD
  • Session path: .workflow/.team/RD-<slug>-<date>/
  • Team name: roadmap-dev
  • CLI tools: ccw cli --mode analysis (read-only), ccw cli --mode write (modifications)
  • Message bus: mcp__ccw-tools__team_msg(session_id=<session-id>, ...)

Worker Spawn Template

Coordinator spawns workers using this template:

spawn_agent({
  agent_type: "team_worker",
  task_name: "<task-id>",
  fork_context: false,
  items: [
    { type: "text", text: `## Role Assignment
role: <role>
role_spec: <skill_root>/roles/<role>/role.md
session: <session-folder>
session_id: <session-id>
requirement: <task-description>
inner_loop: true

Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.` },

    { type: "text", text: `## Task Context
task_id: <task-id>
title: <task-title>
description: <task-description>
pipeline_phase: <pipeline-phase>` },

    { type: "text", text: `## Upstream Context
<prev_context>` }
  ]
})

After spawning, use wait_agent({ targets: [...], timeout_ms: 900000 }) to collect results, then close_agent({ target }) each worker.

All worker roles (planner, executor, verifier): Set inner_loop: true.

Model Selection Guide

Roadmap development is context-heavy with multi-phase execution. All roles use inner_loop and need high reasoning for complex planning/execution.

Rolereasoning_effortRationale
plannerhighPhase planning requires understanding full roadmap context
executorhighImplementation must align with phase plan precisely
verifierhighGap detection requires thorough verification against plan

All roles are inner_loop=true, enabling coordinator to send additional context via assign_task as phases progress.

User Commands

CommandAction
check / statusOutput execution status graph (phase-grouped), no advancement
resume / continueCheck worker states, advance next step

Session Directory

.workflow/.team/RD-<slug>-<date>/
+-- roadmap.md                 # Phase plan with requirements and success criteria
+-- state.md                   # Living memory (<100 lines)
+-- config.json                # Session settings (mode, depth, gates)
+-- wisdom/                    # Cross-task knowledge accumulation
|   +-- learnings.md
|   +-- decisions.md
|   +-- conventions.md
|   +-- issues.md
+-- phase-1/                   # Per-phase artifacts
|   +-- context.md
|   +-- IMPL_PLAN.md
|   +-- TODO_LIST.md
|   +-- .task/IMPL-*.json
|   +-- summary-*.md
|   +-- verification.md
+-- phase-N/
|   +-- ...
+-- .msg/
    +-- messages.jsonl          # Team message bus log
    +-- meta.json               # Session metadata + shared state

v4 Agent Coordination

Message Semantics

IntentAPIExample
Queue supplementary info (don't interrupt)send_messageSend phase context to running executor
Assign phase work / gap closureassign_taskAssign gap closure iteration to executor after verify
Check running agentslist_agentsVerify agent health during resume

Agent Health Check

Use list_agents({}) in handleResume and handleComplete:

// Reconcile session state with actual running agents
const running = list_agents({})
// Compare with state.md and config.json active tasks
// Reset orphaned tasks (in_progress but agent gone) to pending

Named Agent Targeting

Workers are spawned with task_name: "<task-id>" enabling direct addressing:

  • send_message({ target: "EXEC-N01", items: [...] }) -- send supplementary context to executor
  • assign_task({ target: "PLAN-N01", items: [...] }) -- assign next phase planning
  • close_agent({ target: "VERIFY-N01" }) -- cleanup after verification

Multi-Phase Context Accumulation

Each phase builds on previous phase results. Coordinator accumulates context across phases:

  • Phase N planner receives: roadmap.md + state.md + all previous phase summaries
  • Phase N executor receives: phase plan + previous phase implementation context
  • Phase N verifier receives: phase plan + executor results + success criteria from roadmap
  • On gap closure: verifier findings are sent back to executor via assign_task (max 3 iterations)

Completion Action

When the pipeline completes:

request_user_input({
  questions: [{
    question: "Roadmap Dev pipeline complete. What would you like to do?",
    header: "Completion",
    multiSelect: false,
    options: [
      { label: "Archive & Clean (Recommended)", description: "Archive session, clean up tasks and team resources" },
      { label: "Keep Active", description: "Keep session active for follow-up work or inspection" },
      { label: "Export Results", description: "Export deliverables to a specified location, then clean" }
    ]
  }]
})

Specs Reference

Error Handling

ScenarioResolution
Unknown --role valueError with role registry list
Role file not foundError with expected path (roles/{name}/role.md)
project-tech.json missingCoordinator invokes /workflow:spec:setup
Phase verification fails with gapsCoordinator triggers gap closure loop (max 3 iterations)
Max gap closure iterations (3)Report to user, ask for guidance
Worker crashRespawn worker, reassign task
Session corruptionAttempt recovery, fallback to manual reconciliation
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.