feat: apply Pattern 10 to all team skills — @ strong refs + workspace resolution

- SKILL.md: coordinator entry uses `@roles/coordinator/role.md` strong reference
- coordinator/role.md: command delegations use `@commands/xxx.md` prefix
- coordinator Phase 2: resolve project_root + skill_root via `Bash pwd` before TeamCreate
- Worker Spawn Template: role_spec uses absolute path from session skill_root
- skills_lib/team-skill-designer: document Pattern 10 + add quality checks

Covers 17 team skills: team-lifecycle-v4, team-frontend, team-ultra-analyze,
team-ux-improve, team-arch-opt, team-brainstorm, team-review, team-uidesign,
team-issue, team-iterdev, team-perf-opt, team-planex, team-quality-assurance,
team-testing, team-tech-debt, team-coordinate, team-roadmap-dev, team-frontend-debug

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
catlog22
2026-03-18 16:01:43 +08:00
parent 398601f885
commit b91bdcdfa4
35 changed files with 307 additions and 237 deletions

View File

@@ -44,7 +44,7 @@ Skill(skill="team-testing", args="task description")
Parse `$ARGUMENTS`:
- Has `--role <name>` -> Read `roles/<name>/role.md`, execute Phase 2-4
- No `--role` -> Read `roles/coordinator/role.md`, execute entry router
- No `--role` -> `@roles/coordinator/role.md`, execute entry router
## Shared Constants
@@ -67,14 +67,14 @@ Agent({
run_in_background: true,
prompt: `## Role Assignment
role: <role>
role_spec: ~ or <project>/.claude/skills/team-testing/roles/<role>/role.md
role_spec: <skill_root>/roles/<role>/role.md
session: <session-folder>
session_id: <session-id>
team_name: testing
requirement: <task-description>
inner_loop: <true|false>
Read role_spec file to load Phase 2-4 domain instructions.
Read role_spec file (@<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.
Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).`
})
```

View File

@@ -42,7 +42,7 @@ When coordinator needs to execute a specific phase:
| Interrupted session | Active session in .workflow/.team/TST-* | -> Phase 0 |
| New session | None of above | -> Phase 1 |
For callback/check/resume/adapt/complete: load commands/monitor.md, execute handler, STOP.
For callback/check/resume/adapt/complete: load @commands/monitor.md, execute handler, STOP.
## Phase 0: Session Resume Check
@@ -69,17 +69,20 @@ TEXT-LEVEL ONLY. No source code reading.
| Otherwise | comprehensive |
4. Clarify if ambiguous (AskUserQuestion for scope)
5. Delegate to commands/analyze.md
5. Delegate to @commands/analyze.md
6. Output: task-analysis.json
7. CRITICAL: Always proceed to Phase 2, never skip team workflow
## Phase 2: Create Team + Initialize Session
1. Generate session ID: TST-<slug>-<date>
2. Create session folder structure (strategy/, tests/L1-unit/, tests/L2-integration/, tests/L3-e2e/, results/, analysis/, wisdom/)
3. TeamCreate with team name "testing"
4. Read specs/pipelines.md -> select pipeline based on mode
5. Initialize pipeline via team_msg state_update:
1. Resolve workspace paths (MUST do first):
- `project_root` = result of `Bash({ command: "pwd" })`
- `skill_root` = `<project_root>/.claude/skills/team-testing`
2. Generate session ID: TST-<slug>-<date>
3. Create session folder structure (strategy/, tests/L1-unit/, tests/L2-integration/, tests/L3-e2e/, results/, analysis/, wisdom/)
4. TeamCreate with team name "testing"
5. Read specs/pipelines.md -> select pipeline based on mode
6. Initialize pipeline via team_msg state_update:
```
mcp__ccw-tools__team_msg({
operation: "log", session_id: "<id>", from: "coordinator",
@@ -93,11 +96,11 @@ TEXT-LEVEL ONLY. No source code reading.
}
})
```
6. Write session.json
7. Write session.json
## Phase 3: Create Task Chain
Delegate to commands/dispatch.md:
Delegate to @commands/dispatch.md:
1. Read specs/pipelines.md for selected pipeline's task registry
2. Topological sort tasks
3. Create tasks via TaskCreate with blockedBy
@@ -105,7 +108,7 @@ Delegate to commands/dispatch.md:
## Phase 4: Spawn-and-Stop
Delegate to commands/monitor.md#handleSpawnNext:
Delegate to @commands/monitor.md#handleSpawnNext:
1. Find ready tasks (pending + blockedBy resolved)
2. Spawn team-worker agents (see SKILL.md Spawn Template)
3. Output status summary