mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-03-26 19:56:37 +08:00
feat: migrate all codex team skills from spawn_agents_on_csv to spawn_agent + wait_agent architecture
- 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>
This commit is contained in:
101
.codex/skills/team-testing/specs/pipelines.md
Normal file
101
.codex/skills/team-testing/specs/pipelines.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# Testing Pipelines
|
||||
|
||||
Pipeline definitions and task registry for team-testing.
|
||||
|
||||
## Pipeline Selection
|
||||
|
||||
| Condition | Pipeline |
|
||||
|-----------|----------|
|
||||
| fileCount <= 3 AND moduleCount <= 1 | targeted |
|
||||
| fileCount <= 10 AND moduleCount <= 3 | standard |
|
||||
| Otherwise | comprehensive |
|
||||
|
||||
## Pipeline Definitions
|
||||
|
||||
### Targeted Pipeline (3 tasks, serial)
|
||||
|
||||
```
|
||||
STRATEGY-001 -> TESTGEN-001 -> TESTRUN-001
|
||||
```
|
||||
|
||||
| Task ID | Role | Dependencies | Layer | Description |
|
||||
|---------|------|-------------|-------|-------------|
|
||||
| STRATEGY-001 | strategist | (none) | — | Analyze changes, define test strategy |
|
||||
| TESTGEN-001 | generator | STRATEGY-001 | L1 | Generate L1 unit tests |
|
||||
| TESTRUN-001 | executor | TESTGEN-001 | L1 | Execute L1 tests, collect coverage |
|
||||
|
||||
### Standard Pipeline (6 tasks, progressive layers)
|
||||
|
||||
```
|
||||
STRATEGY-001 -> TESTGEN-001 -> TESTRUN-001 -> TESTGEN-002 -> TESTRUN-002 -> TESTANA-001
|
||||
```
|
||||
|
||||
| Task ID | Role | Dependencies | Layer | Description |
|
||||
|---------|------|-------------|-------|-------------|
|
||||
| STRATEGY-001 | strategist | (none) | — | Analyze changes, define test strategy |
|
||||
| TESTGEN-001 | generator | STRATEGY-001 | L1 | Generate L1 unit tests |
|
||||
| TESTRUN-001 | executor | TESTGEN-001 | L1 | Execute L1 tests, collect coverage |
|
||||
| TESTGEN-002 | generator | TESTRUN-001 | L2 | Generate L2 integration tests |
|
||||
| TESTRUN-002 | executor | TESTGEN-002 | L2 | Execute L2 tests, collect coverage |
|
||||
| TESTANA-001 | analyst | TESTRUN-002 | — | Defect pattern analysis, quality report |
|
||||
|
||||
### Comprehensive Pipeline (8 tasks, parallel windows)
|
||||
|
||||
```
|
||||
STRATEGY-001 -> [TESTGEN-001 || TESTGEN-002] -> [TESTRUN-001 || TESTRUN-002] -> TESTGEN-003 -> TESTRUN-003 -> TESTANA-001
|
||||
```
|
||||
|
||||
| Task ID | Role | Dependencies | Layer | Description |
|
||||
|---------|------|-------------|-------|-------------|
|
||||
| STRATEGY-001 | strategist | (none) | — | Analyze changes, define test strategy |
|
||||
| TESTGEN-001 | generator-1 | STRATEGY-001 | L1 | Generate L1 unit tests (parallel) |
|
||||
| TESTGEN-002 | generator-2 | STRATEGY-001 | L2 | Generate L2 integration tests (parallel) |
|
||||
| TESTRUN-001 | executor-1 | TESTGEN-001 | L1 | Execute L1 tests (parallel) |
|
||||
| TESTRUN-002 | executor-2 | TESTGEN-002 | L2 | Execute L2 tests (parallel) |
|
||||
| TESTGEN-003 | generator | TESTRUN-001, TESTRUN-002 | L3 | Generate L3 E2E tests |
|
||||
| TESTRUN-003 | executor | TESTGEN-003 | L3 | Execute L3 tests, collect coverage |
|
||||
| TESTANA-001 | analyst | TESTRUN-003 | — | Defect pattern analysis, quality report |
|
||||
|
||||
## GC Loop (Generator-Critic)
|
||||
|
||||
Generator and executor iterate per test layer:
|
||||
|
||||
```
|
||||
TESTGEN -> TESTRUN -> (if pass_rate < 0.95 OR coverage < target) -> TESTGEN-fix -> TESTRUN-fix
|
||||
(if pass_rate >= 0.95 AND coverage >= target) -> next layer or TESTANA
|
||||
```
|
||||
|
||||
- Max iterations: 3 per layer
|
||||
- After 3 iterations: accept current state with warning
|
||||
|
||||
## Coverage Targets
|
||||
|
||||
| Layer | Name | Default Target |
|
||||
|-------|------|----------------|
|
||||
| L1 | Unit Tests | 80% |
|
||||
| L2 | Integration Tests | 60% |
|
||||
| L3 | E2E Tests | 40% |
|
||||
|
||||
## Session Directory
|
||||
|
||||
```
|
||||
.workflow/.team/TST-<slug>-<YYYY-MM-DD>/
|
||||
├── .msg/messages.jsonl # Message bus log
|
||||
├── .msg/meta.json # Session metadata
|
||||
├── wisdom/ # Cross-task knowledge
|
||||
│ ├── learnings.md
|
||||
│ ├── decisions.md
|
||||
│ ├── conventions.md
|
||||
│ └── issues.md
|
||||
├── strategy/ # Strategist output
|
||||
│ └── test-strategy.md
|
||||
├── tests/ # Generator output
|
||||
│ ├── L1-unit/
|
||||
│ ├── L2-integration/
|
||||
│ └── L3-e2e/
|
||||
├── results/ # Executor output
|
||||
│ ├── run-001.json
|
||||
│ └── coverage-001.json
|
||||
└── analysis/ # Analyst output
|
||||
└── quality-report.md
|
||||
```
|
||||
93
.codex/skills/team-testing/specs/team-config.json
Normal file
93
.codex/skills/team-testing/specs/team-config.json
Normal file
@@ -0,0 +1,93 @@
|
||||
{
|
||||
"team_name": "team-testing",
|
||||
"team_display_name": "Team Testing",
|
||||
"description": "Testing team with Generator-Critic loop, shared defect memory, and progressive test layers",
|
||||
"version": "1.0.0",
|
||||
|
||||
"roles": {
|
||||
"coordinator": {
|
||||
"task_prefix": null,
|
||||
"responsibility": "Change scope analysis, layer selection, quality gating",
|
||||
"message_types": ["pipeline_selected", "gc_loop_trigger", "quality_gate", "task_unblocked", "error", "shutdown"]
|
||||
},
|
||||
"strategist": {
|
||||
"task_prefix": "STRATEGY",
|
||||
"responsibility": "Analyze git diff, determine test layers, define coverage targets",
|
||||
"message_types": ["strategy_ready", "error"]
|
||||
},
|
||||
"generator": {
|
||||
"task_prefix": "TESTGEN",
|
||||
"responsibility": "Generate test cases by layer (unit/integration/E2E)",
|
||||
"message_types": ["tests_generated", "tests_revised", "error"]
|
||||
},
|
||||
"executor": {
|
||||
"task_prefix": "TESTRUN",
|
||||
"responsibility": "Execute tests, collect coverage, auto-fix failures",
|
||||
"message_types": ["tests_passed", "tests_failed", "coverage_report", "error"]
|
||||
},
|
||||
"analyst": {
|
||||
"task_prefix": "TESTANA",
|
||||
"responsibility": "Defect pattern analysis, coverage gap analysis, quality report",
|
||||
"message_types": ["analysis_ready", "error"]
|
||||
}
|
||||
},
|
||||
|
||||
"pipelines": {
|
||||
"targeted": {
|
||||
"description": "Small scope: strategy → generate L1 → run",
|
||||
"task_chain": ["STRATEGY-001", "TESTGEN-001", "TESTRUN-001"],
|
||||
"gc_loops": 0
|
||||
},
|
||||
"standard": {
|
||||
"description": "Progressive: L1 → L2 with analysis",
|
||||
"task_chain": ["STRATEGY-001", "TESTGEN-001", "TESTRUN-001", "TESTGEN-002", "TESTRUN-002", "TESTANA-001"],
|
||||
"gc_loops": 1
|
||||
},
|
||||
"comprehensive": {
|
||||
"description": "Full coverage: parallel L1+L2, then L3 with analysis",
|
||||
"task_chain": ["STRATEGY-001", "TESTGEN-001", "TESTGEN-002", "TESTRUN-001", "TESTRUN-002", "TESTGEN-003", "TESTRUN-003", "TESTANA-001"],
|
||||
"gc_loops": 2,
|
||||
"parallel_groups": [["TESTGEN-001", "TESTGEN-002"], ["TESTRUN-001", "TESTRUN-002"]]
|
||||
}
|
||||
},
|
||||
|
||||
"innovation_patterns": {
|
||||
"generator_critic": {
|
||||
"generator": "generator",
|
||||
"critic": "executor",
|
||||
"max_rounds": 3,
|
||||
"convergence_trigger": "coverage >= target && pass_rate >= 0.95"
|
||||
},
|
||||
"shared_memory": {
|
||||
"file": "shared-memory.json",
|
||||
"fields": {
|
||||
"strategist": "test_strategy",
|
||||
"generator": "generated_tests",
|
||||
"executor": "execution_results",
|
||||
"analyst": "analysis_report"
|
||||
},
|
||||
"persistent_fields": ["defect_patterns", "effective_test_patterns", "coverage_history"]
|
||||
},
|
||||
"dynamic_pipeline": {
|
||||
"selector": "coordinator",
|
||||
"criteria": "changed_file_count + module_count + change_type"
|
||||
}
|
||||
},
|
||||
|
||||
"test_layers": {
|
||||
"L1": { "name": "Unit Tests", "coverage_target": 80, "description": "Function-level isolation tests" },
|
||||
"L2": { "name": "Integration Tests", "coverage_target": 60, "description": "Module interaction tests" },
|
||||
"L3": { "name": "E2E Tests", "coverage_target": 40, "description": "User scenario end-to-end tests" }
|
||||
},
|
||||
|
||||
"collaboration_patterns": ["CP-1", "CP-3", "CP-5"],
|
||||
|
||||
"session_dirs": {
|
||||
"base": ".workflow/.team/TST-{slug}-{YYYY-MM-DD}/",
|
||||
"strategy": "strategy/",
|
||||
"tests": "tests/",
|
||||
"results": "results/",
|
||||
"analysis": "analysis/",
|
||||
"messages": ".workflow/.team-msg/{team-name}/"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user