|
6 | 6 | "architecture": "team-worker agent + role-specs", |
7 | 7 | "role_structure": "role-specs/{name}.md (Phase 2-4 only)", |
8 | 8 | "worker_agent": "team-worker", |
9 | | - |
10 | 9 | "roles": { |
11 | 10 | "coordinator": { |
12 | 11 | "task_prefix": null, |
13 | 12 | "responsibility": "Pipeline orchestration, requirement clarification, task chain creation", |
14 | | - "message_types": ["plan_approved", "plan_revision", "task_unblocked", "fix_required", "error", "shutdown"] |
| 13 | + "message_types": [ |
| 14 | + "plan_approved", |
| 15 | + "plan_revision", |
| 16 | + "task_unblocked", |
| 17 | + "fix_required", |
| 18 | + "error", |
| 19 | + "shutdown" |
| 20 | + ] |
15 | 21 | }, |
16 | 22 | "analyst": { |
17 | 23 | "task_prefix": "RESEARCH", |
18 | 24 | "role_spec": "role-specs/analyst.md", |
19 | 25 | "responsibility": "Seed analysis, codebase exploration, context gathering + discuss", |
20 | 26 | "inline_discuss": "DISCUSS-001", |
21 | 27 | "inner_loop": false, |
22 | | - "message_types": ["research_ready", "research_progress", "error"] |
| 28 | + "message_types": [ |
| 29 | + "research_ready", |
| 30 | + "research_progress", |
| 31 | + "error" |
| 32 | + ] |
23 | 33 | }, |
24 | 34 | "writer": { |
25 | 35 | "task_prefix": "DRAFT", |
26 | 36 | "role_spec": "role-specs/writer.md", |
27 | 37 | "responsibility": "Product Brief / PRD / Architecture / Epics generation. Discuss at PRD only, self-validate others", |
28 | 38 | "inner_loop": true, |
29 | | - "inline_discuss": ["DISCUSS-002"], |
30 | | - "message_types": ["draft_ready", "draft_revision", "error"] |
| 39 | + "inline_discuss": [ |
| 40 | + "DISCUSS-002" |
| 41 | + ], |
| 42 | + "message_types": [ |
| 43 | + "draft_ready", |
| 44 | + "draft_revision", |
| 45 | + "error" |
| 46 | + ] |
31 | 47 | }, |
32 | 48 | "planner": { |
33 | 49 | "task_prefix": "PLAN", |
34 | 50 | "role_spec": "role-specs/planner.md", |
35 | 51 | "responsibility": "Multi-angle exploration and structured implementation planning", |
36 | 52 | "inner_loop": true, |
37 | | - "message_types": ["plan_ready", "plan_revision", "error"] |
| 53 | + "message_types": [ |
| 54 | + "plan_ready", |
| 55 | + "plan_revision", |
| 56 | + "error" |
| 57 | + ] |
38 | 58 | }, |
39 | 59 | "executor": { |
40 | 60 | "task_prefix": "IMPL", |
41 | 61 | "role_spec": "role-specs/executor.md", |
42 | 62 | "responsibility": "Code implementation following approved plans", |
43 | 63 | "inner_loop": true, |
44 | | - "message_types": ["impl_complete", "impl_progress", "error"] |
| 64 | + "message_types": [ |
| 65 | + "impl_complete", |
| 66 | + "impl_progress", |
| 67 | + "error" |
| 68 | + ] |
45 | 69 | }, |
46 | 70 | "tester": { |
47 | 71 | "task_prefix": "TEST", |
48 | 72 | "role_spec": "role-specs/tester.md", |
49 | 73 | "responsibility": "Adaptive test-fix cycles, progressive testing", |
50 | 74 | "inner_loop": false, |
51 | | - "message_types": ["test_result", "fix_required", "error"] |
| 75 | + "message_types": [ |
| 76 | + "test_result", |
| 77 | + "fix_required", |
| 78 | + "error" |
| 79 | + ] |
52 | 80 | }, |
53 | 81 | "reviewer": { |
54 | 82 | "task_prefix": "REVIEW", |
55 | | - "additional_prefixes": ["QUALITY", "IMPROVE"], |
| 83 | + "additional_prefixes": [ |
| 84 | + "QUALITY", |
| 85 | + "IMPROVE" |
| 86 | + ], |
56 | 87 | "role_spec": "role-specs/reviewer.md", |
57 | 88 | "responsibility": "Code review (REVIEW-*) + Spec quality (QUALITY-*) + Improvement (IMPROVE-*) + final discuss", |
58 | 89 | "inline_discuss": "DISCUSS-003", |
59 | 90 | "inner_loop": false, |
60 | | - "message_types": ["review_result", "quality_result", "quality_recheck", "fix_required", "error"] |
| 91 | + "message_types": [ |
| 92 | + "review_result", |
| 93 | + "quality_result", |
| 94 | + "quality_recheck", |
| 95 | + "fix_required", |
| 96 | + "error" |
| 97 | + ] |
61 | 98 | }, |
62 | 99 | "architect": { |
63 | 100 | "task_prefix": "ARCH", |
64 | 101 | "role_spec": "role-specs/architect.md", |
65 | 102 | "responsibility": "Architecture assessment, tech feasibility. Consulting role", |
66 | 103 | "role_type": "consulting", |
67 | 104 | "inner_loop": false, |
68 | | - "message_types": ["arch_ready", "arch_concern", "error"] |
| 105 | + "message_types": [ |
| 106 | + "arch_ready", |
| 107 | + "arch_concern", |
| 108 | + "error" |
| 109 | + ] |
69 | 110 | }, |
70 | 111 | "fe-developer": { |
71 | 112 | "task_prefix": "DEV-FE", |
72 | 113 | "role_spec": "role-specs/fe-developer.md", |
73 | 114 | "responsibility": "Frontend implementation", |
74 | 115 | "role_type": "frontend-pipeline", |
75 | 116 | "inner_loop": false, |
76 | | - "message_types": ["dev_fe_complete", "dev_fe_progress", "error"] |
| 117 | + "message_types": [ |
| 118 | + "dev_fe_complete", |
| 119 | + "dev_fe_progress", |
| 120 | + "error" |
| 121 | + ] |
77 | 122 | }, |
78 | 123 | "fe-qa": { |
79 | 124 | "task_prefix": "QA-FE", |
80 | 125 | "role_spec": "role-specs/fe-qa.md", |
81 | 126 | "responsibility": "5-dimension frontend review, GC loop", |
82 | 127 | "role_type": "frontend-pipeline", |
83 | 128 | "inner_loop": false, |
84 | | - "message_types": ["qa_fe_passed", "qa_fe_result", "fix_required", "error"] |
| 129 | + "message_types": [ |
| 130 | + "qa_fe_passed", |
| 131 | + "qa_fe_result", |
| 132 | + "fix_required", |
| 133 | + "error" |
| 134 | + ] |
85 | 135 | } |
86 | 136 | }, |
87 | | - |
88 | | - "subagents": { |
89 | | - "discuss": { |
90 | | - "spec": "subagents/discuss-subagent.md", |
91 | | - "type": "cli-discuss-agent", |
92 | | - "callable_by": ["analyst", "writer", "reviewer"], |
93 | | - "purpose": "Multi-perspective critique (3 rounds: direction, requirements, final gate)" |
94 | | - } |
95 | | - }, |
96 | | - |
97 | 137 | "checkpoint_commands": { |
98 | 138 | "revise": { |
99 | 139 | "handler": "handleRevise", |
|
116 | 156 | "cascade": false |
117 | 157 | } |
118 | 158 | }, |
119 | | - |
120 | 159 | "pipelines": { |
121 | 160 | "spec-only": { |
122 | 161 | "description": "Spec pipeline: research(+D1) -> brief -> prd(+D2) -> arch -> epics -> quality(+D3)", |
123 | | - "task_chain": ["RESEARCH-001", "DRAFT-001", "DRAFT-002", "DRAFT-003", "DRAFT-004", "QUALITY-001"], |
124 | | - "discuss_points": ["RESEARCH-001", "DRAFT-002", "QUALITY-001"], |
| 162 | + "task_chain": [ |
| 163 | + "RESEARCH-001", |
| 164 | + "DRAFT-001", |
| 165 | + "DRAFT-002", |
| 166 | + "DRAFT-003", |
| 167 | + "DRAFT-004", |
| 168 | + "QUALITY-001" |
| 169 | + ], |
| 170 | + "discuss_points": [ |
| 171 | + "RESEARCH-001", |
| 172 | + "DRAFT-002", |
| 173 | + "QUALITY-001" |
| 174 | + ], |
125 | 175 | "beats": 6 |
126 | 176 | }, |
127 | 177 | "impl-only": { |
128 | 178 | "description": "Implementation pipeline: plan -> implement -> test + review", |
129 | | - "task_chain": ["PLAN-001", "IMPL-001", "TEST-001", "REVIEW-001"], |
| 179 | + "task_chain": [ |
| 180 | + "PLAN-001", |
| 181 | + "IMPL-001", |
| 182 | + "TEST-001", |
| 183 | + "REVIEW-001" |
| 184 | + ], |
130 | 185 | "beats": 3 |
131 | 186 | }, |
132 | 187 | "full-lifecycle": { |
|
136 | 191 | }, |
137 | 192 | "fe-only": { |
138 | 193 | "description": "Frontend-only: plan -> dev -> qa", |
139 | | - "task_chain": ["PLAN-001", "DEV-FE-001", "QA-FE-001"], |
140 | | - "gc_loop": { "max_rounds": 2, "convergence": "score >= 8 && critical === 0" } |
| 194 | + "task_chain": [ |
| 195 | + "PLAN-001", |
| 196 | + "DEV-FE-001", |
| 197 | + "QA-FE-001" |
| 198 | + ], |
| 199 | + "gc_loop": { |
| 200 | + "max_rounds": 2, |
| 201 | + "convergence": "score >= 8 && critical === 0" |
| 202 | + } |
141 | 203 | }, |
142 | 204 | "fullstack": { |
143 | 205 | "description": "Fullstack: plan -> backend + frontend parallel -> test + qa -> review", |
144 | | - "task_chain": ["PLAN-001", "IMPL-001||DEV-FE-001", "TEST-001||QA-FE-001", "REVIEW-001"] |
| 206 | + "task_chain": [ |
| 207 | + "PLAN-001", |
| 208 | + "IMPL-001||DEV-FE-001", |
| 209 | + "TEST-001||QA-FE-001", |
| 210 | + "REVIEW-001" |
| 211 | + ] |
145 | 212 | }, |
146 | 213 | "full-lifecycle-fe": { |
147 | 214 | "description": "Full lifecycle with frontend", |
148 | 215 | "task_chain": "spec-only + fullstack (PLAN-001 blockedBy QUALITY-001)" |
149 | 216 | } |
150 | 217 | }, |
151 | | - |
152 | 218 | "frontend_detection": { |
153 | | - "keywords": ["component", "page", "UI", "frontend", "CSS", "HTML", "React", "Vue", "Tailwind", "Svelte", "Next.js"], |
| 219 | + "keywords": [ |
| 220 | + "component", |
| 221 | + "page", |
| 222 | + "UI", |
| 223 | + "frontend", |
| 224 | + "CSS", |
| 225 | + "HTML", |
| 226 | + "React", |
| 227 | + "Vue", |
| 228 | + "Tailwind", |
| 229 | + "Svelte", |
| 230 | + "Next.js" |
| 231 | + ], |
154 | 232 | "routing_rules": { |
155 | 233 | "frontend_only": "All tasks match frontend keywords", |
156 | 234 | "fullstack": "Mix of frontend and backend tasks", |
157 | 235 | "backend_only": "No frontend keywords (default impl-only)" |
158 | 236 | } |
159 | 237 | }, |
160 | | - |
161 | 238 | "session_dirs": { |
162 | 239 | "base": ".workflow/.team/TLS-{slug}-{YYYY-MM-DD}/", |
163 | 240 | "spec": "spec/", |
|
0 commit comments