claude-code-workflow 7.2.15 → 7.2.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (526) hide show
  1. package/.ccw/workflows/cli-templates/schemas/team-tasks-schema.json +255 -0
  2. package/.codex/agents/team-supervisor.toml +39 -0
  3. package/.codex/agents/team-worker.toml +46 -0
  4. package/.codex/skills/team-arch-opt/SKILL.md +151 -698
  5. package/.codex/skills/team-arch-opt/roles/analyzer/role.md +78 -0
  6. package/.codex/skills/team-arch-opt/roles/coordinator/commands/analyze.md +57 -0
  7. package/.codex/skills/team-arch-opt/roles/coordinator/commands/dispatch.md +287 -0
  8. package/.codex/skills/team-arch-opt/roles/coordinator/commands/monitor.md +204 -0
  9. package/.codex/skills/team-arch-opt/roles/coordinator/role.md +162 -0
  10. package/.codex/skills/team-arch-opt/roles/designer/role.md +115 -0
  11. package/.codex/skills/team-arch-opt/roles/refactorer/role.md +102 -0
  12. package/.codex/skills/team-arch-opt/roles/reviewer/role.md +111 -0
  13. package/.codex/skills/team-arch-opt/roles/validator/role.md +115 -0
  14. package/.codex/skills/team-arch-opt/specs/pipelines.md +102 -0
  15. package/.codex/skills/team-arch-opt/specs/team-config.json +263 -0
  16. package/.codex/skills/team-brainstorm/SKILL.md +167 -724
  17. package/.codex/skills/team-brainstorm/roles/challenger/role.md +61 -0
  18. package/.codex/skills/team-brainstorm/roles/coordinator/commands/analyze.md +58 -0
  19. package/.codex/skills/team-brainstorm/roles/coordinator/commands/dispatch.md +162 -0
  20. package/.codex/skills/team-brainstorm/roles/coordinator/commands/monitor.md +171 -0
  21. package/.codex/skills/team-brainstorm/roles/coordinator/role.md +140 -0
  22. package/.codex/skills/team-brainstorm/roles/evaluator/role.md +56 -0
  23. package/.codex/skills/team-brainstorm/roles/ideator/role.md +69 -0
  24. package/.codex/skills/team-brainstorm/roles/synthesizer/role.md +57 -0
  25. package/.codex/skills/team-brainstorm/specs/pipelines.md +72 -0
  26. package/.codex/skills/team-brainstorm/specs/team-config.json +86 -0
  27. package/.codex/skills/team-coordinate/SKILL.md +267 -667
  28. package/.codex/skills/team-coordinate/roles/coordinator/commands/analyze-task.md +247 -0
  29. package/.codex/skills/team-coordinate/roles/coordinator/commands/dispatch.md +126 -0
  30. package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +327 -0
  31. package/.codex/skills/team-coordinate/roles/coordinator/role.md +361 -0
  32. package/.codex/skills/team-coordinate/specs/knowledge-transfer.md +111 -0
  33. package/.codex/skills/team-coordinate/specs/pipelines.md +97 -0
  34. package/.codex/skills/team-coordinate/specs/quality-gates.md +112 -0
  35. package/.codex/skills/team-coordinate/specs/role-spec-template.md +192 -0
  36. package/.codex/skills/team-designer/SKILL.md +153 -691
  37. package/.codex/skills/team-designer/phases/01-requirements-analysis.md +250 -0
  38. package/.codex/skills/team-designer/phases/02-scaffold-generation.md +228 -0
  39. package/.codex/skills/team-designer/phases/03-content-generation.md +330 -0
  40. package/.codex/skills/team-designer/phases/04-validation.md +320 -0
  41. package/.codex/skills/team-executor/SKILL.md +191 -515
  42. package/.codex/skills/team-executor/roles/executor/commands/monitor.md +280 -0
  43. package/.codex/skills/team-executor/roles/executor/role.md +170 -0
  44. package/.codex/skills/team-executor/specs/session-schema.md +264 -0
  45. package/.codex/skills/team-frontend/SKILL.md +129 -750
  46. package/.codex/skills/team-frontend/roles/analyst/role.md +92 -0
  47. package/.codex/skills/team-frontend/roles/architect/role.md +86 -0
  48. package/.codex/skills/team-frontend/roles/coordinator/commands/analyze.md +52 -0
  49. package/.codex/skills/team-frontend/roles/coordinator/commands/dispatch.md +151 -0
  50. package/.codex/skills/team-frontend/roles/coordinator/commands/monitor.md +188 -0
  51. package/.codex/skills/team-frontend/roles/coordinator/role.md +157 -0
  52. package/.codex/skills/team-frontend/roles/developer/role.md +93 -0
  53. package/.codex/skills/team-frontend/roles/qa/role.md +79 -0
  54. package/.codex/skills/team-frontend/specs/pipelines.md +76 -0
  55. package/.codex/skills/team-frontend/specs/team-config.json +84 -0
  56. package/.codex/skills/team-frontend-debug/SKILL.md +191 -821
  57. package/.codex/skills/team-frontend-debug/roles/analyzer/role.md +208 -0
  58. package/.codex/skills/team-frontend-debug/roles/coordinator/commands/analyze.md +174 -0
  59. package/.codex/skills/team-frontend-debug/roles/coordinator/commands/dispatch.md +198 -0
  60. package/.codex/skills/team-frontend-debug/roles/coordinator/commands/monitor.md +143 -0
  61. package/.codex/skills/team-frontend-debug/roles/coordinator/role.md +131 -0
  62. package/.codex/skills/team-frontend-debug/roles/fixer/role.md +147 -0
  63. package/.codex/skills/team-frontend-debug/roles/reproducer/role.md +147 -0
  64. package/.codex/skills/team-frontend-debug/roles/tester/role.md +231 -0
  65. package/.codex/skills/team-frontend-debug/roles/verifier/role.md +172 -0
  66. package/.codex/skills/team-frontend-debug/specs/debug-tools.md +215 -0
  67. package/.codex/skills/team-frontend-debug/specs/pipelines.md +94 -0
  68. package/.codex/skills/team-issue/SKILL.md +166 -751
  69. package/.codex/skills/team-issue/roles/coordinator/commands/analyze.md +64 -0
  70. package/.codex/skills/team-issue/roles/coordinator/commands/dispatch.md +273 -0
  71. package/.codex/skills/team-issue/roles/coordinator/commands/monitor.md +194 -0
  72. package/.codex/skills/team-issue/roles/coordinator/role.md +175 -0
  73. package/.codex/skills/team-issue/roles/explorer/role.md +94 -0
  74. package/.codex/skills/team-issue/roles/implementer/role.md +87 -0
  75. package/.codex/skills/team-issue/roles/integrator/role.md +84 -0
  76. package/.codex/skills/team-issue/roles/planner/role.md +81 -0
  77. package/.codex/skills/team-issue/roles/reviewer/role.md +86 -0
  78. package/.codex/skills/team-issue/specs/pipelines.md +124 -0
  79. package/.codex/skills/team-issue/specs/team-config.json +70 -0
  80. package/.codex/skills/team-iterdev/SKILL.md +134 -825
  81. package/.codex/skills/team-iterdev/roles/architect/role.md +65 -0
  82. package/.codex/skills/team-iterdev/roles/coordinator/commands/analyze.md +62 -0
  83. package/.codex/skills/team-iterdev/roles/coordinator/commands/dispatch.md +187 -0
  84. package/.codex/skills/team-iterdev/roles/coordinator/commands/monitor.md +186 -0
  85. package/.codex/skills/team-iterdev/roles/coordinator/role.md +161 -0
  86. package/.codex/skills/team-iterdev/roles/developer/role.md +74 -0
  87. package/.codex/skills/team-iterdev/roles/reviewer/role.md +66 -0
  88. package/.codex/skills/team-iterdev/roles/tester/role.md +88 -0
  89. package/.codex/skills/team-iterdev/specs/pipelines.md +94 -0
  90. package/.codex/skills/team-iterdev/specs/team-config.json +172 -0
  91. package/.codex/skills/team-lifecycle-v4/MIGRATION-PLAN.md +512 -0
  92. package/.codex/skills/team-lifecycle-v4/SKILL.md +166 -723
  93. package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +104 -0
  94. package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/analyze.md +56 -0
  95. package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/dispatch.md +61 -0
  96. package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +177 -0
  97. package/.codex/skills/team-lifecycle-v4/roles/coordinator/role.md +152 -0
  98. package/.codex/skills/team-lifecycle-v4/roles/executor/commands/fix.md +35 -0
  99. package/.codex/skills/team-lifecycle-v4/roles/executor/commands/implement.md +63 -0
  100. package/.codex/skills/team-lifecycle-v4/roles/executor/role.md +89 -0
  101. package/.codex/skills/team-lifecycle-v4/roles/planner/role.md +108 -0
  102. package/.codex/skills/team-lifecycle-v4/roles/reviewer/commands/review-code.md +57 -0
  103. package/.codex/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +44 -0
  104. package/.codex/skills/team-lifecycle-v4/roles/reviewer/role.md +98 -0
  105. package/.codex/skills/team-lifecycle-v4/roles/supervisor/role.md +210 -0
  106. package/.codex/skills/team-lifecycle-v4/roles/tester/role.md +126 -0
  107. package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +125 -0
  108. package/.codex/skills/team-lifecycle-v4/schemas/tasks-schema.md +82 -160
  109. package/.codex/skills/team-lifecycle-v4/specs/knowledge-transfer.md +136 -0
  110. package/.codex/skills/team-lifecycle-v4/specs/pipelines.md +125 -0
  111. package/.codex/skills/team-lifecycle-v4/specs/quality-gates.md +130 -0
  112. package/.codex/skills/team-perf-opt/SKILL.md +169 -697
  113. package/.codex/skills/team-perf-opt/roles/benchmarker/role.md +89 -0
  114. package/.codex/skills/team-perf-opt/roles/coordinator/commands/analyze.md +61 -0
  115. package/.codex/skills/team-perf-opt/roles/coordinator/commands/dispatch.md +262 -0
  116. package/.codex/skills/team-perf-opt/roles/coordinator/commands/monitor.md +320 -0
  117. package/.codex/skills/team-perf-opt/roles/coordinator/role.md +147 -0
  118. package/.codex/skills/team-perf-opt/roles/optimizer/role.md +97 -0
  119. package/.codex/skills/team-perf-opt/roles/profiler/role.md +73 -0
  120. package/.codex/skills/team-perf-opt/roles/reviewer/role.md +75 -0
  121. package/.codex/skills/team-perf-opt/roles/strategist/role.md +94 -0
  122. package/.codex/skills/team-perf-opt/specs/pipelines.md +65 -0
  123. package/.codex/skills/team-perf-opt/specs/team-config.json +246 -0
  124. package/.codex/skills/team-planex/SKILL.md +103 -477
  125. package/.codex/skills/team-planex/roles/coordinator/commands/analyze.md +52 -0
  126. package/.codex/skills/team-planex/roles/coordinator/commands/dispatch.md +80 -0
  127. package/.codex/skills/team-planex/roles/coordinator/commands/monitor.md +164 -0
  128. package/.codex/skills/team-planex/roles/coordinator/role.md +140 -0
  129. package/.codex/skills/team-planex/roles/executor/role.md +91 -0
  130. package/.codex/skills/team-planex/roles/planner/role.md +112 -0
  131. package/.codex/skills/team-planex/specs/pipelines.md +93 -0
  132. package/.codex/skills/team-quality-assurance/SKILL.md +148 -813
  133. package/.codex/skills/team-quality-assurance/roles/analyst/role.md +80 -0
  134. package/.codex/skills/team-quality-assurance/roles/coordinator/commands/analyze.md +72 -0
  135. package/.codex/skills/team-quality-assurance/roles/coordinator/commands/dispatch.md +108 -0
  136. package/.codex/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +209 -0
  137. package/.codex/skills/team-quality-assurance/roles/coordinator/role.md +143 -0
  138. package/.codex/skills/team-quality-assurance/roles/executor/role.md +66 -0
  139. package/.codex/skills/team-quality-assurance/roles/generator/role.md +68 -0
  140. package/.codex/skills/team-quality-assurance/roles/scout/role.md +67 -0
  141. package/.codex/skills/team-quality-assurance/roles/strategist/role.md +71 -0
  142. package/.codex/skills/team-quality-assurance/specs/pipelines.md +115 -0
  143. package/.codex/skills/team-quality-assurance/specs/team-config.json +131 -0
  144. package/.codex/skills/team-review/SKILL.md +148 -533
  145. package/.codex/skills/team-review/roles/coordinator/commands/analyze.md +71 -0
  146. package/.codex/skills/team-review/roles/coordinator/commands/dispatch.md +90 -0
  147. package/.codex/skills/team-review/roles/coordinator/commands/monitor.md +185 -0
  148. package/.codex/skills/team-review/roles/coordinator/role.md +142 -0
  149. package/.codex/skills/team-review/roles/fixer/role.md +76 -0
  150. package/.codex/skills/team-review/roles/reviewer/role.md +68 -0
  151. package/.codex/skills/team-review/roles/scanner/role.md +71 -0
  152. package/.codex/skills/team-review/specs/dimensions.md +82 -0
  153. package/.codex/skills/team-review/specs/finding-schema.json +82 -0
  154. package/.codex/skills/team-review/specs/pipelines.md +102 -0
  155. package/.codex/skills/team-review/specs/team-config.json +27 -0
  156. package/.codex/skills/team-roadmap-dev/SKILL.md +162 -683
  157. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/analyze.md +61 -0
  158. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/dispatch.md +241 -0
  159. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/monitor.md +468 -0
  160. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/pause.md +90 -0
  161. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/resume.md +137 -0
  162. package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/roadmap-discuss.md +243 -0
  163. package/.codex/skills/team-roadmap-dev/roles/coordinator/role.md +303 -0
  164. package/.codex/skills/team-roadmap-dev/roles/executor/role.md +71 -0
  165. package/.codex/skills/team-roadmap-dev/roles/planner/role.md +76 -0
  166. package/.codex/skills/team-roadmap-dev/roles/verifier/role.md +74 -0
  167. package/.codex/skills/team-roadmap-dev/specs/pipelines.md +93 -0
  168. package/.codex/skills/team-roadmap-dev/specs/team-config.json +95 -0
  169. package/.codex/skills/team-tech-debt/SKILL.md +129 -708
  170. package/.codex/skills/team-tech-debt/roles/assessor/role.md +69 -0
  171. package/.codex/skills/team-tech-debt/roles/coordinator/commands/analyze.md +47 -0
  172. package/.codex/skills/team-tech-debt/roles/coordinator/commands/dispatch.md +163 -0
  173. package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +231 -0
  174. package/.codex/skills/team-tech-debt/roles/coordinator/role.md +141 -0
  175. package/.codex/skills/team-tech-debt/roles/executor/role.md +76 -0
  176. package/.codex/skills/team-tech-debt/roles/planner/role.md +69 -0
  177. package/.codex/skills/team-tech-debt/roles/scanner/role.md +82 -0
  178. package/.codex/skills/team-tech-debt/roles/validator/role.md +75 -0
  179. package/.codex/skills/team-tech-debt/specs/pipelines.md +47 -0
  180. package/.codex/skills/team-tech-debt/specs/team-config.json +129 -0
  181. package/.codex/skills/team-testing/SKILL.md +144 -769
  182. package/.codex/skills/team-testing/roles/analyst/role.md +95 -0
  183. package/.codex/skills/team-testing/roles/coordinator/commands/analyze.md +70 -0
  184. package/.codex/skills/team-testing/roles/coordinator/commands/dispatch.md +106 -0
  185. package/.codex/skills/team-testing/roles/coordinator/commands/monitor.md +242 -0
  186. package/.codex/skills/team-testing/roles/coordinator/role.md +151 -0
  187. package/.codex/skills/team-testing/roles/executor/role.md +96 -0
  188. package/.codex/skills/team-testing/roles/generator/role.md +95 -0
  189. package/.codex/skills/team-testing/roles/strategist/role.md +83 -0
  190. package/.codex/skills/team-testing/specs/pipelines.md +101 -0
  191. package/.codex/skills/team-testing/specs/team-config.json +93 -0
  192. package/.codex/skills/team-uidesign/SKILL.md +133 -767
  193. package/.codex/skills/team-uidesign/roles/coordinator/commands/analyze.md +59 -0
  194. package/.codex/skills/team-uidesign/roles/coordinator/commands/dispatch.md +156 -0
  195. package/.codex/skills/team-uidesign/roles/coordinator/commands/monitor.md +194 -0
  196. package/.codex/skills/team-uidesign/roles/coordinator/role.md +179 -0
  197. package/.codex/skills/team-uidesign/roles/designer/role.md +69 -0
  198. package/.codex/skills/team-uidesign/roles/implementer/role.md +72 -0
  199. package/.codex/skills/team-uidesign/roles/researcher/role.md +82 -0
  200. package/.codex/skills/team-uidesign/roles/reviewer/role.md +67 -0
  201. package/.codex/skills/team-uidesign/specs/pipelines.md +76 -0
  202. package/.codex/skills/team-uidesign/specs/team-config.json +107 -0
  203. package/.codex/skills/team-ultra-analyze/SKILL.md +166 -786
  204. package/.codex/skills/team-ultra-analyze/roles/analyst/role.md +90 -0
  205. package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/analyze.md +73 -0
  206. package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/dispatch.md +225 -0
  207. package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/monitor.md +327 -0
  208. package/.codex/skills/team-ultra-analyze/roles/coordinator/role.md +223 -0
  209. package/.codex/skills/team-ultra-analyze/roles/discussant/role.md +104 -0
  210. package/.codex/skills/team-ultra-analyze/roles/explorer/role.md +74 -0
  211. package/.codex/skills/team-ultra-analyze/roles/synthesizer/role.md +78 -0
  212. package/.codex/skills/team-ultra-analyze/specs/pipelines.md +64 -0
  213. package/.codex/skills/team-ultra-analyze/specs/team-config.json +129 -0
  214. package/.codex/skills/team-ux-improve/SKILL.md +142 -638
  215. package/.codex/skills/team-ux-improve/roles/coordinator/commands/analyze.md +62 -0
  216. package/.codex/skills/team-ux-improve/roles/coordinator/commands/dispatch.md +233 -0
  217. package/.codex/skills/team-ux-improve/roles/coordinator/commands/monitor.md +160 -0
  218. package/.codex/skills/team-ux-improve/roles/coordinator/role.md +138 -0
  219. package/.codex/skills/team-ux-improve/roles/designer/role.md +122 -0
  220. package/.codex/skills/team-ux-improve/roles/diagnoser/role.md +93 -0
  221. package/.codex/skills/team-ux-improve/roles/explorer/role.md +77 -0
  222. package/.codex/skills/team-ux-improve/roles/implementer/role.md +102 -0
  223. package/.codex/skills/team-ux-improve/roles/scanner/role.md +93 -0
  224. package/.codex/skills/team-ux-improve/roles/tester/role.md +84 -0
  225. package/.codex/skills/team-ux-improve/specs/pipelines.md +54 -0
  226. package/.codex/skills/team-ux-improve/specs/team-config.json +181 -0
  227. package/.codex/skills/team-ux-improve/wisdom/anti-patterns/common-ux-pitfalls.md +17 -0
  228. package/.codex/skills/team-ux-improve/wisdom/contributions/.gitkeep +0 -0
  229. package/.codex/skills/team-ux-improve/wisdom/patterns/state-management.md +14 -0
  230. package/.codex/skills/team-ux-improve/wisdom/patterns/ui-feedback.md +16 -0
  231. package/.codex/skills/team-ux-improve/wisdom/principles/general-ux.md +16 -0
  232. package/ccw/dist/core/routes/cli-settings-routes.d.ts.map +1 -1
  233. package/ccw/dist/core/routes/cli-settings-routes.js +135 -133
  234. package/ccw/dist/core/routes/cli-settings-routes.js.map +1 -1
  235. package/ccw/frontend/dist/assets/{AlertDialog-BW9jiZ-p.js → AlertDialog-CnpjWAGm.js} +2 -2
  236. package/ccw/frontend/dist/assets/{AlertDialog-BW9jiZ-p.js.map → AlertDialog-CnpjWAGm.js.map} +1 -1
  237. package/ccw/frontend/dist/assets/{AnalysisPage-ds-w_nVO.js → AnalysisPage-BT2rDDUD.js} +2 -2
  238. package/ccw/frontend/dist/assets/{AnalysisPage-ds-w_nVO.js.map → AnalysisPage-BT2rDDUD.js.map} +1 -1
  239. package/ccw/frontend/dist/assets/{ApiSettingsPage-DlCbXxTz.js → ApiSettingsPage-DGpjiNVu.js} +2 -2
  240. package/ccw/frontend/dist/assets/{ApiSettingsPage-DlCbXxTz.js.map → ApiSettingsPage-DGpjiNVu.js.map} +1 -1
  241. package/ccw/frontend/dist/assets/{CliModeToggle-Dq3nL4fF.js → CliModeToggle-BqUadHn3.js} +2 -2
  242. package/ccw/frontend/dist/assets/{CliModeToggle-Dq3nL4fF.js.map → CliModeToggle-BqUadHn3.js.map} +1 -1
  243. package/ccw/frontend/dist/assets/{CliSessionSharePage-BNDkEE4u.js → CliSessionSharePage-C3AdsDkm.js} +2 -2
  244. package/ccw/frontend/dist/assets/{CliSessionSharePage-BNDkEE4u.js.map → CliSessionSharePage-C3AdsDkm.js.map} +1 -1
  245. package/ccw/frontend/dist/assets/{CliViewerPage-ChM-uNx_.js → CliViewerPage-BZXpgY0N.js} +2 -2
  246. package/ccw/frontend/dist/assets/{CliViewerPage-ChM-uNx_.js.map → CliViewerPage-BZXpgY0N.js.map} +1 -1
  247. package/ccw/frontend/dist/assets/{CodexLensPage-DOcsYNQk.js → CodexLensPage-CePoJz-u.js} +2 -2
  248. package/ccw/frontend/dist/assets/{CodexLensPage-DOcsYNQk.js.map → CodexLensPage-CePoJz-u.js.map} +1 -1
  249. package/ccw/frontend/dist/assets/{Collapsible-CRNbykXN.js → Collapsible-DXVzWwmb.js} +2 -2
  250. package/ccw/frontend/dist/assets/{Collapsible-CRNbykXN.js.map → Collapsible-DXVzWwmb.js.map} +1 -1
  251. package/ccw/frontend/dist/assets/{CommandsManagerPage-C2JWcemF.js → CommandsManagerPage-B6wJYF0z.js} +2 -2
  252. package/ccw/frontend/dist/assets/{CommandsManagerPage-C2JWcemF.js.map → CommandsManagerPage-B6wJYF0z.js.map} +1 -1
  253. package/ccw/frontend/dist/assets/{DeepWikiPage-CvleOtJy.js → DeepWikiPage-D55fcvSk.js} +2 -2
  254. package/ccw/frontend/dist/assets/{DeepWikiPage-CvleOtJy.js.map → DeepWikiPage-D55fcvSk.js.map} +1 -1
  255. package/ccw/frontend/dist/assets/{EndpointsPage-CMOWQG64.js → EndpointsPage-DcGziJ5t.js} +2 -2
  256. package/ccw/frontend/dist/assets/{EndpointsPage-CMOWQG64.js.map → EndpointsPage-DcGziJ5t.js.map} +1 -1
  257. package/ccw/frontend/dist/assets/{ExplorerPage-DaFPRlNo.js → ExplorerPage-C4eKzn7F.js} +2 -2
  258. package/ccw/frontend/dist/assets/{ExplorerPage-DaFPRlNo.js.map → ExplorerPage-C4eKzn7F.js.map} +1 -1
  259. package/ccw/frontend/dist/assets/{FixSessionPage-CC4p04Az.js → FixSessionPage-BUHh954A.js} +2 -2
  260. package/ccw/frontend/dist/assets/{FixSessionPage-CC4p04Az.js.map → FixSessionPage-BUHh954A.js.map} +1 -1
  261. package/ccw/frontend/dist/assets/{FloatingFileBrowser-DROn1xZ5.js → FloatingFileBrowser-C3GF_u1C.js} +2 -2
  262. package/ccw/frontend/dist/assets/{FloatingFileBrowser-DROn1xZ5.js.map → FloatingFileBrowser-C3GF_u1C.js.map} +1 -1
  263. package/ccw/frontend/dist/assets/{FloatingPanel-CmL_yhDv.js → FloatingPanel-Cn-q9PyJ.js} +2 -2
  264. package/ccw/frontend/dist/assets/{FloatingPanel-CmL_yhDv.js.map → FloatingPanel-Cn-q9PyJ.js.map} +1 -1
  265. package/ccw/frontend/dist/assets/{GraphExplorerPage-DCV5ybKE.js → GraphExplorerPage-DIpqgvoU.js} +2 -2
  266. package/ccw/frontend/dist/assets/{GraphExplorerPage-DCV5ybKE.js.map → GraphExplorerPage-DIpqgvoU.js.map} +1 -1
  267. package/ccw/frontend/dist/assets/{HistoryPage-D0fYQZgc.js → HistoryPage-DzSvEAFe.js} +2 -2
  268. package/ccw/frontend/dist/assets/{HistoryPage-D0fYQZgc.js.map → HistoryPage-DzSvEAFe.js.map} +1 -1
  269. package/ccw/frontend/dist/assets/{HookManagerPage-D2FuJfsM.js → HookManagerPage-C6LDhWrH.js} +2 -2
  270. package/ccw/frontend/dist/assets/{HookManagerPage-D2FuJfsM.js.map → HookManagerPage-C6LDhWrH.js.map} +1 -1
  271. package/ccw/frontend/dist/assets/{InstallationsPage-tjklillZ.js → InstallationsPage-D9ct9xFV.js} +2 -2
  272. package/ccw/frontend/dist/assets/{InstallationsPage-tjklillZ.js.map → InstallationsPage-D9ct9xFV.js.map} +1 -1
  273. package/ccw/frontend/dist/assets/{IssueHubPage-E4JVrhO1.js → IssueHubPage-CXgDC8pS.js} +2 -2
  274. package/ccw/frontend/dist/assets/{IssueHubPage-E4JVrhO1.js.map → IssueHubPage-CXgDC8pS.js.map} +1 -1
  275. package/ccw/frontend/dist/assets/{LiteTasksPage-aJuRoyLt.js → LiteTasksPage-DMkauCwG.js} +2 -2
  276. package/ccw/frontend/dist/assets/{LiteTasksPage-aJuRoyLt.js.map → LiteTasksPage-DMkauCwG.js.map} +1 -1
  277. package/ccw/frontend/dist/assets/{McpManagerPage-BJeuWJv1.js → McpManagerPage-DhLDydgc.js} +2 -2
  278. package/ccw/frontend/dist/assets/{McpManagerPage-BJeuWJv1.js.map → McpManagerPage-DhLDydgc.js.map} +1 -1
  279. package/ccw/frontend/dist/assets/{MemoryPage-BI4FAXhs.js → MemoryPage-Be3nhq40.js} +2 -2
  280. package/ccw/frontend/dist/assets/{MemoryPage-BI4FAXhs.js.map → MemoryPage-Be3nhq40.js.map} +1 -1
  281. package/ccw/frontend/dist/assets/{NotFoundPage-DD2svchp.js → NotFoundPage-0yGnCePd.js} +2 -2
  282. package/ccw/frontend/dist/assets/{NotFoundPage-DD2svchp.js.map → NotFoundPage-0yGnCePd.js.map} +1 -1
  283. package/ccw/frontend/dist/assets/{OrchestratorPage-FC__7yYa.js → OrchestratorPage-_SmXZcGl.js} +2 -2
  284. package/ccw/frontend/dist/assets/{OrchestratorPage-FC__7yYa.js.map → OrchestratorPage-_SmXZcGl.js.map} +1 -1
  285. package/ccw/frontend/dist/assets/{ProjectOverviewPage-DBB_-FzV.js → ProjectOverviewPage-BeXTMsdo.js} +2 -2
  286. package/ccw/frontend/dist/assets/{ProjectOverviewPage-DBB_-FzV.js.map → ProjectOverviewPage-BeXTMsdo.js.map} +1 -1
  287. package/ccw/frontend/dist/assets/{PromptHistoryPage-BwOAvCH8.js → PromptHistoryPage-DS6ycuAv.js} +2 -2
  288. package/ccw/frontend/dist/assets/{PromptHistoryPage-BwOAvCH8.js.map → PromptHistoryPage-DS6ycuAv.js.map} +1 -1
  289. package/ccw/frontend/dist/assets/{ReviewSessionPage-Dd1-g_gp.js → ReviewSessionPage-BoqyjhPo.js} +2 -2
  290. package/ccw/frontend/dist/assets/{ReviewSessionPage-Dd1-g_gp.js.map → ReviewSessionPage-BoqyjhPo.js.map} +1 -1
  291. package/ccw/frontend/dist/assets/{RulesManagerPage-B3RGdsKD.js → RulesManagerPage-DMAwkKlc.js} +2 -2
  292. package/ccw/frontend/dist/assets/{RulesManagerPage-B3RGdsKD.js.map → RulesManagerPage-DMAwkKlc.js.map} +1 -1
  293. package/ccw/frontend/dist/assets/{SessionDetailPage-DM-W5R8K.js → SessionDetailPage-BgJRHIF4.js} +2 -2
  294. package/ccw/frontend/dist/assets/{SessionDetailPage-DM-W5R8K.js.map → SessionDetailPage-BgJRHIF4.js.map} +1 -1
  295. package/ccw/frontend/dist/assets/{SessionsPage-BVz1KCc7.js → SessionsPage-DBPdWlji.js} +2 -2
  296. package/ccw/frontend/dist/assets/{SessionsPage-BVz1KCc7.js.map → SessionsPage-DBPdWlji.js.map} +1 -1
  297. package/ccw/frontend/dist/assets/{SettingsPage-ComW7EZS.js → SettingsPage-BY3QiJhm.js} +4 -4
  298. package/ccw/frontend/dist/assets/{SettingsPage-ComW7EZS.js.map → SettingsPage-BY3QiJhm.js.map} +1 -1
  299. package/ccw/frontend/dist/assets/{SkillsManagerPage-CKom9XwV.js → SkillsManagerPage-DS101Adm.js} +2 -2
  300. package/ccw/frontend/dist/assets/{SkillsManagerPage-CKom9XwV.js.map → SkillsManagerPage-DS101Adm.js.map} +1 -1
  301. package/ccw/frontend/dist/assets/{SpecsSettingsPage-DQz7WP2s.js → SpecsSettingsPage-BcsLu1qq.js} +2 -2
  302. package/ccw/frontend/dist/assets/{SpecsSettingsPage-DQz7WP2s.js.map → SpecsSettingsPage-BcsLu1qq.js.map} +1 -1
  303. package/ccw/frontend/dist/assets/{Switch-BPMdND9H.js → Switch-BL9AmNPC.js} +2 -2
  304. package/ccw/frontend/dist/assets/{Switch-BPMdND9H.js.map → Switch-BL9AmNPC.js.map} +1 -1
  305. package/ccw/frontend/dist/assets/{TabsNavigation-qqt70VYL.js → TabsNavigation-BUcjsLeE.js} +2 -2
  306. package/ccw/frontend/dist/assets/{TabsNavigation-qqt70VYL.js.map → TabsNavigation-BUcjsLeE.js.map} +1 -1
  307. package/ccw/frontend/dist/assets/{TaskDrawer-BqK_qiHX.js → TaskDrawer-BNvfS6dq.js} +2 -2
  308. package/ccw/frontend/dist/assets/{TaskDrawer-BqK_qiHX.js.map → TaskDrawer-BNvfS6dq.js.map} +1 -1
  309. package/ccw/frontend/dist/assets/{TeamPage-u5_i0Rgh.js → TeamPage-CT-zNCrF.js} +2 -2
  310. package/ccw/frontend/dist/assets/{TeamPage-u5_i0Rgh.js.map → TeamPage-CT-zNCrF.js.map} +1 -1
  311. package/ccw/frontend/dist/assets/{TerminalDashboardPage-rUtC9e40.js → TerminalDashboardPage-DfZFGs8g.js} +2 -2
  312. package/ccw/frontend/dist/assets/{TerminalDashboardPage-rUtC9e40.js.map → TerminalDashboardPage-DfZFGs8g.js.map} +1 -1
  313. package/ccw/frontend/dist/assets/{archive-C3u8YNQF.js → archive-Cev1SaQq.js} +2 -2
  314. package/ccw/frontend/dist/assets/{archive-C3u8YNQF.js.map → archive-Cev1SaQq.js.map} +1 -1
  315. package/ccw/frontend/dist/assets/{archive-restore-DfQ998g5.js → archive-restore-BIVluaHZ.js} +2 -2
  316. package/ccw/frontend/dist/assets/{archive-restore-DfQ998g5.js.map → archive-restore-BIVluaHZ.js.map} +1 -1
  317. package/ccw/frontend/dist/assets/{arrow-right-BshJM9Po.js → arrow-right-DrivbS5j.js} +2 -2
  318. package/ccw/frontend/dist/assets/{arrow-right-BshJM9Po.js.map → arrow-right-DrivbS5j.js.map} +1 -1
  319. package/ccw/frontend/dist/assets/{bookmark-plus-D03qJyOZ.js → bookmark-plus-DKyzL0Xg.js} +2 -2
  320. package/ccw/frontend/dist/assets/{bookmark-plus-D03qJyOZ.js.map → bookmark-plus-DKyzL0Xg.js.map} +1 -1
  321. package/ccw/frontend/dist/assets/{bot-CyzWuwq0.js → bot-GBUkPAe3.js} +2 -2
  322. package/ccw/frontend/dist/assets/{bot-CyzWuwq0.js.map → bot-GBUkPAe3.js.map} +1 -1
  323. package/ccw/frontend/dist/assets/{braces-BPgtyjsG.js → braces-BWhm2c4g.js} +2 -2
  324. package/ccw/frontend/dist/assets/{braces-BPgtyjsG.js.map → braces-BWhm2c4g.js.map} +1 -1
  325. package/ccw/frontend/dist/assets/{circle-stop-Dix1AOmw.js → circle-stop-CBcZSKNp.js} +2 -2
  326. package/ccw/frontend/dist/assets/{circle-stop-Dix1AOmw.js.map → circle-stop-CBcZSKNp.js.map} +1 -1
  327. package/ccw/frontend/dist/assets/{cpu-CCQ4Q0Zh.js → cpu-CzNmuTZD.js} +2 -2
  328. package/ccw/frontend/dist/assets/{cpu-CCQ4Q0Zh.js.map → cpu-CzNmuTZD.js.map} +1 -1
  329. package/ccw/frontend/dist/assets/{ellipsis-vertical-BpTysg-Y.js → ellipsis-vertical-BoIyQKaI.js} +2 -2
  330. package/ccw/frontend/dist/assets/{ellipsis-vertical-BpTysg-Y.js.map → ellipsis-vertical-BoIyQKaI.js.map} +1 -1
  331. package/ccw/frontend/dist/assets/{eye-DGY1rAZs.js → eye-BqxyhxQq.js} +2 -2
  332. package/ccw/frontend/dist/assets/{eye-DGY1rAZs.js.map → eye-BqxyhxQq.js.map} +1 -1
  333. package/ccw/frontend/dist/assets/{eye-off-D8t3JfWG.js → eye-off-D9dTZP1A.js} +2 -2
  334. package/ccw/frontend/dist/assets/{eye-off-D8t3JfWG.js.map → eye-off-D9dTZP1A.js.map} +1 -1
  335. package/ccw/frontend/dist/assets/{file-json-BAdJb0n8.js → file-json-CLYEUI6e.js} +2 -2
  336. package/ccw/frontend/dist/assets/{file-json-BAdJb0n8.js.map → file-json-CLYEUI6e.js.map} +1 -1
  337. package/ccw/frontend/dist/assets/{file-text-DrJFiOUB.js → file-text-D5j9C5XC.js} +2 -2
  338. package/ccw/frontend/dist/assets/{file-text-DrJFiOUB.js.map → file-text-D5j9C5XC.js.map} +1 -1
  339. package/ccw/frontend/dist/assets/{filter-CKqzYbz7.js → filter-CEUK5jsA.js} +2 -2
  340. package/ccw/frontend/dist/assets/{filter-CKqzYbz7.js.map → filter-CEUK5jsA.js.map} +1 -1
  341. package/ccw/frontend/dist/assets/{folder-CV8511y9.js → folder-BEOY8txM.js} +2 -2
  342. package/ccw/frontend/dist/assets/{folder-CV8511y9.js.map → folder-BEOY8txM.js.map} +1 -1
  343. package/ccw/frontend/dist/assets/{gauge-XKvmu_uU.js → gauge-CbumHmVn.js} +2 -2
  344. package/ccw/frontend/dist/assets/{gauge-XKvmu_uU.js.map → gauge-CbumHmVn.js.map} +1 -1
  345. package/ccw/frontend/dist/assets/{globe-C56cDUzX.js → globe-D8_IB9gV.js} +2 -2
  346. package/ccw/frontend/dist/assets/{globe-C56cDUzX.js.map → globe-D8_IB9gV.js.map} +1 -1
  347. package/ccw/frontend/dist/assets/{grid-3x3-Bya-suFW.js → grid-3x3-BpzWmYF5.js} +2 -2
  348. package/ccw/frontend/dist/assets/{grid-3x3-Bya-suFW.js.map → grid-3x3-BpzWmYF5.js.map} +1 -1
  349. package/ccw/frontend/dist/assets/{hard-drive-CmuTZpsB.js → hard-drive-QIHpGln7.js} +2 -2
  350. package/ccw/frontend/dist/assets/{hard-drive-CmuTZpsB.js.map → hard-drive-QIHpGln7.js.map} +1 -1
  351. package/ccw/frontend/dist/assets/{hash-CRPT_tJQ.js → hash-CP0YRHVs.js} +2 -2
  352. package/ccw/frontend/dist/assets/{hash-CRPT_tJQ.js.map → hash-CP0YRHVs.js.map} +1 -1
  353. package/ccw/frontend/dist/assets/{history-C1pJZQCL.js → history-hOjgVKax.js} +2 -2
  354. package/ccw/frontend/dist/assets/{history-C1pJZQCL.js.map → history-hOjgVKax.js.map} +1 -1
  355. package/ccw/frontend/dist/assets/{index-Dmt9OiEf.js → index-B_ysvdnP.js} +2 -2
  356. package/ccw/frontend/dist/assets/{index-Dmt9OiEf.js.map → index-B_ysvdnP.js.map} +1 -1
  357. package/ccw/frontend/dist/assets/{index-dWT2M6Ef.js → index-C5Oqx2xI.js} +3 -3
  358. package/ccw/frontend/dist/assets/{index-dWT2M6Ef.js.map → index-C5Oqx2xI.js.map} +1 -1
  359. package/ccw/frontend/dist/assets/{index-CI8-rBff.js → index-CJi0bWL-.js} +2 -2
  360. package/ccw/frontend/dist/assets/{index-CI8-rBff.js.map → index-CJi0bWL-.js.map} +1 -1
  361. package/ccw/frontend/dist/assets/{index-anSMmEF8.js → index-CdQpo1x0.js} +2 -2
  362. package/ccw/frontend/dist/assets/{index-anSMmEF8.js.map → index-CdQpo1x0.js.map} +1 -1
  363. package/ccw/frontend/dist/assets/{layout-grid-TSO0BFQE.js → layout-grid-C38fQyLs.js} +2 -2
  364. package/ccw/frontend/dist/assets/{layout-grid-TSO0BFQE.js.map → layout-grid-C38fQyLs.js.map} +1 -1
  365. package/ccw/frontend/dist/assets/{lightbulb-Caj6fIQD.js → lightbulb-CClbCUzu.js} +2 -2
  366. package/ccw/frontend/dist/assets/{lightbulb-Caj6fIQD.js.map → lightbulb-CClbCUzu.js.map} +1 -1
  367. package/ccw/frontend/dist/assets/{link-2-DE9lMxa-.js → link-2-CB-LKbI0.js} +2 -2
  368. package/ccw/frontend/dist/assets/{link-2-DE9lMxa-.js.map → link-2-CB-LKbI0.js.map} +1 -1
  369. package/ccw/frontend/dist/assets/{link-BZtPgLW0.js → link-BK6SBzHS.js} +2 -2
  370. package/ccw/frontend/dist/assets/{link-BZtPgLW0.js.map → link-BK6SBzHS.js.map} +1 -1
  371. package/ccw/frontend/dist/assets/{list-DubWyY-U.js → list-BME_WOA_.js} +2 -2
  372. package/ccw/frontend/dist/assets/{list-DubWyY-U.js.map → list-BME_WOA_.js.map} +1 -1
  373. package/ccw/frontend/dist/assets/{map-pin-DwN_48AF.js → map-pin-ADsnCyjJ.js} +2 -2
  374. package/ccw/frontend/dist/assets/{map-pin-DwN_48AF.js.map → map-pin-ADsnCyjJ.js.map} +1 -1
  375. package/ccw/frontend/dist/assets/{messages-square-bjxvaiM9.js → messages-square-CLflB1Cq.js} +2 -2
  376. package/ccw/frontend/dist/assets/{messages-square-bjxvaiM9.js.map → messages-square-CLflB1Cq.js.map} +1 -1
  377. package/ccw/frontend/dist/assets/{minimize-2-CGfBKD_V.js → minimize-2-B3ZNzfGr.js} +2 -2
  378. package/ccw/frontend/dist/assets/{minimize-2-CGfBKD_V.js.map → minimize-2-B3ZNzfGr.js.map} +1 -1
  379. package/ccw/frontend/dist/assets/{package-nzWY6ilt.js → package-CByPhtMG.js} +2 -2
  380. package/ccw/frontend/dist/assets/{package-nzWY6ilt.js.map → package-CByPhtMG.js.map} +1 -1
  381. package/ccw/frontend/dist/assets/{plug-CiLce49C.js → plug-BggRzPX9.js} +2 -2
  382. package/ccw/frontend/dist/assets/{plug-CiLce49C.js.map → plug-BggRzPX9.js.map} +1 -1
  383. package/ccw/frontend/dist/assets/{power-CFLmB-U9.js → power-CWuxQSJK.js} +2 -2
  384. package/ccw/frontend/dist/assets/{power-CFLmB-U9.js.map → power-CWuxQSJK.js.map} +1 -1
  385. package/ccw/frontend/dist/assets/{save-DuO6OF0C.js → save-BdJ6EX4Q.js} +2 -2
  386. package/ccw/frontend/dist/assets/{save-DuO6OF0C.js.map → save-BdJ6EX4Q.js.map} +1 -1
  387. package/ccw/frontend/dist/assets/{send-CZk9p0mM.js → send-Ce9wuY7Q.js} +2 -2
  388. package/ccw/frontend/dist/assets/{send-CZk9p0mM.js.map → send-Ce9wuY7Q.js.map} +1 -1
  389. package/ccw/frontend/dist/assets/{square-check-big-BY_1YQQg.js → square-check-big-D6jItkfw.js} +2 -2
  390. package/ccw/frontend/dist/assets/{square-check-big-BY_1YQQg.js.map → square-check-big-D6jItkfw.js.map} +1 -1
  391. package/ccw/frontend/dist/assets/{square-pen-CnZgm6g-.js → square-pen-Byxq21zp.js} +2 -2
  392. package/ccw/frontend/dist/assets/{square-pen-CnZgm6g-.js.map → square-pen-Byxq21zp.js.map} +1 -1
  393. package/ccw/frontend/dist/assets/{star-Cn1F0qy7.js → star-Codj9dvK.js} +2 -2
  394. package/ccw/frontend/dist/assets/{star-Cn1F0qy7.js.map → star-Codj9dvK.js.map} +1 -1
  395. package/ccw/frontend/dist/assets/{style-Dxs1iXCV.js → style-4bYpUGcc.js} +2 -2
  396. package/ccw/frontend/dist/assets/{style-Dxs1iXCV.js.map → style-4bYpUGcc.js.map} +1 -1
  397. package/ccw/frontend/dist/assets/{target-Bz1fLRKH.js → target-DKBoDNCn.js} +2 -2
  398. package/ccw/frontend/dist/assets/{target-Bz1fLRKH.js.map → target-DKBoDNCn.js.map} +1 -1
  399. package/ccw/frontend/dist/assets/{test-tube-C6qCYlDr.js → test-tube-DTqZcBtA.js} +2 -2
  400. package/ccw/frontend/dist/assets/{test-tube-C6qCYlDr.js.map → test-tube-DTqZcBtA.js.map} +1 -1
  401. package/ccw/frontend/dist/assets/{upload-C71kd4Qs.js → upload-DlUl-e6b.js} +2 -2
  402. package/ccw/frontend/dist/assets/{upload-C71kd4Qs.js.map → upload-DlUl-e6b.js.map} +1 -1
  403. package/ccw/frontend/dist/assets/{useApiSettings-CqP2BAJ7.js → useApiSettings-D4zhKKT-.js} +2 -2
  404. package/ccw/frontend/dist/assets/{useApiSettings-CqP2BAJ7.js.map → useApiSettings-D4zhKKT-.js.map} +1 -1
  405. package/ccw/frontend/dist/assets/{useCli-PCoPoVeM.js → useCli-D-qDwsAH.js} +2 -2
  406. package/ccw/frontend/dist/assets/{useCli-PCoPoVeM.js.map → useCli-D-qDwsAH.js.map} +1 -1
  407. package/ccw/frontend/dist/assets/{useCommands-3OfPQPw4.js → useCommands-B0sidbbW.js} +2 -2
  408. package/ccw/frontend/dist/assets/{useCommands-3OfPQPw4.js.map → useCommands-B0sidbbW.js.map} +1 -1
  409. package/ccw/frontend/dist/assets/{useDebounce-bXiFhQx9.js → useDebounce-eTtbKevt.js} +2 -2
  410. package/ccw/frontend/dist/assets/{useDebounce-bXiFhQx9.js.map → useDebounce-eTtbKevt.js.map} +1 -1
  411. package/ccw/frontend/dist/assets/{useFileExplorer-DEyUm46_.js → useFileExplorer-MGSK0h33.js} +2 -2
  412. package/ccw/frontend/dist/assets/{useFileExplorer-DEyUm46_.js.map → useFileExplorer-MGSK0h33.js.map} +1 -1
  413. package/ccw/frontend/dist/assets/{useLocale-sXTrdxcJ.js → useLocale-DDNxU7pJ.js} +2 -2
  414. package/ccw/frontend/dist/assets/{useLocale-sXTrdxcJ.js.map → useLocale-DDNxU7pJ.js.map} +1 -1
  415. package/ccw/frontend/dist/assets/{useSkills-D0W0kXYm.js → useSkills-CZCRBtMY.js} +3 -3
  416. package/ccw/frontend/dist/assets/{useSkills-D0W0kXYm.js.map → useSkills-CZCRBtMY.js.map} +1 -1
  417. package/ccw/frontend/dist/assets/{useSystemSettings-DZ-8lZsG.js → useSystemSettings-DfQEFXSD.js} +2 -2
  418. package/ccw/frontend/dist/assets/{useSystemSettings-DZ-8lZsG.js.map → useSystemSettings-DfQEFXSD.js.map} +1 -1
  419. package/ccw/frontend/dist/assets/{wand-sparkles-83GmAYuw.js → wand-sparkles-DCLvfgl1.js} +2 -2
  420. package/ccw/frontend/dist/assets/{wand-sparkles-83GmAYuw.js.map → wand-sparkles-DCLvfgl1.js.map} +1 -1
  421. package/ccw/frontend/dist/index.html +1 -1
  422. package/package.json +1 -1
  423. package/.codex/skills/team-arch-opt/agents/completion-handler.md +0 -138
  424. package/.codex/skills/team-arch-opt/agents/fix-cycle-handler.md +0 -146
  425. package/.codex/skills/team-arch-opt/agents/plan-reviewer.md +0 -150
  426. package/.codex/skills/team-arch-opt/instructions/agent-instruction.md +0 -114
  427. package/.codex/skills/team-arch-opt/schemas/tasks-schema.md +0 -174
  428. package/.codex/skills/team-brainstorm/agents/gc-controller.md +0 -122
  429. package/.codex/skills/team-brainstorm/agents/topic-clarifier.md +0 -126
  430. package/.codex/skills/team-brainstorm/instructions/agent-instruction.md +0 -105
  431. package/.codex/skills/team-brainstorm/schemas/tasks-schema.md +0 -171
  432. package/.codex/skills/team-coordinate/agents/completion-handler.md +0 -127
  433. package/.codex/skills/team-coordinate/agents/plan-reviewer.md +0 -145
  434. package/.codex/skills/team-coordinate/instructions/agent-instruction.md +0 -184
  435. package/.codex/skills/team-coordinate/schemas/tasks-schema.md +0 -165
  436. package/.codex/skills/team-designer/agents/requirement-clarifier.md +0 -247
  437. package/.codex/skills/team-designer/agents/validation-reporter.md +0 -186
  438. package/.codex/skills/team-designer/instructions/agent-instruction.md +0 -163
  439. package/.codex/skills/team-designer/schemas/tasks-schema.md +0 -180
  440. package/.codex/skills/team-executor/instructions/agent-instruction.md +0 -62
  441. package/.codex/skills/team-executor/schemas/tasks-schema.md +0 -141
  442. package/.codex/skills/team-frontend/agents/completion-handler.md +0 -131
  443. package/.codex/skills/team-frontend/agents/qa-gate-reviewer.md +0 -153
  444. package/.codex/skills/team-frontend/instructions/agent-instruction.md +0 -197
  445. package/.codex/skills/team-frontend/schemas/tasks-schema.md +0 -188
  446. package/.codex/skills/team-frontend-debug/agents/completion-handler.md +0 -142
  447. package/.codex/skills/team-frontend-debug/agents/conditional-skip-gate.md +0 -130
  448. package/.codex/skills/team-frontend-debug/agents/iteration-handler.md +0 -120
  449. package/.codex/skills/team-frontend-debug/instructions/agent-instruction.md +0 -272
  450. package/.codex/skills/team-frontend-debug/schemas/tasks-schema.md +0 -198
  451. package/.codex/skills/team-issue/agents/reviewer.md +0 -204
  452. package/.codex/skills/team-issue/instructions/agent-instruction.md +0 -198
  453. package/.codex/skills/team-issue/schemas/tasks-schema.md +0 -198
  454. package/.codex/skills/team-iterdev/agents/gc-controller.md +0 -193
  455. package/.codex/skills/team-iterdev/agents/task-analyzer.md +0 -206
  456. package/.codex/skills/team-iterdev/instructions/agent-instruction.md +0 -118
  457. package/.codex/skills/team-iterdev/schemas/tasks-schema.md +0 -174
  458. package/.codex/skills/team-lifecycle/SKILL.md +0 -906
  459. package/.codex/skills/team-lifecycle/agents/analyst.md +0 -424
  460. package/.codex/skills/team-lifecycle/agents/architect.md +0 -274
  461. package/.codex/skills/team-lifecycle/agents/discuss-agent.md +0 -422
  462. package/.codex/skills/team-lifecycle/agents/executor.md +0 -423
  463. package/.codex/skills/team-lifecycle/agents/explore-agent.md +0 -471
  464. package/.codex/skills/team-lifecycle/agents/fe-developer.md +0 -239
  465. package/.codex/skills/team-lifecycle/agents/fe-qa.md +0 -357
  466. package/.codex/skills/team-lifecycle/agents/planner.md +0 -437
  467. package/.codex/skills/team-lifecycle/agents/reviewer.md +0 -483
  468. package/.codex/skills/team-lifecycle/agents/tester.md +0 -423
  469. package/.codex/skills/team-lifecycle/agents/writer.md +0 -502
  470. package/.codex/skills/team-lifecycle/phases/01-requirement-clarification.md +0 -209
  471. package/.codex/skills/team-lifecycle/phases/02-team-initialization.md +0 -263
  472. package/.codex/skills/team-lifecycle/phases/03-task-chain-creation.md +0 -251
  473. package/.codex/skills/team-lifecycle/phases/04-pipeline-coordination.md +0 -831
  474. package/.codex/skills/team-lifecycle/phases/05-completion-report.md +0 -309
  475. package/.codex/skills/team-lifecycle/specs/document-standards.md +0 -192
  476. package/.codex/skills/team-lifecycle/specs/quality-gates.md +0 -207
  477. package/.codex/skills/team-lifecycle-v4/agents/quality-gate.md +0 -165
  478. package/.codex/skills/team-lifecycle-v4/agents/requirement-clarifier.md +0 -163
  479. package/.codex/skills/team-lifecycle-v4/agents/supervisor.md +0 -182
  480. package/.codex/skills/team-perf-opt/agents/completion-handler.md +0 -141
  481. package/.codex/skills/team-perf-opt/agents/fix-cycle-handler.md +0 -156
  482. package/.codex/skills/team-perf-opt/agents/plan-reviewer.md +0 -150
  483. package/.codex/skills/team-perf-opt/instructions/agent-instruction.md +0 -122
  484. package/.codex/skills/team-perf-opt/schemas/tasks-schema.md +0 -174
  485. package/.codex/skills/team-planex/instructions/agent-instruction.md +0 -301
  486. package/.codex/skills/team-planex/schemas/tasks-schema.md +0 -198
  487. package/.codex/skills/team-planex-v2/SKILL.md +0 -652
  488. package/.codex/skills/team-planex-v2/instructions/agent-instruction.md +0 -193
  489. package/.codex/skills/team-planex-v2/schemas/tasks-schema.md +0 -206
  490. package/.codex/skills/team-quality-assurance/agents/executor.md +0 -192
  491. package/.codex/skills/team-quality-assurance/agents/gc-loop-handler.md +0 -163
  492. package/.codex/skills/team-quality-assurance/instructions/agent-instruction.md +0 -185
  493. package/.codex/skills/team-quality-assurance/schemas/tasks-schema.md +0 -190
  494. package/.codex/skills/team-review/agents/fixer.md +0 -360
  495. package/.codex/skills/team-review/instructions/agent-instruction.md +0 -102
  496. package/.codex/skills/team-review/schemas/tasks-schema.md +0 -143
  497. package/.codex/skills/team-roadmap-dev/agents/roadmap-discusser.md +0 -176
  498. package/.codex/skills/team-roadmap-dev/agents/roadmap-planner.md +0 -194
  499. package/.codex/skills/team-roadmap-dev/agents/roadmap-verifier.md +0 -221
  500. package/.codex/skills/team-roadmap-dev/instructions/executor-instruction.md +0 -55
  501. package/.codex/skills/team-roadmap-dev/schemas/tasks-schema.md +0 -144
  502. package/.codex/skills/team-tech-debt/agents/gc-loop-manager.md +0 -130
  503. package/.codex/skills/team-tech-debt/agents/plan-approver.md +0 -151
  504. package/.codex/skills/team-tech-debt/instructions/agent-instruction.md +0 -390
  505. package/.codex/skills/team-tech-debt/schemas/tasks-schema.md +0 -196
  506. package/.codex/skills/team-testing/agents/executor.md +0 -195
  507. package/.codex/skills/team-testing/agents/gc-loop-handler.md +0 -155
  508. package/.codex/skills/team-testing/instructions/agent-instruction.md +0 -142
  509. package/.codex/skills/team-testing/schemas/tasks-schema.md +0 -172
  510. package/.codex/skills/team-uidesign/agents/completion-handler.md +0 -177
  511. package/.codex/skills/team-uidesign/agents/gc-loop-handler.md +0 -162
  512. package/.codex/skills/team-uidesign/instructions/agent-instruction.md +0 -509
  513. package/.codex/skills/team-uidesign/schemas/tasks-schema.md +0 -187
  514. package/.codex/skills/team-ultra-analyze/agents/discussion-feedback.md +0 -155
  515. package/.codex/skills/team-ultra-analyze/agents/topic-analyzer.md +0 -153
  516. package/.codex/skills/team-ultra-analyze/instructions/agent-instruction.md +0 -169
  517. package/.codex/skills/team-ultra-analyze/schemas/tasks-schema.md +0 -180
  518. package/.codex/skills/team-ux-improve/agents/ux-designer.md +0 -136
  519. package/.codex/skills/team-ux-improve/agents/ux-explorer.md +0 -158
  520. package/.codex/skills/team-ux-improve/agents/ux-tester.md +0 -174
  521. package/.codex/skills/team-ux-improve/instructions/ux-worker-instruction.md +0 -55
  522. package/.codex/skills/team-ux-improve/schemas/tasks-schema.md +0 -87
  523. /package/.codex/skills/{team-lifecycle/templates/architecture-doc.md → team-lifecycle-v4/templates/architecture.md} +0 -0
  524. /package/.codex/skills/{team-lifecycle/templates/epics-template.md → team-lifecycle-v4/templates/epics.md} +0 -0
  525. /package/.codex/skills/{team-lifecycle → team-lifecycle-v4}/templates/product-brief.md +0 -0
  526. /package/.codex/skills/{team-lifecycle/templates/requirements-prd.md → team-lifecycle-v4/templates/requirements.md} +0 -0
@@ -1,813 +1,148 @@
1
- ---
2
- name: team-quality-assurance
3
- description: Full closed-loop QA combining issue discovery and software testing. Scout -> Strategist -> Generator -> Executor -> Analyst with multi-perspective scanning, progressive test layers, GC loops, and quality scoring. Supports discovery, testing, and full QA modes.
4
- argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] [--mode=discovery|testing|full] \"task description\""
5
- allowed-tools: spawn_agents_on_csv, spawn_agent, wait, send_input, close_agent, Read, Write, Edit, Bash, Glob, Grep, request_user_input
6
- ---
7
-
8
- ## Auto Mode
9
-
10
- When `--yes` or `-y`: Auto-confirm task decomposition, skip interactive validation, use defaults.
11
-
12
- # Team Quality Assurance
13
-
14
- ## Usage
15
-
16
- ```bash
17
- $team-quality-assurance "Full QA for the authentication module"
18
- $team-quality-assurance --mode=discovery "Scan codebase for security and bug issues"
19
- $team-quality-assurance --mode=testing "Test recent changes with progressive coverage"
20
- $team-quality-assurance -c 4 --mode=full "Complete QA cycle with regression scanning"
21
- $team-quality-assurance -y "QA all changed files since last commit"
22
- $team-quality-assurance --continue "qa-auth-module-20260308"
23
- ```
24
-
25
- **Flags**:
26
- - `-y, --yes`: Skip all confirmations (auto mode)
27
- - `-c, --concurrency N`: Max concurrent agents within each wave (default: 3)
28
- - `--continue`: Resume existing session
29
- - `--mode=discovery|testing|full`: Force QA mode (default: auto-detect or full)
30
-
31
- **Output Directory**: `.workflow/.csv-wave/{session-id}/`
32
- **Core Output**: `tasks.csv` (master state) + `results.csv` (final) + `discoveries.ndjson` (shared exploration) + `context.md` (human-readable report)
33
-
34
- ---
35
-
36
- ## Overview
37
-
38
- Orchestrate multi-agent QA pipeline: scout -> strategist -> generator -> executor -> analyst. Supports three modes: **discovery** (issue scanning), **testing** (progressive test coverage), and **full** (closed-loop QA with regression). Multi-perspective scanning from bug, security, test-coverage, code-quality, and UX viewpoints. Progressive layer coverage (L1/L2/L3) with Generator-Critic loops for coverage convergence.
39
-
40
- **Execution Model**: Hybrid -- CSV wave pipeline (primary) + individual agent spawn (secondary)
41
-
42
- ```
43
- +-------------------------------------------------------------------+
44
- | TEAM QUALITY ASSURANCE WORKFLOW |
45
- +-------------------------------------------------------------------+
46
- | |
47
- | Phase 0: Pre-Wave Interactive (Requirement Clarification) |
48
- | +- Parse task description, detect QA mode |
49
- | +- Mode selection (discovery/testing/full) |
50
- | +- Output: refined requirements for decomposition |
51
- | |
52
- | Phase 1: Requirement -> CSV + Classification |
53
- | +- Select pipeline based on QA mode |
54
- | +- Build dependency chain with appropriate roles |
55
- | +- Classify tasks: csv-wave | interactive (exec_mode) |
56
- | +- Compute dependency waves (topological sort) |
57
- | +- Generate tasks.csv with wave + exec_mode columns |
58
- | +- User validates task breakdown (skip if -y) |
59
- | |
60
- | Phase 2: Wave Execution Engine (Extended) |
61
- | +- For each wave (1..N): |
62
- | | +- Execute pre-wave interactive tasks (if any) |
63
- | | +- Build wave CSV (filter csv-wave tasks for this wave) |
64
- | | +- Inject previous findings into prev_context column |
65
- | | +- spawn_agents_on_csv(wave CSV) |
66
- | | +- Execute post-wave interactive tasks (if any) |
67
- | | +- Merge all results into master tasks.csv |
68
- | | +- GC Loop Check: coverage < target? -> spawn fix tasks |
69
- | | +- Check: any failed? -> skip dependents |
70
- | +- discoveries.ndjson shared across all modes (append-only) |
71
- | |
72
- | Phase 3: Post-Wave Interactive (Completion Action) |
73
- | +- Pipeline completion report with quality score |
74
- | +- Interactive completion choice (Archive/Keep/Export) |
75
- | +- Final aggregation / report |
76
- | |
77
- | Phase 4: Results Aggregation |
78
- | +- Export final results.csv |
79
- | +- Generate context.md with all findings |
80
- | +- Display summary: completed/failed/skipped per wave |
81
- | +- Offer: view results | retry failed | done |
82
- | |
83
- +-------------------------------------------------------------------+
84
- ```
85
-
86
- ---
87
-
88
- ## Task Classification Rules
89
-
90
- Each task is classified by `exec_mode`:
91
-
92
- | exec_mode | Mechanism | Criteria |
93
- |-----------|-----------|----------|
94
- | `csv-wave` | `spawn_agents_on_csv` | One-shot, structured I/O, no multi-round interaction |
95
- | `interactive` | `spawn_agent`/`wait`/`send_input`/`close_agent` | Multi-round, needs iterative fix-verify cycles |
96
-
97
- **Classification Decision**:
98
-
99
- | Task Property | Classification |
100
- |---------------|---------------|
101
- | Multi-perspective code scanning (scout) | `csv-wave` |
102
- | Strategy formulation (single-pass analysis) | `csv-wave` |
103
- | Test generation (single-pass code creation) | `csv-wave` |
104
- | Test execution with auto-fix cycle | `interactive` |
105
- | Quality analysis (single-pass report) | `csv-wave` |
106
- | GC loop fix-verify iteration | `interactive` |
107
- | Regression scanning (post-fix) | `csv-wave` |
108
-
109
- ---
110
-
111
- ## CSV Schema
112
-
113
- ### tasks.csv (Master State)
114
-
115
- ```csv
116
- id,title,description,role,perspective,layer,coverage_target,deps,context_from,exec_mode,wave,status,findings,issues_found,pass_rate,coverage_achieved,test_files,quality_score,error
117
- "SCOUT-001","Multi-perspective code scan","Scan codebase from bug, security, test-coverage, code-quality perspectives. Produce severity-ranked findings with file:line references.","scout","bug;security;test-coverage;code-quality","","","","","csv-wave","1","pending","","","","","","",""
118
- "QASTRAT-001","Test strategy formulation","Analyze scout findings and code changes. Determine test layers, define coverage targets, generate test strategy document.","strategist","","","","SCOUT-001","SCOUT-001","csv-wave","2","pending","","","","","","",""
119
- "QAGEN-L1-001","Generate L1 unit tests","Generate L1 unit tests based on strategy. Cover priority files, include happy path, edge cases, error handling.","generator","","L1","80","QASTRAT-001","QASTRAT-001","csv-wave","3","pending","","","","","","",""
120
- ```
121
-
122
- **Columns**:
123
-
124
- | Column | Phase | Description |
125
- |--------|-------|-------------|
126
- | `id` | Input | Unique task identifier (PREFIX-NNN format) |
127
- | `title` | Input | Short task title |
128
- | `description` | Input | Detailed task description (self-contained) |
129
- | `role` | Input | Worker role: `scout`, `strategist`, `generator`, `executor`, `analyst` |
130
- | `perspective` | Input | Scan perspectives (semicolon-separated, scout only) |
131
- | `layer` | Input | Test layer: `L1`, `L2`, `L3`, or empty for non-layer tasks |
132
- | `coverage_target` | Input | Target coverage percentage for this layer (empty if N/A) |
133
- | `deps` | Input | Semicolon-separated dependency task IDs |
134
- | `context_from` | Input | Semicolon-separated task IDs whose findings this task needs |
135
- | `exec_mode` | Input | `csv-wave` or `interactive` |
136
- | `wave` | Computed | Wave number (computed by topological sort, 1-based) |
137
- | `status` | Output | `pending` -> `completed` / `failed` / `skipped` |
138
- | `findings` | Output | Key discoveries or implementation notes (max 500 chars) |
139
- | `issues_found` | Output | Count of issues discovered (scout/analyst) |
140
- | `pass_rate` | Output | Test pass rate as decimal (executor only) |
141
- | `coverage_achieved` | Output | Actual coverage percentage achieved (executor only) |
142
- | `test_files` | Output | Semicolon-separated paths of test files (generator only) |
143
- | `quality_score` | Output | Quality score 0-100 (analyst only) |
144
- | `error` | Output | Error message if failed (empty if success) |
145
-
146
- ### Per-Wave CSV (Temporary)
147
-
148
- Each wave generates a temporary `wave-{N}.csv` with extra `prev_context` column (csv-wave tasks only).
149
-
150
- ---
151
-
152
- ## Agent Registry (Interactive Agents)
153
-
154
- | Agent | Role File | Pattern | Responsibility | Position |
155
- |-------|-----------|---------|----------------|----------|
156
- | Test Executor | agents/executor.md | 2.3 (send_input cycle) | Execute tests with iterative fix cycle, report pass rate and coverage | per-wave |
157
- | GC Loop Handler | agents/gc-loop-handler.md | 2.3 (send_input cycle) | Manage Generator-Critic loop: evaluate coverage, trigger fix rounds | post-wave |
158
-
159
- > **COMPACT PROTECTION**: Agent files are execution documents. When context compression occurs, **you MUST immediately `Read` the corresponding agent.md** to reload.
160
-
161
- ---
162
-
163
- ## Output Artifacts
164
-
165
- | File | Purpose | Lifecycle |
166
- |------|---------|-----------|
167
- | `tasks.csv` | Master state -- all tasks with status/findings | Updated after each wave |
168
- | `wave-{N}.csv` | Per-wave input (temporary, csv-wave tasks only) | Created before wave, deleted after |
169
- | `results.csv` | Final export of all task results | Created in Phase 4 |
170
- | `discoveries.ndjson` | Shared exploration board (all agents, both modes) | Append-only, carries across waves |
171
- | `context.md` | Human-readable execution report | Created in Phase 4 |
172
- | `scan/scan-results.json` | Scout output: multi-perspective scan results | Created in scout wave |
173
- | `strategy/test-strategy.md` | Strategist output: test strategy document | Created in strategy wave |
174
- | `tests/L1-unit/` | Generator output: L1 unit test files | Created in L1 wave |
175
- | `tests/L2-integration/` | Generator output: L2 integration test files | Created in L2 wave |
176
- | `tests/L3-e2e/` | Generator output: L3 E2E test files | Created in L3 wave |
177
- | `results/run-{layer}.json` | Executor output: per-layer test results | Created per execution |
178
- | `analysis/quality-report.md` | Analyst output: quality analysis report | Created in final wave |
179
- | `interactive/{id}-result.json` | Results from interactive tasks | Created per interactive task |
180
-
181
- ---
182
-
183
- ## Session Structure
184
-
185
- ```
186
- .workflow/.csv-wave/{session-id}/
187
- +-- tasks.csv # Master state (all tasks, both modes)
188
- +-- results.csv # Final results export
189
- +-- discoveries.ndjson # Shared discovery board (all agents)
190
- +-- context.md # Human-readable report
191
- +-- wave-{N}.csv # Temporary per-wave input (csv-wave only)
192
- +-- scan/ # Scout output
193
- | +-- scan-results.json
194
- +-- strategy/ # Strategist output
195
- | +-- test-strategy.md
196
- +-- tests/ # Generator output
197
- | +-- L1-unit/
198
- | +-- L2-integration/
199
- | +-- L3-e2e/
200
- +-- results/ # Executor output
201
- | +-- run-L1.json
202
- | +-- run-L2.json
203
- +-- analysis/ # Analyst output
204
- | +-- quality-report.md
205
- +-- wisdom/ # Cross-task knowledge
206
- | +-- learnings.md
207
- | +-- conventions.md
208
- | +-- decisions.md
209
- | +-- issues.md
210
- +-- interactive/ # Interactive task artifacts
211
- | +-- {id}-result.json
212
- +-- gc-state.json # GC loop tracking state
213
- ```
214
-
215
- ---
216
-
217
- ## Implementation
218
-
219
- ### Session Initialization
220
-
221
- ```javascript
222
- const getUtc8ISOString = () => new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString()
223
-
224
- const AUTO_YES = $ARGUMENTS.includes('--yes') || $ARGUMENTS.includes('-y')
225
- const continueMode = $ARGUMENTS.includes('--continue')
226
- const concurrencyMatch = $ARGUMENTS.match(/(?:--concurrency|-c)\s+(\d+)/)
227
- const maxConcurrency = concurrencyMatch ? parseInt(concurrencyMatch[1]) : 3
228
-
229
- // Parse QA mode flag
230
- const modeMatch = $ARGUMENTS.match(/--mode=(\w+)/)
231
- const explicitMode = modeMatch ? modeMatch[1] : null
232
-
233
- const requirement = $ARGUMENTS
234
- .replace(/--yes|-y|--continue|--concurrency\s+\d+|-c\s+\d+|--mode=\w+/g, '')
235
- .trim()
236
-
237
- const slug = requirement.toLowerCase()
238
- .replace(/[^a-z0-9\u4e00-\u9fa5]+/g, '-')
239
- .substring(0, 40)
240
- const dateStr = getUtc8ISOString().substring(0, 10).replace(/-/g, '')
241
- const sessionId = `qa-${slug}-${dateStr}`
242
- const sessionFolder = `.workflow/.csv-wave/${sessionId}`
243
-
244
- Bash(`mkdir -p ${sessionFolder}/scan ${sessionFolder}/strategy ${sessionFolder}/tests/L1-unit ${sessionFolder}/tests/L2-integration ${sessionFolder}/tests/L3-e2e ${sessionFolder}/results ${sessionFolder}/analysis ${sessionFolder}/wisdom ${sessionFolder}/interactive`)
245
-
246
- // Initialize discoveries.ndjson
247
- Write(`${sessionFolder}/discoveries.ndjson`, '')
248
-
249
- // Initialize wisdom files
250
- Write(`${sessionFolder}/wisdom/learnings.md`, '# Learnings\n')
251
- Write(`${sessionFolder}/wisdom/conventions.md`, '# Conventions\n')
252
- Write(`${sessionFolder}/wisdom/decisions.md`, '# Decisions\n')
253
- Write(`${sessionFolder}/wisdom/issues.md`, '# Issues\n')
254
-
255
- // Initialize GC state
256
- Write(`${sessionFolder}/gc-state.json`, JSON.stringify({
257
- rounds: {}, coverage_history: [], max_rounds_per_layer: 3
258
- }, null, 2))
259
- ```
260
-
261
- ---
262
-
263
- ### Phase 0: Pre-Wave Interactive (Requirement Clarification)
264
-
265
- **Objective**: Parse task description, detect QA mode, prepare for decomposition.
266
-
267
- **Workflow**:
268
-
269
- 1. **Parse user task description** from $ARGUMENTS
270
-
271
- 2. **Check for existing sessions** (continue mode):
272
- - Scan `.workflow/.csv-wave/qa-*/tasks.csv` for sessions with pending tasks
273
- - If `--continue`: resume the specified or most recent session, skip to Phase 2
274
- - If active session found: ask user whether to resume or start new
275
-
276
- 3. **QA Mode Selection**:
277
-
278
- | Condition | Mode | Description |
279
- |-----------|------|-------------|
280
- | Explicit `--mode=discovery` | discovery | Scout-first: issue discovery then testing |
281
- | Explicit `--mode=testing` | testing | Skip scout, direct test pipeline |
282
- | Explicit `--mode=full` | full | Complete QA closed loop + regression scan |
283
- | Keywords: discovery, scan, issue, audit | discovery | Auto-detected discovery mode |
284
- | Keywords: test, coverage, TDD, verify | testing | Auto-detected testing mode |
285
- | No explicit flag and no keyword match | full | Default to full QA |
286
-
287
- 4. **Clarify if ambiguous** (skip if AUTO_YES):
288
- ```javascript
289
- request_user_input({
290
- questions: [{
291
- question: `Detected QA mode: '${qaMode}'. Approve or override?`,
292
- header: "QA Mode",
293
- id: "qa_mode",
294
- options: [
295
- { label: "Approve (Recommended)", description: `Use ${qaMode} mode as detected` },
296
- { label: "Discovery", description: "Scout-first: scan for issues, then test" },
297
- { label: "Testing/Full", description: "Direct testing or complete QA closed loop" }
298
- ]
299
- }]
300
- })
301
- ```
302
-
303
- 5. **Output**: Refined requirement, QA mode, scope
304
-
305
- **Success Criteria**:
306
- - QA mode selected
307
- - Refined requirements available for Phase 1 decomposition
308
-
309
- ---
310
-
311
- ### Phase 1: Requirement -> CSV + Classification
312
-
313
- **Objective**: Decompose QA task into dependency-ordered CSV tasks based on selected mode.
314
-
315
- **Decomposition Rules**:
316
-
317
- 1. **Select pipeline based on QA mode**:
318
-
319
- | Mode | Pipeline |
320
- |------|----------|
321
- | discovery | SCOUT-001 -> QASTRAT-001 -> QAGEN-001 -> QARUN-001 -> QAANA-001 |
322
- | testing | QASTRAT-001 -> QAGEN-L1-001 -> QARUN-L1-001 -> QAGEN-L2-001 -> QARUN-L2-001 -> QAANA-001 |
323
- | full | SCOUT-001 -> QASTRAT-001 -> [QAGEN-L1-001, QAGEN-L2-001] -> [QARUN-L1-001, QARUN-L2-001] -> QAANA-001 -> SCOUT-002 |
324
-
325
- 2. **Assign roles, layers, perspectives, and coverage targets** per task
326
-
327
- 3. **Assign exec_mode**:
328
- - Scout, Strategist, Generator, Analyst tasks: `csv-wave` (single-pass)
329
- - Executor tasks: `interactive` (iterative fix cycle)
330
-
331
- **Classification Rules**:
332
-
333
- | Task Property | exec_mode |
334
- |---------------|-----------|
335
- | Multi-perspective scanning (single-pass) | `csv-wave` |
336
- | Strategy analysis (single-pass read + write) | `csv-wave` |
337
- | Test code generation (single-pass write) | `csv-wave` |
338
- | Test execution with fix loop (multi-round) | `interactive` |
339
- | Quality analysis (single-pass read + write) | `csv-wave` |
340
- | Regression scanning (single-pass) | `csv-wave` |
341
-
342
- **Wave Computation**: Kahn's BFS topological sort with depth tracking.
343
-
344
- **User Validation**: Display task breakdown with wave + exec_mode + role assignment (skip if AUTO_YES).
345
-
346
- **Success Criteria**:
347
- - tasks.csv created with valid schema, wave, and exec_mode assignments
348
- - No circular dependencies
349
- - User approved (or AUTO_YES)
350
-
351
- ---
352
-
353
- ### Phase 2: Wave Execution Engine (Extended)
354
-
355
- **Objective**: Execute tasks wave-by-wave with hybrid mechanism support, GC loop handling, and cross-wave context propagation.
356
-
357
- ```javascript
358
- const masterCsv = Read(`${sessionFolder}/tasks.csv`)
359
- let tasks = parseCsv(masterCsv)
360
- const maxWave = Math.max(...tasks.map(t => t.wave))
361
-
362
- for (let wave = 1; wave <= maxWave; wave++) {
363
- console.log(`\nWave ${wave}/${maxWave}`)
364
-
365
- // 1. Separate tasks by exec_mode
366
- const waveTasks = tasks.filter(t => t.wave === wave && t.status === 'pending')
367
- const csvTasks = waveTasks.filter(t => t.exec_mode === 'csv-wave')
368
- const interactiveTasks = waveTasks.filter(t => t.exec_mode === 'interactive')
369
-
370
- // 2. Check dependencies -- skip tasks whose deps failed
371
- for (const task of waveTasks) {
372
- const depIds = (task.deps || '').split(';').filter(Boolean)
373
- const depStatuses = depIds.map(id => tasks.find(t => t.id === id)?.status)
374
- if (depStatuses.some(s => s === 'failed' || s === 'skipped')) {
375
- task.status = 'skipped'
376
- task.error = `Dependency failed: ${depIds.filter((id, i) =>
377
- ['failed','skipped'].includes(depStatuses[i])).join(', ')}`
378
- }
379
- }
380
-
381
- // 3. Execute csv-wave tasks
382
- const pendingCsvTasks = csvTasks.filter(t => t.status === 'pending')
383
- if (pendingCsvTasks.length > 0) {
384
- for (const task of pendingCsvTasks) {
385
- task.prev_context = buildPrevContext(task, tasks)
386
- }
387
-
388
- Write(`${sessionFolder}/wave-${wave}.csv`, toCsv(pendingCsvTasks))
389
-
390
- // Read instruction template
391
- Read(`instructions/agent-instruction.md`)
392
-
393
- // Build instruction with session folder baked in
394
- const instruction = buildQAInstruction(sessionFolder, wave)
395
-
396
- spawn_agents_on_csv({
397
- csv_path: `${sessionFolder}/wave-${wave}.csv`,
398
- id_column: "id",
399
- instruction: instruction,
400
- max_concurrency: maxConcurrency,
401
- max_runtime_seconds: 900,
402
- output_csv_path: `${sessionFolder}/wave-${wave}-results.csv`,
403
- output_schema: {
404
- type: "object",
405
- properties: {
406
- id: { type: "string" },
407
- status: { type: "string", enum: ["completed", "failed"] },
408
- findings: { type: "string" },
409
- issues_found: { type: "string" },
410
- pass_rate: { type: "string" },
411
- coverage_achieved: { type: "string" },
412
- test_files: { type: "string" },
413
- quality_score: { type: "string" },
414
- error: { type: "string" }
415
- }
416
- }
417
- })
418
-
419
- // Merge results
420
- const results = parseCsv(Read(`${sessionFolder}/wave-${wave}-results.csv`))
421
- for (const r of results) {
422
- const t = tasks.find(t => t.id === r.id)
423
- if (t) Object.assign(t, r)
424
- }
425
- }
426
-
427
- // 4. Execute interactive tasks (executor with fix cycle)
428
- const pendingInteractive = interactiveTasks.filter(t => t.status === 'pending')
429
- for (const task of pendingInteractive) {
430
- Read(`agents/executor.md`)
431
-
432
- const prevContext = buildPrevContext(task, tasks)
433
- const agent = spawn_agent({
434
- message: `## TASK ASSIGNMENT\n\n### MANDATORY FIRST STEPS\n1. Read: agents/executor.md\n2. Read: ${sessionFolder}/discoveries.ndjson\n3. Read: .workflow/project-tech.json (if exists)\n\n---\n\nGoal: ${task.description}\nLayer: ${task.layer}\nCoverage Target: ${task.coverage_target}%\nSession: ${sessionFolder}\n\n### Previous Context\n${prevContext}`
435
- })
436
- const result = wait({ ids: [agent], timeout_ms: 900000 })
437
- if (result.timed_out) {
438
- send_input({ id: agent, message: "Please finalize current test results and report." })
439
- wait({ ids: [agent], timeout_ms: 120000 })
440
- }
441
- Write(`${sessionFolder}/interactive/${task.id}-result.json`, JSON.stringify({
442
- task_id: task.id, status: "completed", findings: parseFindings(result),
443
- timestamp: getUtc8ISOString()
444
- }))
445
- close_agent({ id: agent })
446
- task.status = result.success ? 'completed' : 'failed'
447
- task.findings = parseFindings(result)
448
- }
449
-
450
- // 5. GC Loop Check (after executor completes)
451
- for (const task of pendingInteractive.filter(t => t.role === 'executor')) {
452
- const gcState = JSON.parse(Read(`${sessionFolder}/gc-state.json`))
453
- const layer = task.layer
454
- const rounds = gcState.rounds[layer] || 0
455
- const coverageAchieved = parseFloat(task.coverage_achieved || '0')
456
- const coverageTarget = parseFloat(task.coverage_target || '80')
457
- const passRate = parseFloat(task.pass_rate || '0')
458
-
459
- if (coverageAchieved < coverageTarget && passRate < 0.95 && rounds < 3) {
460
- gcState.rounds[layer] = rounds + 1
461
- Write(`${sessionFolder}/gc-state.json`, JSON.stringify(gcState, null, 2))
462
-
463
- Read(`agents/gc-loop-handler.md`)
464
- const gcAgent = spawn_agent({
465
- message: `## GC LOOP ROUND ${rounds + 1}\n\n### MANDATORY FIRST STEPS\n1. Read: agents/gc-loop-handler.md\n2. Read: ${sessionFolder}/discoveries.ndjson\n\nLayer: ${layer}\nRound: ${rounds + 1}/3\nCurrent Coverage: ${coverageAchieved}%\nTarget: ${coverageTarget}%\nPass Rate: ${passRate}\nSession: ${sessionFolder}\nPrevious Results: ${sessionFolder}/results/run-${layer}.json\nTest Directory: ${sessionFolder}/tests/${layer === 'L1' ? 'L1-unit' : layer === 'L2' ? 'L2-integration' : 'L3-e2e'}/`
466
- })
467
- const gcResult = wait({ ids: [gcAgent], timeout_ms: 900000 })
468
- close_agent({ id: gcAgent })
469
- }
470
- }
471
-
472
- // 6. Update master CSV
473
- Write(`${sessionFolder}/tasks.csv`, toCsv(tasks))
474
-
475
- // 7. Cleanup temp files
476
- Bash(`rm -f ${sessionFolder}/wave-${wave}.csv ${sessionFolder}/wave-${wave}-results.csv`)
477
-
478
- // 8. Display wave summary
479
- const completed = waveTasks.filter(t => t.status === 'completed').length
480
- const failed = waveTasks.filter(t => t.status === 'failed').length
481
- const skipped = waveTasks.filter(t => t.status === 'skipped').length
482
- console.log(`Wave ${wave} Complete: ${completed} completed, ${failed} failed, ${skipped} skipped`)
483
- }
484
- ```
485
-
486
- **Success Criteria**:
487
- - All waves executed in order
488
- - Both csv-wave and interactive tasks handled per wave
489
- - Each wave's results merged into master CSV before next wave starts
490
- - GC loops triggered when coverage below target (max 3 rounds per layer)
491
- - Dependent tasks skipped when predecessor failed
492
- - discoveries.ndjson accumulated across all waves and mechanisms
493
-
494
- ---
495
-
496
- ### Phase 3: Post-Wave Interactive (Completion Action)
497
-
498
- **Objective**: Pipeline completion report with quality score and interactive completion choice.
499
-
500
- ```javascript
501
- const tasks = parseCsv(Read(`${sessionFolder}/tasks.csv`))
502
- const completed = tasks.filter(t => t.status === 'completed')
503
- const failed = tasks.filter(t => t.status === 'failed')
504
-
505
- // Quality score from analyst
506
- const analystTask = tasks.find(t => t.role === 'analyst' && t.status === 'completed')
507
- const qualityScore = analystTask?.quality_score || 'N/A'
508
-
509
- // Scout issues count
510
- const scoutTasks = tasks.filter(t => t.role === 'scout' && t.status === 'completed')
511
- const totalIssues = scoutTasks.reduce((sum, t) => sum + parseInt(t.issues_found || '0'), 0)
512
-
513
- // Coverage summary per layer
514
- const layerSummary = ['L1', 'L2', 'L3'].map(layer => {
515
- const execTask = tasks.find(t => t.role === 'executor' && t.layer === layer && t.status === 'completed')
516
- return execTask ? ` ${layer}: ${execTask.coverage_achieved}% coverage, ${execTask.pass_rate} pass rate` : null
517
- }).filter(Boolean).join('\n')
518
-
519
- console.log(`
520
- ============================================
521
- QA PIPELINE COMPLETE
522
-
523
- Quality Score: ${qualityScore}/100
524
- Issues Discovered: ${totalIssues}
525
-
526
- Deliverables:
527
- ${completed.map(t => ` - ${t.id}: ${t.title} (${t.role})`).join('\n')}
528
-
529
- Coverage:
530
- ${layerSummary}
531
-
532
- Pipeline: ${completed.length}/${tasks.length} tasks
533
- Session: ${sessionFolder}
534
- ============================================
535
- `)
536
-
537
- if (!AUTO_YES) {
538
- request_user_input({
539
- questions: [{
540
- question: "Quality Assurance pipeline complete. Choose next action.",
541
- header: "Done",
542
- id: "completion",
543
- options: [
544
- { label: "Archive (Recommended)", description: "Archive session, output final summary" },
545
- { label: "Keep Active", description: "Keep session for follow-up work" },
546
- { label: "Export Results", description: "Export deliverables to target directory" }
547
- ]
548
- }]
549
- })
550
- }
551
- ```
552
-
553
- **Success Criteria**:
554
- - Post-wave interactive processing complete
555
- - Quality score and coverage metrics displayed
556
- - User informed of results
557
-
558
- ---
559
-
560
- ### Phase 4: Results Aggregation
561
-
562
- **Objective**: Generate final results and human-readable report.
563
-
564
- ```javascript
565
- // 1. Export results.csv
566
- Bash(`cp ${sessionFolder}/tasks.csv ${sessionFolder}/results.csv`)
567
-
568
- // 2. Generate context.md
569
- const tasks = parseCsv(Read(`${sessionFolder}/tasks.csv`))
570
- const gcState = JSON.parse(Read(`${sessionFolder}/gc-state.json`))
571
- const analystTask = tasks.find(t => t.role === 'analyst' && t.status === 'completed')
572
-
573
- let contextMd = `# Team Quality Assurance Report\n\n`
574
- contextMd += `**Session**: ${sessionId}\n`
575
- contextMd += `**Date**: ${getUtc8ISOString().substring(0, 10)}\n`
576
- contextMd += `**QA Mode**: ${explicitMode || 'full'}\n`
577
- contextMd += `**Quality Score**: ${analystTask?.quality_score || 'N/A'}/100\n\n`
578
-
579
- contextMd += `## Summary\n`
580
- contextMd += `| Status | Count |\n|--------|-------|\n`
581
- contextMd += `| Completed | ${tasks.filter(t => t.status === 'completed').length} |\n`
582
- contextMd += `| Failed | ${tasks.filter(t => t.status === 'failed').length} |\n`
583
- contextMd += `| Skipped | ${tasks.filter(t => t.status === 'skipped').length} |\n\n`
584
-
585
- // Scout findings
586
- const scoutTasks = tasks.filter(t => t.role === 'scout' && t.status === 'completed')
587
- if (scoutTasks.length > 0) {
588
- contextMd += `## Scout Findings\n\n`
589
- for (const t of scoutTasks) {
590
- contextMd += `**${t.title}**: ${t.issues_found || 0} issues found\n${t.findings || ''}\n\n`
591
- }
592
- }
593
-
594
- // Coverage results
595
- contextMd += `## Coverage Results\n\n`
596
- contextMd += `| Layer | Coverage | Target | Pass Rate | GC Rounds |\n`
597
- contextMd += `|-------|----------|--------|-----------|----------|\n`
598
- for (const layer of ['L1', 'L2', 'L3']) {
599
- const execTask = tasks.find(t => t.role === 'executor' && t.layer === layer)
600
- if (execTask) {
601
- contextMd += `| ${layer} | ${execTask.coverage_achieved || 'N/A'}% | ${execTask.coverage_target}% | ${execTask.pass_rate || 'N/A'} | ${gcState.rounds[layer] || 0} |\n`
602
- }
603
- }
604
- contextMd += '\n'
605
-
606
- // Wave execution details
607
- const maxWave = Math.max(...tasks.map(t => t.wave))
608
- contextMd += `## Wave Execution\n\n`
609
- for (let w = 1; w <= maxWave; w++) {
610
- const waveTasks = tasks.filter(t => t.wave === w)
611
- contextMd += `### Wave ${w}\n\n`
612
- for (const t of waveTasks) {
613
- const icon = t.status === 'completed' ? '[DONE]' : t.status === 'failed' ? '[FAIL]' : '[SKIP]'
614
- contextMd += `${icon} **${t.title}** [${t.role}/${t.layer || '-'}] ${t.findings || ''}\n\n`
615
- }
616
- }
617
-
618
- Write(`${sessionFolder}/context.md`, contextMd)
619
-
620
- console.log(`Results exported to: ${sessionFolder}/results.csv`)
621
- console.log(`Report generated at: ${sessionFolder}/context.md`)
622
- ```
623
-
624
- **Success Criteria**:
625
- - results.csv exported (all tasks, both modes)
626
- - context.md generated with quality score, scout findings, and coverage breakdown
627
- - Summary displayed to user
628
-
629
- ---
630
-
631
- ## Shared Discovery Board Protocol
632
-
633
- All agents (csv-wave and interactive) share a single `discoveries.ndjson` file for cross-task knowledge exchange.
634
-
635
- **Format**: One JSON object per line (NDJSON):
636
-
637
- ```jsonl
638
- {"ts":"2026-03-08T10:00:00Z","worker":"SCOUT-001","type":"issue_found","data":{"file":"src/auth.ts","line":42,"severity":"high","perspective":"security","description":"Hardcoded secret key in auth module"}}
639
- {"ts":"2026-03-08T10:05:00Z","worker":"QASTRAT-001","type":"framework_detected","data":{"framework":"vitest","config_file":"vitest.config.ts","test_pattern":"**/*.test.ts"}}
640
- {"ts":"2026-03-08T10:10:00Z","worker":"QAGEN-L1-001","type":"test_generated","data":{"file":"tests/L1-unit/auth.test.ts","source_file":"src/auth.ts","test_count":8}}
641
- {"ts":"2026-03-08T10:15:00Z","worker":"QARUN-L1-001","type":"defect_found","data":{"file":"src/auth.ts","line":42,"pattern":"null_reference","description":"Missing null check on token payload"}}
642
- ```
643
-
644
- **Discovery Types**:
645
-
646
- | Type | Data Schema | Description |
647
- |------|-------------|-------------|
648
- | `issue_found` | `{file, line, severity, perspective, description}` | Issue discovered by scout |
649
- | `framework_detected` | `{framework, config_file, test_pattern}` | Test framework identified |
650
- | `test_generated` | `{file, source_file, test_count}` | Test file created |
651
- | `defect_found` | `{file, line, pattern, description}` | Defect pattern discovered during testing |
652
- | `coverage_gap` | `{file, current, target, gap}` | Coverage gap identified |
653
- | `convention_found` | `{pattern, example_file, description}` | Test convention detected |
654
- | `fix_applied` | `{test_file, fix_type, description}` | Test fix during GC loop |
655
- | `quality_metric` | `{dimension, score, details}` | Quality dimension score |
656
-
657
- **Protocol**:
658
- 1. Agents MUST read discoveries.ndjson at start of execution
659
- 2. Agents MUST append relevant discoveries during execution
660
- 3. Agents MUST NOT modify or delete existing entries
661
- 4. Deduplication by `{type, data.file, data.line}` key (where applicable)
662
-
663
- ---
664
-
665
- ## Pipeline Definitions
666
-
667
- ### Discovery Mode (5 tasks, serial)
668
-
669
- ```
670
- SCOUT-001 -> QASTRAT-001 -> QAGEN-001 -> QARUN-001 -> QAANA-001
671
- ```
672
-
673
- | Task ID | Role | Layer | Wave | exec_mode |
674
- |---------|------|-------|------|-----------|
675
- | SCOUT-001 | scout | - | 1 | csv-wave |
676
- | QASTRAT-001 | strategist | - | 2 | csv-wave |
677
- | QAGEN-001 | generator | L1 | 3 | csv-wave |
678
- | QARUN-001 | executor | L1 | 4 | interactive |
679
- | QAANA-001 | analyst | - | 5 | csv-wave |
680
-
681
- ### Testing Mode (6 tasks, progressive layers)
682
-
683
- ```
684
- QASTRAT-001 -> QAGEN-L1-001 -> QARUN-L1-001 -> QAGEN-L2-001 -> QARUN-L2-001 -> QAANA-001
685
- ```
686
-
687
- | Task ID | Role | Layer | Wave | exec_mode |
688
- |---------|------|-------|------|-----------|
689
- | QASTRAT-001 | strategist | - | 1 | csv-wave |
690
- | QAGEN-L1-001 | generator | L1 | 2 | csv-wave |
691
- | QARUN-L1-001 | executor | L1 | 3 | interactive |
692
- | QAGEN-L2-001 | generator | L2 | 4 | csv-wave |
693
- | QARUN-L2-001 | executor | L2 | 5 | interactive |
694
- | QAANA-001 | analyst | - | 6 | csv-wave |
695
-
696
- ### Full Mode (8 tasks, parallel windows + regression)
697
-
698
- ```
699
- SCOUT-001 -> QASTRAT-001 -> [QAGEN-L1-001 // QAGEN-L2-001] -> [QARUN-L1-001 // QARUN-L2-001] -> QAANA-001 -> SCOUT-002
700
- ```
701
-
702
- | Task ID | Role | Layer | Wave | exec_mode |
703
- |---------|------|-------|------|-----------|
704
- | SCOUT-001 | scout | - | 1 | csv-wave |
705
- | QASTRAT-001 | strategist | - | 2 | csv-wave |
706
- | QAGEN-L1-001 | generator | L1 | 3 | csv-wave |
707
- | QAGEN-L2-001 | generator | L2 | 3 | csv-wave |
708
- | QARUN-L1-001 | executor | L1 | 4 | interactive |
709
- | QARUN-L2-001 | executor | L2 | 4 | interactive |
710
- | QAANA-001 | analyst | - | 5 | csv-wave |
711
- | SCOUT-002 | scout | - | 6 | csv-wave |
712
-
713
- ---
714
-
715
- ## GC Loop (Generator-Critic)
716
-
717
- Generator and executor iterate per test layer until coverage converges:
718
-
719
- ```
720
- QAGEN -> QARUN -> (if coverage < target) -> GC Loop Handler
721
- (if coverage >= target) -> next wave
722
- ```
723
-
724
- - Max iterations: 3 per layer
725
- - After 3 iterations: accept current coverage with warning
726
- - GC loop runs as interactive agent (gc-loop-handler.md) which internally generates fixes and re-runs tests
727
-
728
- ---
729
-
730
- ## Scan Perspectives (Scout)
731
-
732
- | Perspective | Focus |
733
- |-------------|-------|
734
- | bug | Logic errors, crash paths, null references |
735
- | security | Vulnerabilities, auth bypass, data exposure |
736
- | test-coverage | Untested code paths, missing assertions |
737
- | code-quality | Anti-patterns, complexity, maintainability |
738
- | ux | User-facing issues, accessibility (optional, when task mentions UX/UI) |
739
-
740
- ---
741
-
742
- ## Error Handling
743
-
744
- | Error | Resolution |
745
- |-------|------------|
746
- | Circular dependency | Detect in wave computation, abort with error message |
747
- | CSV agent timeout | Mark as failed in results, continue with wave |
748
- | CSV agent failed | Mark as failed, skip dependent tasks in later waves |
749
- | Interactive agent timeout | Urge convergence via send_input, then close if still timed out |
750
- | Interactive agent failed | Mark as failed, skip dependents |
751
- | All agents in wave failed | Log error, offer retry or abort |
752
- | CSV parse error | Validate CSV format before execution, show line number |
753
- | discoveries.ndjson corrupt | Ignore malformed lines, continue with valid entries |
754
- | Scout finds no issues | Report clean scan, proceed to testing (skip discovery-specific tasks) |
755
- | GC loop exceeded (3 rounds) | Accept current coverage with warning, proceed to next layer |
756
- | Test framework not detected | Default to Jest patterns |
757
- | Coverage tool unavailable | Degrade to pass rate judgment |
758
- | quality_score < 60 | Report with WARNING, suggest re-run with deeper coverage |
759
- | Continue mode: no session found | List available sessions, prompt user to select |
760
-
761
- ---
762
-
763
- ## Core Rules
764
-
765
- 1. **Start Immediately**: First action is session initialization, then Phase 0/1
766
- 2. **Wave Order is Sacred**: Never execute wave N before wave N-1 completes and results are merged
767
- 3. **CSV is Source of Truth**: Master tasks.csv holds all state (both csv-wave and interactive)
768
- 4. **CSV First**: Default to csv-wave for tasks; only use interactive when multi-round interaction is required
769
- 5. **Context Propagation**: prev_context built from master CSV, not from memory
770
- 6. **Discovery Board is Append-Only**: Never clear, modify, or recreate discoveries.ndjson
771
- 7. **Skip on Failure**: If a dependency failed, skip the dependent task
772
- 8. **GC Loop Discipline**: Max 3 rounds per layer; never infinite-loop on coverage
773
- 9. **Scout Feeds Strategy**: Scout findings flow into strategist via prev_context and discoveries.ndjson
774
- 10. **Cleanup Temp Files**: Remove wave-{N}.csv after results are merged
775
- 11. **DO NOT STOP**: Continuous execution until all waves complete or all remaining tasks are skipped
776
-
777
-
778
- ---
779
-
780
- ## Coordinator Role Constraints (Main Agent)
781
-
782
- **CRITICAL**: The coordinator (main agent executing this skill) is responsible for **orchestration only**, NOT implementation.
783
-
784
- 15. **Coordinator Does NOT Execute Code**: The main agent MUST NOT write, modify, or implement any code directly. All implementation work is delegated to spawned team agents. The coordinator only:
785
- - Spawns agents with task assignments
786
- - Waits for agent callbacks
787
- - Merges results and coordinates workflow
788
- - Manages workflow transitions between phases
789
-
790
- 16. **Patient Waiting is Mandatory**: Agent execution takes significant time (typically 10-30 minutes per phase, sometimes longer). The coordinator MUST:
791
- - Wait patiently for `wait()` calls to complete
792
- - NOT skip workflow steps due to perceived delays
793
- - NOT assume agents have failed just because they're taking time
794
- - Trust the timeout mechanisms defined in the skill
795
-
796
- 17. **Use send_input for Clarification**: When agents need guidance or appear stuck, the coordinator MUST:
797
- - Use `send_input()` to ask questions or provide clarification
798
- - NOT skip the agent or move to next phase prematurely
799
- - Give agents opportunity to respond before escalating
800
- - Example: `send_input({ id: agent_id, message: "Please provide status update or clarify blockers" })`
801
-
802
- 18. **No Workflow Shortcuts**: The coordinator MUST NOT:
803
- - Skip phases or stages defined in the workflow
804
- - Bypass required approval or review steps
805
- - Execute dependent tasks before prerequisites complete
806
- - Assume task completion without explicit agent callback
807
- - Make up or fabricate agent results
808
-
809
- 19. **Respect Long-Running Processes**: This is a complex multi-agent workflow that requires patience:
810
- - Total execution time may range from 30-90 minutes or longer
811
- - Each phase may take 10-30 minutes depending on complexity
812
- - The coordinator must remain active and attentive throughout the entire process
813
- - Do not terminate or skip steps due to time concerns
1
+ ---
2
+ name: team-quality-assurance
3
+ description: Unified team skill for quality assurance. Full closed-loop QA combining issue discovery and software testing. Triggers on "team quality-assurance", "team qa".
4
+ allowed-tools: spawn_agent(*), wait_agent(*), send_input(*), close_agent(*), report_agent_job_result(*), request_user_input(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*)
5
+ ---
6
+
7
+ # Team Quality Assurance
8
+
9
+ Orchestrate multi-agent QA: scout -> strategist -> generator -> executor -> analyst. Supports discovery, testing, and full closed-loop modes with parallel generation and GC loops.
10
+
11
+ ## Architecture
12
+
13
+ ```
14
+ Skill(skill="team-quality-assurance", args="task description")
15
+ |
16
+ SKILL.md (this file) = Router
17
+ |
18
+ +--------------+--------------+
19
+ | |
20
+ no --role flag --role <name>
21
+ | |
22
+ Coordinator Worker
23
+ roles/coordinator/role.md roles/<name>/role.md
24
+ |
25
+ +-- analyze -> dispatch -> spawn workers -> STOP
26
+ |
27
+ +-------+-------+-------+-------+-------+
28
+ v v v v v
29
+ [scout] [strat] [gen] [exec] [analyst]
30
+ team-worker agents, each loads roles/<role>/role.md
31
+ ```
32
+
33
+ ## Role Registry
34
+
35
+ | Role | Path | Prefix | Inner Loop |
36
+ |------|------|--------|------------|
37
+ | coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | — | — |
38
+ | scout | [roles/scout/role.md](roles/scout/role.md) | SCOUT-* | false |
39
+ | strategist | [roles/strategist/role.md](roles/strategist/role.md) | QASTRAT-* | false |
40
+ | generator | [roles/generator/role.md](roles/generator/role.md) | QAGEN-* | false |
41
+ | executor | [roles/executor/role.md](roles/executor/role.md) | QARUN-* | true |
42
+ | analyst | [roles/analyst/role.md](roles/analyst/role.md) | QAANA-* | false |
43
+
44
+ ## Role Router
45
+
46
+ Parse `$ARGUMENTS`:
47
+ - Has `--role <name>` -> Read `roles/<name>/role.md`, execute Phase 2-4
48
+ - No `--role` -> `roles/coordinator/role.md`, execute entry router
49
+
50
+ ## Shared Constants
51
+
52
+ - **Session prefix**: `QA`
53
+ - **Session path**: `.workflow/.team/QA-<slug>-<date>/`
54
+ - **Team name**: `quality-assurance`
55
+ - **CLI tools**: `ccw cli --mode analysis` (read-only), `ccw cli --mode write` (modifications)
56
+ - **Message bus**: `mcp__ccw-tools__team_msg(session_id=<session-id>, ...)`
57
+
58
+ ## Worker Spawn Template
59
+
60
+ Coordinator spawns workers using this template:
61
+
62
+ ```
63
+ spawn_agent({
64
+ agent_type: "team_worker",
65
+ items: [
66
+ { type: "text", text: `## Role Assignment
67
+ role: <role>
68
+ role_spec: <skill_root>/roles/<role>/role.md
69
+ session: <session-folder>
70
+ session_id: <session-id>
71
+ requirement: <task-description>
72
+ inner_loop: <true|false>
73
+
74
+ Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.` },
75
+
76
+ { type: "text", text: `## Task Context
77
+ task_id: <task-id>
78
+ title: <task-title>
79
+ description: <task-description>
80
+ pipeline_phase: <pipeline-phase>` },
81
+
82
+ { type: "text", text: `## Upstream Context
83
+ <prev_context>` }
84
+ ]
85
+ })
86
+ ```
87
+
88
+ After spawning, use `wait_agent({ ids: [...], timeout_ms: 900000 })` to collect results, then `close_agent({ id })` each worker.
89
+
90
+ ## User Commands
91
+
92
+ | Command | Action |
93
+ |---------|--------|
94
+ | `check` / `status` | View pipeline status graph |
95
+ | `resume` / `continue` | Advance to next step |
96
+ | `--mode=discovery` | Force discovery mode |
97
+ | `--mode=testing` | Force testing mode |
98
+ | `--mode=full` | Force full QA mode |
99
+
100
+ ## Completion Action
101
+
102
+ When pipeline completes, coordinator presents:
103
+
104
+ ```
105
+ request_user_input({
106
+ questions: [{
107
+ question: "Quality Assurance pipeline complete. What would you like to do?",
108
+ header: "Completion",
109
+ multiSelect: false,
110
+ options: [
111
+ { label: "Archive & Clean (Recommended)", description: "Archive session, clean up" },
112
+ { label: "Keep Active", description: "Keep session for follow-up work" },
113
+ { label: "Export Results", description: "Export deliverables to target directory" }
114
+ ]
115
+ }]
116
+ })
117
+ ```
118
+
119
+ ## Session Directory
120
+
121
+ ```
122
+ .workflow/.team/QA-<slug>-<date>/
123
+ ├── .msg/messages.jsonl # Team message bus
124
+ ├── .msg/meta.json # Session state + shared memory
125
+ ├── wisdom/ # Cross-task knowledge
126
+ ├── scan/ # Scout output
127
+ ├── strategy/ # Strategist output
128
+ ├── tests/ # Generator output (L1/, L2/, L3/)
129
+ ├── results/ # Executor output
130
+ └── analysis/ # Analyst output
131
+ ```
132
+
133
+ ## Specs Reference
134
+
135
+ - [specs/pipelines.md](specs/pipelines.md) Pipeline definitions and task registry
136
+ - [specs/team-config.json](specs/team-config.json) Team configuration and shared memory schema
137
+
138
+ ## Error Handling
139
+
140
+ | Scenario | Resolution |
141
+ |----------|------------|
142
+ | Unknown --role value | Error with available role list |
143
+ | Role not found | Error with expected path (roles/<name>/role.md) |
144
+ | CLI tool fails | Worker fallback to direct implementation |
145
+ | Scout finds no issues | Report clean scan, skip to testing mode |
146
+ | GC loop exceeded | Accept current coverage with warning |
147
+ | Fast-advance conflict | Coordinator reconciles on next callback |
148
+ | Completion action fails | Default to Keep Active |