mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-03-26 19:56:37 +08:00
- Delete 21 old team skill directories using CSV-wave pipeline pattern (~100+ files) - Delete old team-lifecycle (v3) and team-planex-v2 - Create generic team-worker.toml and team-supervisor.toml (replacing tlv4-specific TOMLs) - Convert 19 team skills from Claude Code format (Agent/SendMessage/TaskCreate) to Codex format (spawn_agent/wait_agent/tasks.json/request_user_input) - Update team-lifecycle-v4 to use generic agent types (team_worker/team_supervisor) - Convert all coordinator role files: dispatch.md, monitor.md, role.md - Convert all worker role files: remove run_in_background, fix Bash syntax - Convert all specs/pipelines.md references - Final state: 20 team skills, 217 .md files, zero Claude Code API residuals Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
192 lines
6.2 KiB
Markdown
192 lines
6.2 KiB
Markdown
---
|
|
name: team-executor
|
|
description: Lightweight session execution skill. Resumes existing team-coordinate sessions for pure execution via team-worker agents. No analysis, no role generation -- only loads and executes. Session path required. Triggers on "Team Executor".
|
|
allowed-tools: spawn_agent(*), wait_agent(*), send_input(*), close_agent(*), report_agent_job_result(*), request_user_input(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
|
|
---
|
|
|
|
# Team Executor
|
|
|
|
Lightweight session execution skill: load session -> reconcile state -> spawn team-worker agents -> execute -> deliver. **No analysis, no role generation** -- only executes existing team-coordinate sessions.
|
|
|
|
|
|
## Architecture
|
|
|
|
```
|
|
+---------------------------------------------------+
|
|
| Skill(skill="team-executor") |
|
|
| args="--session=<path>" [REQUIRED] |
|
|
+-------------------+-------------------------------+
|
|
| Session Validation
|
|
+---- --session valid? ----+
|
|
| NO | YES
|
|
v v
|
|
Error immediately Orchestration Mode
|
|
(no session) -> executor
|
|
|
|
|
+-------+-------+-------+
|
|
v v v v
|
|
[team-worker agents loaded from session role-specs]
|
|
```
|
|
|
|
---
|
|
|
|
## Session Validation (BEFORE routing)
|
|
|
|
**CRITICAL**: Session validation MUST occur before any execution.
|
|
|
|
### Parse Arguments
|
|
|
|
Extract from `$ARGUMENTS`:
|
|
- `--session=<path>`: Path to team-coordinate session folder (REQUIRED)
|
|
|
|
### Validation Steps
|
|
|
|
1. **Check `--session` provided**:
|
|
- If missing -> **ERROR**: "Session required. Usage: --session=<path-to-TC-folder>"
|
|
|
|
2. **Validate session structure** (see specs/session-schema.md):
|
|
- Directory exists at path
|
|
- `team-session.json` exists and valid JSON
|
|
- `task-analysis.json` exists and valid JSON
|
|
- `role-specs/` directory has at least one `.md` file
|
|
- Each role in `team-session.json#roles` has corresponding `.md` file in `role-specs/`
|
|
|
|
3. **Validation failure**:
|
|
- Report specific missing component
|
|
- Suggest re-running team-coordinate or checking path
|
|
|
|
---
|
|
|
|
## Role Router
|
|
|
|
This skill is **executor-only**. Workers do NOT invoke this skill -- they are spawned as `team-worker` agents directly.
|
|
|
|
### Dispatch Logic
|
|
|
|
| Scenario | Action |
|
|
|----------|--------|
|
|
| No `--session` | **ERROR** immediately |
|
|
| `--session` invalid | **ERROR** with specific reason |
|
|
| Valid session | Orchestration Mode -> executor |
|
|
|
|
### Orchestration Mode
|
|
|
|
**Invocation**: `Skill(skill="team-executor", args="--session=<session-folder>")`
|
|
|
|
**Lifecycle**:
|
|
```
|
|
Validate session
|
|
-> executor Phase 0: Reconcile state (reset interrupted, detect orphans)
|
|
-> executor Phase 1: Spawn first batch team-worker agents (background) -> STOP
|
|
-> Worker executes -> callback -> executor advances next step
|
|
-> Loop until pipeline complete -> Phase 2 report + completion action
|
|
```
|
|
|
|
**User Commands** (wake paused executor):
|
|
|
|
| Command | Action |
|
|
|---------|--------|
|
|
| `check` / `status` | Output execution status graph, no advancement |
|
|
| `resume` / `continue` | Check worker states, advance next step |
|
|
|
|
---
|
|
|
|
## Role Registry
|
|
|
|
| Role | File | Type |
|
|
|------|------|------|
|
|
| executor | [roles/executor/role.md](roles/executor/role.md) | built-in orchestrator |
|
|
| (dynamic) | `<session>/role-specs/<role-name>.md` | loaded from session |
|
|
|
|
---
|
|
|
|
## Executor Spawn Template
|
|
|
|
### v2 Worker Spawn (all roles)
|
|
|
|
When executor spawns workers, use `team-worker` agent with role-spec path:
|
|
|
|
```
|
|
spawn_agent({
|
|
agent_type: "team_worker",
|
|
items: [
|
|
{ type: "text", text: `## Role Assignment
|
|
role: <role>
|
|
role_spec: <session-folder>/role-specs/<role>.md
|
|
session: <session-folder>
|
|
session_id: <session-id>
|
|
requirement: <task-description>
|
|
inner_loop: <true|false>
|
|
|
|
Read role_spec file 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({ ids: [...], timeout_ms: 900000 })` to collect results, then `close_agent({ id })` each worker.
|
|
|
|
---
|
|
|
|
## Completion Action
|
|
|
|
When pipeline completes (all tasks done), executor presents an interactive choice:
|
|
|
|
```
|
|
request_user_input({
|
|
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
|
|
|
|
| Choice | Steps |
|
|
|--------|-------|
|
|
| Archive & Clean | Update session status="completed" -> output final summary with artifact paths |
|
|
| Keep Active | Update session status="paused" -> output: "Resume with: Skill(skill='team-executor', args='--session=<path>')" |
|
|
| Export Results | request_user_input(target path) -> copy artifacts to target -> Archive & Clean |
|
|
|
|
---
|
|
|
|
## Integration with team-coordinate
|
|
|
|
| Scenario | Skill |
|
|
|----------|-------|
|
|
| New task, no session | team-coordinate |
|
|
| Existing session, resume execution | **team-executor** |
|
|
| Session needs new roles | team-coordinate (with resume) |
|
|
| Pure execution, no analysis | **team-executor** |
|
|
|
|
---
|
|
|
|
## Error Handling
|
|
|
|
| Scenario | Resolution |
|
|
|----------|------------|
|
|
| No --session provided | ERROR immediately with usage message |
|
|
| Session directory not found | ERROR with path, suggest checking path |
|
|
| team-session.json missing | ERROR, session incomplete, suggest re-run team-coordinate |
|
|
| task-analysis.json missing | ERROR, session incomplete, suggest re-run team-coordinate |
|
|
| No role-specs in session | ERROR, session incomplete, suggest re-run team-coordinate |
|
|
| Role-spec file not found | ERROR with expected path |
|
|
| capability_gap reported | Warn only, cannot generate new role-specs |
|
|
| Fast-advance spawns wrong task | Executor reconciles on next callback |
|
|
| Completion action fails | Default to Keep Active, log warning |
|