Add document standards, quality gates, and templates for team lifecycle phases

- Introduced `document-standards.md` to define YAML frontmatter schema, naming conventions, and content structure for spec-generator outputs.
- Created `quality-gates.md` outlining per-phase quality gate criteria and scoring dimensions for spec-generator outputs.
- Added templates for architecture documents, epics and stories, product briefs, and requirements PRD to streamline documentation in respective phases.
This commit is contained in:
catlog22
2026-03-04 23:54:20 +08:00
parent fd0c9efa4d
commit bbdd1840de
103 changed files with 1959 additions and 1311 deletions

View File

@@ -49,7 +49,7 @@ Parse the following fields from your prompt:
- `prefix`: Task prefix to filter (e.g., `RESEARCH`, `DRAFT`, `IMPL`) - `prefix`: Task prefix to filter (e.g., `RESEARCH`, `DRAFT`, `IMPL`)
- `inner_loop`: Override from frontmatter if present - `inner_loop`: Override from frontmatter if present
- `discuss_rounds`: Array of discuss round IDs this role handles - `discuss_rounds`: Array of discuss round IDs this role handles
- `subagents`: (DEPRECATED - team workers cannot call subagents) Array for documentation only - `delegates_to`: (DEPRECATED - team workers cannot delegate to other agents) Array for documentation only
- `message_types`: Success/error/fix message type mappings - `message_types`: Success/error/fix message type mappings
3. Parse **body** (content after frontmatter) to get Phase 2-4 execution instructions 3. Parse **body** (content after frontmatter) to get Phase 2-4 execution instructions
4. Store parsed metadata and instructions for use in execution phases 4. Store parsed metadata and instructions for use in execution phases
@@ -123,9 +123,9 @@ After claiming a task, check if output artifacts already exist (indicates resume
The role_spec contains Phase 2, Phase 3, and Phase 4 sections with domain-specific logic. Follow those instructions exactly. Key integration points with built-in infrastructure: The role_spec contains Phase 2, Phase 3, and Phase 4 sections with domain-specific logic. Follow those instructions exactly. Key integration points with built-in infrastructure:
## CRITICAL LIMITATION: No Subagent Delegation ## CRITICAL LIMITATION: No Agent Delegation
**Team workers CANNOT call the Agent() tool to spawn subagents.** **Team workers CANNOT call the Agent() tool to spawn other agents.**
Test evidence shows that team members spawned via Agent tool do not have access to the Agent tool themselves. Only the coordinator (main conversation context) can spawn agents. Test evidence shows that team members spawned via Agent tool do not have access to the Agent tool themselves. Only the coordinator (main conversation context) can spawn agents.
@@ -142,15 +142,15 @@ Bash(`ccw cli -p "..." --tool gemini --mode analysis`, { run_in_background: fals
Use Read, Grep, Glob, mcp__ace-tool__search_context directly. Use Read, Grep, Glob, mcp__ace-tool__search_context directly.
**Option C: Request Coordinator Help** **Option C: Request Coordinator Help**
Send message to coordinator requesting subagent delegation: Send message to coordinator requesting agent delegation:
```javascript ```javascript
mcp__ccw-tools__team_msg({ mcp__ccw-tools__team_msg({
operation: "log", operation: "log",
session_id: sessionId, session_id: sessionId,
from: role, from: role,
to: "coordinator", to: "coordinator",
type: "subagent_request", type: "agent_request",
summary: "Request exploration subagent for X", summary: "Request exploration agent for X",
data: { reason: "...", scope: "..." } data: { reason: "...", scope: "..." }
}) })
SendMessage({ recipient: "coordinator", content: "..." }) SendMessage({ recipient: "coordinator", content: "..." })

View File

@@ -27,7 +27,7 @@ Unified team skill: Analyze codebase architecture, identify structural issues (d
analyzer desig- refact- valid- review- analyzer desig- refact- valid- review-
ner orer ator er ner orer ator er
Subagents (callable by workers, not team members): CLI Tools (callable by workers inline):
[explore] [discuss] [explore] [discuss]
(tw) = team-worker agent (tw) = team-worker agent
@@ -52,12 +52,12 @@ Parse `$ARGUMENTS`. No `--role` needed -- always routes to coordinator.
| validator | [role-specs/validator.md](role-specs/validator.md) | VALIDATE-* | validation | false | | validator | [role-specs/validator.md](role-specs/validator.md) | VALIDATE-* | validation | false |
| reviewer | [role-specs/reviewer.md](role-specs/reviewer.md) | REVIEW-* / QUALITY-* | read_only_analysis | false | | reviewer | [role-specs/reviewer.md](role-specs/reviewer.md) | REVIEW-* / QUALITY-* | read_only_analysis | false |
### Subagent Registry ### CLI Tool Registry
| Subagent | Spec | Callable By | Purpose | | Tool | Spec | Used By | Purpose |
|----------|------|-------------|---------| |------|------|---------|---------|
| explore | [subagents/explore-subagent.md](subagents/explore-subagent.md) | analyzer, refactorer | Shared codebase exploration for architecture-critical structures and dependency graphs | | explore | [cli-tools/explore.md](cli-tools/explore.md) | analyzer, refactorer | Shared codebase exploration for architecture-critical structures and dependency graphs |
| discuss | [subagents/discuss-subagent.md](subagents/discuss-subagent.md) | designer, reviewer | Multi-perspective discussion for refactoring approaches and review findings | | discuss | [cli-tools/discuss.md](cli-tools/discuss.md) | designer, reviewer | Multi-perspective discussion for refactoring approaches and review findings |
### Dispatch ### Dispatch
@@ -460,7 +460,7 @@ Coordinator supports `--resume` / `--continue` for interrupted sessions:
|----------|------------| |----------|------------|
| Role spec file not found | Error with expected path (role-specs/<name>.md) | | Role spec file not found | Error with expected path (role-specs/<name>.md) |
| Command file not found | Fallback to inline execution in coordinator role.md | | Command file not found | Fallback to inline execution in coordinator role.md |
| Subagent spec not found | Error with expected path (subagents/<name>-subagent.md) | | CLI tool spec not found | Error with expected path (cli-tools/<name>.md) |
| Fast-advance orphan detected | Coordinator resets task to pending on next check | | Fast-advance orphan detected | Coordinator resets task to pending on next check |
| consensus_blocked HIGH | Coordinator creates revision task or pauses pipeline | | consensus_blocked HIGH | Coordinator creates revision task or pauses pipeline |
| team-worker agent unavailable | Error: requires .claude/agents/team-worker.md | | team-worker agent unavailable | Error: requires .claude/agents/team-worker.md |

View File

@@ -1,7 +1,7 @@
--- ---
prefix: ANALYZE prefix: ANALYZE
inner_loop: false inner_loop: false
subagents: [explore] cli_tools: [explore]
message_types: message_types:
success: analyze_complete success: analyze_complete
error: error error: error
@@ -31,7 +31,7 @@ Analyze codebase architecture to identify structural issues: dependency cycles,
| CLI entry / bin/ directory | CLI Tool | Command structure, plugin architecture, configuration layering | | CLI entry / bin/ directory | CLI Tool | Command structure, plugin architecture, configuration layering |
| No detection | Generic | All architecture dimensions | | No detection | Generic | All architecture dimensions |
3. Use `explore` subagent to map module structure, dependency graph, and layer boundaries within target scope 3. Use `explore` CLI tool to map module structure, dependency graph, and layer boundaries within target scope
4. Detect available analysis tools (linters, dependency analyzers, build tools) 4. Detect available analysis tools (linters, dependency analyzers, build tools)
## Phase 3: Architecture Analysis ## Phase 3: Architecture Analysis

View File

@@ -2,7 +2,7 @@
prefix: DESIGN prefix: DESIGN
inner_loop: false inner_loop: false
discuss_rounds: [DISCUSS-REFACTOR] discuss_rounds: [DISCUSS-REFACTOR]
subagents: [discuss] cli_tools: [discuss]
message_types: message_types:
success: design_complete success: design_complete
error: error error: error
@@ -57,7 +57,7 @@ Prioritize refactorings by impact/effort ratio:
| P2 (Medium) | Medium impact + Low effort (duplication extraction) | | P2 (Medium) | Medium impact + Low effort (duplication extraction) |
| P3 (Low) | Low impact or High effort -- defer (large God Class decomposition) | | P3 (Low) | Low impact or High effort -- defer (large God Class decomposition) |
If complexity is High, invoke `discuss` subagent (DISCUSS-REFACTOR round) to evaluate trade-offs between competing strategies before finalizing the plan. If complexity is High, invoke `discuss` CLI tool (DISCUSS-REFACTOR round) to evaluate trade-offs between competing strategies before finalizing the plan.
Define measurable success criteria per refactoring (target metric improvement or structural change). Define measurable success criteria per refactoring (target metric improvement or structural change).

View File

@@ -2,7 +2,7 @@
prefix: REFACTOR prefix: REFACTOR
inner_loop: true inner_loop: true
additional_prefixes: [FIX] additional_prefixes: [FIX]
subagents: [explore] cli_tools: [explore]
message_types: message_types:
success: refactor_complete success: refactor_complete
error: error error: error
@@ -47,7 +47,7 @@ Implement architecture refactoring changes following the design plan. For FIX ta
- **Independent pipeline**: Read `<session>/artifacts/pipelines/{P}/refactoring-plan.md` -- extract this pipeline's plan - **Independent pipeline**: Read `<session>/artifacts/pipelines/{P}/refactoring-plan.md` -- extract this pipeline's plan
4. For FIX: parse review/validation feedback for specific issues to address 4. For FIX: parse review/validation feedback for specific issues to address
5. Use `explore` subagent to load implementation context for target files 5. Use `explore` CLI tool to load implementation context for target files
6. For inner loop (single mode only): load context_accumulator from prior REFACTOR/FIX tasks 6. For inner loop (single mode only): load context_accumulator from prior REFACTOR/FIX tasks
**Meta.json namespace**: **Meta.json namespace**:

View File

@@ -3,7 +3,7 @@ prefix: REVIEW
inner_loop: false inner_loop: false
additional_prefixes: [QUALITY] additional_prefixes: [QUALITY]
discuss_rounds: [DISCUSS-REVIEW] discuss_rounds: [DISCUSS-REVIEW]
subagents: [discuss] cli_tools: [discuss]
message_types: message_types:
success: review_complete success: review_complete
error: error error: error
@@ -90,7 +90,7 @@ Per-dimension review process:
- Dependency direction follows layer conventions (dependencies flow inward) - Dependency direction follows layer conventions (dependencies flow inward)
- Appropriate abstraction level (not over-engineered, not under-abstracted) - Appropriate abstraction level (not over-engineered, not under-abstracted)
If any Critical findings detected, invoke `discuss` subagent (DISCUSS-REVIEW round) to validate the assessment before issuing verdict. If any Critical findings detected, invoke `discuss` CLI tool (DISCUSS-REVIEW round) to validate the assessment before issuing verdict.
## Phase 4: Verdict & Feedback ## Phase 4: Verdict & Feedback

View File

@@ -31,7 +31,7 @@
"inner_loop": false, "inner_loop": false,
"additional_prefixes": [], "additional_prefixes": [],
"discuss_rounds": [], "discuss_rounds": [],
"subagents": ["explore"], "cli_tools": ["explore"],
"message_types": { "message_types": {
"success": "analyze_complete", "success": "analyze_complete",
"error": "error" "error": "error"
@@ -51,7 +51,7 @@
"inner_loop": false, "inner_loop": false,
"additional_prefixes": [], "additional_prefixes": [],
"discuss_rounds": ["DISCUSS-REFACTOR"], "discuss_rounds": ["DISCUSS-REFACTOR"],
"subagents": ["discuss"], "cli_tools": ["discuss"],
"message_types": { "message_types": {
"success": "design_complete", "success": "design_complete",
"error": "error" "error": "error"
@@ -71,7 +71,7 @@
"inner_loop": true, "inner_loop": true,
"additional_prefixes": ["FIX"], "additional_prefixes": ["FIX"],
"discuss_rounds": [], "discuss_rounds": [],
"subagents": ["explore"], "cli_tools": ["explore"],
"message_types": { "message_types": {
"success": "refactor_complete", "success": "refactor_complete",
"error": "error", "error": "error",
@@ -92,7 +92,7 @@
"inner_loop": false, "inner_loop": false,
"additional_prefixes": [], "additional_prefixes": [],
"discuss_rounds": [], "discuss_rounds": [],
"subagents": [], "cli_tools": [],
"message_types": { "message_types": {
"success": "validate_complete", "success": "validate_complete",
"error": "error", "error": "error",
@@ -113,7 +113,7 @@
"inner_loop": false, "inner_loop": false,
"additional_prefixes": ["QUALITY"], "additional_prefixes": ["QUALITY"],
"discuss_rounds": ["DISCUSS-REVIEW"], "discuss_rounds": ["DISCUSS-REVIEW"],
"subagents": ["discuss"], "cli_tools": ["discuss"],
"message_types": { "message_types": {
"success": "review_complete", "success": "review_complete",
"error": "error", "error": "error",
@@ -193,10 +193,10 @@
"diagram": "See pipeline-diagram section" "diagram": "See pipeline-diagram section"
}, },
"subagents": [ "cli_tools": [
{ {
"name": "explore", "name": "explore",
"agent_type": "cli-explore-agent", "implementation": "ccw cli with analysis mode",
"callable_by": ["analyzer", "refactorer"], "callable_by": ["analyzer", "refactorer"],
"purpose": "Shared codebase exploration for architecture-critical structures, dependency graphs, and module boundaries", "purpose": "Shared codebase exploration for architecture-critical structures, dependency graphs, and module boundaries",
"has_cache": true, "has_cache": true,
@@ -204,7 +204,7 @@
}, },
{ {
"name": "discuss", "name": "discuss",
"agent_type": "cli-discuss-agent", "implementation": "ccw cli with analysis mode",
"callable_by": ["designer", "reviewer"], "callable_by": ["designer", "reviewer"],
"purpose": "Multi-perspective discussion for refactoring approaches and review findings", "purpose": "Multi-perspective discussion for refactoring approaches and review findings",
"has_cache": false "has_cache": false

View File

@@ -1,123 +0,0 @@
# Discuss Subagent
Multi-perspective discussion for evaluating refactoring strategies and reviewing code change quality. Used by designer (DISCUSS-REFACTOR) and reviewer (DISCUSS-REVIEW) when complex trade-offs require multi-angle analysis.
## Design Rationale
Complex refactoring decisions (e.g., choosing between dependency inversion vs mediator pattern to break a cycle) and nuanced code review findings (e.g., evaluating whether a temporary coupling increase is acceptable) benefit from structured multi-perspective analysis. This subagent provides that analysis inline without spawning additional team members.
## Invocation
Called by designer, reviewer after their primary analysis when complexity warrants multi-perspective evaluation:
```javascript
// Multi-perspective discussion using CLI tools
Bash({
command: `ccw cli -p "PURPOSE: Conduct multi-perspective discussion on <topic> for architecture optimization
TASK: • Evaluate architecture impact • Assess risks and trade-offs • Consider maintainability • Explore alternatives
MODE: analysis
CONTEXT: @<session-folder>/discussions/<round-id>.md | Memory: <relevant-context-from-calling-role>
EXPECTED: Structured recommendation with consensus verdict (proceed/revise/escalate), confidence level, key trade-offs, recommended approach with rationale, dissenting perspectives
CONSTRAINTS: Focus on <round-id> topic
Round: <round-id>
Topic: <discussion-topic>
Session: <session-folder>
Context:
<relevant-context-from-calling-role>
Perspectives to consider:
- Architecture impact: Will this actually improve the target structural metric?
- Risk assessment: What could break? Dangling references? Behavioral changes? Migration risk?
- Maintainability: Is the refactored code more understandable and maintainable?
- Alternative approaches: Are there simpler or safer ways to achieve the same structural improvement?
Evaluate trade-offs and provide a structured recommendation with:
- Consensus verdict: proceed / revise / escalate
- Confidence level: high / medium / low
- Key trade-offs identified
- Recommended approach with rationale
- Dissenting perspectives (if any)" --tool gemini --mode analysis`,
run_in_background: false
})
```
**Alternative: Direct multi-perspective analysis**
For simpler discussions, call CLI tool directly without wrapper:
```javascript
Bash({
command: `ccw cli -p "Conduct a multi-perspective discussion on the following topic.
Round: <round-id>
Topic: <discussion-topic>
Session: <session-folder>
Context:
<relevant-context-from-calling-role>
Perspectives to consider:
- Architecture impact: Will this actually improve the target structural metric?
- Risk assessment: What could break? Dangling references? Behavioral changes? Migration risk?
- Maintainability: Is the refactored code more understandable and maintainable?
- Alternative approaches: Are there simpler or safer ways to achieve the same structural improvement?
Evaluate trade-offs and provide a structured recommendation with:
- Consensus verdict: proceed / revise / escalate
- Confidence level: high / medium / low
- Key trade-offs identified
- Recommended approach with rationale
- Dissenting perspectives (if any)`
})
```
## Round Configuration
| Round | Artifact | Parameters | Calling Role |
|-------|----------|------------|-------------|
| DISCUSS-REFACTOR | <session>/discussions/DISCUSS-REFACTOR.md | Refactoring strategy trade-offs | designer |
| DISCUSS-REVIEW | <session>/discussions/DISCUSS-REVIEW.md | Code review finding validation | reviewer |
## Integration with Calling Role
The calling role is responsible for:
1. **Before calling**: Complete primary analysis, identify the specific trade-off or finding needing discussion
2. **Calling**: Invoke subagent with round ID, topic, and relevant context
3. **After calling**:
| Result | Action |
|--------|--------|
| consensus_reached (proceed) | Incorporate recommendation into output, continue |
| consensus_reached (revise) | Adjust findings/strategy based on discussion insights |
| consensus_blocked (HIGH) | Report to coordinator via message with severity |
| consensus_blocked (MEDIUM) | Include in output with recommendation for revision |
| consensus_blocked (LOW) | Note in output, proceed with original assessment |
## Output Schema
```json
{
"round_id": "<DISCUSS-REFACTOR|DISCUSS-REVIEW>",
"topic": "<discussion-topic>",
"verdict": "<proceed|revise|escalate>",
"confidence": "<high|medium|low>",
"trade_offs": [
{ "dimension": "<architecture|risk|maintainability>", "pro": "<benefit>", "con": "<cost>" }
],
"recommendation": "<recommended-approach>",
"rationale": "<reasoning>",
"dissenting_views": ["<alternative-perspective>"]
}
```
## Error Handling
| Scenario | Resolution |
|----------|------------|
| Single perspective analysis fails | Continue with partial perspectives |
| All analyses fail | Return basic recommendation from calling role's primary analysis |
| Artifact not found | Return error immediately |
| Discussion inconclusive | Return "revise" verdict with low confidence |

View File

@@ -1,113 +0,0 @@
# Explore Subagent
Shared codebase exploration for discovering architecture-critical structures, dependency graphs, module boundaries, and layer organization. Results are cached to avoid redundant exploration across analyzer and refactorer roles.
## Design Rationale
Codebase exploration is a read-only operation shared between analyzer (mapping structural issues) and refactorer (understanding implementation context). Caching explorations avoids redundant work when refactorer re-explores structures the analyzer already mapped.
## Invocation
Called by analyzer, refactorer after needing codebase context for architecture analysis or implementation:
```
Agent({
subagent_type: "Explore",
run_in_background: false,
description: "Explore codebase for architecture-critical structures in <target-scope>",
prompt: `Explore the codebase to identify architecture-critical structures.
Target scope: <target-scope>
Session: <session-folder>
Focus: <exploration-focus>
Tasks:
1. Map the module structure, entry points, and layer boundaries within scope
2. Build dependency graph (import/require relationships between modules)
3. Identify architectural patterns (layering, dependency injection, event-driven, plugin architecture)
4. Note any existing abstractions, interfaces, and module boundaries
5. List key files with their roles, layer assignment, and dependency relationships
Output a structured exploration report with:
- Module map (key files, their relationships, and layer assignments)
- Dependency graph (directed edges between modules, cycle indicators)
- Layer structure (identified layers and their boundaries)
- Existing architectural patterns found
- Architecture-relevant configuration (path aliases, barrel exports, module boundaries)`
})
```
## Cache Mechanism
### Cache Index Schema
`<session-folder>/explorations/cache-index.json`:
```json
{
"entries": [
{
"key": "<scope-hash>",
"scope": "<target-scope>",
"focus": "<exploration-focus>",
"timestamp": "<ISO-8601>",
"result_file": "<hash>.md"
}
]
}
```
### Cache Lookup Rules
| Condition | Action |
|-----------|--------|
| Exact scope+focus match exists | Return cached result from <hash>.md |
| No match | Execute subagent, cache result to <hash>.md, update index |
| Cache file missing but index has entry | Remove stale entry, re-execute |
| Cache older than current session | Use cached (explorations are stable within session) |
## Integration with Calling Role
The calling role is responsible for:
1. **Before calling**: Determine target scope and exploration focus
2. **Calling**: Check cache first, invoke subagent only on cache miss
3. **After calling**:
| Result | Action |
|--------|--------|
| Exploration successful | Use findings to inform analysis/implementation |
| Exploration partial | Use available findings, note gaps |
| Exploration failed | Proceed without exploration context, use direct file reading |
## Output Schema
```json
{
"scope": "<target-scope>",
"module_map": [
{ "file": "<path>", "role": "<description>", "layer": "<presentation|domain|data|infra>", "dependency_graph": { "imports": ["<path>"], "imported_by": ["<path>"] } }
],
"dependency_graph": {
"nodes": ["<module-path>"],
"edges": [{ "from": "<path>", "to": "<path>", "type": "<import|re-export|dynamic>" }],
"cycles": [["<path-a>", "<path-b>", "<path-a>"]]
},
"layer_structure": [
{ "layer": "<name>", "modules": ["<path>"], "violations": ["<description>"] }
],
"existing_patterns": [
{ "type": "<pattern>", "location": "<file:line>", "description": "<what>" }
],
"investigation_targets": ["<file-or-pattern>"]
}
```
## Error Handling
| Scenario | Resolution |
|----------|------------|
| Single exploration angle fails | Continue with partial results |
| All exploration fails | Return basic result from direct file listing |
| Target scope not found | Return error immediately |
| Cache corrupt | Clear cache-index.json, re-execute |

View File

@@ -1,7 +1,7 @@
--- ---
prefix: CHALLENGE prefix: CHALLENGE
inner_loop: false inner_loop: false
subagents: [] delegates_to: []
message_types: message_types:
success: critique_ready success: critique_ready
error: error error: error

View File

@@ -1,7 +1,7 @@
--- ---
prefix: EVAL prefix: EVAL
inner_loop: false inner_loop: false
subagents: [] delegates_to: []
message_types: message_types:
success: evaluation_ready success: evaluation_ready
error: error error: error

View File

@@ -1,7 +1,7 @@
--- ---
prefix: IDEA prefix: IDEA
inner_loop: false inner_loop: false
subagents: [] delegates_to: []
message_types: message_types:
success: ideas_ready success: ideas_ready
error: error error: error

View File

@@ -1,7 +1,7 @@
--- ---
prefix: SYNTH prefix: SYNTH
inner_loop: false inner_loop: false
subagents: [] delegates_to: []
message_types: message_types:
success: synthesis_ready success: synthesis_ready
error: error error: error

View File

@@ -27,9 +27,9 @@ Universal team coordination skill: analyze task -> generate role-specs -> dispat
[team-worker agents, each loaded with a dynamic role-spec] [team-worker agents, each loaded with a dynamic role-spec]
(roles generated at runtime from task analysis) (roles generated at runtime from task analysis)
Subagents (callable by any worker, not team members): CLI Tools (callable by any worker):
[discuss-subagent] - multi-perspective critique (dynamic perspectives) ccw cli --mode analysis - analysis and exploration
[explore-subagent] - codebase exploration with cache ccw cli --mode write - code generation and modification
``` ```
## Role Router ## Role Router
@@ -49,12 +49,14 @@ Only coordinator is statically registered. All other roles are dynamic, stored a
| coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | built-in orchestrator | | coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | built-in orchestrator |
| (dynamic) | `<session>/role-specs/<role-name>.md` | runtime-generated role-spec | | (dynamic) | `<session>/role-specs/<role-name>.md` | runtime-generated role-spec |
### Subagent Registry ### CLI Tool Usage
| Subagent | Spec | Callable By | Purpose | Workers can use CLI tools for analysis and code operations:
|----------|------|-------------|---------|
| discuss | [subagents/discuss-subagent.md](subagents/discuss-subagent.md) | any role | Multi-perspective critique (dynamic perspectives) | | Tool | Purpose |
| explore | [subagents/explore-subagent.md](subagents/explore-subagent.md) | any role | Codebase exploration with cache | |------|---------|
| ccw cli --mode analysis | Analysis, exploration, pattern discovery |
| ccw cli --mode write | Code generation, modification, refactoring |
### Dispatch ### Dispatch
@@ -259,7 +261,7 @@ Coordinator supports `resume` / `continue` for interrupted sessions:
| Unknown command | Error with available command list | | Unknown command | Error with available command list |
| Dynamic role-spec not found | Error, coordinator may need to regenerate | | Dynamic role-spec not found | Error, coordinator may need to regenerate |
| Command file not found | Fallback to inline execution | | Command file not found | Fallback to inline execution |
| Discuss subagent fails | Worker proceeds without discuss, logs warning | | CLI tool fails | Worker proceeds with direct implementation, logs warning |
| Explore cache corrupt | Clear cache, re-explore | | Explore cache corrupt | Clear cache, re-explore |
| Fast-advance spawns wrong task | Coordinator reconciles on next callback | | Fast-advance spawns wrong task | Coordinator reconciles on next callback |
| capability_gap reported | Coordinator generates new role-spec via handleAdapt | | capability_gap reported | Coordinator generates new role-spec via handleAdapt |

View File

@@ -117,7 +117,7 @@ For each role, determine frontmatter and generation hints:
|-------|------------| |-------|------------|
| `prefix` | From capability prefix (e.g., RESEARCH, DRAFT, IMPL) | | `prefix` | From capability prefix (e.g., RESEARCH, DRAFT, IMPL) |
| `inner_loop` | `true` if role has 2+ serial same-prefix tasks | | `inner_loop` | `true` if role has 2+ serial same-prefix tasks |
| `subagents` | Suggested, not mandatory — coordinator may adjust based on task needs | | `CLI tools` | Suggested, not mandatory — coordinator may adjust based on task needs |
| `pattern_hint` | Reference pattern name from role-spec-template (research/document/code/analysis/validation) — guides coordinator's Phase 2-4 composition, NOT a rigid template selector | | `pattern_hint` | Reference pattern name from role-spec-template (research/document/code/analysis/validation) — guides coordinator's Phase 2-4 composition, NOT a rigid template selector |
| `output_type` | `artifact` (new files in session/artifacts/) / `codebase` (modify existing project files) / `mixed` (both) — determines verification strategy in Behavioral Traits | | `output_type` | `artifact` (new files in session/artifacts/) / `codebase` (modify existing project files) / `mixed` (both) — determines verification strategy in Behavioral Traits |
| `message_types.success` | `<prefix>_complete` | | `message_types.success` | `<prefix>_complete` |
@@ -177,7 +177,7 @@ Write `<session-folder>/task-analysis.json`:
"task_count": 1, "task_count": 1,
"inner_loop": false, "inner_loop": false,
"role_spec_metadata": { "role_spec_metadata": {
"subagents": ["explore"], "CLI tools": ["explore"],
"pattern_hint": "research", "pattern_hint": "research",
"output_type": "artifact", "output_type": "artifact",
"message_types": { "message_types": {

View File

@@ -25,7 +25,7 @@ Orchestrate the team-coordinate workflow: task analysis, dynamic role-spec gener
- **Read source code or perform codebase exploration** (delegate to worker roles) - **Read source code or perform codebase exploration** (delegate to worker roles)
- Execute task work directly (delegate to workers) - Execute task work directly (delegate to workers)
- Modify task output artifacts (workers own their deliverables) - Modify task output artifacts (workers own their deliverables)
- Call implementation subagents (code-developer, etc.) directly - Call implementation agents (code-developer, etc.) directly
- Skip dependency validation when creating task chains - Skip dependency validation when creating task chains
- Generate more than 5 worker roles (merge if exceeded) - Generate more than 5 worker roles (merge if exceeded)
- Override consensus_blocked HIGH without user confirmation - Override consensus_blocked HIGH without user confirmation

View File

@@ -11,7 +11,7 @@ Template used by coordinator to generate lightweight worker role-spec files at r
role: <role_name> role: <role_name>
prefix: <PREFIX> prefix: <PREFIX>
inner_loop: <true|false> inner_loop: <true|false>
subagents: [<subagent-names>] CLI tools: [<CLI tool-names>]
message_types: message_types:
success: <prefix>_complete success: <prefix>_complete
error: error error: error
@@ -45,7 +45,7 @@ message_types:
| `role` | Yes | Role name matching session registry | | `role` | Yes | Role name matching session registry |
| `prefix` | Yes | Task prefix to filter (e.g., RESEARCH, DRAFT, IMPL) | | `prefix` | Yes | Task prefix to filter (e.g., RESEARCH, DRAFT, IMPL) |
| `inner_loop` | Yes | Whether team-worker loops through same-prefix tasks | | `inner_loop` | Yes | Whether team-worker loops through same-prefix tasks |
| `subagents` | No | Array of subagent types this role may call | | `CLI tools` | No | Array of CLI tool types this role may call |
| `message_types` | Yes | Message type mapping for team_msg | | `message_types` | Yes | Message type mapping for team_msg |
| `message_types.success` | Yes | Type string for successful completion | | `message_types.success` | Yes | Type string for successful completion |
| `message_types.error` | Yes | Type string for errors (usually "error") | | `message_types.error` | Yes | Type string for errors (usually "error") |
@@ -61,13 +61,13 @@ message_types:
| ~80 lines target | Lightweight, domain-focused | | ~80 lines target | Lightweight, domain-focused |
| No pseudocode | Decision tables + text + tool calls only | | No pseudocode | Decision tables + text + tool calls only |
| `<placeholder>` notation | Use angle brackets for variable substitution | | `<placeholder>` notation | Use angle brackets for variable substitution |
| Reference subagents by name | team-worker resolves invocation from its delegation templates | | Reference CLI tools by name | team-worker resolves invocation from its delegation templates |
## Behavioral Traits ## Behavioral Traits
All dynamically generated role-specs MUST embed these traits into Phase 4. Coordinator copies this section verbatim into every generated role-spec as a Phase 4 appendix. All dynamically generated role-specs MUST embed these traits into Phase 4. Coordinator copies this section verbatim into every generated role-spec as a Phase 4 appendix.
**Design principle**: Constrain behavioral characteristics (accuracy, feedback, quality gates), NOT specific actions (which tool, which subagent, which path). Tasks are diverse — the coordinator composes task-specific Phase 2-3 instructions, while these traits ensure execution quality regardless of task type. **Design principle**: Constrain behavioral characteristics (accuracy, feedback, quality gates), NOT specific actions (which tool, which CLI tool, which path). Tasks are diverse — the coordinator composes task-specific Phase 2-3 instructions, while these traits ensure execution quality regardless of task type.
### Accuracy — outputs must be verifiable ### Accuracy — outputs must be verifiable
@@ -95,7 +95,7 @@ Phase 4 must produce a verification summary with these fields:
### Error Protocol ### Error Protocol
- Primary approach fails → try alternative (different subagent / different tool) - Primary approach fails → try alternative (different CLI tool / different tool)
- 2 retries exhausted → escalate to coordinator with failure details - 2 retries exhausted → escalate to coordinator with failure details
- NEVER: skip verification and report completed - NEVER: skip verification and report completed
@@ -108,7 +108,7 @@ Coordinator MAY reference these patterns when composing Phase 2-4 content for a
### Research / Exploration ### Research / Exploration
- Phase 2: Define exploration scope + load prior knowledge from shared state and wisdom - Phase 2: Define exploration scope + load prior knowledge from shared state and wisdom
- Phase 3: Explore via subagents, direct tool calls, or codebase search — approach chosen by agent - Phase 3: Explore via CLI tools, direct tool calls, or codebase search — approach chosen by agent
- Phase 4: Verify findings documented (Behavioral Traits) + update shared state - Phase 4: Verify findings documented (Behavioral Traits) + update shared state
### Document / Content ### Document / Content
@@ -120,7 +120,7 @@ Coordinator MAY reference these patterns when composing Phase 2-4 content for a
### Code Implementation ### Code Implementation
- Phase 2: Load design/spec artifacts from upstream - Phase 2: Load design/spec artifacts from upstream
- Phase 3: Implement code changes — subagent choice and approach determined by task complexity - Phase 3: Implement code changes — CLI tool choice and approach determined by task complexity
- Phase 4: Syntax check + file verification (Behavioral Traits) + update shared state - Phase 4: Syntax check + file verification (Behavioral Traits) + update shared state
### Analysis / Audit ### Analysis / Audit

View File

@@ -1,132 +0,0 @@
# Discuss Subagent
Lightweight multi-perspective critique engine. Called inline by any role needing peer review. Perspectives are dynamic -- specified by the calling role, not pre-defined.
## Design
Unlike team-lifecycle-v4's fixed perspective definitions (product, technical, quality, risk, coverage), team-coordinate uses **dynamic perspectives** passed in the prompt. The calling role decides what viewpoints matter for its artifact.
## Invocation
Called by roles after artifact creation:
```javascript
// Multi-perspective critique using CLI tools
// The coordinator reads the artifact and launches parallel CLI analyses for each perspective
Bash({
command: `ccw cli -p "## Multi-Perspective Critique: <round-id>
### Input
- Artifact: <artifact-path>
- Round: <round-id>
- Session: <session-folder>
### Perspectives
<Dynamic perspective list -- each entry defines: name, cli_tool, role_label, focus_areas>
Example:
| Perspective | CLI Tool | Role | Focus Areas |
|-------------|----------|------|-------------|
| Feasibility | gemini | Engineer | Implementation complexity, technical risks, resource needs |
| Clarity | codex | Editor | Readability, logical flow, completeness of explanation |
| Accuracy | gemini | Domain Expert | Factual correctness, source reliability, claim verification |
### Execution Steps
1. Read artifact from <artifact-path>
2. For each perspective, launch CLI analysis in background:
Bash(command="ccw cli -p 'PURPOSE: Analyze from <role> perspective for <round-id>
TASK: <focus-areas>
MODE: analysis
CONTEXT: Artifact content below
EXPECTED: JSON with strengths[], weaknesses[], suggestions[], rating (1-5)
CONSTRAINTS: Output valid JSON only
Artifact:
<artifact-content>' --tool <cli-tool> --mode analysis", run_in_background=true)
3. Wait for all CLI results
4. Divergence detection:
- High severity: any rating <= 2, critical issue identified
- Medium severity: rating spread (max - min) >= 3, or single perspective rated <= 2 with others >= 3
- Low severity: minor suggestions only, all ratings >= 3
5. Consensus determination:
- No high-severity divergences AND average rating >= 3.0 -> consensus_reached
- Otherwise -> consensus_blocked
6. Synthesize:
- Convergent themes (agreed by 2+ perspectives)
- Divergent views (conflicting assessments)
- Action items from suggestions
7. Write discussion record to: <session-folder>/discussions/<round-id>-discussion.md
### Discussion Record Format
# Discussion Record: <round-id>
**Artifact**: <artifact-path>
**Perspectives**: <list>
**Consensus**: reached / blocked
**Average Rating**: <avg>/5
## Convergent Themes
- <theme>
## Divergent Views
- **<topic>** (<severity>): <description>
## Action Items
1. <item>
## Ratings
| Perspective | Rating |
|-------------|--------|
| <name> | <n>/5 |
### Return Value
**When consensus_reached**:
Return a summary string with:
- Verdict: consensus_reached
- Average rating
- Key action items (top 3)
- Discussion record path
**When consensus_blocked**:
Return a structured summary with:
- Verdict: consensus_blocked
- Severity: HIGH | MEDIUM | LOW
- Average rating
- Divergence summary: top 3 divergent points with perspective attribution
- Action items: prioritized list of required changes
- Recommendation: revise | proceed-with-caution | escalate
- Discussion record path
### Error Handling
- Single CLI fails -> fallback to direct Claude analysis for that perspective
- All CLI fail -> generate basic discussion from direct artifact reading
- Artifact not found -> return error immediately`
})
```
## Integration with Calling Role
The calling role is responsible for:
1. **Before calling**: Complete primary artifact output
2. **Calling**: Invoke discuss subagent with appropriate dynamic perspectives
3. **After calling**:
| Verdict | Severity | Role Action |
|---------|----------|-------------|
| consensus_reached | - | Include action items in Phase 5 report, proceed normally |
| consensus_blocked | HIGH | Include divergence details in Phase 5 SendMessage. Do NOT self-revise -- coordinator decides. |
| consensus_blocked | MEDIUM | Include warning in Phase 5 SendMessage. Proceed normally. |
| consensus_blocked | LOW | Treat as consensus_reached with notes. Proceed normally. |
**SendMessage format for consensus_blocked (HIGH or MEDIUM)**:
```
[<role>] <task-id> complete. Discuss <round-id>: consensus_blocked (severity=<severity>)
Divergences: <top-3-divergent-points>
Action items: <prioritized-items>
Recommendation: <revise|proceed-with-caution|escalate>
Artifact: <artifact-path>
Discussion: <discussion-record-path>
```

View File

@@ -1,120 +0,0 @@
# Explore Subagent
Shared codebase exploration utility with centralized caching. Callable by any role needing code context.
## Invocation
```
Agent({
subagent_type: "Explore",
run_in_background: false,
description: "Explore <angle>",
prompt: `Explore codebase for: <query>
Focus angle: <angle>
Keywords: <keyword-list>
Session folder: <session-folder>
## Cache Check
1. Read <session-folder>/explorations/cache-index.json (if exists)
2. Look for entry with matching angle
3. If found AND file exists -> read cached result, return summary
4. If not found -> proceed to exploration
## Exploration
<angle-specific-focus-from-table-below>
## Output
Write JSON to: <session-folder>/explorations/explore-<angle>.json
Update cache-index.json with new entry
## Output Schema
{
"angle": "<angle>",
"query": "<query>",
"relevant_files": [
{ "path": "...", "rationale": "...", "role": "...", "discovery_source": "...", "key_symbols": [] }
],
"patterns": [],
"dependencies": [],
"external_refs": [],
"_metadata": { "created_by": "<calling-role>", "timestamp": "...", "cache_key": "..." }
}
Return summary: file count, pattern count, top 5 files, output path`
})
```
## Cache Mechanism
### Cache Index Schema
`<session-folder>/explorations/cache-index.json`:
```json
{
"entries": [
{
"angle": "architecture",
"keywords": ["auth", "middleware"],
"file": "explore-architecture.json",
"created_by": "analyst",
"created_at": "2026-02-27T10:00:00Z",
"file_count": 15
}
]
}
```
### Cache Lookup Rules
| Condition | Action |
|-----------|--------|
| Exact angle match exists | Return cached result |
| No match | Execute exploration, cache result |
| Cache file missing but index has entry | Remove stale entry, re-explore |
### Cache Invalidation
Cache is session-scoped. No explicit invalidation needed -- each session starts fresh. If a role suspects stale data, it can pass `force_refresh: true` in the prompt to bypass cache.
## Angle Focus Guide
| Angle | Focus Points | Typical Caller |
|-------|-------------|----------------|
| architecture | Layer boundaries, design patterns, component responsibilities, ADRs | any |
| dependencies | Import chains, external libraries, circular dependencies, shared utilities | any |
| modularity | Module interfaces, separation of concerns, extraction opportunities | any |
| integration-points | API endpoints, data flow between modules, event systems | any |
| security | Auth/authz logic, input validation, sensitive data handling, middleware | any |
| dataflow | Data transformations, state propagation, validation points | any |
| performance | Bottlenecks, N+1 queries, blocking operations, algorithm complexity | any |
| error-handling | Try-catch blocks, error propagation, recovery strategies, logging | any |
| patterns | Code conventions, design patterns, naming conventions, best practices | any |
| testing | Test files, coverage gaps, test patterns, mocking strategies | any |
| general | Broad semantic search for topic-related code | any |
## Exploration Strategies
### Low Complexity (direct search)
For simple queries, use ACE semantic search:
```
mcp__ace-tool__search_context(project_root_path="<project-root>", query="<query>")
```
ACE failure fallback: `rg -l '<keywords>' --type ts`
### Medium/High Complexity (multi-angle)
For complex queries, call cli-explore-agent per angle. The calling role determines complexity and selects angles.
## Search Tool Priority
| Tool | Priority | Use Case |
|------|----------|----------|
| mcp__ace-tool__search_context | P0 | Semantic search |
| Grep / Glob | P1 | Pattern matching |
| cli-explore-agent | Deep | Multi-angle exploration |
| WebSearch | P3 | External docs |

View File

@@ -23,7 +23,7 @@ Orchestrate the team-executor workflow: session validation, state reconciliation
### MUST NOT ### MUST NOT
- Execute task work directly (delegate to workers) - Execute task work directly (delegate to workers)
- Modify task output artifacts (workers own their deliverables) - Modify task output artifacts (workers own their deliverables)
- Call implementation subagents (code-developer, etc.) directly - Call CLI tools or spawn utility members directly for implementation (code-developer, etc.)
- Generate new role-specs (use existing session role-specs only) - Generate new role-specs (use existing session role-specs only)
- Skip session validation - Skip session validation
- Override consensus_blocked HIGH without user confirmation - Override consensus_blocked HIGH without user confirmation

View File

@@ -163,7 +163,7 @@ team-executor validates the following before execution:
"responsibility_type": "<type>", "responsibility_type": "<type>",
"inner_loop": false, "inner_loop": false,
"role_spec_metadata": { "role_spec_metadata": {
"subagents": [], "additional_members": [],
"message_types": { "message_types": {
"success": "<prefix>_complete", "success": "<prefix>_complete",
"error": "error" "error": "error"

View File

@@ -1,7 +1,7 @@
--- ---
prefix: ANALYZE prefix: ANALYZE
inner_loop: false inner_loop: false
subagents: [] additional_members: []
message_types: message_types:
success: analyze_ready success: analyze_ready
error: error error: error

View File

@@ -1,7 +1,7 @@
--- ---
prefix: ARCH prefix: ARCH
inner_loop: false inner_loop: false
subagents: [] additional_members: []
message_types: message_types:
success: arch_ready success: arch_ready
error: error error: error

View File

@@ -1,7 +1,7 @@
--- ---
prefix: DEV prefix: DEV
inner_loop: true inner_loop: true
subagents: [] additional_members: []
message_types: message_types:
success: dev_complete success: dev_complete
error: error error: error

View File

@@ -1,7 +1,7 @@
--- ---
prefix: QA prefix: QA
inner_loop: false inner_loop: false
subagents: [] additional_members: []
message_types: message_types:
success: qa_passed success: qa_passed
error: error error: error

View File

@@ -1,7 +1,7 @@
--- ---
prefix: EXPLORE prefix: EXPLORE
inner_loop: false inner_loop: false
subagents: [cli-explore-agent] additional_members: []
message_types: message_types:
success: context_ready success: context_ready
error: error error: error
@@ -44,8 +44,8 @@ Bash("ccw issue status <issueId> --json")
| Score | Complexity | Strategy | | Score | Complexity | Strategy |
|-------|------------|----------| |-------|------------|----------|
| >= 4 | High | Deep exploration via cli-explore-agent | | >= 4 | High | Deep exploration via CLI tool |
| 2-3 | Medium | Hybrid: ACE search + selective agent | | 2-3 | Medium | Hybrid: ACE search + selective CLI |
| 0-1 | Low | Direct ACE search only | | 0-1 | Low | Direct ACE search only |
**Exploration execution**: **Exploration execution**:

View File

@@ -1,7 +1,7 @@
--- ---
prefix: MARSHAL prefix: MARSHAL
inner_loop: false inner_loop: false
subagents: [issue-queue-agent] additional_members: []
message_types: message_types:
success: queue_ready success: queue_ready
conflict: conflict_found conflict: conflict_found
@@ -10,7 +10,7 @@ message_types:
# Issue Integrator # Issue Integrator
Queue orchestration, conflict detection, and execution order optimization. Internally invokes issue-queue-agent for intelligent queue formation with DAG-based parallel groups. Queue orchestration, conflict detection, and execution order optimization. Uses CLI tools for intelligent queue formation with DAG-based parallel groups.
## Phase 2: Collect Bound Solutions ## Phase 2: Collect Bound Solutions

View File

@@ -2,7 +2,7 @@
prefix: SOLVE prefix: SOLVE
inner_loop: false inner_loop: false
additional_prefixes: [SOLVE-fix] additional_prefixes: [SOLVE-fix]
subagents: [issue-plan-agent] additional_members: []
message_types: message_types:
success: solution_ready success: solution_ready
multi: multi_solution multi: multi_solution
@@ -11,7 +11,7 @@ message_types:
# Issue Planner # Issue Planner
Design solutions and decompose into implementation tasks. Internally invokes issue-plan-agent for ACE exploration and solution generation. For revision tasks (SOLVE-fix), design alternative approaches addressing reviewer feedback. Design solutions and decompose into implementation tasks. Uses CLI tools for ACE exploration and solution generation. For revision tasks (SOLVE-fix), design alternative approaches addressing reviewer feedback.
## Phase 2: Context Loading ## Phase 2: Context Loading

View File

@@ -24,7 +24,7 @@ Orchestrates the issue resolution pipeline: manages task chains, spawns team-wor
- Skip review gate in full/batch modes - Skip review gate in full/batch modes
- Force-advance pipeline past failed review - Force-advance pipeline past failed review
- Modify source code directly -- delegate to implementer worker - Modify source code directly -- delegate to implementer worker
- Call implementation subagents directly (issue-plan-agent, issue-queue-agent, code-developer) - Call CLI tools or spawn utility members directly for implementation (issue-plan-agent, issue-queue-agent, code-developer)
--- ---

View File

@@ -116,7 +116,7 @@ Standard report flow after task completion:
| Share state via team_msg(type='state_update') | Create tasks for other roles | | Share state via team_msg(type='state_update') | Create tasks for other roles |
| SendMessage to coordinator | Communicate directly with other workers | | SendMessage to coordinator | Communicate directly with other workers |
**Coordinator additional restrictions**: No direct code writing, no calling implementation-type subagents, no directly executing analysis/testing/review. **Coordinator additional restrictions**: No direct code writing, no directly executing analysis/testing/review.
### Message Bus ### Message Bus

View File

@@ -43,12 +43,25 @@ Common commands: npm test, pytest, go test ./..., cargo test
| 2 | Parse results, check pass rate | | 2 | Parse results, check pass rate |
| 3 | Pass rate >= 95% -> exit loop (success) | | 3 | Pass rate >= 95% -> exit loop (success) |
| 4 | Extract failing test details | | 4 | Extract failing test details |
| 5 | Delegate fix to code-developer subagent | | 5 | Apply fix using CLI tool |
| 6 | Increment iteration counter | | 6 | Increment iteration counter |
| 7 | iteration >= MAX (5) -> exit loop (report failures) | | 7 | iteration >= MAX (5) -> exit loop (report failures) |
| 8 | Go to Step 1 | | 8 | Go to Step 1 |
**Fix delegation**: Spawn code-developer subagent with test output and changed file list. Run synchronously (run_in_background: false). **Fix delegation**: Use CLI tool to fix failing tests:
```bash
ccw cli -p "PURPOSE: Fix failing tests; success = all listed tests pass
TASK: • Analyze test failure output • Identify root cause in changed files • Apply minimal fix
MODE: write
CONTEXT: @<changed-files> | Memory: Test output from current iteration
EXPECTED: Code fixes that make failing tests pass without breaking other tests
CONSTRAINTS: Only modify files in changed list | Minimal changes
Test output: <test-failure-details>
Changed files: <file-list>" --tool gemini --mode write --rule development-debug-runtime-issues
```
Wait for CLI completion before re-running tests.
## Phase 4: Regression Check + Report ## Phase 4: Regression Check + Report

View File

@@ -0,0 +1,76 @@
---
role: architect
prefix: ARCH
inner_loop: false
discuss_rounds: []
subagents: [explore]
message_types:
success: arch_ready
concern: arch_concern
error: error
---
# Architect — Phase 2-4
## Consultation Modes
| Task Pattern | Mode | Focus |
|-------------|------|-------|
| ARCH-SPEC-* | spec-review | Review architecture docs |
| ARCH-PLAN-* | plan-review | Review plan soundness |
| ARCH-CODE-* | code-review | Assess code change impact |
| ARCH-CONSULT-* | consult | Answer architecture questions |
| ARCH-FEASIBILITY-* | feasibility | Technical feasibility |
## Phase 2: Context Loading
**Common**: session folder, wisdom, project-tech.json, explorations
**Mode-specific**:
| Mode | Additional Context |
|------|-------------------|
| spec-review | architecture/_index.md, ADR-*.md |
| plan-review | plan/plan.json |
| code-review | git diff, changed files |
| consult | Question from task description |
| feasibility | Requirements + codebase |
## Phase 3: Assessment
Analyze using mode-specific criteria. Output: mode, verdict (APPROVE/CONCERN/BLOCK), dimensions[], concerns[], recommendations[].
For complex questions → Gemini CLI with architecture review rule:
```
Bash({
command: `ccw cli -p "..." --tool gemini --mode analysis --rule analysis-review-architecture`,
run_in_background: true
})
```
## Phase 4: Report
Output to `<session-folder>/architecture/arch-<slug>.json`. Contribute decisions to wisdom/decisions.md.
**Frontend project outputs** (when frontend tech stack detected):
- `<session-folder>/architecture/design-tokens.json` — color, spacing, typography, shadow tokens
- `<session-folder>/architecture/component-specs/*.md` — per-component design spec
**Report**: mode, verdict, concern count, recommendations, output path(s).
### Coordinator Integration
| Timing | Task |
|--------|------|
| After DRAFT-003 | ARCH-SPEC-001: architecture doc review |
| After PLAN-001 | ARCH-PLAN-001: plan architecture review |
| On-demand | ARCH-CONSULT-001: architecture consultation |
## Error Handling
| Scenario | Resolution |
|----------|------------|
| Docs not found | Assess from available context |
| CLI timeout | Partial assessment |
| Insufficient context | Request explorer via coordinator |

View File

@@ -0,0 +1,67 @@
---
role: executor
prefix: IMPL
inner_loop: true
discuss_rounds: []
subagents: []
message_types:
success: impl_complete
progress: impl_progress
error: error
---
# Executor — Phase 2-4
## Phase 2: Task & Plan Loading
**Objective**: Load plan and determine execution strategy.
1. Load plan.json and .task/TASK-*.json from `<session-folder>/plan/`
**Backend selection** (priority order):
| Priority | Source | Method |
|----------|--------|--------|
| 1 | Task metadata | task.metadata.executor field |
| 2 | Plan default | "Execution Backend:" in plan |
| 3 | Auto-select | Simple (< 200 chars, no refactor) → agent; Complex → codex |
**Code review selection**:
| Priority | Source | Method |
|----------|--------|--------|
| 1 | Task metadata | task.metadata.code_review field |
| 2 | Plan default | "Code Review:" in plan |
| 3 | Auto-select | Critical keywords (auth, security, payment) → enabled |
## Phase 3: Code Implementation
**Objective**: Execute implementation across batches.
**Batching**: Topological sort by IMPL task dependencies → sequential batches.
| Backend | Invocation | Use Case |
|---------|-----------|----------|
| gemini | `ccw cli --tool gemini --mode write` (foreground) | Simple, direct edits |
| codex | `ccw cli --tool codex --mode write` (foreground) | Complex, architecture |
| qwen | `ccw cli --tool qwen --mode write` (foreground) | Alternative backend |
## Phase 4: Self-Validation
| Step | Method | Pass Criteria |
|------|--------|--------------|
| Syntax check | `tsc --noEmit` (30s) | Exit code 0 |
| Acceptance criteria | Match criteria keywords vs implementation | All addressed |
| Test detection | Find .test.ts/.spec.ts for modified files | Tests identified |
| Code review (optional) | gemini analysis or codex review | No blocking issues |
**Report**: task ID, status, files modified, validation results, backend used.
## Error Handling
| Scenario | Resolution |
|----------|------------|
| Syntax errors | Retry with error context (max 3) |
| Missing dependencies | Request from coordinator |
| Backend unavailable | Fallback to alternative tool |
| Circular dependencies | Abort, report graph |

View File

@@ -0,0 +1,79 @@
---
role: fe-developer
prefix: DEV-FE
inner_loop: false
discuss_rounds: []
subagents: []
message_types:
success: dev_fe_complete
progress: dev_fe_progress
error: error
---
# FE Developer — Phase 2-4
## Phase 2: Context Loading
**Inputs to load**:
- Plan: `<session-folder>/plan/plan.json`
- Design tokens: `<session-folder>/architecture/design-tokens.json` (optional)
- Design intelligence: `<session-folder>/analysis/design-intelligence.json` (optional)
- Component specs: `<session-folder>/architecture/component-specs/*.md` (optional)
- Shared memory, wisdom
**Tech stack detection**:
| Signal | Framework | Styling |
|--------|-----------|---------|
| react/react-dom in deps | react | - |
| vue in deps | vue | - |
| next in deps | nextjs | - |
| tailwindcss in deps | - | tailwind |
| @shadcn/ui in deps | - | shadcn |
## Phase 3: Frontend Implementation
**Step 1**: Generate design token CSS (if tokens available)
- Convert design-tokens.json → CSS custom properties (`:root { --color-*, --space-*, --text-* }`)
- Include dark mode overrides via `@media (prefers-color-scheme: dark)`
- Write to `src/styles/tokens.css`
**Step 2**: Implement components
| Task Size | Strategy |
|-----------|----------|
| Simple (<= 3 files, single component) | `ccw cli --tool gemini --mode write` (foreground) |
| Complex (system, multi-component) | `ccw cli --tool codex --mode write` (foreground) |
**Coding standards** (include in agent/CLI prompt):
- Use design token CSS variables, never hardcode colors/spacing
- Interactive elements: cursor: pointer
- Transitions: 150-300ms
- Text contrast: minimum 4.5:1
- Include focus-visible styles
- Support prefers-reduced-motion
- Responsive: mobile-first
- No emoji as functional icons
## Phase 4: Self-Validation
| Check | What |
|-------|------|
| hardcoded-color | No #hex outside tokens.css |
| cursor-pointer | Interactive elements have cursor: pointer |
| focus-styles | Interactive elements have focus styles |
| responsive | Has responsive breakpoints |
| reduced-motion | Animations respect prefers-reduced-motion |
| emoji-icon | No emoji as functional icons |
Contribute to wisdom/conventions.md. Update shared-memory.json with component inventory.
**Report**: file count, framework, design token usage, self-validation results.
## Error Handling
| Scenario | Resolution |
|----------|------------|
| Design tokens not found | Use project defaults |
| Tech stack undetected | Default HTML + CSS |
| CLI failure | Retry with alternative tool |

View File

@@ -0,0 +1,79 @@
---
role: fe-qa
prefix: QA-FE
inner_loop: false
discuss_rounds: []
subagents: []
message_types:
success: qa_fe_passed
result: qa_fe_result
fix: fix_required
error: error
---
# FE QA — Phase 2-4
## Review Dimensions
| Dimension | Weight | Focus |
|-----------|--------|-------|
| Code Quality | 25% | TypeScript types, component structure, error handling |
| Accessibility | 25% | Semantic HTML, ARIA, keyboard nav, contrast, focus-visible |
| Design Compliance | 20% | Token usage, no hardcoded colors, no emoji icons |
| UX Best Practices | 15% | Loading/error/empty states, cursor-pointer, responsive |
| Pre-Delivery | 15% | No console.log, dark mode, i18n readiness |
## Phase 2: Context Loading
**Inputs**: design tokens, design intelligence, shared memory, previous QA results (for GC round tracking), changed frontend files via git diff.
Determine GC round from previous QA results count. Max 2 rounds.
## Phase 3: 5-Dimension Review
For each changed frontend file, check against all 5 dimensions. Score each dimension 0-10, deducting for issues found.
**Scoring deductions**:
| Severity | Deduction |
|----------|-----------|
| High | -2 to -3 |
| Medium | -1 to -1.5 |
| Low | -0.5 |
**Overall score** = weighted sum of dimension scores.
**Verdict routing**:
| Condition | Verdict |
|-----------|---------|
| Score >= 8 AND no critical issues | PASS |
| GC round >= max AND score >= 6 | PASS_WITH_WARNINGS |
| GC round >= max AND score < 6 | FAIL |
| Otherwise | NEEDS_FIX |
## Phase 4: Report
Write audit to `<session-folder>/qa/audit-fe-<task>-r<round>.json`. Update wisdom and shared memory.
**Report**: round, verdict, overall score, dimension scores, critical issues with Do/Don't format, action required (if NEEDS_FIX).
### Generator-Critic Loop
Orchestrated by coordinator:
```
Round 1: DEV-FE-001 → QA-FE-001
if NEEDS_FIX → coordinator creates DEV-FE-002 + QA-FE-002
Round 2: DEV-FE-002 → QA-FE-002
if still NEEDS_FIX → PASS_WITH_WARNINGS or FAIL (max 2)
```
**Convergence**: score >= 8 AND critical_count = 0
## Error Handling
| Scenario | Resolution |
|----------|------------|
| No changed files | Report empty, score N/A |
| Design tokens not found | Skip design compliance, adjust weights |
| Max GC rounds exceeded | Force verdict |

View File

@@ -0,0 +1,98 @@
---
role: planner
prefix: PLAN
inner_loop: true
discuss_rounds: []
subagents: []
message_types:
success: plan_ready
revision: plan_revision
error: error
---
# Planner — Phase 2-4
## Phase 1.5: Load Spec Context (Full-Lifecycle)
If `<session-folder>/spec/` exists → load requirements/_index.md, architecture/_index.md, epics/_index.md, spec-config.json. Otherwise → impl-only mode.
**Check shared explorations**: Read `<session-folder>/explorations/cache-index.json` to see if analyst already cached useful explorations. Reuse rather than re-explore.
## Phase 2: Multi-Angle Exploration
**Objective**: Explore codebase to inform planning.
**Complexity routing**:
| Complexity | Criteria | Strategy |
|------------|----------|----------|
| Low | < 200 chars, no refactor/architecture keywords | ACE semantic search only |
| Medium | 200-500 chars or moderate scope | 2-3 angle explore subagent |
| High | > 500 chars, refactor/architecture, multi-module | 3-5 angle explore subagent |
For each angle, use CLI exploration (cache-aware — check cache-index.json before each call):
```
Bash({
command: `ccw cli -p "PURPOSE: Explore codebase from <angle> perspective to inform planning
TASK: • Search for <angle>-specific patterns • Identify relevant files • Document integration points
MODE: analysis
CONTEXT: @**/* | Memory: Task keywords: <keywords>
EXPECTED: JSON with: relevant_files[], patterns[], integration_points[], recommendations[]
CONSTRAINTS: Focus on <angle> perspective" --tool gemini --mode analysis --rule analysis-analyze-code-patterns`,
run_in_background: false
})
```
## Phase 3: Plan Generation
**Objective**: Generate structured implementation plan.
| Complexity | Strategy |
|------------|----------|
| Low | Direct planning → single TASK-001 with plan.json |
| Medium/High | cli-lite-planning-agent with exploration results |
**CLI call** (Medium/High):
```
Bash({
command: `ccw cli -p "PURPOSE: Generate structured implementation plan from exploration results
TASK: • Create plan.json with overview • Generate TASK-*.json files (2-7 tasks) • Define dependencies • Set convergence criteria
MODE: write
CONTEXT: @<session-folder>/explorations/*.json | Memory: Complexity: <complexity>
EXPECTED: Files: plan.json + .task/TASK-*.json. Schema: ~/.ccw/workflows/cli-templates/schemas/plan-overview-base-schema.json
CONSTRAINTS: 2-7 tasks, include id/title/files[].change/convergence.criteria/depends_on" --tool gemini --mode write --rule planning-breakdown-task-steps`,
run_in_background: false
})
```
**Spec context** (full-lifecycle): Reference REQ-* IDs, follow ADR decisions, reuse Epic/Story decomposition.
## Phase 4: Submit for Approval
1. Read plan.json and TASK-*.json
2. Report to coordinator: complexity, task count, task list, approach, plan location
3. Wait for response: approved → complete; revision → update and resubmit
**Session files**:
```
<session-folder>/explorations/ (shared cache)
+-- cache-index.json
+-- explore-<angle>.json
<session-folder>/plan/
+-- explorations-manifest.json
+-- plan.json
+-- .task/TASK-*.json
```
## Error Handling
| Scenario | Resolution |
|----------|------------|
| CLI exploration failure | Plan from description only |
| CLI planning failure | Fallback to direct planning |
| Plan rejected 3+ times | Notify coordinator, suggest alternative |
| Schema not found | Use basic structure |
| Cache index corrupt | Clear cache, re-explore all angles |

View File

@@ -0,0 +1,76 @@
---
role: tester
prefix: TEST
inner_loop: false
discuss_rounds: []
subagents: []
message_types:
success: test_result
fix: fix_required
error: error
---
# Tester — Phase 2-4
## Phase 2: Framework Detection & Test Discovery
**Framework detection** (priority order):
| Priority | Method | Frameworks |
|----------|--------|-----------|
| 1 | package.json devDependencies | vitest, jest, mocha, pytest |
| 2 | package.json scripts.test | vitest, jest, mocha, pytest |
| 3 | Config files | vitest.config.*, jest.config.*, pytest.ini |
**Affected test discovery** from executor's modified files:
- Search variants: `<name>.test.ts`, `<name>.spec.ts`, `tests/<name>.test.ts`, `__tests__/<name>.test.ts`
## Phase 3: Test Execution & Fix Cycle
**Config**: MAX_ITERATIONS=10, PASS_RATE_TARGET=95%, AFFECTED_TESTS_FIRST=true
1. Run affected tests → parse results
2. Pass rate met → run full suite
3. Failures → select strategy → fix → re-run → repeat
**Strategy selection**:
| Condition | Strategy | Behavior |
|-----------|----------|----------|
| Iteration <= 3 or pass >= 80% | Conservative | Fix one critical failure at a time |
| Critical failures < 5 | Surgical | Fix specific pattern everywhere |
| Pass < 50% or iteration > 7 | Aggressive | Fix all failures in batch |
**Test commands**:
| Framework | Affected | Full Suite |
|-----------|---------|------------|
| vitest | `vitest run <files>` | `vitest run` |
| jest | `jest <files> --no-coverage` | `jest --no-coverage` |
| pytest | `pytest <files> -v` | `pytest -v` |
## Phase 4: Result Analysis
**Failure classification**:
| Severity | Patterns |
|----------|----------|
| Critical | SyntaxError, cannot find module, undefined |
| High | Assertion failures, toBe/toEqual |
| Medium | Timeout, async errors |
| Low | Warnings, deprecations |
**Report routing**:
| Condition | Type |
|-----------|------|
| Pass rate >= target | test_result (success) |
| Pass rate < target after max iterations | fix_required |
## Error Handling
| Scenario | Resolution |
|----------|------------|
| Framework not detected | Prompt user |
| No tests found | Report to coordinator |
| Infinite fix loop | Abort after MAX_ITERATIONS |

View File

@@ -0,0 +1,192 @@
# Document Standards
Defines format conventions, YAML frontmatter schema, naming rules, and content structure for all spec-generator outputs.
## When to Use
| Phase | Usage | Section |
|-------|-------|---------|
| All Phases | Frontmatter format | YAML Frontmatter Schema |
| All Phases | File naming | Naming Conventions |
| Phase 2-5 | Document structure | Content Structure |
| Phase 6 | Validation reference | All sections |
---
## YAML Frontmatter Schema
Every generated document MUST begin with YAML frontmatter:
```yaml
---
session_id: SPEC-{slug}-{YYYY-MM-DD}
phase: {1-6}
document_type: {product-brief|requirements|architecture|epics|readiness-report|spec-summary}
status: draft|review|complete
generated_at: {ISO8601 timestamp}
stepsCompleted: []
version: 1
dependencies:
- {list of input documents used}
---
```
### Field Definitions
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `session_id` | string | Yes | Session identifier matching spec-config.json |
| `phase` | number | Yes | Phase number that generated this document (1-6) |
| `document_type` | string | Yes | One of: product-brief, requirements, architecture, epics, readiness-report, spec-summary |
| `status` | enum | Yes | draft (initial), review (user reviewed), complete (finalized) |
| `generated_at` | string | Yes | ISO8601 timestamp of generation |
| `stepsCompleted` | array | Yes | List of step IDs completed during generation |
| `version` | number | Yes | Document version, incremented on re-generation |
| `dependencies` | array | No | List of input files this document depends on |
### Status Transitions
```
draft -> review -> complete
| ^
+-------------------+ (direct promotion in auto mode)
```
- **draft**: Initial generation, not yet user-reviewed
- **review**: User has reviewed and provided feedback
- **complete**: Finalized, ready for downstream consumption
In auto mode (`-y`), documents are promoted directly from `draft` to `complete`.
---
## Naming Conventions
### Session ID Format
```
SPEC-{slug}-{YYYY-MM-DD}
```
- **slug**: Lowercase, alphanumeric + Chinese characters, hyphens as separators, max 40 chars
- **date**: UTC+8 date in YYYY-MM-DD format
Examples:
- `SPEC-task-management-system-2026-02-11`
- `SPEC-user-auth-oauth-2026-02-11`
### Output Files
| File | Phase | Description |
|------|-------|-------------|
| `spec-config.json` | 1 | Session configuration and state |
| `discovery-context.json` | 1 | Codebase exploration results (optional) |
| `product-brief.md` | 2 | Product brief document |
| `requirements.md` | 3 | PRD document |
| `architecture.md` | 4 | Architecture decisions document |
| `epics.md` | 5 | Epic/Story breakdown document |
| `readiness-report.md` | 6 | Quality validation report |
| `spec-summary.md` | 6 | One-page executive summary |
### Output Directory
```
.workflow/.spec/{session-id}/
```
---
## Content Structure
### Heading Hierarchy
- `#` (H1): Document title only (one per document)
- `##` (H2): Major sections
- `###` (H3): Subsections
- `####` (H4): Detail items (use sparingly)
Maximum depth: 4 levels. Prefer flat structures.
### Section Ordering
Every document follows this general pattern:
1. **YAML Frontmatter** (mandatory)
2. **Title** (H1)
3. **Executive Summary** (2-3 sentences)
4. **Core Content Sections** (H2, document-specific)
5. **Open Questions / Risks** (if applicable)
6. **References / Traceability** (links to upstream/downstream docs)
### Formatting Rules
| Element | Format | Example |
|---------|--------|---------|
| Requirements | `REQ-{NNN}` prefix | REQ-001: User login |
| Acceptance criteria | Checkbox list | `- [ ] User can log in with email` |
| Architecture decisions | `ADR-{NNN}` prefix | ADR-001: Use PostgreSQL |
| Epics | `EPIC-{NNN}` prefix | EPIC-001: Authentication |
| Stories | `STORY-{EPIC}-{NNN}` prefix | STORY-001-001: Login form |
| Priority tags | MoSCoW labels | `[Must]`, `[Should]`, `[Could]`, `[Won't]` |
| Mermaid diagrams | Fenced code blocks | ````mermaid ... ``` `` |
| Code examples | Language-tagged blocks | ````typescript ... ``` `` |
### Cross-Reference Format
Use relative references between documents:
```markdown
See [Product Brief](product-brief.md#section-name) for details.
Derived from [REQ-001](requirements.md#req-001).
```
### Language
- Document body: Follow user's input language (Chinese or English)
- Technical identifiers: Always English (REQ-001, ADR-001, EPIC-001)
- YAML frontmatter keys: Always English
---
## spec-config.json Schema
```json
{
"session_id": "string (required)",
"seed_input": "string (required) - original user input",
"input_type": "text|file (required)",
"timestamp": "ISO8601 (required)",
"mode": "interactive|auto (required)",
"complexity": "simple|moderate|complex (required)",
"depth": "light|standard|comprehensive (required)",
"focus_areas": ["string array"],
"seed_analysis": {
"problem_statement": "string",
"target_users": ["string array"],
"domain": "string",
"constraints": ["string array"],
"dimensions": ["string array - 3-5 exploration dimensions"]
},
"has_codebase": "boolean",
"phasesCompleted": [
{
"phase": "number (1-6)",
"name": "string (phase name)",
"output_file": "string (primary output file)",
"completed_at": "ISO8601"
}
]
}
```
---
## Validation Checklist
- [ ] Every document starts with valid YAML frontmatter
- [ ] `session_id` matches across all documents in a session
- [ ] `status` field reflects current document state
- [ ] All cross-references resolve to valid targets
- [ ] Heading hierarchy is correct (no skipped levels)
- [ ] Technical identifiers use correct prefixes
- [ ] Output files are in the correct directory

View File

@@ -0,0 +1,207 @@
# Quality Gates
Per-phase quality gate criteria and scoring dimensions for spec-generator outputs.
## When to Use
| Phase | Usage | Section |
|-------|-------|---------|
| Phase 2-5 | Post-generation self-check | Per-Phase Gates |
| Phase 6 | Cross-document validation | Cross-Document Validation |
| Phase 6 | Final scoring | Scoring Dimensions |
---
## Quality Thresholds
| Gate | Score | Action |
|------|-------|--------|
| **Pass** | >= 80% | Continue to next phase |
| **Review** | 60-79% | Log warnings, continue with caveats |
| **Fail** | < 60% | Must address issues before continuing |
In auto mode (`-y`), Review-level issues are logged but do not block progress.
---
## Scoring Dimensions
### 1. Completeness (25%)
All required sections present with substantive content.
| Score | Criteria |
|-------|----------|
| 100% | All template sections filled with detailed content |
| 75% | All sections present, some lack detail |
| 50% | Major sections present but minor sections missing |
| 25% | Multiple major sections missing or empty |
| 0% | Document is a skeleton only |
### 2. Consistency (25%)
Terminology, formatting, and references are uniform across documents.
| Score | Criteria |
|-------|----------|
| 100% | All terms consistent, all references valid, formatting uniform |
| 75% | Minor terminology variations, all references valid |
| 50% | Some inconsistent terms, 1-2 broken references |
| 25% | Frequent inconsistencies, multiple broken references |
| 0% | Documents contradict each other |
### 3. Traceability (25%)
Requirements, architecture decisions, and stories trace back to goals.
| Score | Criteria |
|-------|----------|
| 100% | Every story traces to a requirement, every requirement traces to a goal |
| 75% | Most items traceable, few orphans |
| 50% | Partial traceability, some disconnected items |
| 25% | Weak traceability, many orphan items |
| 0% | No traceability between documents |
### 4. Depth (25%)
Content provides sufficient detail for execution teams.
| Score | Criteria |
|-------|----------|
| 100% | Acceptance criteria specific and testable, architecture decisions justified, stories estimable |
| 75% | Most items detailed enough, few vague areas |
| 50% | Mix of detailed and vague content |
| 25% | Mostly high-level, lacking actionable detail |
| 0% | Too abstract for execution |
---
## Per-Phase Quality Gates
### Phase 1: Discovery
| Check | Criteria | Severity |
|-------|----------|----------|
| Session ID valid | Matches `SPEC-{slug}-{date}` format | Error |
| Problem statement exists | Non-empty, >= 20 characters | Error |
| Target users identified | >= 1 user group | Error |
| Dimensions generated | 3-5 exploration dimensions | Warning |
| Constraints listed | >= 0 (can be empty with justification) | Info |
### Phase 2: Product Brief
| Check | Criteria | Severity |
|-------|----------|----------|
| Vision statement | Clear, 1-3 sentences | Error |
| Problem statement | Specific and measurable | Error |
| Target users | >= 1 persona with needs described | Error |
| Goals defined | >= 2 measurable goals | Error |
| Success metrics | >= 2 quantifiable metrics | Warning |
| Scope boundaries | In-scope and out-of-scope listed | Warning |
| Multi-perspective | >= 2 CLI perspectives synthesized | Info |
### Phase 3: Requirements (PRD)
| Check | Criteria | Severity |
|-------|----------|----------|
| Functional requirements | >= 3 with REQ-NNN IDs | Error |
| Acceptance criteria | Every requirement has >= 1 criterion | Error |
| MoSCoW priority | Every requirement tagged | Error |
| Non-functional requirements | >= 1 (performance, security, etc.) | Warning |
| User stories | >= 1 per Must-have requirement | Warning |
| Traceability | Requirements trace to product brief goals | Warning |
### Phase 4: Architecture
| Check | Criteria | Severity |
|-------|----------|----------|
| Component diagram | Present (Mermaid or ASCII) | Error |
| Tech stack specified | Languages, frameworks, key libraries | Error |
| ADR present | >= 1 Architecture Decision Record | Error |
| ADR has alternatives | Each ADR lists >= 2 options considered | Warning |
| Integration points | External systems/APIs identified | Warning |
| Data model | Key entities and relationships described | Warning |
| Codebase mapping | Mapped to existing code (if has_codebase) | Info |
### Phase 5: Epics & Stories
| Check | Criteria | Severity |
|-------|----------|----------|
| Epics defined | 3-7 epics with EPIC-NNN IDs | Error |
| MVP subset | >= 1 epic tagged as MVP | Error |
| Stories per epic | 2-5 stories per epic | Error |
| Story format | "As a...I want...So that..." pattern | Warning |
| Dependency map | Cross-epic dependencies documented | Warning |
| Estimation hints | Relative sizing (S/M/L/XL) per story | Info |
| Traceability | Stories trace to requirements | Warning |
### Phase 6: Readiness Check
| Check | Criteria | Severity |
|-------|----------|----------|
| All documents exist | product-brief, requirements, architecture, epics | Error |
| Frontmatter valid | All YAML frontmatter parseable and correct | Error |
| Cross-references valid | All document links resolve | Error |
| Overall score >= 60% | Weighted average across 4 dimensions | Error |
| No unresolved Errors | All Error-severity issues addressed | Error |
| Summary generated | spec-summary.md created | Warning |
---
## Cross-Document Validation
Checks performed during Phase 6 across all documents:
### Completeness Matrix
```
Product Brief goals -> Requirements (each goal has >= 1 requirement)
Requirements -> Architecture (each Must requirement has design coverage)
Requirements -> Epics (each Must requirement appears in >= 1 story)
Architecture ADRs -> Epics (tech choices reflected in implementation stories)
```
### Consistency Checks
| Check | Documents | Rule |
|-------|-----------|------|
| Terminology | All | Same term used consistently (no synonyms for same concept) |
| User personas | Brief + PRD + Epics | Same user names/roles throughout |
| Scope | Brief + PRD | PRD scope does not exceed brief scope |
| Tech stack | Architecture + Epics | Stories reference correct technologies |
### Traceability Matrix Format
```markdown
| Goal | Requirements | Architecture | Epics |
|------|-------------|--------------|-------|
| G-001: ... | REQ-001, REQ-002 | ADR-001 | EPIC-001 |
| G-002: ... | REQ-003 | ADR-002 | EPIC-002, EPIC-003 |
```
---
## Issue Classification
### Error (Must Fix)
- Missing required document or section
- Broken cross-references
- Contradictory information between documents
- Empty acceptance criteria on Must-have requirements
- No MVP subset defined in epics
### Warning (Should Fix)
- Vague acceptance criteria
- Missing non-functional requirements
- No success metrics defined
- Incomplete traceability
- Missing architecture review notes
### Info (Nice to Have)
- Could add more detailed personas
- Consider additional ADR alternatives
- Story estimation hints missing
- Mermaid diagrams could be more detailed

View File

@@ -0,0 +1,254 @@
# Architecture Document Template (Directory Structure)
Template for generating architecture decision documents as a directory of individual ADR files in Phase 4.
## Usage Context
| Phase | Usage |
|-------|-------|
| Phase 4 (Architecture) | Generate `architecture/` directory from requirements analysis |
| Output Location | `{workDir}/architecture/` |
## Output Structure
```
{workDir}/architecture/
├── _index.md # Overview, components, tech stack, data model, security
├── ADR-001-{slug}.md # Individual Architecture Decision Record
├── ADR-002-{slug}.md
└── ...
```
---
## Template: _index.md
```markdown
---
session_id: {session_id}
phase: 4
document_type: architecture-index
status: draft
generated_at: {timestamp}
version: 1
dependencies:
- ../spec-config.json
- ../product-brief.md
- ../requirements/_index.md
---
# Architecture: {product_name}
{executive_summary - high-level architecture approach and key decisions}
## System Overview
### Architecture Style
{description of chosen architecture style: microservices, monolith, serverless, etc.}
### System Context Diagram
```mermaid
C4Context
title System Context Diagram
Person(user, "User", "Primary user")
System(system, "{product_name}", "Core system")
System_Ext(ext1, "{external_system}", "{description}")
Rel(user, system, "Uses")
Rel(system, ext1, "Integrates with")
```
## Component Architecture
### Component Diagram
```mermaid
graph TD
subgraph "{product_name}"
A[Component A] --> B[Component B]
B --> C[Component C]
A --> D[Component D]
end
B --> E[External Service]
```
### Component Descriptions
| Component | Responsibility | Technology | Dependencies |
|-----------|---------------|------------|--------------|
| {component_name} | {what it does} | {tech stack} | {depends on} |
## Technology Stack
### Core Technologies
| Layer | Technology | Version | Rationale |
|-------|-----------|---------|-----------|
| Frontend | {technology} | {version} | {why chosen} |
| Backend | {technology} | {version} | {why chosen} |
| Database | {technology} | {version} | {why chosen} |
| Infrastructure | {technology} | {version} | {why chosen} |
### Key Libraries & Frameworks
| Library | Purpose | License |
|---------|---------|---------|
| {library_name} | {purpose} | {license} |
## Architecture Decision Records
| ADR | Title | Status | Key Choice |
|-----|-------|--------|------------|
| [ADR-001](ADR-001-{slug}.md) | {title} | Accepted | {one-line summary} |
| [ADR-002](ADR-002-{slug}.md) | {title} | Accepted | {one-line summary} |
| [ADR-003](ADR-003-{slug}.md) | {title} | Proposed | {one-line summary} |
## Data Architecture
### Data Model
```mermaid
erDiagram
ENTITY_A ||--o{ ENTITY_B : "has many"
ENTITY_A {
string id PK
string name
datetime created_at
}
ENTITY_B {
string id PK
string entity_a_id FK
string value
}
```
### Data Storage Strategy
| Data Type | Storage | Retention | Backup |
|-----------|---------|-----------|--------|
| {type} | {storage solution} | {retention policy} | {backup strategy} |
## API Design
### API Overview
| Endpoint | Method | Purpose | Auth |
|----------|--------|---------|------|
| {/api/resource} | {GET/POST/etc} | {purpose} | {auth type} |
## Security Architecture
### Security Controls
| Control | Implementation | Requirement |
|---------|---------------|-------------|
| Authentication | {approach} | [NFR-S-{NNN}](../requirements/NFR-S-{NNN}-{slug}.md) |
| Authorization | {approach} | [NFR-S-{NNN}](../requirements/NFR-S-{NNN}-{slug}.md) |
| Data Protection | {approach} | [NFR-S-{NNN}](../requirements/NFR-S-{NNN}-{slug}.md) |
## Infrastructure & Deployment
### Deployment Architecture
{description of deployment model: containers, serverless, VMs, etc.}
### Environment Strategy
| Environment | Purpose | Configuration |
|-------------|---------|---------------|
| Development | Local development | {config} |
| Staging | Pre-production testing | {config} |
| Production | Live system | {config} |
## Codebase Integration
{if has_codebase is true:}
### Existing Code Mapping
| New Component | Existing Module | Integration Type | Notes |
|--------------|----------------|------------------|-------|
| {component} | {existing module path} | Extend/Replace/New | {notes} |
### Migration Notes
{any migration considerations for existing code}
## Quality Attributes
| Attribute | Target | Measurement | ADR Reference |
|-----------|--------|-------------|---------------|
| Performance | {target} | {how measured} | [ADR-{NNN}](ADR-{NNN}-{slug}.md) |
| Scalability | {target} | {how measured} | [ADR-{NNN}](ADR-{NNN}-{slug}.md) |
| Reliability | {target} | {how measured} | [ADR-{NNN}](ADR-{NNN}-{slug}.md) |
## Risks & Mitigations
| Risk | Impact | Probability | Mitigation |
|------|--------|-------------|------------|
| {risk} | High/Medium/Low | High/Medium/Low | {mitigation approach} |
## Open Questions
- [ ] {architectural question 1}
- [ ] {architectural question 2}
## References
- Derived from: [Requirements](../requirements/_index.md), [Product Brief](../product-brief.md)
- Next: [Epics & Stories](../epics/_index.md)
```
---
## Template: ADR-NNN-{slug}.md (Individual Architecture Decision Record)
```markdown
---
id: ADR-{NNN}
status: Accepted
traces_to: [{REQ-NNN}, {NFR-X-NNN}]
date: {timestamp}
---
# ADR-{NNN}: {decision_title}
## Context
{what is the situation that motivates this decision}
## Decision
{what is the chosen approach}
## Alternatives Considered
| Option | Pros | Cons |
|--------|------|------|
| {option_1 - chosen} | {pros} | {cons} |
| {option_2} | {pros} | {cons} |
| {option_3} | {pros} | {cons} |
## Consequences
- **Positive**: {positive outcomes}
- **Negative**: {tradeoffs accepted}
- **Risks**: {risks to monitor}
## Traces
- **Requirements**: [REQ-{NNN}](../requirements/REQ-{NNN}-{slug}.md), [NFR-X-{NNN}](../requirements/NFR-X-{NNN}-{slug}.md)
- **Implemented by**: [EPIC-{NNN}](../epics/EPIC-{NNN}-{slug}.md) (added in Phase 5)
```
---
## Variable Descriptions
| Variable | Source | Description |
|----------|--------|-------------|
| `{session_id}` | spec-config.json | Session identifier |
| `{timestamp}` | Runtime | ISO8601 generation timestamp |
| `{product_name}` | product-brief.md | Product/feature name |
| `{NNN}` | Auto-increment | ADR/requirement number |
| `{slug}` | Auto-generated | Kebab-case from decision title |
| `{has_codebase}` | spec-config.json | Whether existing codebase exists |

View File

@@ -0,0 +1,196 @@
# Epics & Stories Template (Directory Structure)
Template for generating epic/story breakdown as a directory of individual Epic files in Phase 5.
## Usage Context
| Phase | Usage |
|-------|-------|
| Phase 5 (Epics & Stories) | Generate `epics/` directory from requirements decomposition |
| Output Location | `{workDir}/epics/` |
## Output Structure
```
{workDir}/epics/
├── _index.md # Overview table + dependency map + MVP scope + execution order
├── EPIC-001-{slug}.md # Individual Epic with its Stories
├── EPIC-002-{slug}.md
└── ...
```
---
## Template: _index.md
```markdown
---
session_id: {session_id}
phase: 5
document_type: epics-index
status: draft
generated_at: {timestamp}
version: 1
dependencies:
- ../spec-config.json
- ../product-brief.md
- ../requirements/_index.md
- ../architecture/_index.md
---
# Epics & Stories: {product_name}
{executive_summary - overview of epic structure and MVP scope}
## Epic Overview
| Epic ID | Title | Priority | MVP | Stories | Est. Size |
|---------|-------|----------|-----|---------|-----------|
| [EPIC-001](EPIC-001-{slug}.md) | {title} | Must | Yes | {n} | {S/M/L/XL} |
| [EPIC-002](EPIC-002-{slug}.md) | {title} | Must | Yes | {n} | {S/M/L/XL} |
| [EPIC-003](EPIC-003-{slug}.md) | {title} | Should | No | {n} | {S/M/L/XL} |
## Dependency Map
```mermaid
graph LR
EPIC-001 --> EPIC-002
EPIC-001 --> EPIC-003
EPIC-002 --> EPIC-004
EPIC-003 --> EPIC-005
```
### Dependency Notes
{explanation of why these dependencies exist and suggested execution order}
### Recommended Execution Order
1. [EPIC-{NNN}](EPIC-{NNN}-{slug}.md): {reason - foundational}
2. [EPIC-{NNN}](EPIC-{NNN}-{slug}.md): {reason - depends on #1}
3. ...
## MVP Scope
### MVP Epics
{list of epics included in MVP with justification, linking to each}
### MVP Definition of Done
- [ ] {MVP completion criterion 1}
- [ ] {MVP completion criterion 2}
- [ ] {MVP completion criterion 3}
## Traceability Matrix
| Requirement | Epic | Stories | Architecture |
|-------------|------|---------|--------------|
| [REQ-001](../requirements/REQ-001-{slug}.md) | [EPIC-001](EPIC-001-{slug}.md) | STORY-001-001, STORY-001-002 | [ADR-001](../architecture/ADR-001-{slug}.md) |
| [REQ-002](../requirements/REQ-002-{slug}.md) | [EPIC-001](EPIC-001-{slug}.md) | STORY-001-003 | Component B |
| [REQ-003](../requirements/REQ-003-{slug}.md) | [EPIC-002](EPIC-002-{slug}.md) | STORY-002-001 | [ADR-002](../architecture/ADR-002-{slug}.md) |
## Estimation Summary
| Size | Meaning | Count |
|------|---------|-------|
| S | Small - well-understood, minimal risk | {n} |
| M | Medium - some complexity, moderate risk | {n} |
| L | Large - significant complexity, should consider splitting | {n} |
| XL | Extra Large - high complexity, must split before implementation | {n} |
## Risks & Considerations
| Risk | Affected Epics | Mitigation |
|------|---------------|------------|
| {risk description} | [EPIC-{NNN}](EPIC-{NNN}-{slug}.md) | {mitigation} |
## Open Questions
- [ ] {question about scope or implementation 1}
- [ ] {question about scope or implementation 2}
## References
- Derived from: [Requirements](../requirements/_index.md), [Architecture](../architecture/_index.md)
- Handoff to: execution workflows (lite-plan, plan, req-plan)
```
---
## Template: EPIC-NNN-{slug}.md (Individual Epic)
```markdown
---
id: EPIC-{NNN}
priority: {Must|Should|Could}
mvp: {true|false}
size: {S|M|L|XL}
requirements: [REQ-{NNN}]
architecture: [ADR-{NNN}]
dependencies: [EPIC-{NNN}]
status: draft
---
# EPIC-{NNN}: {epic_title}
**Priority**: {Must|Should|Could}
**MVP**: {Yes|No}
**Estimated Size**: {S|M|L|XL}
## Description
{detailed epic description}
## Requirements
- [REQ-{NNN}](../requirements/REQ-{NNN}-{slug}.md): {title}
- [REQ-{NNN}](../requirements/REQ-{NNN}-{slug}.md): {title}
## Architecture
- [ADR-{NNN}](../architecture/ADR-{NNN}-{slug}.md): {title}
- Component: {component_name}
## Dependencies
- [EPIC-{NNN}](EPIC-{NNN}-{slug}.md) (blocking): {reason}
- [EPIC-{NNN}](EPIC-{NNN}-{slug}.md) (soft): {reason}
## Stories
### STORY-{EPIC}-001: {story_title}
**User Story**: As a {persona}, I want to {action} so that {benefit}.
**Acceptance Criteria**:
- [ ] {criterion 1}
- [ ] {criterion 2}
- [ ] {criterion 3}
**Size**: {S|M|L|XL}
**Traces to**: [REQ-{NNN}](../requirements/REQ-{NNN}-{slug}.md)
---
### STORY-{EPIC}-002: {story_title}
**User Story**: As a {persona}, I want to {action} so that {benefit}.
**Acceptance Criteria**:
- [ ] {criterion 1}
- [ ] {criterion 2}
**Size**: {S|M|L|XL}
**Traces to**: [REQ-{NNN}](../requirements/REQ-{NNN}-{slug}.md)
```
---
## Variable Descriptions
| Variable | Source | Description |
|----------|--------|-------------|
| `{session_id}` | spec-config.json | Session identifier |
| `{timestamp}` | Runtime | ISO8601 generation timestamp |
| `{product_name}` | product-brief.md | Product/feature name |
| `{EPIC}` | Auto-increment | Epic number (3 digits) |
| `{NNN}` | Auto-increment | Story/requirement number |
| `{slug}` | Auto-generated | Kebab-case from epic/story title |
| `{S\|M\|L\|XL}` | CLI analysis | Relative size estimate |

View File

@@ -0,0 +1,133 @@
# Product Brief Template
Template for generating product brief documents in Phase 2.
## Usage Context
| Phase | Usage |
|-------|-------|
| Phase 2 (Product Brief) | Generate product-brief.md from multi-CLI analysis |
| Output Location | `{workDir}/product-brief.md` |
---
## Template
```markdown
---
session_id: {session_id}
phase: 2
document_type: product-brief
status: draft
generated_at: {timestamp}
stepsCompleted: []
version: 1
dependencies:
- spec-config.json
---
# Product Brief: {product_name}
{executive_summary - 2-3 sentences capturing the essence of the product/feature}
## Vision
{vision_statement - clear, aspirational 1-3 sentence statement of what success looks like}
## Problem Statement
### Current Situation
{description of the current state and pain points}
### Impact
{quantified impact of the problem - who is affected, how much, how often}
## Target Users
{for each user persona:}
### {Persona Name}
- **Role**: {user's role/context}
- **Needs**: {primary needs related to this product}
- **Pain Points**: {current frustrations}
- **Success Criteria**: {what success looks like for this user}
## Goals & Success Metrics
| Goal ID | Goal | Success Metric | Target |
|---------|------|----------------|--------|
| G-001 | {goal description} | {measurable metric} | {specific target} |
| G-002 | {goal description} | {measurable metric} | {specific target} |
## Scope
### In Scope
- {feature/capability 1}
- {feature/capability 2}
- {feature/capability 3}
### Out of Scope
- {explicitly excluded item 1}
- {explicitly excluded item 2}
### Assumptions
- {key assumption 1}
- {key assumption 2}
## Competitive Landscape
| Aspect | Current State | Proposed Solution | Advantage |
|--------|--------------|-------------------|-----------|
| {aspect} | {how it's done now} | {our approach} | {differentiator} |
## Constraints & Dependencies
### Technical Constraints
- {constraint 1}
- {constraint 2}
### Business Constraints
- {constraint 1}
### Dependencies
- {external dependency 1}
- {external dependency 2}
## Multi-Perspective Synthesis
### Product Perspective
{summary of product/market analysis findings}
### Technical Perspective
{summary of technical feasibility and constraints}
### User Perspective
{summary of user journey and UX considerations}
### Convergent Themes
{themes where all perspectives agree}
### Conflicting Views
{areas where perspectives differ, with notes on resolution approach}
## Open Questions
- [ ] {unresolved question 1}
- [ ] {unresolved question 2}
## References
- Derived from: [spec-config.json](spec-config.json)
- Next: [Requirements PRD](requirements.md)
```
## Variable Descriptions
| Variable | Source | Description |
|----------|--------|-------------|
| `{session_id}` | spec-config.json | Session identifier |
| `{timestamp}` | Runtime | ISO8601 generation timestamp |
| `{product_name}` | Seed analysis | Product/feature name |
| `{executive_summary}` | CLI synthesis | 2-3 sentence summary |
| `{vision_statement}` | CLI product perspective | Aspirational vision |
| All `{...}` fields | CLI analysis outputs | Filled from multi-perspective analysis |

View File

@@ -0,0 +1,224 @@
# Requirements PRD Template (Directory Structure)
Template for generating Product Requirements Document as a directory of individual requirement files in Phase 3.
## Usage Context
| Phase | Usage |
|-------|-------|
| Phase 3 (Requirements) | Generate `requirements/` directory from product brief expansion |
| Output Location | `{workDir}/requirements/` |
## Output Structure
```
{workDir}/requirements/
├── _index.md # Summary + MoSCoW table + traceability matrix + links
├── REQ-001-{slug}.md # Individual functional requirement
├── REQ-002-{slug}.md
├── NFR-P-001-{slug}.md # Non-functional: Performance
├── NFR-S-001-{slug}.md # Non-functional: Security
├── NFR-SC-001-{slug}.md # Non-functional: Scalability
├── NFR-U-001-{slug}.md # Non-functional: Usability
└── ...
```
---
## Template: _index.md
```markdown
---
session_id: {session_id}
phase: 3
document_type: requirements-index
status: draft
generated_at: {timestamp}
version: 1
dependencies:
- ../spec-config.json
- ../product-brief.md
---
# Requirements: {product_name}
{executive_summary - brief overview of what this PRD covers and key decisions}
## Requirement Summary
| Priority | Count | Coverage |
|----------|-------|----------|
| Must Have | {n} | {description of must-have scope} |
| Should Have | {n} | {description of should-have scope} |
| Could Have | {n} | {description of could-have scope} |
| Won't Have | {n} | {description of explicitly excluded} |
## Functional Requirements
| ID | Title | Priority | Traces To |
|----|-------|----------|-----------|
| [REQ-001](REQ-001-{slug}.md) | {title} | Must | [G-001](../product-brief.md#goals--success-metrics) |
| [REQ-002](REQ-002-{slug}.md) | {title} | Must | [G-001](../product-brief.md#goals--success-metrics) |
| [REQ-003](REQ-003-{slug}.md) | {title} | Should | [G-002](../product-brief.md#goals--success-metrics) |
## Non-Functional Requirements
### Performance
| ID | Title | Target |
|----|-------|--------|
| [NFR-P-001](NFR-P-001-{slug}.md) | {title} | {target value} |
### Security
| ID | Title | Standard |
|----|-------|----------|
| [NFR-S-001](NFR-S-001-{slug}.md) | {title} | {standard/framework} |
### Scalability
| ID | Title | Target |
|----|-------|--------|
| [NFR-SC-001](NFR-SC-001-{slug}.md) | {title} | {target value} |
### Usability
| ID | Title | Target |
|----|-------|--------|
| [NFR-U-001](NFR-U-001-{slug}.md) | {title} | {target value} |
## Data Requirements
### Data Entities
| Entity | Description | Key Attributes |
|--------|-------------|----------------|
| {entity_name} | {description} | {attr1, attr2, attr3} |
### Data Flows
{description of key data flows, optionally with Mermaid diagram}
## Integration Requirements
| System | Direction | Protocol | Data Format | Notes |
|--------|-----------|----------|-------------|-------|
| {system_name} | Inbound/Outbound/Both | {REST/gRPC/etc} | {JSON/XML/etc} | {notes} |
## Constraints & Assumptions
### Constraints
- {technical or business constraint 1}
- {technical or business constraint 2}
### Assumptions
- {assumption 1 - must be validated}
- {assumption 2 - must be validated}
## Priority Rationale
{explanation of MoSCoW prioritization decisions, especially for Should/Could boundaries}
## Traceability Matrix
| Goal | Requirements |
|------|-------------|
| G-001 | [REQ-001](REQ-001-{slug}.md), [REQ-002](REQ-002-{slug}.md), [NFR-P-001](NFR-P-001-{slug}.md) |
| G-002 | [REQ-003](REQ-003-{slug}.md), [NFR-S-001](NFR-S-001-{slug}.md) |
## Open Questions
- [ ] {unresolved question 1}
- [ ] {unresolved question 2}
## References
- Derived from: [Product Brief](../product-brief.md)
- Next: [Architecture](../architecture/_index.md)
```
---
## Template: REQ-NNN-{slug}.md (Individual Functional Requirement)
```markdown
---
id: REQ-{NNN}
type: functional
priority: {Must|Should|Could|Won't}
traces_to: [G-{NNN}]
status: draft
---
# REQ-{NNN}: {requirement_title}
**Priority**: {Must|Should|Could|Won't}
## Description
{detailed requirement description}
## User Story
As a {persona}, I want to {action} so that {benefit}.
## Acceptance Criteria
- [ ] {specific, testable criterion 1}
- [ ] {specific, testable criterion 2}
- [ ] {specific, testable criterion 3}
## Traces
- **Goal**: [G-{NNN}](../product-brief.md#goals--success-metrics)
- **Architecture**: [ADR-{NNN}](../architecture/ADR-{NNN}-{slug}.md) (if applicable)
- **Implemented by**: [EPIC-{NNN}](../epics/EPIC-{NNN}-{slug}.md) (added in Phase 5)
```
---
## Template: NFR-{type}-NNN-{slug}.md (Individual Non-Functional Requirement)
```markdown
---
id: NFR-{type}-{NNN}
type: non-functional
category: {Performance|Security|Scalability|Usability}
priority: {Must|Should|Could}
status: draft
---
# NFR-{type}-{NNN}: {requirement_title}
**Category**: {Performance|Security|Scalability|Usability}
**Priority**: {Must|Should|Could}
## Requirement
{detailed requirement description}
## Metric & Target
| Metric | Target | Measurement Method |
|--------|--------|--------------------|
| {metric} | {target value} | {how measured} |
## Traces
- **Goal**: [G-{NNN}](../product-brief.md#goals--success-metrics)
- **Architecture**: [ADR-{NNN}](../architecture/ADR-{NNN}-{slug}.md) (if applicable)
```
---
## Variable Descriptions
| Variable | Source | Description |
|----------|--------|-------------|
| `{session_id}` | spec-config.json | Session identifier |
| `{timestamp}` | Runtime | ISO8601 generation timestamp |
| `{product_name}` | product-brief.md | Product/feature name |
| `{NNN}` | Auto-increment | Requirement number (zero-padded 3 digits) |
| `{slug}` | Auto-generated | Kebab-case from requirement title |
| `{type}` | Category | P (Performance), S (Security), SC (Scalability), U (Usability) |
| `{Must\|Should\|Could\|Won't}` | User input / auto | MoSCoW priority tag |

View File

@@ -34,10 +34,10 @@ Unified team skill: specification -> implementation -> testing -> review. Built
| fe-qa | | fe-qa |
+--------+ +--------+
Subagents (callable by any worker, not team members): Utility Functions (callable by workers):
[discuss-subagent] - multi-perspective critique [multi-perspective discussion] - CLI tools for critique
[explore-subagent] - codebase exploration with cache [codebase exploration] - Explore agent with cache
[doc-generation] - document generation (CLI execution) [document generation] - CLI execution
``` ```
## Role Router ## Role Router
@@ -63,13 +63,13 @@ Parse `$ARGUMENTS`. No `--role` needed — always routes to coordinator.
| fe-developer | [role-specs/fe-developer.md](role-specs/fe-developer.md) | DEV-FE-* | frontend | false | | fe-developer | [role-specs/fe-developer.md](role-specs/fe-developer.md) | DEV-FE-* | frontend | false |
| fe-qa | [role-specs/fe-qa.md](role-specs/fe-qa.md) | QA-FE-* | frontend | false | | fe-qa | [role-specs/fe-qa.md](role-specs/fe-qa.md) | QA-FE-* | frontend | false |
### Subagent Registry ### Utility Functions
| Subagent | Spec | Callable By | Purpose | | Function | Implementation | Callable By | Purpose |
|----------|------|-------------|---------| |----------|----------------|-------------|---------|
| discuss | [subagents/discuss-subagent.md](subagents/discuss-subagent.md) | analyst, writer, reviewer | Multi-perspective critique | | Multi-perspective discussion | CLI tools (ccw cli --mode analysis) | analyst, writer, reviewer | Multi-perspective critique |
| explore | [subagents/explore-subagent.md](subagents/explore-subagent.md) | analyst, planner, any role | Codebase exploration with cache | | Codebase exploration | Explore agent | analyst, planner, any role | Codebase exploration with cache |
| doc-generation | [subagents/doc-generation-subagent.md](subagents/doc-generation-subagent.md) | writer | Document generation (CLI execution) | | Document generation | CLI tools (ccw cli --mode write) | writer | Document generation |
### Dispatch ### Dispatch
@@ -306,9 +306,6 @@ Coordinator supports `--resume` / `--continue` for interrupted sessions:
| Requirements Template | [templates/requirements-prd.md](templates/requirements-prd.md) | DRAFT-002 | | Requirements Template | [templates/requirements-prd.md](templates/requirements-prd.md) | DRAFT-002 |
| Architecture Template | [templates/architecture-doc.md](templates/architecture-doc.md) | DRAFT-003 | | Architecture Template | [templates/architecture-doc.md](templates/architecture-doc.md) | DRAFT-003 |
| Epics Template | [templates/epics-template.md](templates/epics-template.md) | DRAFT-004 | | Epics Template | [templates/epics-template.md](templates/epics-template.md) | DRAFT-004 |
| Discuss Subagent | [subagents/discuss-subagent.md](subagents/discuss-subagent.md) | Inline discuss protocol |
| Explore Subagent | [subagents/explore-subagent.md](subagents/explore-subagent.md) | Shared exploration utility |
| Doc-Gen Subagent | [subagents/doc-generation-subagent.md](subagents/doc-generation-subagent.md) | Document generation engine |
## Error Handling ## Error Handling
@@ -317,6 +314,6 @@ Coordinator supports `--resume` / `--continue` for interrupted sessions:
| Unknown command | Error with available command list | | Unknown command | Error with available command list |
| Role spec file not found | Error with expected path | | Role spec file not found | Error with expected path |
| Command file not found | Fallback to inline execution | | Command file not found | Fallback to inline execution |
| Discuss subagent fails | Worker proceeds without discuss, logs warning | | Multi-perspective discussion fails | Worker proceeds without discuss, logs warning |
| Explore cache corrupt | Clear cache, re-explore | | Explore cache corrupt | Clear cache, re-explore |
| Fast-advance spawns wrong task | Coordinator reconciles on next callback | | Fast-advance spawns wrong task | Coordinator reconciles on next callback |

View File

@@ -3,7 +3,7 @@ role: analyst
prefix: RESEARCH prefix: RESEARCH
inner_loop: false inner_loop: false
discuss_rounds: [DISCUSS-001] discuss_rounds: [DISCUSS-001]
subagents: [discuss] cli_tools: [discuss]
message_types: message_types:
success: research_ready success: research_ready
progress: research_progress progress: research_progress
@@ -76,7 +76,7 @@ Parse CLI output to build codebase context: tech_stack, architecture_patterns, c
### 4b: Inline Discuss (DISCUSS-001) ### 4b: Inline Discuss (DISCUSS-001)
Call discuss subagent with: Invoke multi-perspective discussion using CLI tools:
- Artifact: `<session-folder>/spec/discovery-context.json` - Artifact: `<session-folder>/spec/discovery-context.json`
- Round: DISCUSS-001 - Round: DISCUSS-001
- Perspectives: product, risk, coverage - Perspectives: product, risk, coverage
@@ -93,4 +93,4 @@ Handle discuss verdict per team-worker consensus handling protocol.
| Codebase detection failed | Continue as new project | | Codebase detection failed | Continue as new project |
| Topic too vague | Report with clarification questions | | Topic too vague | Report with clarification questions |
| CLI exploration fails | Continue without codebase context | | CLI exploration fails | Continue without codebase context |
| Discuss subagent fails | Proceed without discuss, log warning | | Multi-perspective discussion fails | Proceed without discuss, log warning |

View File

@@ -3,7 +3,7 @@ role: architect
prefix: ARCH prefix: ARCH
inner_loop: false inner_loop: false
discuss_rounds: [] discuss_rounds: []
subagents: [explore] cli_tools: [explore]
message_types: message_types:
success: arch_ready success: arch_ready
concern: arch_concern concern: arch_concern

View File

@@ -3,7 +3,7 @@ role: executor
prefix: IMPL prefix: IMPL
inner_loop: true inner_loop: true
discuss_rounds: [] discuss_rounds: []
subagents: [] cli_tools: []
message_types: message_types:
success: impl_complete success: impl_complete
progress: impl_progress progress: impl_progress

View File

@@ -3,7 +3,7 @@ role: fe-developer
prefix: DEV-FE prefix: DEV-FE
inner_loop: false inner_loop: false
discuss_rounds: [] discuss_rounds: []
subagents: [] cli_tools: []
message_types: message_types:
success: dev_fe_complete success: dev_fe_complete
progress: dev_fe_progress progress: dev_fe_progress

View File

@@ -3,7 +3,7 @@ role: fe-qa
prefix: QA-FE prefix: QA-FE
inner_loop: false inner_loop: false
discuss_rounds: [] discuss_rounds: []
subagents: [] cli_tools: []
message_types: message_types:
success: qa_fe_passed success: qa_fe_passed
result: qa_fe_result result: qa_fe_result

View File

@@ -3,7 +3,7 @@ role: planner
prefix: PLAN prefix: PLAN
inner_loop: true inner_loop: true
discuss_rounds: [] discuss_rounds: []
subagents: [] cli_tools: [explore]
message_types: message_types:
success: plan_ready success: plan_ready
revision: plan_revision revision: plan_revision
@@ -27,8 +27,8 @@ If `<session-folder>/spec/` exists → load requirements/_index.md, architecture
| Complexity | Criteria | Strategy | | Complexity | Criteria | Strategy |
|------------|----------|----------| |------------|----------|----------|
| Low | < 200 chars, no refactor/architecture keywords | ACE semantic search only | | Low | < 200 chars, no refactor/architecture keywords | ACE semantic search only |
| Medium | 200-500 chars or moderate scope | 2-3 angle explore subagent | | Medium | 200-500 chars or moderate scope | 2-3 angle CLI explore |
| High | > 500 chars, refactor/architecture, multi-module | 3-5 angle explore subagent | | High | > 500 chars, refactor/architecture, multi-module | 3-5 angle CLI explore |
For each angle, use CLI exploration (cache-aware — check cache-index.json before each call): For each angle, use CLI exploration (cache-aware — check cache-index.json before each call):

View File

@@ -4,7 +4,7 @@ prefix: REVIEW
additional_prefixes: [QUALITY, IMPROVE] additional_prefixes: [QUALITY, IMPROVE]
inner_loop: false inner_loop: false
discuss_rounds: [DISCUSS-006] discuss_rounds: [DISCUSS-006]
subagents: [discuss] cli_tools: [discuss]
message_types: message_types:
success_review: review_result success_review: review_result
success_quality: quality_result success_quality: quality_result
@@ -73,11 +73,19 @@ message_types:
### Spec Quality Inline Discuss (DISCUSS-006) ### Spec Quality Inline Discuss (DISCUSS-006)
After generating readiness-report.md, call discuss subagent: After generating readiness-report.md, call CLI discuss tool:
- Artifact: `<session-folder>/spec/readiness-report.md` - Artifact: `<session-folder>/spec/readiness-report.md`
- Round: DISCUSS-006 - Round: DISCUSS-006
- Perspectives: product, technical, quality, risk, coverage (all 5) - Perspectives: product, technical, quality, risk, coverage (all 5)
```bash
ccw cli -p "PURPOSE: Multi-perspective critique of spec readiness
TASK: Review from product, technical, quality, risk, coverage perspectives
ARTIFACT: @<session-folder>/spec/readiness-report.md
MODE: analysis
EXPECTED: JSON with perspectives[], consensus, severity, recommendations[]" --tool gemini --mode analysis
```
Handle discuss verdict per team-worker consensus handling protocol. Handle discuss verdict per team-worker consensus handling protocol.
> **Note**: DISCUSS-006 HIGH always triggers user pause (final sign-off gate), regardless of revision count. > **Note**: DISCUSS-006 HIGH always triggers user pause (final sign-off gate), regardless of revision count.
@@ -91,4 +99,4 @@ Handle discuss verdict per team-worker consensus handling protocol.
| Missing context | Request from coordinator | | Missing context | Request from coordinator |
| Invalid mode | Abort with error | | Invalid mode | Abort with error |
| Analysis failure | Retry, then fallback template | | Analysis failure | Retry, then fallback template |
| Discuss subagent fails | Proceed without final discuss, log warning | | CLI discuss fails | Proceed without final discuss, log warning |

View File

@@ -3,7 +3,7 @@ role: tester
prefix: TEST prefix: TEST
inner_loop: false inner_loop: false
discuss_rounds: [] discuss_rounds: []
subagents: [] cli_tools: []
message_types: message_types:
success: test_result success: test_result
fix: fix_required fix: fix_required

View File

@@ -3,7 +3,7 @@ role: writer
prefix: DRAFT prefix: DRAFT
inner_loop: true inner_loop: true
discuss_rounds: [DISCUSS-002, DISCUSS-003, DISCUSS-004, DISCUSS-005] discuss_rounds: [DISCUSS-002, DISCUSS-003, DISCUSS-004, DISCUSS-005]
subagents: [discuss] cli_tools: [discuss]
message_types: message_types:
success: draft_ready success: draft_ready
revision: draft_revision revision: draft_revision
@@ -54,7 +54,7 @@ message_types:
| Discussion feedback | `<session-folder>/discussions/<discuss-file>` | If exists | | Discussion feedback | `<session-folder>/discussions/<discuss-file>` | If exists |
| Prior decisions | context_accumulator (in-memory) | If prior tasks exist | | Prior decisions | context_accumulator (in-memory) | If prior tasks exist |
## Phase 3: Subagent Document Generation ## Phase 3: CLI Document Generation
**Objective**: Generate document using CLI tool. **Objective**: Generate document using CLI tool.
@@ -87,11 +87,19 @@ Parse CLI output for artifact path and summary. Document is written to disk by C
### 4b: Inline Discuss ### 4b: Inline Discuss
Call discuss subagent for this task's discuss round: Call CLI discuss tool for this task's discuss round:
- Artifact: `<output-path>` (the generated document) - Artifact: `<output-path>` (the generated document)
- Round: `<DISCUSS-NNN>` from mapping table - Round: `<DISCUSS-NNN>` from mapping table
- Perspectives: from mapping table - Perspectives: from mapping table
```bash
ccw cli -p "PURPOSE: Multi-perspective critique of <doc-type>
TASK: Review from <perspectives>
ARTIFACT: @<output-path>
MODE: analysis
EXPECTED: JSON with perspectives[], consensus, severity, recommendations[]" --tool gemini --mode analysis
```
Handle discuss verdict per team-worker consensus handling protocol. Handle discuss verdict per team-worker consensus handling protocol.
**Report**: doc type, validation status, discuss verdict + severity, average rating, summary, output path. **Report**: doc type, validation status, discuss verdict + severity, average rating, summary, output path.
@@ -101,7 +109,7 @@ Handle discuss verdict per team-worker consensus handling protocol.
| Scenario | Resolution | | Scenario | Resolution |
|----------|------------| |----------|------------|
| CLI failure | Retry once with alternative tool. Still fails → log error, continue next task | | CLI failure | Retry once with alternative tool. Still fails → log error, continue next task |
| Discuss subagent fails | Skip discuss, log warning | | CLI discuss fails | Skip discuss, log warning |
| Cumulative 3 task failures | SendMessage to coordinator, STOP | | Cumulative 3 task failures | SendMessage to coordinator, STOP |
| Prior doc not found | Notify coordinator, request prerequisite | | Prior doc not found | Notify coordinator, request prerequisite |
| Discussion contradicts prior docs | Note conflict, flag for coordinator | | Discussion contradicts prior docs | Note conflict, flag for coordinator |

View File

@@ -11,7 +11,7 @@ Orchestrate the team-lifecycle workflow: team creation, task dispatching, progre
### MUST ### MUST
- Parse user requirements and clarify ambiguous inputs via AskUserQuestion - Parse user requirements and clarify ambiguous inputs via AskUserQuestion
- Create team and spawn worker subagents in background using **team-worker** agent type - Create team and spawn worker agents in background using **team-worker** agent type
- Dispatch tasks with proper dependency chains (see SKILL.md Task Metadata Registry) - Dispatch tasks with proper dependency chains (see SKILL.md Task Metadata Registry)
- Monitor progress via worker callbacks and route messages - Monitor progress via worker callbacks and route messages
- Maintain session state persistence (team-session.json) - Maintain session state persistence (team-session.json)
@@ -19,7 +19,6 @@ Orchestrate the team-lifecycle workflow: team creation, task dispatching, progre
### MUST NOT ### MUST NOT
- Execute spec/impl/research work directly (delegate to workers) - Execute spec/impl/research work directly (delegate to workers)
- Modify task outputs (workers own their deliverables) - Modify task outputs (workers own their deliverables)
- Call implementation subagents (code-developer, etc.) directly
- Skip dependency validation when creating task chains - Skip dependency validation when creating task chains
--- ---

View File

@@ -6,7 +6,6 @@
"architecture": "team-worker agent + role-specs", "architecture": "team-worker agent + role-specs",
"role_structure": "role-specs/{name}.md (Phase 2-4 only)", "role_structure": "role-specs/{name}.md (Phase 2-4 only)",
"worker_agent": "team-worker", "worker_agent": "team-worker",
"subagent_structure": "subagents/{name}-subagent.md",
"roles": { "roles": {
"coordinator": { "coordinator": {
@@ -27,7 +26,6 @@
"role_spec": "role-specs/writer.md", "role_spec": "role-specs/writer.md",
"responsibility": "Product Brief / PRD / Architecture / Epics document generation + inline discuss", "responsibility": "Product Brief / PRD / Architecture / Epics document generation + inline discuss",
"inner_loop": true, "inner_loop": true,
"subagent_type": "universal-executor",
"inline_discuss": ["DISCUSS-002", "DISCUSS-003", "DISCUSS-004", "DISCUSS-005"], "inline_discuss": ["DISCUSS-002", "DISCUSS-003", "DISCUSS-004", "DISCUSS-005"],
"message_types": ["draft_ready", "draft_revision", "error"] "message_types": ["draft_ready", "draft_revision", "error"]
}, },
@@ -88,24 +86,24 @@
} }
}, },
"subagents": { "utility_functions": {
"discuss": { "discuss": {
"spec": "subagents/discuss-subagent.md", "type": "cli-tool",
"type": "cli-discuss-agent",
"callable_by": ["analyst", "writer", "reviewer"], "callable_by": ["analyst", "writer", "reviewer"],
"purpose": "Multi-perspective critique with CLI tools, consensus synthesis" "purpose": "Multi-perspective critique with CLI tools, consensus synthesis",
"implementation": "Bash with ccw cli --mode analysis"
}, },
"explore": { "explore": {
"spec": "subagents/explore-subagent.md", "type": "explore-agent",
"type": "cli-explore-agent",
"callable_by": ["analyst", "planner", "any"], "callable_by": ["analyst", "planner", "any"],
"purpose": "Codebase exploration with centralized cache" "purpose": "Codebase exploration with centralized cache",
"implementation": "Agent with subagent_type: Explore"
}, },
"doc-generation": { "doc-generation": {
"spec": "subagents/doc-generation-subagent.md", "type": "cli-tool",
"type": "universal-executor",
"callable_by": ["writer"], "callable_by": ["writer"],
"purpose": "Document generation engine (CLI execution)" "purpose": "Document generation engine (CLI execution)",
"implementation": "Bash with ccw cli --mode write"
} }
}, },
@@ -199,7 +197,7 @@
"style_decisions": "Accumulated design decisions", "style_decisions": "Accumulated design decisions",
"qa_history": "From fe-qa, audit trail", "qa_history": "From fe-qa, audit trail",
"industry_context": "Industry + strictness config", "industry_context": "Industry + strictness config",
"exploration_cache": "From explore subagent, shared by all roles" "exploration_cache": "From exploration utility (Explore agent), shared by all roles"
} }
}, },

View File

@@ -1,169 +0,0 @@
# Discuss Subagent
Lightweight multi-perspective critique engine. Called inline by produce roles (analyst, writer, reviewer) instead of as a separate team member. Eliminates spawn overhead while preserving multi-CLI analysis quality.
## Design Rationale
In v3, `discussant` was a full team role requiring: agent spawn -> Skill load -> Phase 1 task discovery -> Phase 2-4 work -> Phase 5 report + callback. For what is essentially "run CLI analyses + synthesize", the framework overhead exceeded actual work time.
In v4, discuss is a **subagent call** from within the producing role, reducing each discuss round from ~60-90s overhead to ~5s overhead.
## Invocation
Called by produce roles after artifact creation:
```
Agent({
subagent_type: "cli-discuss-agent",
run_in_background: false,
description: "Discuss <round-id>",
prompt: `## Multi-Perspective Critique: <round-id>
### Input
- Artifact: <artifact-path>
- Round: <round-id>
- Perspectives: <perspective-list>
- Session: <session-folder>
- Discovery Context: <session-folder>/spec/discovery-context.json (for coverage perspective)
### Perspective Routing
| Perspective | CLI Tool | Role | Focus Areas |
|-------------|----------|------|-------------|
| Product | gemini | Product Manager | Market fit, user value, business viability |
| Technical | codex | Tech Lead | Feasibility, tech debt, performance, security |
| Quality | claude | QA Lead | Completeness, testability, consistency |
| Risk | gemini | Risk Analyst | Risk identification, dependencies, failure modes |
| Coverage | gemini | Requirements Analyst | Requirement completeness vs discovery-context |
### Execution Steps
1. Read artifact from <artifact-path>
2. For each perspective, launch CLI analysis in background:
Bash(command="ccw cli -p 'PURPOSE: Analyze from <role> perspective for <round-id>
TASK: <focus-areas>
MODE: analysis
CONTEXT: Artifact content below
EXPECTED: JSON with strengths[], weaknesses[], suggestions[], rating (1-5)
CONSTRAINTS: Output valid JSON only
Artifact:
<artifact-content>' --tool <cli-tool> --mode analysis", run_in_background=true)
3. Wait for all CLI results
4. Divergence detection:
- Coverage gap: missing_requirements non-empty -> High severity
- High risk: risk_level is high or critical -> High severity
- Low rating: any perspective rating <= 2 -> Medium severity
- Rating spread: max - min >= 3 -> Medium severity
5. Consensus determination:
- No high-severity divergences AND average rating >= 3.0 -> consensus_reached
- Otherwise -> consensus_blocked
6. Synthesize:
- Convergent themes (agreed by 2+ perspectives)
- Divergent views (conflicting assessments)
- Coverage gaps
- Action items from suggestions
7. Write discussion record to: <session-folder>/discussions/<round-id>-discussion.md
### Discussion Record Format
# Discussion Record: <round-id>
**Artifact**: <artifact-path>
**Perspectives**: <list>
**Consensus**: reached / blocked
**Average Rating**: <avg>/5
## Convergent Themes
- <theme>
## Divergent Views
- **<topic>** (<severity>): <description>
## Action Items
1. <item>
## Ratings
| Perspective | Rating |
|-------------|--------|
| <name> | <n>/5 |
### Return Value
**When consensus_reached**:
Return a summary string with:
- Verdict: consensus_reached
- Average rating
- Key action items (top 3)
- Discussion record path
**When consensus_blocked**:
Return a structured summary with:
- Verdict: consensus_blocked
- Severity: HIGH | MEDIUM | LOW
- HIGH: any rating <= 2, critical risk identified, or missing_requirements non-empty
- MEDIUM: rating spread >= 3, or single perspective rated <= 2 with others >= 3
- LOW: minor suggestions only, all ratings >= 3 but divergent views exist
- Average rating
- Divergence summary: top 3 divergent points with perspective attribution
- Action items: prioritized list of required changes
- Recommendation: revise | proceed-with-caution | escalate
- Discussion record path
### Error Handling
- Single CLI fails -> fallback to direct Claude analysis for that perspective
- All CLI fail -> generate basic discussion from direct artifact reading
- Artifact not found -> return error immediately`
})
```
## Round Configuration
| Round | Artifact | Perspectives | Calling Role |
|-------|----------|-------------|-------------|
| DISCUSS-001 | spec/discovery-context.json | product, risk, coverage | analyst |
| DISCUSS-002 | spec/product-brief.md | product, technical, quality, coverage | writer |
| DISCUSS-003 | spec/requirements/_index.md | quality, product, coverage | writer |
| DISCUSS-004 | spec/architecture/_index.md | technical, risk | writer |
| DISCUSS-005 | spec/epics/_index.md | product, technical, quality, coverage | writer |
| DISCUSS-006 | spec/readiness-report.md | all 5 | reviewer |
## Integration with Calling Role
The calling role is responsible for:
1. **Before calling**: Complete primary artifact output
2. **Calling**: Invoke discuss subagent with correct round config
3. **After calling**:
| Verdict | Severity | Role Action |
|---------|----------|-------------|
| consensus_reached | - | Include action items in Phase 5 report, proceed normally |
| consensus_blocked | HIGH | Include divergence details in Phase 5 SendMessage with structured format (see below). **Do NOT self-revise** -- coordinator decides. |
| consensus_blocked | MEDIUM | Include warning in Phase 5 SendMessage. Proceed to Phase 5 normally. |
| consensus_blocked | LOW | Treat as consensus_reached with notes. Proceed normally. |
**SendMessage format for consensus_blocked (HIGH or MEDIUM)**:
```
[<role>] <task-id> complete. Discuss <round-id>: consensus_blocked (severity=<severity>)
Divergences: <top-3-divergent-points>
Action items: <prioritized-items>
Recommendation: <revise|proceed-with-caution|escalate>
Artifact: <artifact-path>
Discussion: <discussion-record-path>
```
The coordinator receives this and routes per severity (see monitor.md Consensus-Blocked Handling):
- HIGH -> creates revision task (max 1) or pauses for user
- MEDIUM -> proceeds with warning logged to wisdom/issues.md
- DISCUSS-006 HIGH -> always pauses for user decision (final sign-off gate)
## Comparison with v3
| Aspect | v3 (discussant role) | v4 (discuss subagent) |
|--------|---------------------|----------------------|
| Spawn | Full general-purpose agent | Inline subagent call |
| Skill load | Reads SKILL.md + role.md | None (prompt contains all logic) |
| Task discovery | TaskList + TaskGet + TaskUpdate | None (called with context) |
| Report overhead | team_msg + SendMessage + TaskUpdate | Return value to caller |
| Total overhead | ~25-45s framework | ~5s call overhead |
| Pipeline beat | 1 beat per discuss round | 0 additional beats |

View File

@@ -1,62 +0,0 @@
# Doc Generation Subagent
文档生成执行引擎。由 writer 主 agent 通过 Inner Loop 调用。
负责 CLI 多视角分析 + 模板填充 + 文件写入。
## Design Rationale
从 v4.0 的 writer 内联 CLI 执行,改为 subagent 隔离调用。
好处CLI 调用的大量 token 消耗不污染 writer 主 agent 上下文,
writer 只拿到压缩摘要,可在多任务间保持上下文连续。
## Invocation
```
Agent({
subagent_type: "universal-executor",
run_in_background: false,
description: "Generate <doc-type>",
prompt: `## Document Generation: <doc-type>
### Session
- Folder: <session-folder>
- Spec config: <spec-config-path>
### Document Config
- Type: <product-brief | requirements | architecture | epics>
- Template: <template-path>
- Output: <output-path>
- Prior discussion: <discussion-file or "none">
### Writer Accumulator (prior decisions)
<JSON array of prior task summaries>
### Execution Strategy
<从 generate-doc.md 对应 doc-type 段落加载>
### Output Requirements
1. Write document to <output-path> (follow template + document-standards.md)
2. Return JSON summary:
{
"artifact_path": "<path>",
"summary": "<100-200字>",
"key_decisions": [],
"sections_generated": [],
"cross_references": [],
"warnings": []
}`
})
```
## Doc Type Strategies
(直接引用 generate-doc.md 的 DRAFT-001/002/003/004 策略,不重复)
See: roles/writer/commands/generate-doc.md
## Error Handling
| Scenario | Resolution |
|----------|------------|
| CLI 工具失败 | fallback chain: gemini → codex → claude |
| Template 不存在 | 返回错误 JSON |
| Prior doc 不存在 | 返回错误 JSONwriter 决定是否继续 |

View File

@@ -1,174 +0,0 @@
# Explore Subagent
Shared codebase exploration utility with centralized caching. Callable by any role needing code context. Replaces v3's standalone explorer role.
## Design Rationale
In v3, exploration happened in 3 separate places:
- `analyst` Phase 3: ACE semantic search for architecture patterns
- `planner` Phase 2: multi-angle cli-explore-agent
- `explorer` role: standalone service with full spawn cycle
Results were scattered across different directories and never shared. In v4, all exploration routes through this subagent with a **unified cache** in `explorations/`.
## Invocation
```
Agent({
subagent_type: "cli-explore-agent",
run_in_background: false,
description: "Explore <angle>",
prompt: `Explore codebase for: <query>
Focus angle: <angle>
Keywords: <keyword-list>
Session folder: <session-folder>
## Cache Check
1. Read <session-folder>/explorations/cache-index.json (if exists)
2. Look for entry with matching angle
3. If found AND file exists -> read cached result, return summary
4. If not found -> proceed to exploration
## Exploration
<angle-specific-focus-from-table-below>
## Output
Write JSON to: <session-folder>/explorations/explore-<angle>.json
Update cache-index.json with new entry
## Output Schema
{
"angle": "<angle>",
"query": "<query>",
"relevant_files": [
{ "path": "...", "rationale": "...", "role": "...", "discovery_source": "...", "key_symbols": [] }
],
"patterns": [],
"dependencies": [],
"external_refs": [],
"_metadata": { "created_by": "<calling-role>", "timestamp": "...", "cache_key": "..." }
}
Return summary: file count, pattern count, top 5 files, output path`
})
```
## Cache Mechanism
### Cache Index Schema
`<session-folder>/explorations/cache-index.json`:
```json
{
"entries": [
{
"angle": "architecture",
"keywords": ["auth", "middleware"],
"file": "explore-architecture.json",
"created_by": "analyst",
"created_at": "2026-02-27T10:00:00Z",
"file_count": 15
}
]
}
```
### Cache Lookup Rules
| Condition | Action |
|-----------|--------|
| Exact angle match exists | Return cached result |
| No match | Execute exploration, cache result |
| Cache file missing but index has entry | Remove stale entry, re-explore |
### Cache Invalidation
Cache is session-scoped. No explicit invalidation needed -- each session starts fresh. If a role suspects stale data, it can pass `force_refresh: true` in the prompt to bypass cache.
## Angle Focus Guide
| Angle | Focus Points | Typical Caller |
|-------|-------------|----------------|
| architecture | Layer boundaries, design patterns, component responsibilities, ADRs | analyst, planner |
| dependencies | Import chains, external libraries, circular dependencies, shared utilities | planner |
| modularity | Module interfaces, separation of concerns, extraction opportunities | planner |
| integration-points | API endpoints, data flow between modules, event systems | analyst, planner |
| security | Auth/authz logic, input validation, sensitive data handling, middleware | planner |
| auth-patterns | Auth flows, session management, token validation, permissions | planner |
| dataflow | Data transformations, state propagation, validation points | planner |
| performance | Bottlenecks, N+1 queries, blocking operations, algorithm complexity | planner |
| error-handling | Try-catch blocks, error propagation, recovery strategies, logging | planner |
| patterns | Code conventions, design patterns, naming conventions, best practices | analyst, planner |
| testing | Test files, coverage gaps, test patterns, mocking strategies | planner |
| general | Broad semantic search for topic-related code | analyst |
## Exploration Strategies
### Low Complexity (direct search)
For simple queries, use ACE semantic search:
```
mcp__ace-tool__search_context(project_root_path="<project-root>", query="<query>")
```
ACE failure fallback: `rg -l '<keywords>' --type ts`
### Medium/High Complexity (multi-angle)
For complex queries, call cli-explore-agent per angle. The calling role determines complexity and selects angles (see planner's `commands/explore.md`).
## Search Tool Priority
| Tool | Priority | Use Case |
|------|----------|----------|
| mcp__ace-tool__search_context | P0 | Semantic search |
| Grep / Glob | P1 | Pattern matching |
| cli-explore-agent | Deep | Multi-angle exploration |
| WebSearch | P3 | External docs |
## Integration with Roles
### analyst (RESEARCH-001)
```
# After seed analysis, explore codebase context
Agent({
subagent_type: "cli-explore-agent",
description: "Explore general context",
run_in_background: false,
prompt: "Explore codebase for: <topic>\nFocus angle: general\n..."
})
# Result feeds into discovery-context.json
```
### planner (PLAN-001)
```
# Multi-angle exploration before plan generation
for angle in selected_angles:
Agent({
subagent_type: "cli-explore-agent",
description: "Explore <angle>",
run_in_background: false,
prompt: "Explore codebase for: <task>\nFocus angle: <angle>\n..."
})
# Explorations manifest built from cache-index.json
```
### Any role needing context
Any role can call explore subagent when needing codebase context for better decisions.
## Comparison with v3
| Aspect | v3 (explorer role) | v4 (explore subagent) |
|--------|-------------------|----------------------|
| Identity | Full team member | Utility subagent |
| Task creation | Coordinator creates EXPLORE-* tasks | No tasks, direct call |
| Spawn overhead | Full agent lifecycle | Subagent call (~5s) |
| Result sharing | Isolated in explorations/ | Shared cache with index |
| Caller | Only via coordinator dispatch | Any role directly |
| Duplication | analyst + planner + explorer all explore | Single cached path |

View File

@@ -27,9 +27,6 @@ Unified team skill: Profile application performance, identify bottlenecks, desig
profiler strate- optim- bench- review- profiler strate- optim- bench- review-
gist izer marker er gist izer marker er
Subagents (callable by workers, not team members):
[explore] [discuss]
(tw) = team-worker agent (tw) = team-worker agent
``` ```
@@ -52,13 +49,6 @@ Parse `$ARGUMENTS`. No `--role` needed -- always routes to coordinator.
| benchmarker | [role-specs/benchmarker.md](role-specs/benchmarker.md) | BENCH-* | validation | false | | benchmarker | [role-specs/benchmarker.md](role-specs/benchmarker.md) | BENCH-* | validation | false |
| reviewer | [role-specs/reviewer.md](role-specs/reviewer.md) | REVIEW-* / QUALITY-* | read_only_analysis | false | | reviewer | [role-specs/reviewer.md](role-specs/reviewer.md) | REVIEW-* / QUALITY-* | read_only_analysis | false |
### Subagent Registry
| Subagent | Spec | Callable By | Purpose |
|----------|------|-------------|---------|
| explore | [subagents/explore-subagent.md](subagents/explore-subagent.md) | profiler, optimizer | Shared codebase exploration for performance-critical code paths |
| discuss | [subagents/discuss-subagent.md](subagents/discuss-subagent.md) | strategist, reviewer | Multi-perspective discussion for optimization approaches and review findings |
### Dispatch ### Dispatch
Always route to coordinator. Coordinator reads `roles/coordinator/role.md` and executes its phases. Always route to coordinator. Coordinator reads `roles/coordinator/role.md` and executes its phases.
@@ -459,7 +449,7 @@ Coordinator supports `--resume` / `--continue` for interrupted sessions:
|----------|------------| |----------|------------|
| Role spec file not found | Error with expected path (role-specs/<name>.md) | | Role spec file not found | Error with expected path (role-specs/<name>.md) |
| Command file not found | Fallback to inline execution in coordinator role.md | | Command file not found | Fallback to inline execution in coordinator role.md |
| Subagent spec not found | Error with expected path (subagents/<name>-subagent.md) | | Role file not found | Error with expected path (role-specs/<name>.md) |
| Fast-advance orphan detected | Coordinator resets task to pending on next check | | Fast-advance orphan detected | Coordinator resets task to pending on next check |
| consensus_blocked HIGH | Coordinator creates revision task or pauses pipeline | | consensus_blocked HIGH | Coordinator creates revision task or pauses pipeline |
| team-worker agent unavailable | Error: requires .claude/agents/team-worker.md | | team-worker agent unavailable | Error: requires .claude/agents/team-worker.md |

View File

@@ -2,7 +2,7 @@
prefix: IMPL prefix: IMPL
inner_loop: true inner_loop: true
additional_prefixes: [FIX] additional_prefixes: [FIX]
subagents: [explore] delegates_to: []
message_types: message_types:
success: impl_complete success: impl_complete
error: error error: error
@@ -47,7 +47,7 @@ Implement optimization changes following the strategy plan. For FIX tasks, apply
- **Independent pipeline**: Read `<session>/artifacts/pipelines/{P}/optimization-plan.md` -- extract this pipeline's plan - **Independent pipeline**: Read `<session>/artifacts/pipelines/{P}/optimization-plan.md` -- extract this pipeline's plan
4. For FIX: parse review/benchmark feedback for specific issues to address 4. For FIX: parse review/benchmark feedback for specific issues to address
5. Use `explore` subagent to load implementation context for target files 5. Use ACE search or CLI tools to load implementation context for target files
6. For inner loop (single mode only): load context_accumulator from prior IMPL/FIX tasks 6. For inner loop (single mode only): load context_accumulator from prior IMPL/FIX tasks
**Shared-memory namespace**: **Shared-memory namespace**:

View File

@@ -1,7 +1,7 @@
--- ---
prefix: PROFILE prefix: PROFILE
inner_loop: false inner_loop: false
subagents: [explore] delegates_to: []
message_types: message_types:
success: profile_complete success: profile_complete
error: error error: error
@@ -31,7 +31,7 @@ Profile application performance to identify CPU, memory, I/O, network, and rende
| CLI entry / bin/ directory | CLI Tool | Startup time, throughput, memory peak | | CLI entry / bin/ directory | CLI Tool | Startup time, throughput, memory peak |
| No detection | Generic | All profiling dimensions | | No detection | Generic | All profiling dimensions |
3. Use `explore` subagent to map performance-critical code paths within target scope 3. Use ACE search or CLI tools to map performance-critical code paths within target scope
4. Detect available profiling tools (test runners, benchmark harnesses, linting tools) 4. Detect available profiling tools (test runners, benchmark harnesses, linting tools)
## Phase 3: Performance Profiling ## Phase 3: Performance Profiling

View File

@@ -3,7 +3,7 @@ prefix: REVIEW
inner_loop: false inner_loop: false
additional_prefixes: [QUALITY] additional_prefixes: [QUALITY]
discuss_rounds: [DISCUSS-REVIEW] discuss_rounds: [DISCUSS-REVIEW]
subagents: [discuss] delegates_to: []
message_types: message_types:
success: review_complete success: review_complete
error: error error: error
@@ -65,7 +65,7 @@ Per-dimension review process:
- Record findings with severity (Critical / High / Medium / Low) - Record findings with severity (Critical / High / Medium / Low)
- Include specific file:line references and suggested fixes - Include specific file:line references and suggested fixes
If any Critical findings detected, invoke `discuss` subagent (DISCUSS-REVIEW round) to validate the assessment before issuing verdict. If any Critical findings detected, use CLI tools for multi-perspective validation (DISCUSS-REVIEW round) to validate the assessment before issuing verdict.
## Phase 4: Verdict & Feedback ## Phase 4: Verdict & Feedback

View File

@@ -2,7 +2,7 @@
prefix: STRATEGY prefix: STRATEGY
inner_loop: false inner_loop: false
discuss_rounds: [DISCUSS-OPT] discuss_rounds: [DISCUSS-OPT]
subagents: [discuss] delegates_to: []
message_types: message_types:
success: strategy_complete success: strategy_complete
error: error error: error
@@ -55,7 +55,7 @@ Prioritize optimizations by impact/effort ratio:
| P2 (Medium) | Medium impact + Low effort | | P2 (Medium) | Medium impact + Low effort |
| P3 (Low) | Low impact or High effort -- defer | | P3 (Low) | Low impact or High effort -- defer |
If complexity is High, invoke `discuss` subagent (DISCUSS-OPT round) to evaluate trade-offs between competing strategies before finalizing the plan. If complexity is High, use CLI tools for multi-perspective analysis (DISCUSS-OPT round) to evaluate trade-offs between competing strategies before finalizing the plan.
Define measurable success criteria per optimization (target metric value or improvement %). Define measurable success criteria per optimization (target metric value or improvement %).

View File

@@ -1,89 +0,0 @@
# Discuss Subagent
Multi-perspective discussion for evaluating optimization strategies and reviewing code change quality. Used by strategist (DISCUSS-OPT) and reviewer (DISCUSS-REVIEW) when complex trade-offs require multi-angle analysis.
## Design Rationale
Complex optimization decisions (e.g., choosing between algorithmic change vs caching layer) and nuanced code review findings (e.g., evaluating whether a side effect is acceptable) benefit from structured multi-perspective analysis. This subagent provides that analysis inline without spawning additional team members.
## Invocation
Called by strategist, reviewer after their primary analysis when complexity warrants multi-perspective evaluation:
```
Agent({
subagent_type: "cli-discuss-agent",
run_in_background: false,
description: "Discuss <round-id>: <topic> for performance optimization",
prompt: `Conduct a multi-perspective discussion on the following topic.
Round: <round-id>
Topic: <discussion-topic>
Session: <session-folder>
Context:
<relevant-context-from-calling-role>
Perspectives to consider:
- Performance impact: Will this actually improve the target metric?
- Risk assessment: What could go wrong? Side effects? Regressions?
- Maintainability: Is the optimized code still understandable and maintainable?
- Alternative approaches: Are there simpler or safer ways to achieve the same goal?
Evaluate trade-offs and provide a structured recommendation with:
- Consensus verdict: proceed / revise / escalate
- Confidence level: high / medium / low
- Key trade-offs identified
- Recommended approach with rationale
- Dissenting perspectives (if any)`
})
```
## Round Configuration
| Round | Artifact | Parameters | Calling Role |
|-------|----------|------------|-------------|
| DISCUSS-OPT | <session>/discussions/DISCUSS-OPT.md | Optimization strategy trade-offs | strategist |
| DISCUSS-REVIEW | <session>/discussions/DISCUSS-REVIEW.md | Code review finding validation | reviewer |
## Integration with Calling Role
The calling role is responsible for:
1. **Before calling**: Complete primary analysis, identify the specific trade-off or finding needing discussion
2. **Calling**: Invoke subagent with round ID, topic, and relevant context
3. **After calling**:
| Result | Action |
|--------|--------|
| consensus_reached (proceed) | Incorporate recommendation into output, continue |
| consensus_reached (revise) | Adjust findings/strategy based on discussion insights |
| consensus_blocked (HIGH) | Report to coordinator via message with severity |
| consensus_blocked (MEDIUM) | Include in output with recommendation for revision |
| consensus_blocked (LOW) | Note in output, proceed with original assessment |
## Output Schema
```json
{
"round_id": "<DISCUSS-OPT|DISCUSS-REVIEW>",
"topic": "<discussion-topic>",
"verdict": "<proceed|revise|escalate>",
"confidence": "<high|medium|low>",
"trade_offs": [
{ "dimension": "<performance|risk|maintainability>", "pro": "<benefit>", "con": "<cost>" }
],
"recommendation": "<recommended-approach>",
"rationale": "<reasoning>",
"dissenting_views": ["<alternative-perspective>"]
}
```
## Error Handling
| Scenario | Resolution |
|----------|------------|
| Single perspective analysis fails | Continue with partial perspectives |
| All analyses fail | Return basic recommendation from calling role's primary analysis |
| Artifact not found | Return error immediately |
| Discussion inconclusive | Return "revise" verdict with low confidence |

View File

@@ -1,108 +0,0 @@
# Explore Subagent
Shared codebase exploration for discovering performance-critical code paths, module structures, and optimization opportunities. Results are cached to avoid redundant exploration across profiler and optimizer roles.
## Design Rationale
Codebase exploration is a read-only operation shared between profiler (mapping bottlenecks) and optimizer (understanding implementation context). Caching explorations avoids redundant work when optimizer re-explores paths the profiler already mapped.
## Invocation
Called by profiler, optimizer after needing codebase context for performance analysis or implementation:
```
Agent({
subagent_type: "cli-explore-agent",
run_in_background: false,
description: "Explore codebase for performance-critical paths in <target-scope>",
prompt: `Explore the codebase to identify performance-critical code paths.
Target scope: <target-scope>
Session: <session-folder>
Focus: <exploration-focus>
Tasks:
1. Map the module structure and entry points within scope
2. Identify hot code paths (frequently called functions, critical loops)
3. Find performance-relevant patterns (caching, lazy loading, async, pooling)
4. Note any existing performance optimizations or benchmark harnesses
5. List key files with their roles in the performance-critical path
Output a structured exploration report with:
- Module map (key files and their relationships)
- Hot path analysis (call chains, loop nests, recursive patterns)
- Existing optimization patterns found
- Performance-relevant configuration (caching, pooling, batching settings)
- Recommended investigation targets for profiling`
})
```
## Cache Mechanism
### Cache Index Schema
`<session-folder>/explorations/cache-index.json`:
```json
{
"entries": [
{
"key": "<scope-hash>",
"scope": "<target-scope>",
"focus": "<exploration-focus>",
"timestamp": "<ISO-8601>",
"result_file": "<hash>.md"
}
]
}
```
### Cache Lookup Rules
| Condition | Action |
|-----------|--------|
| Exact scope+focus match exists | Return cached result from <hash>.md |
| No match | Execute subagent, cache result to <hash>.md, update index |
| Cache file missing but index has entry | Remove stale entry, re-execute |
| Cache older than current session | Use cached (explorations are stable within session) |
## Integration with Calling Role
The calling role is responsible for:
1. **Before calling**: Determine target scope and exploration focus
2. **Calling**: Check cache first, invoke subagent only on cache miss
3. **After calling**:
| Result | Action |
|--------|--------|
| Exploration successful | Use findings to inform profiling/implementation |
| Exploration partial | Use available findings, note gaps |
| Exploration failed | Proceed without exploration context, use direct file reading |
## Output Schema
```json
{
"scope": "<target-scope>",
"module_map": [
{ "file": "<path>", "role": "<description>", "hot_path": true }
],
"hot_paths": [
{ "chain": "<call-chain>", "frequency": "<high|medium|low>", "files": ["<path>"] }
],
"existing_optimizations": [
{ "type": "<pattern>", "location": "<file:line>", "description": "<what>" }
],
"investigation_targets": ["<file-or-pattern>"]
}
```
## Error Handling
| Scenario | Resolution |
|----------|------------|
| Single exploration angle fails | Continue with partial results |
| All exploration fails | Return basic result from direct file listing |
| Target scope not found | Return error immediately |
| Cache corrupt | Clear cache-index.json, re-execute |

View File

@@ -127,7 +127,7 @@ When coordinator spawns workers, use `team-worker` agent with role-spec path:
``` ```
Agent({ Agent({
subagent_type: "team-worker", agent_type: "team-worker",
description: "Spawn <role> worker", description: "Spawn <role> worker",
team_name: <team-name>, team_name: <team-name>,
name: "<role>", name: "<role>",

View File

@@ -85,6 +85,6 @@ Send `impl_complete` message to coordinator via team_msg + SendMessage.
|---------|-----------| |---------|-----------|
| Load solution from file | Create or modify issues | | Load solution from file | Create or modify issues |
| Implement via CLI tools (Codex/Gemini) | Modify solution artifacts | | Implement via CLI tools (Codex/Gemini) | Modify solution artifacts |
| Run tests | Spawn subagents (use CLI tools instead) | | Run tests | Spawn additional agents (use CLI tools instead) |
| git commit | Direct user interaction | | git commit | Direct user interaction |
| Update issue status | Create tasks for other roles | | Update issue status | Create tasks for other roles |

View File

@@ -118,7 +118,7 @@ Collect task states from TaskList()
| +- EXEC-* -> executor | +- EXEC-* -> executor
+- Spawn team-worker: +- Spawn team-worker:
Agent({ Agent({
subagent_type: "team-worker", agent_type: "team-worker",
description: "Spawn <role> worker for <subject>", description: "Spawn <role> worker for <subject>",
team_name: <team-name>, team_name: <team-name>,
name: "<role>", name: "<role>",

View File

@@ -19,7 +19,7 @@ Orchestrate the team-planex pipeline: parse input, create team, dispatch tasks,
### MUST NOT ### MUST NOT
- Execute planning or implementation work directly (delegate to workers) - Execute planning or implementation work directly (delegate to workers)
- Modify solution artifacts or code (workers own their deliverables) - Modify solution artifacts or code (workers own their deliverables)
- Call implementation subagents (code-developer, etc.) directly - Call implementation CLI tools (code-developer, etc.) directly
- Skip dependency validation when creating task chains - Skip dependency validation when creating task chains
--- ---

View File

@@ -360,7 +360,7 @@ When coordinator spawns workers, use `team-worker` agent with role-spec path:
``` ```
Agent({ Agent({
subagent_type: "team-worker", agent_type: "team-worker",
description: "Spawn <role> worker", description: "Spawn <role> worker",
team_name: "quality-assurance", team_name: "quality-assurance",
name: "<role>", name: "<role>",
@@ -398,7 +398,7 @@ Execute built-in Phase 1 (task discovery) -> role-spec Phase 2-4 -> built-in Pha
``` ```
Agent({ Agent({
subagent_type: "team-worker", agent_type: "team-worker",
description: "Spawn <role>-<N> worker", description: "Spawn <role>-<N> worker",
team_name: "quality-assurance", team_name: "quality-assurance",
name: "<role>-<N>", name: "<role>-<N>",

View File

@@ -1,7 +1,7 @@
--- ---
prefix: QAANA prefix: QAANA
inner_loop: false inner_loop: false
subagents: [] additional_members: []
message_types: message_types:
success: analysis_ready success: analysis_ready
report: quality_report report: quality_report

View File

@@ -2,7 +2,7 @@
prefix: QARUN prefix: QARUN
inner_loop: true inner_loop: true
additional_prefixes: [QARUN-gc] additional_prefixes: [QARUN-gc]
subagents: [] additional_members: []
message_types: message_types:
success: tests_passed success: tests_passed
failure: tests_failed failure: tests_failed
@@ -50,7 +50,7 @@ Per iteration:
4. If pass rate >= 95% and iteration >= 2 -> exit loop (good enough) 4. If pass rate >= 95% and iteration >= 2 -> exit loop (good enough)
5. If iteration >= MAX -> exit loop (report current state) 5. If iteration >= MAX -> exit loop (report current state)
6. Extract failure details (error lines, assertion failures) 6. Extract failure details (error lines, assertion failures)
7. Delegate fix to code-developer subagent with constraints: 7. Delegate fix via CLI tool with constraints:
- ONLY modify test files, NEVER modify source code - ONLY modify test files, NEVER modify source code
- Fix: incorrect assertions, missing imports, wrong mocks, setup issues - Fix: incorrect assertions, missing imports, wrong mocks, setup issues
- Do NOT: skip tests, add `@ts-ignore`, use `as any` - Do NOT: skip tests, add `@ts-ignore`, use `as any`

View File

@@ -2,7 +2,7 @@
prefix: QAGEN prefix: QAGEN
inner_loop: false inner_loop: false
additional_prefixes: [QAGEN-fix] additional_prefixes: [QAGEN-fix]
subagents: [] additional_members: []
message_types: message_types:
success: tests_generated success: tests_generated
revised: tests_revised revised: tests_revised
@@ -38,7 +38,7 @@ Generate test code according to strategist's strategy and layers. Support L1 uni
|-----------|------| |-----------|------|
| GC fix task | Read failure info from `<session>/results/run-<layer>.json`, fix failing tests only | | GC fix task | Read failure info from `<session>/results/run-<layer>.json`, fix failing tests only |
| <= 3 focus files | Direct: inline Read source -> Write test file | | <= 3 focus files | Direct: inline Read source -> Write test file |
| > 3 focus files | Batch by module, delegate to code-developer subagent | | > 3 focus files | Batch by module, delegate via CLI tool |
**Direct generation flow** (per source file): **Direct generation flow** (per source file):
1. Read source file content, extract exports 1. Read source file content, extract exports

View File

@@ -1,7 +1,7 @@
--- ---
prefix: SCOUT prefix: SCOUT
inner_loop: false inner_loop: false
subagents: [] additional_members: []
message_types: message_types:
success: scan_ready success: scan_ready
error: error error: error

View File

@@ -1,7 +1,7 @@
--- ---
prefix: QASTRAT prefix: QASTRAT
inner_loop: false inner_loop: false
subagents: [] additional_members: []
message_types: message_types:
success: strategy_ready success: strategy_ready
error: error error: error

View File

@@ -132,7 +132,7 @@ const STAGE_WORKER_MAP = {
``` ```
Agent({ Agent({
subagent_type: "team-worker", agent_type: "team-worker",
description: "Spawn <role> worker for <task-id>", description: "Spawn <role> worker for <task-id>",
team_name: "quality-assurance", team_name: "quality-assurance",
name: "<role>", name: "<role>",

View File

@@ -17,7 +17,7 @@ Orchestrate the Quality Assurance workflow: requirement clarification, mode sele
### MUST NOT ### MUST NOT
- Directly execute any business tasks (scanning, testing, analysis, etc.) - Directly execute any business tasks (scanning, testing, analysis, etc.)
- Directly invoke implementation subagents (cli-explore-agent, code-developer, etc.) - Directly invoke implementation CLI tools (cli-explore-agent, code-developer, etc.)
- Directly modify source code or generated artifact files - Directly modify source code or generated artifact files
- Bypass worker roles to complete delegated work - Bypass worker roles to complete delegated work
- Omit `[coordinator]` identifier in any output - Omit `[coordinator]` identifier in any output

View File

@@ -24,7 +24,7 @@
"message_types_received": [], "message_types_received": [],
"commands": ["scan"], "commands": ["scan"],
"cli_tools": ["gemini"], "cli_tools": ["gemini"],
"subagents": ["cli-explore-agent"] "cli_tools": ["gemini"]
}, },
"strategist": { "strategist": {
"name": "strategist", "name": "strategist",
@@ -35,7 +35,7 @@
"message_types_received": [], "message_types_received": [],
"commands": ["analyze-scope"], "commands": ["analyze-scope"],
"cli_tools": ["gemini"], "cli_tools": ["gemini"],
"subagents": ["cli-explore-agent"] "cli_tools": ["gemini"]
}, },
"generator": { "generator": {
"name": "generator", "name": "generator",
@@ -46,7 +46,7 @@
"message_types_received": [], "message_types_received": [],
"commands": ["generate-tests"], "commands": ["generate-tests"],
"cli_tools": ["gemini"], "cli_tools": ["gemini"],
"subagents": ["code-developer"] "cli_tools": ["gemini"]
}, },
"executor": { "executor": {
"name": "executor", "name": "executor",
@@ -56,7 +56,7 @@
"message_types_sent": ["tests_passed", "tests_failed", "coverage_report", "error"], "message_types_sent": ["tests_passed", "tests_failed", "coverage_report", "error"],
"message_types_received": [], "message_types_received": [],
"commands": ["run-fix-cycle"], "commands": ["run-fix-cycle"],
"subagents": ["code-developer"] "cli_tools": ["gemini"]
}, },
"analyst": { "analyst": {
"name": "analyst", "name": "analyst",

View File

@@ -202,7 +202,7 @@ Cross-task knowledge accumulation. Coordinator creates `wisdom/` directory at se
| Use tools declared in Toolbox | Create tasks for other roles | | Use tools declared in Toolbox | Create tasks for other roles |
| Delegate to commands/ files | Modify resources outside own responsibility | | Delegate to commands/ files | Modify resources outside own responsibility |
Coordinator additional restrictions: Do not write/modify code directly, do not call implementation subagents, do not execute analysis/test/review directly. Coordinator additional restrictions: Do not write/modify code directly, do not call implementation CLI tools, do not execute analysis/test/review directly.
### Team Configuration ### Team Configuration
@@ -225,7 +225,7 @@ When coordinator spawns workers, use `team-worker` agent with role-spec path:
``` ```
Agent({ Agent({
subagent_type: "team-worker", agent_type: "team-worker",
description: "Spawn <role> worker", description: "Spawn <role> worker",
team_name: "review", team_name: "review",
name: "<role>", name: "<role>",

View File

@@ -144,7 +144,7 @@ Ready tasks found?
``` ```
Agent({ Agent({
subagent_type: "team-worker", agent_type: "team-worker",
description: "Spawn <role> worker for <subject>", description: "Spawn <role> worker for <subject>",
team_name: "review", team_name: "review",
name: "<role>", name: "<role>",

View File

@@ -26,7 +26,7 @@ Code review team coordinator. Orchestrates the scan-review-fix pipeline (CP-1 Li
- Perform code review analysis - Perform code review analysis
- Bypass worker roles to do delegated work - Bypass worker roles to do delegated work
- Omit `[coordinator]` prefix on any output - Omit `[coordinator]` prefix on any output
- Call implementation subagents directly - Call implementation CLI tools directly
> **Core principle**: coordinator is the orchestrator, not the executor. All actual work delegated to scanner/reviewer/fixer via task chain. > **Core principle**: coordinator is the orchestrator, not the executor. All actual work delegated to scanner/reviewer/fixer via task chain.

View File

@@ -192,7 +192,7 @@ All outputs must carry `[role_name]` prefix.
| Allowed | Forbidden | | Allowed | Forbidden |
|---------|-----------| |---------|-----------|
| Discuss roadmap with user (AskUserQuestion) | Direct code writing/modification | | Discuss roadmap with user (AskUserQuestion) | Direct code writing/modification |
| Create task chain (TaskCreate) | Calling implementation subagents | | Create task chain (TaskCreate) | Calling CLI tools for implementation |
| Dispatch tasks to workers | Direct analysis/testing/verification | | Dispatch tasks to workers | Direct analysis/testing/verification |
| Monitor progress (message bus) | Bypassing workers | | Monitor progress (message bus) | Bypassing workers |
| Report results to user | Modifying source code | | Report results to user | Modifying source code |

View File

@@ -1,8 +1,8 @@
--- ---
prefix: EXEC prefix: EXEC
inner_loop: true inner_loop: true
subagents: cli_tools:
- code-developer - gemini --mode write
message_types: message_types:
success: exec_complete success: exec_complete
progress: exec_progress progress: exec_progress
@@ -11,7 +11,7 @@ message_types:
# Executor # Executor
Wave-based code implementation per phase. Reads IMPL-*.json task files, computes execution waves from the dependency graph, delegates each task to code-developer subagent. Produces summary-{IMPL-ID}.md per task. Wave-based code implementation per phase. Reads IMPL-*.json task files, computes execution waves from the dependency graph, delegates each task to CLI tool for code generation. Produces summary-{IMPL-ID}.md per task.
## Phase 2: Context Loading ## Phase 2: Context Loading
@@ -38,13 +38,24 @@ Execute waves sequentially, tasks within each wave can be parallel.
| Task Count | Strategy | | Task Count | Strategy |
|------------|----------| |------------|----------|
| <= 2 | Direct: inline Edit/Write | | <= 2 | Direct: inline Edit/Write |
| 3-5 | Single code-developer for all | | 3-5 | Single CLI tool call for all |
| > 5 | Batch: one code-developer per module group | | > 5 | Batch: one CLI tool call per module group |
**Per task**: **Per task**:
1. Build prompt from task JSON: description, files, implementation steps, convergence criteria 1. Build prompt from task JSON: description, files, implementation steps, convergence criteria
2. Include prior summaries and wisdom as context 2. Include prior summaries and wisdom as context
3. Delegate to code-developer subagent (`run_in_background: false`) 3. Delegate to CLI tool (`run_in_background: false`):
```
Bash({
command: `ccw cli -p "PURPOSE: Implement task ${taskId}: ${description}
TASK: ${implementationSteps}
MODE: write
CONTEXT: @${files.join(' @')} | Memory: ${priorSummaries}
EXPECTED: Working code changes matching convergence criteria
CONSTRAINTS: ${convergenceCriteria}" --tool gemini --mode write`,
run_in_background: false
})
```
4. Write `<session>/phase-{N}/summary-{IMPL-ID}.md` with: task ID, affected files, changes made, status 4. Write `<session>/phase-{N}/summary-{IMPL-ID}.md` with: task ID, affected files, changes made, status
**Between waves**: report wave progress via team_msg (type: exec_progress) **Between waves**: report wave progress via team_msg (type: exec_progress)

View File

@@ -1,9 +1,8 @@
--- ---
prefix: PLAN prefix: PLAN
inner_loop: true inner_loop: true
subagents: cli_tools:
- cli-explore-agent - gemini --mode analysis
- action-planning-agent
message_types: message_types:
success: plan_ready success: plan_ready
progress: plan_progress progress: plan_progress
@@ -12,7 +11,7 @@ message_types:
# Planner # Planner
Research and plan creation per roadmap phase. Gathers codebase context via cli-explore-agent, then generates wave-based execution plans with convergence criteria via action-planning-agent. Research and plan creation per roadmap phase. Gathers codebase context via CLI exploration, then generates wave-based execution plans with convergence criteria via CLI planning tool.
## Phase 2: Context Loading + Research ## Phase 2: Context Loading + Research
@@ -27,7 +26,18 @@ Research and plan creation per roadmap phase. Gathers codebase context via cli-e
2. Read config.json for depth setting (quick/standard/comprehensive) 2. Read config.json for depth setting (quick/standard/comprehensive)
3. Load prior phase summaries for dependency context 3. Load prior phase summaries for dependency context
4. Detect gap closure mode (task description contains "Gap closure") 4. Detect gap closure mode (task description contains "Gap closure")
5. Launch cli-explore-agent with phase requirements as exploration query: 5. Launch CLI exploration with phase requirements as exploration query:
```
Bash({
command: `ccw cli -p "PURPOSE: Explore codebase for phase requirements
TASK: • Identify files needing modification • Map patterns and dependencies • Assess test infrastructure • Identify risks
MODE: analysis
CONTEXT: @**/* | Memory: Phase goal: ${phaseGoal}
EXPECTED: Structured exploration results with file lists, patterns, risks
CONSTRAINTS: Read-only analysis" --tool gemini --mode analysis`,
run_in_background: false
})
```
- Target: files needing modification, patterns, dependencies, test infrastructure, risks - Target: files needing modification, patterns, dependencies, test infrastructure, risks
6. If depth=comprehensive: run Gemini CLI analysis (`--mode analysis --rule analysis-analyze-code-patterns`) 6. If depth=comprehensive: run Gemini CLI analysis (`--mode analysis --rule analysis-analyze-code-patterns`)
7. Write `<session>/phase-{N}/context.md` combining roadmap requirements + exploration results 7. Write `<session>/phase-{N}/context.md` combining roadmap requirements + exploration results
@@ -36,12 +46,19 @@ Research and plan creation per roadmap phase. Gathers codebase context via cli-e
1. Load context.md from Phase 2 1. Load context.md from Phase 2
2. Create output directory: `<session>/phase-{N}/.task/` 2. Create output directory: `<session>/phase-{N}/.task/`
3. Delegate to action-planning-agent with: 3. Delegate to CLI planning tool with:
- Phase context + roadmap section + prior summaries ```
- Task ID format: `IMPL-{phase}{seq}` (e.g., IMPL-101, IMPL-102) Bash({
- Convergence criteria rules: measurable, goal-backward, includes file existence + export checks + test checks command: `ccw cli -p "PURPOSE: Generate wave-based execution plan for phase ${phaseNum}
- Hard limits: <= 10 tasks per phase, valid DAG, no cycles TASK: • Break down requirements into tasks • Define convergence criteria • Build dependency graph • Assign waves
4. Agent produces: `IMPL_PLAN.md`, `.task/IMPL-*.json`, `TODO_LIST.md` MODE: write
CONTEXT: @${contextMd} | Memory: ${priorSummaries}
EXPECTED: IMPL_PLAN.md + IMPL-*.json files + TODO_LIST.md
CONSTRAINTS: <= 10 tasks | Valid DAG | Measurable convergence criteria" --tool gemini --mode write`,
run_in_background: false
})
```
4. CLI tool produces: `IMPL_PLAN.md`, `.task/IMPL-*.json`, `TODO_LIST.md`
5. If gap closure: only create tasks for gaps, starting from next available ID 5. If gap closure: only create tasks for gaps, starting from next available ID
## Phase 4: Self-Validation ## Phase 4: Self-Validation

View File

@@ -1,7 +1,8 @@
--- ---
prefix: VERIFY prefix: VERIFY
inner_loop: true inner_loop: true
subagents: [] cli_tools:
- gemini --mode analysis
message_types: message_types:
success: verify_passed success: verify_passed
failure: gaps_found failure: gaps_found

View File

@@ -15,8 +15,8 @@ Handle all coordinator monitoring events for the roadmap-dev pipeline using the
| Prefix | Role | Role Spec | inner_loop | | Prefix | Role | Role Spec | inner_loop |
|--------|------|-----------|------------| |--------|------|-----------|------------|
| PLAN | planner | `.claude/skills/team-roadmap-dev/role-specs/planner.md` | true (subagents: cli-explore-agent, action-planning-agent) | | PLAN | planner | `.claude/skills/team-roadmap-dev/role-specs/planner.md` | true (cli_tools: gemini --mode analysis) |
| EXEC | executor | `.claude/skills/team-roadmap-dev/role-specs/executor.md` | true (subagents: code-developer) | | EXEC | executor | `.claude/skills/team-roadmap-dev/role-specs/executor.md` | true (cli_tools: gemini --mode write) |
| VERIFY | verifier | `.claude/skills/team-roadmap-dev/role-specs/verifier.md` | true | | VERIFY | verifier | `.claude/skills/team-roadmap-dev/role-specs/verifier.md` | true |
### Pipeline Structure ### Pipeline Structure

View File

@@ -13,7 +13,7 @@ Discuss project roadmap with the user using project-tech.json + specs/*.md as co
## Strategy ## Strategy
Direct interaction via AskUserQuestion. No delegation to workers or subagents. Coordinator handles this entirely. Direct interaction via AskUserQuestion. No delegation to workers or CLI tools. Coordinator handles this entirely.
## Parameters ## Parameters
@@ -130,7 +130,7 @@ if (!autoYes) {
### Step 6: Analyze Codebase and Generate Phased Roadmap ### Step 6: Analyze Codebase and Generate Phased Roadmap
```javascript ```javascript
// Use Gemini CLI (or cli-explore-agent) to analyze the codebase // Use Gemini CLI (or CLI exploration tool) to analyze the codebase
// and generate a phased breakdown based on goal + project context // and generate a phased breakdown based on goal + project context
Bash({ Bash({
command: `ccw cli -p "PURPOSE: Analyze codebase and generate phased execution roadmap for: ${projectGoal} command: `ccw cli -p "PURPOSE: Analyze codebase and generate phased execution roadmap for: ${projectGoal}

View File

@@ -18,7 +18,7 @@ Orchestrate the roadmap-driven development workflow: init prerequisites -> roadm
- Manage state.md updates at every phase transition - Manage state.md updates at every phase transition
- Route verifier gap results to planner for closure - Route verifier gap results to planner for closure
- Parse user requirements and clarify ambiguous inputs via AskUserQuestion - Parse user requirements and clarify ambiguous inputs via AskUserQuestion
- Create team and spawn worker subagents in background - Create team and spawn worker team members in background
- Dispatch tasks with proper dependency chains - Dispatch tasks with proper dependency chains
- Monitor progress via worker callbacks and route messages - Monitor progress via worker callbacks and route messages
- Maintain session state persistence - Maintain session state persistence
@@ -26,7 +26,7 @@ Orchestrate the roadmap-driven development workflow: init prerequisites -> roadm
### MUST NOT ### MUST NOT
- Execute any business tasks (code, analysis, testing, verification) - Execute any business tasks (code, analysis, testing, verification)
- Call code-developer, cli-explore-agent, or other implementation subagents - Call CLI tools for code generation, exploration, or planning
- Modify source code or generate implementation artifacts - Modify source code or generate implementation artifacts
- Bypass worker roles to do work directly - Bypass worker roles to do work directly
- Skip roadmap discussion phase - Skip roadmap discussion phase

View File

@@ -29,9 +29,8 @@
"display_name": "RD Planner", "display_name": "RD Planner",
"responsibility_type": "Orchestration", "responsibility_type": "Orchestration",
"task_prefix": "PLAN", "task_prefix": "PLAN",
"description": "Research, context gathering, task JSON generation via action-planning-agent", "description": "Research, context gathering, task JSON generation via CLI planning tool",
"commands": ["research", "create-plans"], "commands": ["research", "create-plans"],
"subagents": ["cli-explore-agent", "action-planning-agent"],
"cli_tools": [{"tool": "gemini", "mode": "analysis"}], "cli_tools": [{"tool": "gemini", "mode": "analysis"}],
"message_types": ["plan_ready", "plan_progress", "error"] "message_types": ["plan_ready", "plan_progress", "error"]
}, },
@@ -42,7 +41,7 @@
"task_prefix": "EXEC", "task_prefix": "EXEC",
"description": "Code implementation from IMPL-*.json tasks, wave-based parallel execution", "description": "Code implementation from IMPL-*.json tasks, wave-based parallel execution",
"commands": ["implement"], "commands": ["implement"],
"subagents": ["code-developer"], "cli_tools": [{"tool": "gemini", "mode": "write"}],
"message_types": ["exec_complete", "exec_progress", "error"] "message_types": ["exec_complete", "exec_progress", "error"]
}, },
{ {

View File

@@ -224,7 +224,7 @@ TDSCAN-001 内部并行架构:
┌────────────────────────────────────────────────────┐ ┌────────────────────────────────────────────────────┐
│ Scanner Worker │ │ Scanner Worker │
│ │ │ │
│ Fan-out A: Subagent Exploration (并行 cli-explore) │ │ Fan-out A: CLI Exploration (parallel CLI explore)
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │structure │ │patterns │ │deps │ │ │ │structure │ │patterns │ │deps │ │
│ │角度 │ │角度 │ │角度 │ │ │ │角度 │ │角度 │ │角度 │ │

View File

@@ -9,7 +9,7 @@ message_types:
# Tech Debt Executor # Tech Debt Executor
Debt cleanup executor. Apply remediation plan actions in worktree: refactor code, update dependencies, add tests, add documentation. Batch-delegate to code-developer subagent, self-validate after each batch. Debt cleanup executor. Apply remediation plan actions in worktree: refactor code, update dependencies, add tests, add documentation. Batch-delegate to CLI tools, self-validate after each batch.
## Phase 2: Load Remediation Plan ## Phase 2: Load Remediation Plan
@@ -32,14 +32,24 @@ Debt cleanup executor. Apply remediation plan actions in worktree: refactor code
## Phase 3: Execute Fixes ## Phase 3: Execute Fixes
For each batch, delegate to `code-developer` subagent (synchronous, `run_in_background: false`): For each batch, use CLI tool for implementation:
**Worktree constraint**: ALL file operations and commands must execute within worktree path. Use `cd "<worktree-path>" && ...` prefix for all Bash commands. **Worktree constraint**: ALL file operations and commands must execute within worktree path. Use `cd "<worktree-path>" && ...` prefix for all Bash commands.
**Per-batch delegation**: **Per-batch delegation**:
- Provide batch type prompt (refactor/update-deps/add-tests/add-docs/restructure)
- List all items with file paths, descriptions, and fix steps ```bash
- Enforce: read files before modifying, minimal changes, backward compatibility, no new features, no suppressions ccw cli -p "PURPOSE: Apply tech debt fixes in batch; success = all items fixed without breaking changes
TASK: <batch-type-specific-tasks>
MODE: write
CONTEXT: @<worktree-path>/**/* | Memory: Remediation plan context
EXPECTED: Code changes that fix debt items, maintain backward compatibility, pass existing tests
CONSTRAINTS: Minimal changes only | No new features | No suppressions | Read files before modifying
Batch type: <refactor|update-deps|add-tests|add-docs|restructure>
Items: <list-of-items-with-file-paths-and-descriptions>" --tool gemini --mode write --cd "<worktree-path>"
```
Wait for CLI completion before proceeding to next batch.
**Fix Results Tracking**: **Fix Results Tracking**:

View File

@@ -1,7 +1,6 @@
--- ---
prefix: TDSCAN prefix: TDSCAN
inner_loop: false inner_loop: false
subagents: []
message_types: message_types:
success: scan_complete success: scan_complete
error: error error: error
@@ -47,8 +46,8 @@ Multi-dimension tech debt scanner. Scan codebase across 5 dimensions (code, arch
| Score | Complexity | Strategy | | Score | Complexity | Strategy |
|-------|------------|----------| |-------|------------|----------|
| >= 4 | High | Triple Fan-out: subagent explore + CLI 5 dimensions + multi-perspective Gemini | | >= 4 | High | Triple Fan-out: CLI explore + CLI 5 dimensions + multi-perspective Gemini |
| 2-3 | Medium | Dual Fan-out: subagent explore + CLI 3 dimensions | | 2-3 | Medium | Dual Fan-out: CLI explore + CLI 3 dimensions |
| 0-1 | Low | Inline: ACE search + Grep | | 0-1 | Low | Inline: ACE search + Grep |
## Phase 3: Multi-Dimension Scan ## Phase 3: Multi-Dimension Scan
@@ -58,7 +57,7 @@ Multi-dimension tech debt scanner. Scan codebase across 5 dimensions (code, arch
- Classify findings into dimensions - Classify findings into dimensions
**Medium/High Complexity** (Fan-out): **Medium/High Complexity** (Fan-out):
- Fan-out A: Subagent exploration (structure, patterns, dependencies angles) via `cli-explore-agent` - Fan-out A: CLI exploration (structure, patterns, dependencies angles) via `ccw cli --tool gemini --mode analysis`
- Fan-out B: CLI dimension analysis (parallel gemini per dimension -- code, architecture, testing, dependency, documentation) - Fan-out B: CLI dimension analysis (parallel gemini per dimension -- code, architecture, testing, dependency, documentation)
- Fan-out C (High only): Multi-perspective Gemini analysis (security, performance, code-quality, architecture) - Fan-out C (High only): Multi-perspective Gemini analysis (security, performance, code-quality, architecture)
- Fan-in: Merge results, cross-deduplicate by file:line, boost severity for multi-source findings - Fan-in: Merge results, cross-deduplicate by file:line, boost severity for multi-source findings

View File

@@ -58,8 +58,18 @@ Execute 4-layer validation (all commands in worktree):
- improvement_percentage = ((before - after) / before) * 100 - improvement_percentage = ((before - after) / before) * 100
**Auto-fix attempt** (when total_regressions <= 3): **Auto-fix attempt** (when total_regressions <= 3):
- Spawn code-developer subagent to fix regressions in worktree - Use CLI tool to fix regressions in worktree:
- Constraints: fix only regressions, preserve debt cleanup changes, no suppressions ```
Bash({
command: `cd "${worktreePath}" && ccw cli -p "PURPOSE: Fix regressions found in validation
TASK: ${regressionDetails}
MODE: write
CONTEXT: @${modifiedFiles.join(' @')}
EXPECTED: Fixed regressions
CONSTRAINTS: Fix only regressions | Preserve debt cleanup changes | No suppressions" --tool gemini --mode write`,
run_in_background: false
})
```
- Re-run checks after fix attempt - Re-run checks after fix attempt
## Phase 4: Compare & Report ## Phase 4: Compare & Report

View File

@@ -19,7 +19,7 @@
### MUST NOT ### MUST NOT
- Execute tech debt work directly (delegate to workers) - Execute tech debt work directly (delegate to workers)
- Modify task outputs (workers own their deliverables) - Modify task outputs (workers own their deliverables)
- Call implementation subagents directly (cli-explore-agent, code-developer, etc.) - Call CLI tools for analysis, exploration, or code generation
- Modify source code or generate artifact files directly - Modify source code or generate artifact files directly
- Bypass worker roles to complete delegated work - Bypass worker roles to complete delegated work
- Skip dependency validation when creating task chains - Skip dependency validation when creating task chains
@@ -100,7 +100,7 @@ For callback/check/resume/complete: load `commands/monitor.md` and execute match
| `Task` | Tool | Phase 4 | Worker spawning | | `Task` | Tool | Phase 4 | Worker spawning |
| `AskUserQuestion` | Tool | Phase 1 | Requirement clarification | | `AskUserQuestion` | Tool | Phase 1 | Requirement clarification |
> Coordinator does not directly use CLI analysis tools or implementation subagents > Coordinator does not directly use CLI analysis tools or CLI code generation
--- ---

View File

@@ -23,8 +23,7 @@
"message_types_sent": ["scan_complete", "debt_items_found", "error"], "message_types_sent": ["scan_complete", "debt_items_found", "error"],
"message_types_received": [], "message_types_received": [],
"commands": ["scan-debt"], "commands": ["scan-debt"],
"cli_tools": ["gemini"], "cli_tools": ["gemini"]
"subagents": ["cli-explore-agent"]
}, },
"assessor": { "assessor": {
"name": "assessor", "name": "assessor",
@@ -44,8 +43,7 @@
"message_types_sent": ["plan_ready", "plan_revision", "error"], "message_types_sent": ["plan_ready", "plan_revision", "error"],
"message_types_received": [], "message_types_received": [],
"commands": ["create-plan"], "commands": ["create-plan"],
"cli_tools": ["gemini"], "cli_tools": ["gemini"]
"subagents": ["cli-explore-agent"]
}, },
"executor": { "executor": {
"name": "executor", "name": "executor",
@@ -55,7 +53,7 @@
"message_types_sent": ["fix_complete", "fix_progress", "error"], "message_types_sent": ["fix_complete", "fix_progress", "error"],
"message_types_received": [], "message_types_received": [],
"commands": ["remediate"], "commands": ["remediate"],
"subagents": ["code-developer"] "cli_tools": [{"tool": "gemini", "mode": "write"}]
}, },
"validator": { "validator": {
"name": "validator", "name": "validator",
@@ -65,8 +63,7 @@
"message_types_sent": ["validation_complete", "regression_found", "error"], "message_types_sent": ["validation_complete", "regression_found", "error"],
"message_types_received": [], "message_types_received": [],
"commands": ["verify"], "commands": ["verify"],
"subagents": ["code-developer"], "cli_tools": [{"tool": "gemini", "mode": "write"}]
"cli_tools": ["gemini"]
} }
}, },

View File

@@ -49,7 +49,7 @@ Glob("<session>/<test-dir>/**/*")
| 2 | Parse results: pass rate + coverage | | 2 | Parse results: pass rate + coverage |
| 3 | pass_rate >= 0.95 AND coverage >= target -> success, exit | | 3 | pass_rate >= 0.95 AND coverage >= target -> success, exit |
| 4 | Extract failing test details | | 4 | Extract failing test details |
| 5 | Delegate fix to code-developer subagent | | 5 | Delegate fix to CLI tool (gemini write mode) |
| 6 | Increment iteration; >= 3 -> exit with failures | | 6 | Increment iteration; >= 3 -> exit with failures |
``` ```

View File

@@ -142,7 +142,7 @@ Cross-task knowledge accumulation. Coordinator creates `wisdom/` directory at se
| Share state via team_msg(type='state_update') | Create tasks for other roles | | Share state via team_msg(type='state_update') | Create tasks for other roles |
| Delegate to commands/ files | Modify resources outside own responsibility | | Delegate to commands/ files | Modify resources outside own responsibility |
Coordinator additional restrictions: Do not write/modify code directly, do not call implementation subagents, do not execute analysis/audits, do not bypass workers. Coordinator additional restrictions: Do not write/modify code directly, do not spawn implementation workers directly, do not execute analysis/audits, do not bypass workers.
### Output Tagging ### Output Tagging

View File

@@ -1,7 +1,7 @@
--- ---
prefix: RESEARCH prefix: RESEARCH
inner_loop: false inner_loop: false
subagents: [explore] additional_members: [explore]
message_types: message_types:
success: research_ready success: research_ready
progress: research_progress progress: research_progress
@@ -32,7 +32,7 @@ Analyze existing design system, build component inventory, assess accessibility
| @shadcn/ui | shadcn | | @shadcn/ui | shadcn |
| (default) | html-tailwind | | (default) | html-tailwind |
3. Use `explore` subagent to scan for existing design tokens, component files, styling patterns 3. Use CLI tools (e.g., `ccw cli -p "..." --tool gemini --mode analysis`) or direct tools (Glob, Grep, mcp__ace-tool__search_context) to scan for existing design tokens, component files, styling patterns
4. Read industry context from session config (industry, strictness, must-have features) 4. Read industry context from session config (industry, strictness, must-have features)
## Phase 3: Research Execution ## Phase 3: Research Execution

View File

@@ -2,7 +2,7 @@
prefix: ANALYZE prefix: ANALYZE
inner_loop: false inner_loop: false
additional_prefixes: [ANALYZE-fix] additional_prefixes: [ANALYZE-fix]
subagents: [] additional_members: []
message_types: message_types:
success: analysis_ready success: analysis_ready
error: error error: error

View File

@@ -1,7 +1,7 @@
--- ---
prefix: DISCUSS prefix: DISCUSS
inner_loop: false inner_loop: false
subagents: [] additional_members: []
message_types: message_types:
success: discussion_processed success: discussion_processed
error: error error: error
@@ -40,9 +40,9 @@ Select strategy by discussion type:
| Type | Mode | Description | | Type | Mode | Description |
|------|------|-------------| |------|------|-------------|
| initial | inline | Aggregate all analyses: convergent themes, conflicts, top discussion points | | initial | inline | Aggregate all analyses: convergent themes, conflicts, top discussion points |
| deepen | subagent | Spawn cli-explore-agent to investigate open questions deeper | | deepen | cli | Use CLI tool to investigate open questions deeper |
| direction-adjusted | cli | Re-analyze via `ccw cli` from adjusted perspective | | direction-adjusted | cli | Re-analyze via `ccw cli` from adjusted perspective |
| specific-questions | subagent | Targeted exploration answering user questions | | specific-questions | cli | Targeted exploration answering user questions |
**initial**: Cross-perspective summary -- identify convergent themes, conflicting views, top 5 discussion points and open questions from all analyses. **initial**: Cross-perspective summary -- identify convergent themes, conflicting views, top 5 discussion points and open questions from all analyses.

Some files were not shown because too many files have changed in this diff Show More