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.
- package/.ccw/workflows/cli-templates/schemas/team-tasks-schema.json +255 -0
- package/.codex/agents/team-supervisor.toml +39 -0
- package/.codex/agents/team-worker.toml +46 -0
- package/.codex/skills/team-arch-opt/SKILL.md +151 -698
- package/.codex/skills/team-arch-opt/roles/analyzer/role.md +78 -0
- package/.codex/skills/team-arch-opt/roles/coordinator/commands/analyze.md +57 -0
- package/.codex/skills/team-arch-opt/roles/coordinator/commands/dispatch.md +287 -0
- package/.codex/skills/team-arch-opt/roles/coordinator/commands/monitor.md +204 -0
- package/.codex/skills/team-arch-opt/roles/coordinator/role.md +162 -0
- package/.codex/skills/team-arch-opt/roles/designer/role.md +115 -0
- package/.codex/skills/team-arch-opt/roles/refactorer/role.md +102 -0
- package/.codex/skills/team-arch-opt/roles/reviewer/role.md +111 -0
- package/.codex/skills/team-arch-opt/roles/validator/role.md +115 -0
- package/.codex/skills/team-arch-opt/specs/pipelines.md +102 -0
- package/.codex/skills/team-arch-opt/specs/team-config.json +263 -0
- package/.codex/skills/team-brainstorm/SKILL.md +167 -724
- package/.codex/skills/team-brainstorm/roles/challenger/role.md +61 -0
- package/.codex/skills/team-brainstorm/roles/coordinator/commands/analyze.md +58 -0
- package/.codex/skills/team-brainstorm/roles/coordinator/commands/dispatch.md +162 -0
- package/.codex/skills/team-brainstorm/roles/coordinator/commands/monitor.md +171 -0
- package/.codex/skills/team-brainstorm/roles/coordinator/role.md +140 -0
- package/.codex/skills/team-brainstorm/roles/evaluator/role.md +56 -0
- package/.codex/skills/team-brainstorm/roles/ideator/role.md +69 -0
- package/.codex/skills/team-brainstorm/roles/synthesizer/role.md +57 -0
- package/.codex/skills/team-brainstorm/specs/pipelines.md +72 -0
- package/.codex/skills/team-brainstorm/specs/team-config.json +86 -0
- package/.codex/skills/team-coordinate/SKILL.md +267 -667
- package/.codex/skills/team-coordinate/roles/coordinator/commands/analyze-task.md +247 -0
- package/.codex/skills/team-coordinate/roles/coordinator/commands/dispatch.md +126 -0
- package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +327 -0
- package/.codex/skills/team-coordinate/roles/coordinator/role.md +361 -0
- package/.codex/skills/team-coordinate/specs/knowledge-transfer.md +111 -0
- package/.codex/skills/team-coordinate/specs/pipelines.md +97 -0
- package/.codex/skills/team-coordinate/specs/quality-gates.md +112 -0
- package/.codex/skills/team-coordinate/specs/role-spec-template.md +192 -0
- package/.codex/skills/team-designer/SKILL.md +153 -691
- package/.codex/skills/team-designer/phases/01-requirements-analysis.md +250 -0
- package/.codex/skills/team-designer/phases/02-scaffold-generation.md +228 -0
- package/.codex/skills/team-designer/phases/03-content-generation.md +330 -0
- package/.codex/skills/team-designer/phases/04-validation.md +320 -0
- package/.codex/skills/team-executor/SKILL.md +191 -515
- package/.codex/skills/team-executor/roles/executor/commands/monitor.md +280 -0
- package/.codex/skills/team-executor/roles/executor/role.md +170 -0
- package/.codex/skills/team-executor/specs/session-schema.md +264 -0
- package/.codex/skills/team-frontend/SKILL.md +129 -750
- package/.codex/skills/team-frontend/roles/analyst/role.md +92 -0
- package/.codex/skills/team-frontend/roles/architect/role.md +86 -0
- package/.codex/skills/team-frontend/roles/coordinator/commands/analyze.md +52 -0
- package/.codex/skills/team-frontend/roles/coordinator/commands/dispatch.md +151 -0
- package/.codex/skills/team-frontend/roles/coordinator/commands/monitor.md +188 -0
- package/.codex/skills/team-frontend/roles/coordinator/role.md +157 -0
- package/.codex/skills/team-frontend/roles/developer/role.md +93 -0
- package/.codex/skills/team-frontend/roles/qa/role.md +79 -0
- package/.codex/skills/team-frontend/specs/pipelines.md +76 -0
- package/.codex/skills/team-frontend/specs/team-config.json +84 -0
- package/.codex/skills/team-frontend-debug/SKILL.md +191 -821
- package/.codex/skills/team-frontend-debug/roles/analyzer/role.md +208 -0
- package/.codex/skills/team-frontend-debug/roles/coordinator/commands/analyze.md +174 -0
- package/.codex/skills/team-frontend-debug/roles/coordinator/commands/dispatch.md +198 -0
- package/.codex/skills/team-frontend-debug/roles/coordinator/commands/monitor.md +143 -0
- package/.codex/skills/team-frontend-debug/roles/coordinator/role.md +131 -0
- package/.codex/skills/team-frontend-debug/roles/fixer/role.md +147 -0
- package/.codex/skills/team-frontend-debug/roles/reproducer/role.md +147 -0
- package/.codex/skills/team-frontend-debug/roles/tester/role.md +231 -0
- package/.codex/skills/team-frontend-debug/roles/verifier/role.md +172 -0
- package/.codex/skills/team-frontend-debug/specs/debug-tools.md +215 -0
- package/.codex/skills/team-frontend-debug/specs/pipelines.md +94 -0
- package/.codex/skills/team-issue/SKILL.md +166 -751
- package/.codex/skills/team-issue/roles/coordinator/commands/analyze.md +64 -0
- package/.codex/skills/team-issue/roles/coordinator/commands/dispatch.md +273 -0
- package/.codex/skills/team-issue/roles/coordinator/commands/monitor.md +194 -0
- package/.codex/skills/team-issue/roles/coordinator/role.md +175 -0
- package/.codex/skills/team-issue/roles/explorer/role.md +94 -0
- package/.codex/skills/team-issue/roles/implementer/role.md +87 -0
- package/.codex/skills/team-issue/roles/integrator/role.md +84 -0
- package/.codex/skills/team-issue/roles/planner/role.md +81 -0
- package/.codex/skills/team-issue/roles/reviewer/role.md +86 -0
- package/.codex/skills/team-issue/specs/pipelines.md +124 -0
- package/.codex/skills/team-issue/specs/team-config.json +70 -0
- package/.codex/skills/team-iterdev/SKILL.md +134 -825
- package/.codex/skills/team-iterdev/roles/architect/role.md +65 -0
- package/.codex/skills/team-iterdev/roles/coordinator/commands/analyze.md +62 -0
- package/.codex/skills/team-iterdev/roles/coordinator/commands/dispatch.md +187 -0
- package/.codex/skills/team-iterdev/roles/coordinator/commands/monitor.md +186 -0
- package/.codex/skills/team-iterdev/roles/coordinator/role.md +161 -0
- package/.codex/skills/team-iterdev/roles/developer/role.md +74 -0
- package/.codex/skills/team-iterdev/roles/reviewer/role.md +66 -0
- package/.codex/skills/team-iterdev/roles/tester/role.md +88 -0
- package/.codex/skills/team-iterdev/specs/pipelines.md +94 -0
- package/.codex/skills/team-iterdev/specs/team-config.json +172 -0
- package/.codex/skills/team-lifecycle-v4/MIGRATION-PLAN.md +512 -0
- package/.codex/skills/team-lifecycle-v4/SKILL.md +166 -723
- package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +104 -0
- package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/analyze.md +56 -0
- package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/dispatch.md +61 -0
- package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +177 -0
- package/.codex/skills/team-lifecycle-v4/roles/coordinator/role.md +152 -0
- package/.codex/skills/team-lifecycle-v4/roles/executor/commands/fix.md +35 -0
- package/.codex/skills/team-lifecycle-v4/roles/executor/commands/implement.md +63 -0
- package/.codex/skills/team-lifecycle-v4/roles/executor/role.md +89 -0
- package/.codex/skills/team-lifecycle-v4/roles/planner/role.md +108 -0
- package/.codex/skills/team-lifecycle-v4/roles/reviewer/commands/review-code.md +57 -0
- package/.codex/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +44 -0
- package/.codex/skills/team-lifecycle-v4/roles/reviewer/role.md +98 -0
- package/.codex/skills/team-lifecycle-v4/roles/supervisor/role.md +210 -0
- package/.codex/skills/team-lifecycle-v4/roles/tester/role.md +126 -0
- package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +125 -0
- package/.codex/skills/team-lifecycle-v4/schemas/tasks-schema.md +82 -160
- package/.codex/skills/team-lifecycle-v4/specs/knowledge-transfer.md +136 -0
- package/.codex/skills/team-lifecycle-v4/specs/pipelines.md +125 -0
- package/.codex/skills/team-lifecycle-v4/specs/quality-gates.md +130 -0
- package/.codex/skills/team-perf-opt/SKILL.md +169 -697
- package/.codex/skills/team-perf-opt/roles/benchmarker/role.md +89 -0
- package/.codex/skills/team-perf-opt/roles/coordinator/commands/analyze.md +61 -0
- package/.codex/skills/team-perf-opt/roles/coordinator/commands/dispatch.md +262 -0
- package/.codex/skills/team-perf-opt/roles/coordinator/commands/monitor.md +320 -0
- package/.codex/skills/team-perf-opt/roles/coordinator/role.md +147 -0
- package/.codex/skills/team-perf-opt/roles/optimizer/role.md +97 -0
- package/.codex/skills/team-perf-opt/roles/profiler/role.md +73 -0
- package/.codex/skills/team-perf-opt/roles/reviewer/role.md +75 -0
- package/.codex/skills/team-perf-opt/roles/strategist/role.md +94 -0
- package/.codex/skills/team-perf-opt/specs/pipelines.md +65 -0
- package/.codex/skills/team-perf-opt/specs/team-config.json +246 -0
- package/.codex/skills/team-planex/SKILL.md +103 -477
- package/.codex/skills/team-planex/roles/coordinator/commands/analyze.md +52 -0
- package/.codex/skills/team-planex/roles/coordinator/commands/dispatch.md +80 -0
- package/.codex/skills/team-planex/roles/coordinator/commands/monitor.md +164 -0
- package/.codex/skills/team-planex/roles/coordinator/role.md +140 -0
- package/.codex/skills/team-planex/roles/executor/role.md +91 -0
- package/.codex/skills/team-planex/roles/planner/role.md +112 -0
- package/.codex/skills/team-planex/specs/pipelines.md +93 -0
- package/.codex/skills/team-quality-assurance/SKILL.md +148 -813
- package/.codex/skills/team-quality-assurance/roles/analyst/role.md +80 -0
- package/.codex/skills/team-quality-assurance/roles/coordinator/commands/analyze.md +72 -0
- package/.codex/skills/team-quality-assurance/roles/coordinator/commands/dispatch.md +108 -0
- package/.codex/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +209 -0
- package/.codex/skills/team-quality-assurance/roles/coordinator/role.md +143 -0
- package/.codex/skills/team-quality-assurance/roles/executor/role.md +66 -0
- package/.codex/skills/team-quality-assurance/roles/generator/role.md +68 -0
- package/.codex/skills/team-quality-assurance/roles/scout/role.md +67 -0
- package/.codex/skills/team-quality-assurance/roles/strategist/role.md +71 -0
- package/.codex/skills/team-quality-assurance/specs/pipelines.md +115 -0
- package/.codex/skills/team-quality-assurance/specs/team-config.json +131 -0
- package/.codex/skills/team-review/SKILL.md +148 -533
- package/.codex/skills/team-review/roles/coordinator/commands/analyze.md +71 -0
- package/.codex/skills/team-review/roles/coordinator/commands/dispatch.md +90 -0
- package/.codex/skills/team-review/roles/coordinator/commands/monitor.md +185 -0
- package/.codex/skills/team-review/roles/coordinator/role.md +142 -0
- package/.codex/skills/team-review/roles/fixer/role.md +76 -0
- package/.codex/skills/team-review/roles/reviewer/role.md +68 -0
- package/.codex/skills/team-review/roles/scanner/role.md +71 -0
- package/.codex/skills/team-review/specs/dimensions.md +82 -0
- package/.codex/skills/team-review/specs/finding-schema.json +82 -0
- package/.codex/skills/team-review/specs/pipelines.md +102 -0
- package/.codex/skills/team-review/specs/team-config.json +27 -0
- package/.codex/skills/team-roadmap-dev/SKILL.md +162 -683
- package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/analyze.md +61 -0
- package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/dispatch.md +241 -0
- package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/monitor.md +468 -0
- package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/pause.md +90 -0
- package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/resume.md +137 -0
- package/.codex/skills/team-roadmap-dev/roles/coordinator/commands/roadmap-discuss.md +243 -0
- package/.codex/skills/team-roadmap-dev/roles/coordinator/role.md +303 -0
- package/.codex/skills/team-roadmap-dev/roles/executor/role.md +71 -0
- package/.codex/skills/team-roadmap-dev/roles/planner/role.md +76 -0
- package/.codex/skills/team-roadmap-dev/roles/verifier/role.md +74 -0
- package/.codex/skills/team-roadmap-dev/specs/pipelines.md +93 -0
- package/.codex/skills/team-roadmap-dev/specs/team-config.json +95 -0
- package/.codex/skills/team-tech-debt/SKILL.md +129 -708
- package/.codex/skills/team-tech-debt/roles/assessor/role.md +69 -0
- package/.codex/skills/team-tech-debt/roles/coordinator/commands/analyze.md +47 -0
- package/.codex/skills/team-tech-debt/roles/coordinator/commands/dispatch.md +163 -0
- package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +231 -0
- package/.codex/skills/team-tech-debt/roles/coordinator/role.md +141 -0
- package/.codex/skills/team-tech-debt/roles/executor/role.md +76 -0
- package/.codex/skills/team-tech-debt/roles/planner/role.md +69 -0
- package/.codex/skills/team-tech-debt/roles/scanner/role.md +82 -0
- package/.codex/skills/team-tech-debt/roles/validator/role.md +75 -0
- package/.codex/skills/team-tech-debt/specs/pipelines.md +47 -0
- package/.codex/skills/team-tech-debt/specs/team-config.json +129 -0
- package/.codex/skills/team-testing/SKILL.md +144 -769
- package/.codex/skills/team-testing/roles/analyst/role.md +95 -0
- package/.codex/skills/team-testing/roles/coordinator/commands/analyze.md +70 -0
- package/.codex/skills/team-testing/roles/coordinator/commands/dispatch.md +106 -0
- package/.codex/skills/team-testing/roles/coordinator/commands/monitor.md +242 -0
- package/.codex/skills/team-testing/roles/coordinator/role.md +151 -0
- package/.codex/skills/team-testing/roles/executor/role.md +96 -0
- package/.codex/skills/team-testing/roles/generator/role.md +95 -0
- package/.codex/skills/team-testing/roles/strategist/role.md +83 -0
- package/.codex/skills/team-testing/specs/pipelines.md +101 -0
- package/.codex/skills/team-testing/specs/team-config.json +93 -0
- package/.codex/skills/team-uidesign/SKILL.md +133 -767
- package/.codex/skills/team-uidesign/roles/coordinator/commands/analyze.md +59 -0
- package/.codex/skills/team-uidesign/roles/coordinator/commands/dispatch.md +156 -0
- package/.codex/skills/team-uidesign/roles/coordinator/commands/monitor.md +194 -0
- package/.codex/skills/team-uidesign/roles/coordinator/role.md +179 -0
- package/.codex/skills/team-uidesign/roles/designer/role.md +69 -0
- package/.codex/skills/team-uidesign/roles/implementer/role.md +72 -0
- package/.codex/skills/team-uidesign/roles/researcher/role.md +82 -0
- package/.codex/skills/team-uidesign/roles/reviewer/role.md +67 -0
- package/.codex/skills/team-uidesign/specs/pipelines.md +76 -0
- package/.codex/skills/team-uidesign/specs/team-config.json +107 -0
- package/.codex/skills/team-ultra-analyze/SKILL.md +166 -786
- package/.codex/skills/team-ultra-analyze/roles/analyst/role.md +90 -0
- package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/analyze.md +73 -0
- package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/dispatch.md +225 -0
- package/.codex/skills/team-ultra-analyze/roles/coordinator/commands/monitor.md +327 -0
- package/.codex/skills/team-ultra-analyze/roles/coordinator/role.md +223 -0
- package/.codex/skills/team-ultra-analyze/roles/discussant/role.md +104 -0
- package/.codex/skills/team-ultra-analyze/roles/explorer/role.md +74 -0
- package/.codex/skills/team-ultra-analyze/roles/synthesizer/role.md +78 -0
- package/.codex/skills/team-ultra-analyze/specs/pipelines.md +64 -0
- package/.codex/skills/team-ultra-analyze/specs/team-config.json +129 -0
- package/.codex/skills/team-ux-improve/SKILL.md +142 -638
- package/.codex/skills/team-ux-improve/roles/coordinator/commands/analyze.md +62 -0
- package/.codex/skills/team-ux-improve/roles/coordinator/commands/dispatch.md +233 -0
- package/.codex/skills/team-ux-improve/roles/coordinator/commands/monitor.md +160 -0
- package/.codex/skills/team-ux-improve/roles/coordinator/role.md +138 -0
- package/.codex/skills/team-ux-improve/roles/designer/role.md +122 -0
- package/.codex/skills/team-ux-improve/roles/diagnoser/role.md +93 -0
- package/.codex/skills/team-ux-improve/roles/explorer/role.md +77 -0
- package/.codex/skills/team-ux-improve/roles/implementer/role.md +102 -0
- package/.codex/skills/team-ux-improve/roles/scanner/role.md +93 -0
- package/.codex/skills/team-ux-improve/roles/tester/role.md +84 -0
- package/.codex/skills/team-ux-improve/specs/pipelines.md +54 -0
- package/.codex/skills/team-ux-improve/specs/team-config.json +181 -0
- package/.codex/skills/team-ux-improve/wisdom/anti-patterns/common-ux-pitfalls.md +17 -0
- package/.codex/skills/team-ux-improve/wisdom/contributions/.gitkeep +0 -0
- package/.codex/skills/team-ux-improve/wisdom/patterns/state-management.md +14 -0
- package/.codex/skills/team-ux-improve/wisdom/patterns/ui-feedback.md +16 -0
- package/.codex/skills/team-ux-improve/wisdom/principles/general-ux.md +16 -0
- package/ccw/dist/core/routes/cli-settings-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/cli-settings-routes.js +135 -133
- package/ccw/dist/core/routes/cli-settings-routes.js.map +1 -1
- package/ccw/frontend/dist/assets/{AlertDialog-BW9jiZ-p.js → AlertDialog-CnpjWAGm.js} +2 -2
- package/ccw/frontend/dist/assets/{AlertDialog-BW9jiZ-p.js.map → AlertDialog-CnpjWAGm.js.map} +1 -1
- package/ccw/frontend/dist/assets/{AnalysisPage-ds-w_nVO.js → AnalysisPage-BT2rDDUD.js} +2 -2
- package/ccw/frontend/dist/assets/{AnalysisPage-ds-w_nVO.js.map → AnalysisPage-BT2rDDUD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ApiSettingsPage-DlCbXxTz.js → ApiSettingsPage-DGpjiNVu.js} +2 -2
- package/ccw/frontend/dist/assets/{ApiSettingsPage-DlCbXxTz.js.map → ApiSettingsPage-DGpjiNVu.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliModeToggle-Dq3nL4fF.js → CliModeToggle-BqUadHn3.js} +2 -2
- package/ccw/frontend/dist/assets/{CliModeToggle-Dq3nL4fF.js.map → CliModeToggle-BqUadHn3.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliSessionSharePage-BNDkEE4u.js → CliSessionSharePage-C3AdsDkm.js} +2 -2
- package/ccw/frontend/dist/assets/{CliSessionSharePage-BNDkEE4u.js.map → CliSessionSharePage-C3AdsDkm.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliViewerPage-ChM-uNx_.js → CliViewerPage-BZXpgY0N.js} +2 -2
- package/ccw/frontend/dist/assets/{CliViewerPage-ChM-uNx_.js.map → CliViewerPage-BZXpgY0N.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CodexLensPage-DOcsYNQk.js → CodexLensPage-CePoJz-u.js} +2 -2
- package/ccw/frontend/dist/assets/{CodexLensPage-DOcsYNQk.js.map → CodexLensPage-CePoJz-u.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Collapsible-CRNbykXN.js → Collapsible-DXVzWwmb.js} +2 -2
- package/ccw/frontend/dist/assets/{Collapsible-CRNbykXN.js.map → Collapsible-DXVzWwmb.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CommandsManagerPage-C2JWcemF.js → CommandsManagerPage-B6wJYF0z.js} +2 -2
- package/ccw/frontend/dist/assets/{CommandsManagerPage-C2JWcemF.js.map → CommandsManagerPage-B6wJYF0z.js.map} +1 -1
- package/ccw/frontend/dist/assets/{DeepWikiPage-CvleOtJy.js → DeepWikiPage-D55fcvSk.js} +2 -2
- package/ccw/frontend/dist/assets/{DeepWikiPage-CvleOtJy.js.map → DeepWikiPage-D55fcvSk.js.map} +1 -1
- package/ccw/frontend/dist/assets/{EndpointsPage-CMOWQG64.js → EndpointsPage-DcGziJ5t.js} +2 -2
- package/ccw/frontend/dist/assets/{EndpointsPage-CMOWQG64.js.map → EndpointsPage-DcGziJ5t.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ExplorerPage-DaFPRlNo.js → ExplorerPage-C4eKzn7F.js} +2 -2
- package/ccw/frontend/dist/assets/{ExplorerPage-DaFPRlNo.js.map → ExplorerPage-C4eKzn7F.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FixSessionPage-CC4p04Az.js → FixSessionPage-BUHh954A.js} +2 -2
- package/ccw/frontend/dist/assets/{FixSessionPage-CC4p04Az.js.map → FixSessionPage-BUHh954A.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-DROn1xZ5.js → FloatingFileBrowser-C3GF_u1C.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-DROn1xZ5.js.map → FloatingFileBrowser-C3GF_u1C.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingPanel-CmL_yhDv.js → FloatingPanel-Cn-q9PyJ.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingPanel-CmL_yhDv.js.map → FloatingPanel-Cn-q9PyJ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{GraphExplorerPage-DCV5ybKE.js → GraphExplorerPage-DIpqgvoU.js} +2 -2
- package/ccw/frontend/dist/assets/{GraphExplorerPage-DCV5ybKE.js.map → GraphExplorerPage-DIpqgvoU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HistoryPage-D0fYQZgc.js → HistoryPage-DzSvEAFe.js} +2 -2
- package/ccw/frontend/dist/assets/{HistoryPage-D0fYQZgc.js.map → HistoryPage-DzSvEAFe.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HookManagerPage-D2FuJfsM.js → HookManagerPage-C6LDhWrH.js} +2 -2
- package/ccw/frontend/dist/assets/{HookManagerPage-D2FuJfsM.js.map → HookManagerPage-C6LDhWrH.js.map} +1 -1
- package/ccw/frontend/dist/assets/{InstallationsPage-tjklillZ.js → InstallationsPage-D9ct9xFV.js} +2 -2
- package/ccw/frontend/dist/assets/{InstallationsPage-tjklillZ.js.map → InstallationsPage-D9ct9xFV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{IssueHubPage-E4JVrhO1.js → IssueHubPage-CXgDC8pS.js} +2 -2
- package/ccw/frontend/dist/assets/{IssueHubPage-E4JVrhO1.js.map → IssueHubPage-CXgDC8pS.js.map} +1 -1
- package/ccw/frontend/dist/assets/{LiteTasksPage-aJuRoyLt.js → LiteTasksPage-DMkauCwG.js} +2 -2
- package/ccw/frontend/dist/assets/{LiteTasksPage-aJuRoyLt.js.map → LiteTasksPage-DMkauCwG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{McpManagerPage-BJeuWJv1.js → McpManagerPage-DhLDydgc.js} +2 -2
- package/ccw/frontend/dist/assets/{McpManagerPage-BJeuWJv1.js.map → McpManagerPage-DhLDydgc.js.map} +1 -1
- package/ccw/frontend/dist/assets/{MemoryPage-BI4FAXhs.js → MemoryPage-Be3nhq40.js} +2 -2
- package/ccw/frontend/dist/assets/{MemoryPage-BI4FAXhs.js.map → MemoryPage-Be3nhq40.js.map} +1 -1
- package/ccw/frontend/dist/assets/{NotFoundPage-DD2svchp.js → NotFoundPage-0yGnCePd.js} +2 -2
- package/ccw/frontend/dist/assets/{NotFoundPage-DD2svchp.js.map → NotFoundPage-0yGnCePd.js.map} +1 -1
- package/ccw/frontend/dist/assets/{OrchestratorPage-FC__7yYa.js → OrchestratorPage-_SmXZcGl.js} +2 -2
- package/ccw/frontend/dist/assets/{OrchestratorPage-FC__7yYa.js.map → OrchestratorPage-_SmXZcGl.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-DBB_-FzV.js → ProjectOverviewPage-BeXTMsdo.js} +2 -2
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-DBB_-FzV.js.map → ProjectOverviewPage-BeXTMsdo.js.map} +1 -1
- package/ccw/frontend/dist/assets/{PromptHistoryPage-BwOAvCH8.js → PromptHistoryPage-DS6ycuAv.js} +2 -2
- package/ccw/frontend/dist/assets/{PromptHistoryPage-BwOAvCH8.js.map → PromptHistoryPage-DS6ycuAv.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ReviewSessionPage-Dd1-g_gp.js → ReviewSessionPage-BoqyjhPo.js} +2 -2
- package/ccw/frontend/dist/assets/{ReviewSessionPage-Dd1-g_gp.js.map → ReviewSessionPage-BoqyjhPo.js.map} +1 -1
- package/ccw/frontend/dist/assets/{RulesManagerPage-B3RGdsKD.js → RulesManagerPage-DMAwkKlc.js} +2 -2
- package/ccw/frontend/dist/assets/{RulesManagerPage-B3RGdsKD.js.map → RulesManagerPage-DMAwkKlc.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionDetailPage-DM-W5R8K.js → SessionDetailPage-BgJRHIF4.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionDetailPage-DM-W5R8K.js.map → SessionDetailPage-BgJRHIF4.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionsPage-BVz1KCc7.js → SessionsPage-DBPdWlji.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionsPage-BVz1KCc7.js.map → SessionsPage-DBPdWlji.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SettingsPage-ComW7EZS.js → SettingsPage-BY3QiJhm.js} +4 -4
- package/ccw/frontend/dist/assets/{SettingsPage-ComW7EZS.js.map → SettingsPage-BY3QiJhm.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SkillsManagerPage-CKom9XwV.js → SkillsManagerPage-DS101Adm.js} +2 -2
- package/ccw/frontend/dist/assets/{SkillsManagerPage-CKom9XwV.js.map → SkillsManagerPage-DS101Adm.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-DQz7WP2s.js → SpecsSettingsPage-BcsLu1qq.js} +2 -2
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-DQz7WP2s.js.map → SpecsSettingsPage-BcsLu1qq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Switch-BPMdND9H.js → Switch-BL9AmNPC.js} +2 -2
- package/ccw/frontend/dist/assets/{Switch-BPMdND9H.js.map → Switch-BL9AmNPC.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TabsNavigation-qqt70VYL.js → TabsNavigation-BUcjsLeE.js} +2 -2
- package/ccw/frontend/dist/assets/{TabsNavigation-qqt70VYL.js.map → TabsNavigation-BUcjsLeE.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TaskDrawer-BqK_qiHX.js → TaskDrawer-BNvfS6dq.js} +2 -2
- package/ccw/frontend/dist/assets/{TaskDrawer-BqK_qiHX.js.map → TaskDrawer-BNvfS6dq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TeamPage-u5_i0Rgh.js → TeamPage-CT-zNCrF.js} +2 -2
- package/ccw/frontend/dist/assets/{TeamPage-u5_i0Rgh.js.map → TeamPage-CT-zNCrF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-rUtC9e40.js → TerminalDashboardPage-DfZFGs8g.js} +2 -2
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-rUtC9e40.js.map → TerminalDashboardPage-DfZFGs8g.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-C3u8YNQF.js → archive-Cev1SaQq.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-C3u8YNQF.js.map → archive-Cev1SaQq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-restore-DfQ998g5.js → archive-restore-BIVluaHZ.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-restore-DfQ998g5.js.map → archive-restore-BIVluaHZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{arrow-right-BshJM9Po.js → arrow-right-DrivbS5j.js} +2 -2
- package/ccw/frontend/dist/assets/{arrow-right-BshJM9Po.js.map → arrow-right-DrivbS5j.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bookmark-plus-D03qJyOZ.js → bookmark-plus-DKyzL0Xg.js} +2 -2
- package/ccw/frontend/dist/assets/{bookmark-plus-D03qJyOZ.js.map → bookmark-plus-DKyzL0Xg.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bot-CyzWuwq0.js → bot-GBUkPAe3.js} +2 -2
- package/ccw/frontend/dist/assets/{bot-CyzWuwq0.js.map → bot-GBUkPAe3.js.map} +1 -1
- package/ccw/frontend/dist/assets/{braces-BPgtyjsG.js → braces-BWhm2c4g.js} +2 -2
- package/ccw/frontend/dist/assets/{braces-BPgtyjsG.js.map → braces-BWhm2c4g.js.map} +1 -1
- package/ccw/frontend/dist/assets/{circle-stop-Dix1AOmw.js → circle-stop-CBcZSKNp.js} +2 -2
- package/ccw/frontend/dist/assets/{circle-stop-Dix1AOmw.js.map → circle-stop-CBcZSKNp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{cpu-CCQ4Q0Zh.js → cpu-CzNmuTZD.js} +2 -2
- package/ccw/frontend/dist/assets/{cpu-CCQ4Q0Zh.js.map → cpu-CzNmuTZD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ellipsis-vertical-BpTysg-Y.js → ellipsis-vertical-BoIyQKaI.js} +2 -2
- package/ccw/frontend/dist/assets/{ellipsis-vertical-BpTysg-Y.js.map → ellipsis-vertical-BoIyQKaI.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-DGY1rAZs.js → eye-BqxyhxQq.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-DGY1rAZs.js.map → eye-BqxyhxQq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-off-D8t3JfWG.js → eye-off-D9dTZP1A.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-off-D8t3JfWG.js.map → eye-off-D9dTZP1A.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-json-BAdJb0n8.js → file-json-CLYEUI6e.js} +2 -2
- package/ccw/frontend/dist/assets/{file-json-BAdJb0n8.js.map → file-json-CLYEUI6e.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-text-DrJFiOUB.js → file-text-D5j9C5XC.js} +2 -2
- package/ccw/frontend/dist/assets/{file-text-DrJFiOUB.js.map → file-text-D5j9C5XC.js.map} +1 -1
- package/ccw/frontend/dist/assets/{filter-CKqzYbz7.js → filter-CEUK5jsA.js} +2 -2
- package/ccw/frontend/dist/assets/{filter-CKqzYbz7.js.map → filter-CEUK5jsA.js.map} +1 -1
- package/ccw/frontend/dist/assets/{folder-CV8511y9.js → folder-BEOY8txM.js} +2 -2
- package/ccw/frontend/dist/assets/{folder-CV8511y9.js.map → folder-BEOY8txM.js.map} +1 -1
- package/ccw/frontend/dist/assets/{gauge-XKvmu_uU.js → gauge-CbumHmVn.js} +2 -2
- package/ccw/frontend/dist/assets/{gauge-XKvmu_uU.js.map → gauge-CbumHmVn.js.map} +1 -1
- package/ccw/frontend/dist/assets/{globe-C56cDUzX.js → globe-D8_IB9gV.js} +2 -2
- package/ccw/frontend/dist/assets/{globe-C56cDUzX.js.map → globe-D8_IB9gV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{grid-3x3-Bya-suFW.js → grid-3x3-BpzWmYF5.js} +2 -2
- package/ccw/frontend/dist/assets/{grid-3x3-Bya-suFW.js.map → grid-3x3-BpzWmYF5.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hard-drive-CmuTZpsB.js → hard-drive-QIHpGln7.js} +2 -2
- package/ccw/frontend/dist/assets/{hard-drive-CmuTZpsB.js.map → hard-drive-QIHpGln7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hash-CRPT_tJQ.js → hash-CP0YRHVs.js} +2 -2
- package/ccw/frontend/dist/assets/{hash-CRPT_tJQ.js.map → hash-CP0YRHVs.js.map} +1 -1
- package/ccw/frontend/dist/assets/{history-C1pJZQCL.js → history-hOjgVKax.js} +2 -2
- package/ccw/frontend/dist/assets/{history-C1pJZQCL.js.map → history-hOjgVKax.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-Dmt9OiEf.js → index-B_ysvdnP.js} +2 -2
- package/ccw/frontend/dist/assets/{index-Dmt9OiEf.js.map → index-B_ysvdnP.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-dWT2M6Ef.js → index-C5Oqx2xI.js} +3 -3
- package/ccw/frontend/dist/assets/{index-dWT2M6Ef.js.map → index-C5Oqx2xI.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-CI8-rBff.js → index-CJi0bWL-.js} +2 -2
- package/ccw/frontend/dist/assets/{index-CI8-rBff.js.map → index-CJi0bWL-.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-anSMmEF8.js → index-CdQpo1x0.js} +2 -2
- package/ccw/frontend/dist/assets/{index-anSMmEF8.js.map → index-CdQpo1x0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{layout-grid-TSO0BFQE.js → layout-grid-C38fQyLs.js} +2 -2
- package/ccw/frontend/dist/assets/{layout-grid-TSO0BFQE.js.map → layout-grid-C38fQyLs.js.map} +1 -1
- package/ccw/frontend/dist/assets/{lightbulb-Caj6fIQD.js → lightbulb-CClbCUzu.js} +2 -2
- package/ccw/frontend/dist/assets/{lightbulb-Caj6fIQD.js.map → lightbulb-CClbCUzu.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-2-DE9lMxa-.js → link-2-CB-LKbI0.js} +2 -2
- package/ccw/frontend/dist/assets/{link-2-DE9lMxa-.js.map → link-2-CB-LKbI0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-BZtPgLW0.js → link-BK6SBzHS.js} +2 -2
- package/ccw/frontend/dist/assets/{link-BZtPgLW0.js.map → link-BK6SBzHS.js.map} +1 -1
- package/ccw/frontend/dist/assets/{list-DubWyY-U.js → list-BME_WOA_.js} +2 -2
- package/ccw/frontend/dist/assets/{list-DubWyY-U.js.map → list-BME_WOA_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{map-pin-DwN_48AF.js → map-pin-ADsnCyjJ.js} +2 -2
- package/ccw/frontend/dist/assets/{map-pin-DwN_48AF.js.map → map-pin-ADsnCyjJ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{messages-square-bjxvaiM9.js → messages-square-CLflB1Cq.js} +2 -2
- package/ccw/frontend/dist/assets/{messages-square-bjxvaiM9.js.map → messages-square-CLflB1Cq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{minimize-2-CGfBKD_V.js → minimize-2-B3ZNzfGr.js} +2 -2
- package/ccw/frontend/dist/assets/{minimize-2-CGfBKD_V.js.map → minimize-2-B3ZNzfGr.js.map} +1 -1
- package/ccw/frontend/dist/assets/{package-nzWY6ilt.js → package-CByPhtMG.js} +2 -2
- package/ccw/frontend/dist/assets/{package-nzWY6ilt.js.map → package-CByPhtMG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{plug-CiLce49C.js → plug-BggRzPX9.js} +2 -2
- package/ccw/frontend/dist/assets/{plug-CiLce49C.js.map → plug-BggRzPX9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{power-CFLmB-U9.js → power-CWuxQSJK.js} +2 -2
- package/ccw/frontend/dist/assets/{power-CFLmB-U9.js.map → power-CWuxQSJK.js.map} +1 -1
- package/ccw/frontend/dist/assets/{save-DuO6OF0C.js → save-BdJ6EX4Q.js} +2 -2
- package/ccw/frontend/dist/assets/{save-DuO6OF0C.js.map → save-BdJ6EX4Q.js.map} +1 -1
- package/ccw/frontend/dist/assets/{send-CZk9p0mM.js → send-Ce9wuY7Q.js} +2 -2
- package/ccw/frontend/dist/assets/{send-CZk9p0mM.js.map → send-Ce9wuY7Q.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-check-big-BY_1YQQg.js → square-check-big-D6jItkfw.js} +2 -2
- package/ccw/frontend/dist/assets/{square-check-big-BY_1YQQg.js.map → square-check-big-D6jItkfw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-pen-CnZgm6g-.js → square-pen-Byxq21zp.js} +2 -2
- package/ccw/frontend/dist/assets/{square-pen-CnZgm6g-.js.map → square-pen-Byxq21zp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{star-Cn1F0qy7.js → star-Codj9dvK.js} +2 -2
- package/ccw/frontend/dist/assets/{star-Cn1F0qy7.js.map → star-Codj9dvK.js.map} +1 -1
- package/ccw/frontend/dist/assets/{style-Dxs1iXCV.js → style-4bYpUGcc.js} +2 -2
- package/ccw/frontend/dist/assets/{style-Dxs1iXCV.js.map → style-4bYpUGcc.js.map} +1 -1
- package/ccw/frontend/dist/assets/{target-Bz1fLRKH.js → target-DKBoDNCn.js} +2 -2
- package/ccw/frontend/dist/assets/{target-Bz1fLRKH.js.map → target-DKBoDNCn.js.map} +1 -1
- package/ccw/frontend/dist/assets/{test-tube-C6qCYlDr.js → test-tube-DTqZcBtA.js} +2 -2
- package/ccw/frontend/dist/assets/{test-tube-C6qCYlDr.js.map → test-tube-DTqZcBtA.js.map} +1 -1
- package/ccw/frontend/dist/assets/{upload-C71kd4Qs.js → upload-DlUl-e6b.js} +2 -2
- package/ccw/frontend/dist/assets/{upload-C71kd4Qs.js.map → upload-DlUl-e6b.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useApiSettings-CqP2BAJ7.js → useApiSettings-D4zhKKT-.js} +2 -2
- package/ccw/frontend/dist/assets/{useApiSettings-CqP2BAJ7.js.map → useApiSettings-D4zhKKT-.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCli-PCoPoVeM.js → useCli-D-qDwsAH.js} +2 -2
- package/ccw/frontend/dist/assets/{useCli-PCoPoVeM.js.map → useCli-D-qDwsAH.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCommands-3OfPQPw4.js → useCommands-B0sidbbW.js} +2 -2
- package/ccw/frontend/dist/assets/{useCommands-3OfPQPw4.js.map → useCommands-B0sidbbW.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useDebounce-bXiFhQx9.js → useDebounce-eTtbKevt.js} +2 -2
- package/ccw/frontend/dist/assets/{useDebounce-bXiFhQx9.js.map → useDebounce-eTtbKevt.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useFileExplorer-DEyUm46_.js → useFileExplorer-MGSK0h33.js} +2 -2
- package/ccw/frontend/dist/assets/{useFileExplorer-DEyUm46_.js.map → useFileExplorer-MGSK0h33.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useLocale-sXTrdxcJ.js → useLocale-DDNxU7pJ.js} +2 -2
- package/ccw/frontend/dist/assets/{useLocale-sXTrdxcJ.js.map → useLocale-DDNxU7pJ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSkills-D0W0kXYm.js → useSkills-CZCRBtMY.js} +3 -3
- package/ccw/frontend/dist/assets/{useSkills-D0W0kXYm.js.map → useSkills-CZCRBtMY.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSystemSettings-DZ-8lZsG.js → useSystemSettings-DfQEFXSD.js} +2 -2
- package/ccw/frontend/dist/assets/{useSystemSettings-DZ-8lZsG.js.map → useSystemSettings-DfQEFXSD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{wand-sparkles-83GmAYuw.js → wand-sparkles-DCLvfgl1.js} +2 -2
- package/ccw/frontend/dist/assets/{wand-sparkles-83GmAYuw.js.map → wand-sparkles-DCLvfgl1.js.map} +1 -1
- package/ccw/frontend/dist/index.html +1 -1
- package/package.json +1 -1
- package/.codex/skills/team-arch-opt/agents/completion-handler.md +0 -138
- package/.codex/skills/team-arch-opt/agents/fix-cycle-handler.md +0 -146
- package/.codex/skills/team-arch-opt/agents/plan-reviewer.md +0 -150
- package/.codex/skills/team-arch-opt/instructions/agent-instruction.md +0 -114
- package/.codex/skills/team-arch-opt/schemas/tasks-schema.md +0 -174
- package/.codex/skills/team-brainstorm/agents/gc-controller.md +0 -122
- package/.codex/skills/team-brainstorm/agents/topic-clarifier.md +0 -126
- package/.codex/skills/team-brainstorm/instructions/agent-instruction.md +0 -105
- package/.codex/skills/team-brainstorm/schemas/tasks-schema.md +0 -171
- package/.codex/skills/team-coordinate/agents/completion-handler.md +0 -127
- package/.codex/skills/team-coordinate/agents/plan-reviewer.md +0 -145
- package/.codex/skills/team-coordinate/instructions/agent-instruction.md +0 -184
- package/.codex/skills/team-coordinate/schemas/tasks-schema.md +0 -165
- package/.codex/skills/team-designer/agents/requirement-clarifier.md +0 -247
- package/.codex/skills/team-designer/agents/validation-reporter.md +0 -186
- package/.codex/skills/team-designer/instructions/agent-instruction.md +0 -163
- package/.codex/skills/team-designer/schemas/tasks-schema.md +0 -180
- package/.codex/skills/team-executor/instructions/agent-instruction.md +0 -62
- package/.codex/skills/team-executor/schemas/tasks-schema.md +0 -141
- package/.codex/skills/team-frontend/agents/completion-handler.md +0 -131
- package/.codex/skills/team-frontend/agents/qa-gate-reviewer.md +0 -153
- package/.codex/skills/team-frontend/instructions/agent-instruction.md +0 -197
- package/.codex/skills/team-frontend/schemas/tasks-schema.md +0 -188
- package/.codex/skills/team-frontend-debug/agents/completion-handler.md +0 -142
- package/.codex/skills/team-frontend-debug/agents/conditional-skip-gate.md +0 -130
- package/.codex/skills/team-frontend-debug/agents/iteration-handler.md +0 -120
- package/.codex/skills/team-frontend-debug/instructions/agent-instruction.md +0 -272
- package/.codex/skills/team-frontend-debug/schemas/tasks-schema.md +0 -198
- package/.codex/skills/team-issue/agents/reviewer.md +0 -204
- package/.codex/skills/team-issue/instructions/agent-instruction.md +0 -198
- package/.codex/skills/team-issue/schemas/tasks-schema.md +0 -198
- package/.codex/skills/team-iterdev/agents/gc-controller.md +0 -193
- package/.codex/skills/team-iterdev/agents/task-analyzer.md +0 -206
- package/.codex/skills/team-iterdev/instructions/agent-instruction.md +0 -118
- package/.codex/skills/team-iterdev/schemas/tasks-schema.md +0 -174
- package/.codex/skills/team-lifecycle/SKILL.md +0 -906
- package/.codex/skills/team-lifecycle/agents/analyst.md +0 -424
- package/.codex/skills/team-lifecycle/agents/architect.md +0 -274
- package/.codex/skills/team-lifecycle/agents/discuss-agent.md +0 -422
- package/.codex/skills/team-lifecycle/agents/executor.md +0 -423
- package/.codex/skills/team-lifecycle/agents/explore-agent.md +0 -471
- package/.codex/skills/team-lifecycle/agents/fe-developer.md +0 -239
- package/.codex/skills/team-lifecycle/agents/fe-qa.md +0 -357
- package/.codex/skills/team-lifecycle/agents/planner.md +0 -437
- package/.codex/skills/team-lifecycle/agents/reviewer.md +0 -483
- package/.codex/skills/team-lifecycle/agents/tester.md +0 -423
- package/.codex/skills/team-lifecycle/agents/writer.md +0 -502
- package/.codex/skills/team-lifecycle/phases/01-requirement-clarification.md +0 -209
- package/.codex/skills/team-lifecycle/phases/02-team-initialization.md +0 -263
- package/.codex/skills/team-lifecycle/phases/03-task-chain-creation.md +0 -251
- package/.codex/skills/team-lifecycle/phases/04-pipeline-coordination.md +0 -831
- package/.codex/skills/team-lifecycle/phases/05-completion-report.md +0 -309
- package/.codex/skills/team-lifecycle/specs/document-standards.md +0 -192
- package/.codex/skills/team-lifecycle/specs/quality-gates.md +0 -207
- package/.codex/skills/team-lifecycle-v4/agents/quality-gate.md +0 -165
- package/.codex/skills/team-lifecycle-v4/agents/requirement-clarifier.md +0 -163
- package/.codex/skills/team-lifecycle-v4/agents/supervisor.md +0 -182
- package/.codex/skills/team-perf-opt/agents/completion-handler.md +0 -141
- package/.codex/skills/team-perf-opt/agents/fix-cycle-handler.md +0 -156
- package/.codex/skills/team-perf-opt/agents/plan-reviewer.md +0 -150
- package/.codex/skills/team-perf-opt/instructions/agent-instruction.md +0 -122
- package/.codex/skills/team-perf-opt/schemas/tasks-schema.md +0 -174
- package/.codex/skills/team-planex/instructions/agent-instruction.md +0 -301
- package/.codex/skills/team-planex/schemas/tasks-schema.md +0 -198
- package/.codex/skills/team-planex-v2/SKILL.md +0 -652
- package/.codex/skills/team-planex-v2/instructions/agent-instruction.md +0 -193
- package/.codex/skills/team-planex-v2/schemas/tasks-schema.md +0 -206
- package/.codex/skills/team-quality-assurance/agents/executor.md +0 -192
- package/.codex/skills/team-quality-assurance/agents/gc-loop-handler.md +0 -163
- package/.codex/skills/team-quality-assurance/instructions/agent-instruction.md +0 -185
- package/.codex/skills/team-quality-assurance/schemas/tasks-schema.md +0 -190
- package/.codex/skills/team-review/agents/fixer.md +0 -360
- package/.codex/skills/team-review/instructions/agent-instruction.md +0 -102
- package/.codex/skills/team-review/schemas/tasks-schema.md +0 -143
- package/.codex/skills/team-roadmap-dev/agents/roadmap-discusser.md +0 -176
- package/.codex/skills/team-roadmap-dev/agents/roadmap-planner.md +0 -194
- package/.codex/skills/team-roadmap-dev/agents/roadmap-verifier.md +0 -221
- package/.codex/skills/team-roadmap-dev/instructions/executor-instruction.md +0 -55
- package/.codex/skills/team-roadmap-dev/schemas/tasks-schema.md +0 -144
- package/.codex/skills/team-tech-debt/agents/gc-loop-manager.md +0 -130
- package/.codex/skills/team-tech-debt/agents/plan-approver.md +0 -151
- package/.codex/skills/team-tech-debt/instructions/agent-instruction.md +0 -390
- package/.codex/skills/team-tech-debt/schemas/tasks-schema.md +0 -196
- package/.codex/skills/team-testing/agents/executor.md +0 -195
- package/.codex/skills/team-testing/agents/gc-loop-handler.md +0 -155
- package/.codex/skills/team-testing/instructions/agent-instruction.md +0 -142
- package/.codex/skills/team-testing/schemas/tasks-schema.md +0 -172
- package/.codex/skills/team-uidesign/agents/completion-handler.md +0 -177
- package/.codex/skills/team-uidesign/agents/gc-loop-handler.md +0 -162
- package/.codex/skills/team-uidesign/instructions/agent-instruction.md +0 -509
- package/.codex/skills/team-uidesign/schemas/tasks-schema.md +0 -187
- package/.codex/skills/team-ultra-analyze/agents/discussion-feedback.md +0 -155
- package/.codex/skills/team-ultra-analyze/agents/topic-analyzer.md +0 -153
- package/.codex/skills/team-ultra-analyze/instructions/agent-instruction.md +0 -169
- package/.codex/skills/team-ultra-analyze/schemas/tasks-schema.md +0 -180
- package/.codex/skills/team-ux-improve/agents/ux-designer.md +0 -136
- package/.codex/skills/team-ux-improve/agents/ux-explorer.md +0 -158
- package/.codex/skills/team-ux-improve/agents/ux-tester.md +0 -174
- package/.codex/skills/team-ux-improve/instructions/ux-worker-instruction.md +0 -55
- package/.codex/skills/team-ux-improve/schemas/tasks-schema.md +0 -87
- /package/.codex/skills/{team-lifecycle/templates/architecture-doc.md → team-lifecycle-v4/templates/architecture.md} +0 -0
- /package/.codex/skills/{team-lifecycle/templates/epics-template.md → team-lifecycle-v4/templates/epics.md} +0 -0
- /package/.codex/skills/{team-lifecycle → team-lifecycle-v4}/templates/product-brief.md +0 -0
- /package/.codex/skills/{team-lifecycle/templates/requirements-prd.md → team-lifecycle-v4/templates/requirements.md} +0 -0
|
@@ -1,821 +1,191 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: team-frontend-debug
|
|
3
|
-
description: Frontend debugging team using Chrome DevTools MCP. Dual-mode
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
|
45
|
-
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
|
90
|
-
|
|
91
|
-
|
|
|
92
|
-
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
|
97
|
-
|
|
98
|
-
|
|
|
99
|
-
|
|
|
100
|
-
|
|
|
101
|
-
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
|
141
|
-
|
|
142
|
-
| `
|
|
143
|
-
| `
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
|
183
|
-
|
|
184
|
-
|
|
|
185
|
-
|
|
|
186
|
-
|
|
|
187
|
-
|
|
|
188
|
-
|
|
|
189
|
-
|
|
|
190
|
-
|
|
|
191
|
-
|
|
|
192
|
-
| `mcp__chrome-devtools__performance_stop_trace` | Stop and analyze trace |
|
|
193
|
-
| `mcp__chrome-devtools__click` | Simulate user click |
|
|
194
|
-
| `mcp__chrome-devtools__fill` | Fill form inputs |
|
|
195
|
-
| `mcp__chrome-devtools__hover` | Hover over elements |
|
|
196
|
-
| `mcp__chrome-devtools__evaluate_script` | Execute JavaScript in page |
|
|
197
|
-
| `mcp__chrome-devtools__wait_for` | Wait for element/text |
|
|
198
|
-
| `mcp__chrome-devtools__list_pages` | List open browser tabs |
|
|
199
|
-
| `mcp__chrome-devtools__select_page` | Switch active tab |
|
|
200
|
-
| `mcp__chrome-devtools__press_key` | Press keyboard keys |
|
|
201
|
-
|
|
202
|
-
---
|
|
203
|
-
|
|
204
|
-
## Output Artifacts
|
|
205
|
-
|
|
206
|
-
| File | Purpose | Lifecycle |
|
|
207
|
-
|------|---------|-----------|
|
|
208
|
-
| `tasks.csv` | Master state -- all tasks with status/findings | Updated after each wave |
|
|
209
|
-
| `wave-{N}.csv` | Per-wave input (temporary, csv-wave tasks only) | Created before wave, deleted after |
|
|
210
|
-
| `results.csv` | Final export of all task results | Created in Phase 4 |
|
|
211
|
-
| `discoveries.ndjson` | Shared exploration board (all agents, both modes) | Append-only, carries across waves |
|
|
212
|
-
| `context.md` | Human-readable execution report | Created in Phase 4 |
|
|
213
|
-
| `task-analysis.json` | Phase 0/1 output: mode, features/steps, dimensions | Created in Phase 1 |
|
|
214
|
-
| `role-instructions/` | Per-role instruction templates for CSV agents | Created in Phase 1 |
|
|
215
|
-
| `artifacts/` | All deliverables: test reports, RCA reports, fix changes, verification reports | Created by agents |
|
|
216
|
-
| `evidence/` | Screenshots, snapshots, network logs, performance traces | Created by tester/reproducer/verifier |
|
|
217
|
-
| `interactive/{id}-result.json` | Results from interactive tasks | Created per interactive task |
|
|
218
|
-
|
|
219
|
-
---
|
|
220
|
-
|
|
221
|
-
## Session Structure
|
|
222
|
-
|
|
223
|
-
```
|
|
224
|
-
.workflow/.csv-wave/{session-id}/
|
|
225
|
-
+-- tasks.csv # Master state (all tasks, both modes)
|
|
226
|
-
+-- results.csv # Final results export
|
|
227
|
-
+-- discoveries.ndjson # Shared discovery board (all agents)
|
|
228
|
-
+-- context.md # Human-readable report
|
|
229
|
-
+-- task-analysis.json # Phase 1 analysis output
|
|
230
|
-
+-- wave-{N}.csv # Temporary per-wave input (csv-wave only)
|
|
231
|
-
+-- role-instructions/ # Per-role instruction templates
|
|
232
|
-
| +-- tester.md # (test-pipeline)
|
|
233
|
-
| +-- reproducer.md # (debug-pipeline)
|
|
234
|
-
| +-- analyzer.md
|
|
235
|
-
| +-- fixer.md
|
|
236
|
-
| +-- verifier.md
|
|
237
|
-
+-- artifacts/ # All deliverables
|
|
238
|
-
| +-- TEST-001-report.md
|
|
239
|
-
| +-- TEST-001-issues.json
|
|
240
|
-
| +-- ANALYZE-001-rca.md
|
|
241
|
-
| +-- FIX-001-changes.md
|
|
242
|
-
| +-- VERIFY-001-report.md
|
|
243
|
-
+-- evidence/ # Browser evidence
|
|
244
|
-
| +-- F-001-login-before.png
|
|
245
|
-
| +-- F-001-login-after.png
|
|
246
|
-
| +-- before-screenshot.png
|
|
247
|
-
| +-- after-screenshot.png
|
|
248
|
-
| +-- before-snapshot.txt
|
|
249
|
-
| +-- after-snapshot.txt
|
|
250
|
-
| +-- evidence-summary.json
|
|
251
|
-
+-- interactive/ # Interactive task artifacts
|
|
252
|
-
| +-- {id}-result.json
|
|
253
|
-
+-- wisdom/ # Cross-task knowledge
|
|
254
|
-
+-- learnings.md
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
---
|
|
258
|
-
|
|
259
|
-
## Implementation
|
|
260
|
-
|
|
261
|
-
### Session Initialization
|
|
262
|
-
|
|
263
|
-
```javascript
|
|
264
|
-
const getUtc8ISOString = () => new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString()
|
|
265
|
-
|
|
266
|
-
const AUTO_YES = $ARGUMENTS.includes('--yes') || $ARGUMENTS.includes('-y')
|
|
267
|
-
const continueMode = $ARGUMENTS.includes('--continue')
|
|
268
|
-
const concurrencyMatch = $ARGUMENTS.match(/(?:--concurrency|-c)\s+(\d+)/)
|
|
269
|
-
const maxConcurrency = concurrencyMatch ? parseInt(concurrencyMatch[1]) : 2
|
|
270
|
-
|
|
271
|
-
const requirement = $ARGUMENTS
|
|
272
|
-
.replace(/--yes|-y|--continue|--concurrency\s+\d+|-c\s+\d+/g, '')
|
|
273
|
-
.trim()
|
|
274
|
-
|
|
275
|
-
const slug = requirement.toLowerCase()
|
|
276
|
-
.replace(/[^a-z0-9\u4e00-\u9fa5]+/g, '-')
|
|
277
|
-
.substring(0, 40)
|
|
278
|
-
const dateStr = getUtc8ISOString().substring(0, 10).replace(/-/g, '')
|
|
279
|
-
const sessionId = `tfd-${slug}-${dateStr}`
|
|
280
|
-
const sessionFolder = `.workflow/.csv-wave/${sessionId}`
|
|
281
|
-
|
|
282
|
-
Bash(`mkdir -p ${sessionFolder}/artifacts ${sessionFolder}/evidence ${sessionFolder}/role-instructions ${sessionFolder}/interactive ${sessionFolder}/wisdom`)
|
|
283
|
-
|
|
284
|
-
Write(`${sessionFolder}/discoveries.ndjson`, '')
|
|
285
|
-
Write(`${sessionFolder}/wisdom/learnings.md`, '# Debug Learnings\n')
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
---
|
|
289
|
-
|
|
290
|
-
### Phase 0: Pre-Wave Interactive (Input Analysis)
|
|
291
|
-
|
|
292
|
-
**Objective**: Parse user input, detect mode (test vs debug), extract parameters.
|
|
293
|
-
|
|
294
|
-
**Workflow**:
|
|
295
|
-
|
|
296
|
-
1. **Parse user input** from $ARGUMENTS
|
|
297
|
-
|
|
298
|
-
2. **Check for existing sessions** (continue mode):
|
|
299
|
-
- Scan `.workflow/.csv-wave/tfd-*/tasks.csv` for sessions with pending tasks
|
|
300
|
-
- If `--continue`: resume the specified or most recent session, skip to Phase 2
|
|
301
|
-
|
|
302
|
-
3. **Detect mode**:
|
|
303
|
-
|
|
304
|
-
| Input Pattern | Mode |
|
|
305
|
-
|---------------|------|
|
|
306
|
-
| Contains: feature, test, list, check, verify | `test-pipeline` |
|
|
307
|
-
| Contains: bug, error, crash, broken, not working | `debug-pipeline` |
|
|
308
|
-
| Ambiguous | request_user_input to clarify |
|
|
309
|
-
|
|
310
|
-
4. **Extract parameters by mode**:
|
|
311
|
-
|
|
312
|
-
**Test Mode**:
|
|
313
|
-
- `base_url`: URL in text or request_user_input
|
|
314
|
-
- `features`: Parse feature list (bullet points, numbered list, free text)
|
|
315
|
-
- Generate structured feature items with id, name, url
|
|
316
|
-
|
|
317
|
-
**Debug Mode**:
|
|
318
|
-
- `bug_description`: Bug description text
|
|
319
|
-
- `target_url`: URL in text or request_user_input
|
|
320
|
-
- `reproduction_steps`: Steps in text or request_user_input
|
|
321
|
-
- `evidence_plan`: Detect dimensions from keywords (UI, network, console, performance)
|
|
322
|
-
|
|
323
|
-
5. **Dimension Detection** (debug mode):
|
|
324
|
-
|
|
325
|
-
| Keywords | Dimension |
|
|
326
|
-
|----------|-----------|
|
|
327
|
-
| render, style, display, layout, CSS | screenshot, snapshot |
|
|
328
|
-
| request, API, network, timeout | network |
|
|
329
|
-
| error, crash, exception | console |
|
|
330
|
-
| slow, performance, lag, memory | performance |
|
|
331
|
-
| interaction, click, input, form | screenshot, console |
|
|
332
|
-
|
|
333
|
-
**Success Criteria**:
|
|
334
|
-
- Mode determined (test-pipeline or debug-pipeline)
|
|
335
|
-
- Base URL and features/steps extracted
|
|
336
|
-
- Evidence dimensions identified
|
|
337
|
-
|
|
338
|
-
---
|
|
339
|
-
|
|
340
|
-
### Phase 1: Requirement -> CSV + Classification
|
|
341
|
-
|
|
342
|
-
**Objective**: Build task dependency graph, generate tasks.csv and per-role instruction templates.
|
|
343
|
-
|
|
344
|
-
**Decomposition Rules**:
|
|
345
|
-
|
|
346
|
-
1. **Pipeline Definition**:
|
|
347
|
-
|
|
348
|
-
**Test Pipeline** (4 tasks, conditional):
|
|
349
|
-
```
|
|
350
|
-
TEST-001 -> [issues?] -> ANALYZE-001 -> FIX-001 -> VERIFY-001
|
|
351
|
-
|
|
|
352
|
-
+-- no issues -> Pipeline Complete (skip downstream)
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
**Debug Pipeline** (4 tasks, linear with iteration):
|
|
356
|
-
```
|
|
357
|
-
REPRODUCE-001 -> ANALYZE-001 -> FIX-001 -> VERIFY-001
|
|
358
|
-
^ |
|
|
359
|
-
| (if fail) |
|
|
360
|
-
+--- REPRODUCE-002 <-----+
|
|
361
|
-
```
|
|
362
|
-
|
|
363
|
-
2. **Task Description Template**: Every task uses PURPOSE/TASK/CONTEXT/EXPECTED/CONSTRAINTS format with session path, base URL, and upstream artifact references
|
|
364
|
-
|
|
365
|
-
3. **Role Instruction Generation**: Write per-role instruction templates to `role-instructions/{role}.md` using the base instruction template customized for each role
|
|
366
|
-
|
|
367
|
-
**Classification Rules**:
|
|
368
|
-
|
|
369
|
-
| Task Property | exec_mode |
|
|
370
|
-
|---------------|-----------|
|
|
371
|
-
| Feature testing (tester with inner loop) | `csv-wave` |
|
|
372
|
-
| Bug reproduction (single pass) | `csv-wave` |
|
|
373
|
-
| Root cause analysis (single pass) | `csv-wave` |
|
|
374
|
-
| Code fix (may need multiple passes) | `csv-wave` |
|
|
375
|
-
| Fix verification (single pass) | `csv-wave` |
|
|
376
|
-
| All standard pipeline tasks | `csv-wave` |
|
|
377
|
-
|
|
378
|
-
**Wave Computation**: Kahn's BFS topological sort with depth tracking.
|
|
379
|
-
|
|
380
|
-
```javascript
|
|
381
|
-
// Generate per-role instruction templates
|
|
382
|
-
const roles = pipelineMode === 'test-pipeline'
|
|
383
|
-
? ['tester', 'analyzer', 'fixer', 'verifier']
|
|
384
|
-
: ['reproducer', 'analyzer', 'fixer', 'verifier']
|
|
385
|
-
|
|
386
|
-
for (const role of roles) {
|
|
387
|
-
const instruction = generateRoleInstruction(role, sessionFolder, pipelineMode)
|
|
388
|
-
Write(`${sessionFolder}/role-instructions/${role}.md`, instruction)
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
const tasks = buildTasksCsv(pipelineMode, requirement, sessionFolder, baseUrl, evidencePlan)
|
|
392
|
-
Write(`${sessionFolder}/tasks.csv`, toCsv(tasks))
|
|
393
|
-
Write(`${sessionFolder}/task-analysis.json`, JSON.stringify(analysisResult, null, 2))
|
|
394
|
-
```
|
|
395
|
-
|
|
396
|
-
**User Validation**: Display task breakdown (skip if AUTO_YES).
|
|
397
|
-
|
|
398
|
-
**Success Criteria**:
|
|
399
|
-
- tasks.csv created with valid schema and wave assignments
|
|
400
|
-
- Role instruction templates generated
|
|
401
|
-
- task-analysis.json written
|
|
402
|
-
- No circular dependencies
|
|
403
|
-
|
|
404
|
-
---
|
|
405
|
-
|
|
406
|
-
### Phase 2: Wave Execution Engine (Extended)
|
|
407
|
-
|
|
408
|
-
**Objective**: Execute tasks wave-by-wave with conditional skip, iteration loops, and re-fix cycles.
|
|
409
|
-
|
|
410
|
-
```javascript
|
|
411
|
-
const masterCsv = Read(`${sessionFolder}/tasks.csv`)
|
|
412
|
-
let tasks = parseCsv(masterCsv)
|
|
413
|
-
let maxWave = Math.max(...tasks.map(t => t.wave))
|
|
414
|
-
let fixRound = 0
|
|
415
|
-
const MAX_FIX_ROUNDS = 3
|
|
416
|
-
const MAX_REPRODUCE_ROUNDS = 2
|
|
417
|
-
|
|
418
|
-
for (let wave = 1; wave <= maxWave; wave++) {
|
|
419
|
-
console.log(`\nWave ${wave}/${maxWave}`)
|
|
420
|
-
|
|
421
|
-
const waveTasks = tasks.filter(t => t.wave === wave && t.status === 'pending')
|
|
422
|
-
const csvTasks = waveTasks.filter(t => t.exec_mode === 'csv-wave')
|
|
423
|
-
const interactiveTasks = waveTasks.filter(t => t.exec_mode === 'interactive')
|
|
424
|
-
|
|
425
|
-
// Check dependencies -- skip tasks whose deps failed
|
|
426
|
-
for (const task of waveTasks) {
|
|
427
|
-
const depIds = (task.deps || '').split(';').filter(Boolean)
|
|
428
|
-
const depStatuses = depIds.map(id => tasks.find(t => t.id === id)?.status)
|
|
429
|
-
if (depStatuses.some(s => s === 'failed' || s === 'skipped')) {
|
|
430
|
-
task.status = 'skipped'
|
|
431
|
-
task.error = `Dependency failed: ${depIds.filter((id, i) =>
|
|
432
|
-
['failed','skipped'].includes(depStatuses[i])).join(', ')}`
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
// Execute pre-wave interactive tasks (if any)
|
|
437
|
-
for (const task of interactiveTasks.filter(t => t.status === 'pending')) {
|
|
438
|
-
// Determine agent file based on task type
|
|
439
|
-
const agentFile = task.id.includes('skip') ? 'agents/conditional-skip-gate.md'
|
|
440
|
-
: task.id.includes('iter') ? 'agents/iteration-handler.md'
|
|
441
|
-
: 'agents/completion-handler.md'
|
|
442
|
-
|
|
443
|
-
Read(agentFile)
|
|
444
|
-
const agent = spawn_agent({
|
|
445
|
-
message: `## TASK ASSIGNMENT\n\n### MANDATORY FIRST STEPS\n1. Read: ${agentFile}\n2. Read: ${sessionFolder}/discoveries.ndjson\n\nGoal: ${task.description}\nSession: ${sessionFolder}\n\n### Previous Context\n${buildPrevContext(task, tasks)}`
|
|
446
|
-
})
|
|
447
|
-
const result = wait({ ids: [agent], timeout_ms: 600000 })
|
|
448
|
-
if (result.timed_out) {
|
|
449
|
-
send_input({ id: agent, message: "Please finalize and output current findings." })
|
|
450
|
-
wait({ ids: [agent], timeout_ms: 120000 })
|
|
451
|
-
}
|
|
452
|
-
Write(`${sessionFolder}/interactive/${task.id}-result.json`, JSON.stringify({
|
|
453
|
-
task_id: task.id, status: "completed", findings: parseFindings(result),
|
|
454
|
-
timestamp: getUtc8ISOString()
|
|
455
|
-
}))
|
|
456
|
-
close_agent({ id: agent })
|
|
457
|
-
task.status = 'completed'
|
|
458
|
-
task.findings = parseFindings(result)
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
// Build prev_context for csv-wave tasks
|
|
462
|
-
const pendingCsvTasks = csvTasks.filter(t => t.status === 'pending')
|
|
463
|
-
for (const task of pendingCsvTasks) {
|
|
464
|
-
task.prev_context = buildPrevContext(task, tasks)
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
if (pendingCsvTasks.length > 0) {
|
|
468
|
-
Write(`${sessionFolder}/wave-${wave}.csv`, toCsv(pendingCsvTasks))
|
|
469
|
-
|
|
470
|
-
const waveInstruction = buildWaveInstruction(pendingCsvTasks, sessionFolder, wave)
|
|
471
|
-
|
|
472
|
-
spawn_agents_on_csv({
|
|
473
|
-
csv_path: `${sessionFolder}/wave-${wave}.csv`,
|
|
474
|
-
id_column: "id",
|
|
475
|
-
instruction: waveInstruction,
|
|
476
|
-
max_concurrency: maxConcurrency,
|
|
477
|
-
max_runtime_seconds: 1200,
|
|
478
|
-
output_csv_path: `${sessionFolder}/wave-${wave}-results.csv`,
|
|
479
|
-
output_schema: {
|
|
480
|
-
type: "object",
|
|
481
|
-
properties: {
|
|
482
|
-
id: { type: "string" },
|
|
483
|
-
status: { type: "string", enum: ["completed", "failed"] },
|
|
484
|
-
findings: { type: "string" },
|
|
485
|
-
artifacts_produced: { type: "string" },
|
|
486
|
-
issues_count: { type: "string" },
|
|
487
|
-
verdict: { type: "string" },
|
|
488
|
-
error: { type: "string" }
|
|
489
|
-
}
|
|
490
|
-
}
|
|
491
|
-
})
|
|
492
|
-
|
|
493
|
-
// Merge results into master CSV
|
|
494
|
-
const results = parseCsv(Read(`${sessionFolder}/wave-${wave}-results.csv`))
|
|
495
|
-
for (const r of results) {
|
|
496
|
-
const t = tasks.find(t => t.id === r.id)
|
|
497
|
-
if (t) Object.assign(t, r)
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
// Conditional Skip: TEST-001 with 0 issues
|
|
501
|
-
const testResult = results.find(r => r.id === 'TEST-001')
|
|
502
|
-
if (testResult && parseInt(testResult.issues_count || '0') === 0) {
|
|
503
|
-
// Skip all downstream tasks
|
|
504
|
-
tasks.filter(t => t.wave > wave && t.status === 'pending').forEach(t => {
|
|
505
|
-
t.status = 'skipped'
|
|
506
|
-
t.error = 'No issues found in testing -- skipped'
|
|
507
|
-
})
|
|
508
|
-
console.log('All features passed. No issues found. Pipeline complete.')
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
// Iteration: Analyzer needs more evidence
|
|
512
|
-
const analyzerResult = results.find(r => r.id.startsWith('ANALYZE') && r.findings?.includes('need_more_evidence'))
|
|
513
|
-
if (analyzerResult) {
|
|
514
|
-
const reproduceRound = tasks.filter(t => t.id.startsWith('REPRODUCE')).length
|
|
515
|
-
if (reproduceRound < MAX_REPRODUCE_ROUNDS) {
|
|
516
|
-
const newRepId = `REPRODUCE-${String(reproduceRound + 1).padStart(3, '0')}`
|
|
517
|
-
const newAnalyzeId = `ANALYZE-${String(tasks.filter(t => t.id.startsWith('ANALYZE')).length + 1).padStart(3, '0')}`
|
|
518
|
-
tasks.push({
|
|
519
|
-
id: newRepId, title: 'Supplemental evidence collection',
|
|
520
|
-
description: `PURPOSE: Collect additional evidence per Analyzer request | Success: Targeted evidence collected`,
|
|
521
|
-
role: 'reproducer', pipeline_mode: tasks[0].pipeline_mode,
|
|
522
|
-
base_url: tasks[0].base_url, evidence_dimensions: tasks[0].evidence_dimensions,
|
|
523
|
-
deps: '', context_from: analyzerResult.id,
|
|
524
|
-
exec_mode: 'csv-wave', wave: wave + 1, status: 'pending',
|
|
525
|
-
findings: '', artifacts_produced: '', issues_count: '', verdict: '', error: ''
|
|
526
|
-
})
|
|
527
|
-
tasks.push({
|
|
528
|
-
id: newAnalyzeId, title: 'Re-analysis with supplemental evidence',
|
|
529
|
-
description: `PURPOSE: Re-analyze with additional evidence | Success: Higher-confidence RCA`,
|
|
530
|
-
role: 'analyzer', pipeline_mode: tasks[0].pipeline_mode,
|
|
531
|
-
base_url: '', evidence_dimensions: '',
|
|
532
|
-
deps: newRepId, context_from: `${analyzerResult.id};${newRepId}`,
|
|
533
|
-
exec_mode: 'csv-wave', wave: wave + 2, status: 'pending',
|
|
534
|
-
findings: '', artifacts_produced: '', issues_count: '', verdict: '', error: ''
|
|
535
|
-
})
|
|
536
|
-
// Update FIX task deps
|
|
537
|
-
const fixTask = tasks.find(t => t.id === 'FIX-001' && t.status === 'pending')
|
|
538
|
-
if (fixTask) fixTask.deps = newAnalyzeId
|
|
539
|
-
}
|
|
540
|
-
}
|
|
541
|
-
|
|
542
|
-
// Re-fix: Verifier verdict = fail
|
|
543
|
-
const verifyResult = results.find(r => r.id.startsWith('VERIFY') && r.verdict === 'fail')
|
|
544
|
-
if (verifyResult && fixRound < MAX_FIX_ROUNDS) {
|
|
545
|
-
fixRound++
|
|
546
|
-
const newFixId = `FIX-${String(fixRound + 1).padStart(3, '0')}`
|
|
547
|
-
const newVerifyId = `VERIFY-${String(fixRound + 1).padStart(3, '0')}`
|
|
548
|
-
tasks.push({
|
|
549
|
-
id: newFixId, title: `Re-fix (round ${fixRound + 1})`,
|
|
550
|
-
description: `PURPOSE: Re-fix based on verification failure | Success: Issue resolved`,
|
|
551
|
-
role: 'fixer', pipeline_mode: tasks[0].pipeline_mode,
|
|
552
|
-
base_url: '', evidence_dimensions: '',
|
|
553
|
-
deps: verifyResult.id, context_from: verifyResult.id,
|
|
554
|
-
exec_mode: 'csv-wave', wave: wave + 1, status: 'pending',
|
|
555
|
-
findings: '', artifacts_produced: '', issues_count: '', verdict: '', error: ''
|
|
556
|
-
})
|
|
557
|
-
tasks.push({
|
|
558
|
-
id: newVerifyId, title: `Re-verify (round ${fixRound + 1})`,
|
|
559
|
-
description: `PURPOSE: Re-verify after fix | Success: Bug resolved`,
|
|
560
|
-
role: 'verifier', pipeline_mode: tasks[0].pipeline_mode,
|
|
561
|
-
base_url: tasks[0].base_url, evidence_dimensions: tasks[0].evidence_dimensions,
|
|
562
|
-
deps: newFixId, context_from: newFixId,
|
|
563
|
-
exec_mode: 'csv-wave', wave: wave + 2, status: 'pending',
|
|
564
|
-
findings: '', artifacts_produced: '', issues_count: '', verdict: '', error: ''
|
|
565
|
-
})
|
|
566
|
-
}
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
// Update master CSV
|
|
570
|
-
Write(`${sessionFolder}/tasks.csv`, toCsv(tasks))
|
|
571
|
-
|
|
572
|
-
// Cleanup temp files
|
|
573
|
-
Bash(`rm -f ${sessionFolder}/wave-${wave}.csv ${sessionFolder}/wave-${wave}-results.csv`)
|
|
574
|
-
|
|
575
|
-
// Recalculate maxWave (may have grown from iteration/re-fix)
|
|
576
|
-
maxWave = Math.max(maxWave, ...tasks.map(t => t.wave))
|
|
577
|
-
|
|
578
|
-
// Display wave summary
|
|
579
|
-
const completed = waveTasks.filter(t => t.status === 'completed').length
|
|
580
|
-
const failed = waveTasks.filter(t => t.status === 'failed').length
|
|
581
|
-
const skipped = waveTasks.filter(t => t.status === 'skipped').length
|
|
582
|
-
console.log(`Wave ${wave} Complete: ${completed} completed, ${failed} failed, ${skipped} skipped`)
|
|
583
|
-
}
|
|
584
|
-
```
|
|
585
|
-
|
|
586
|
-
**Success Criteria**:
|
|
587
|
-
- All waves executed in order
|
|
588
|
-
- Conditional skip handled (TEST with 0 issues)
|
|
589
|
-
- Iteration loops handled (analyzer need_more_evidence)
|
|
590
|
-
- Re-fix cycles handled (verifier fail verdict)
|
|
591
|
-
- discoveries.ndjson accumulated across all waves
|
|
592
|
-
- Max iteration/fix bounds respected
|
|
593
|
-
|
|
594
|
-
---
|
|
595
|
-
|
|
596
|
-
### Phase 3: Post-Wave Interactive (Completion Action)
|
|
597
|
-
|
|
598
|
-
**Objective**: Pipeline completion report with debug summary.
|
|
599
|
-
|
|
600
|
-
```javascript
|
|
601
|
-
const tasks = parseCsv(Read(`${sessionFolder}/tasks.csv`))
|
|
602
|
-
const completed = tasks.filter(t => t.status === 'completed')
|
|
603
|
-
const pipelineMode = tasks[0]?.pipeline_mode
|
|
604
|
-
|
|
605
|
-
console.log(`
|
|
606
|
-
============================================
|
|
607
|
-
FRONTEND DEBUG COMPLETE
|
|
608
|
-
|
|
609
|
-
Pipeline: ${pipelineMode} | ${completed.length}/${tasks.length} tasks
|
|
610
|
-
Fix Rounds: ${fixRound}/${MAX_FIX_ROUNDS}
|
|
611
|
-
Session: ${sessionFolder}
|
|
612
|
-
|
|
613
|
-
Results:
|
|
614
|
-
${completed.map(t => ` [DONE] ${t.id} (${t.role}): ${t.findings?.substring(0, 80) || 'completed'}`).join('\n')}
|
|
615
|
-
============================================
|
|
616
|
-
`)
|
|
617
|
-
|
|
618
|
-
if (!AUTO_YES) {
|
|
619
|
-
request_user_input({
|
|
620
|
-
questions: [{
|
|
621
|
-
question: "Debug pipeline complete. Choose next action.",
|
|
622
|
-
header: "Done",
|
|
623
|
-
id: "completion",
|
|
624
|
-
options: [
|
|
625
|
-
{ label: "Archive (Recommended)", description: "Archive session, output final summary" },
|
|
626
|
-
{ label: "Keep Active", description: "Keep session for follow-up debugging" },
|
|
627
|
-
{ label: "Export Results", description: "Export debug report and patches" }
|
|
628
|
-
]
|
|
629
|
-
}]
|
|
630
|
-
})
|
|
631
|
-
}
|
|
632
|
-
```
|
|
633
|
-
|
|
634
|
-
**Success Criteria**:
|
|
635
|
-
- User informed of debug pipeline results
|
|
636
|
-
- Completion action taken
|
|
637
|
-
|
|
638
|
-
---
|
|
639
|
-
|
|
640
|
-
### Phase 4: Results Aggregation
|
|
641
|
-
|
|
642
|
-
**Objective**: Generate final results and human-readable report.
|
|
643
|
-
|
|
644
|
-
```javascript
|
|
645
|
-
Bash(`cp ${sessionFolder}/tasks.csv ${sessionFolder}/results.csv`)
|
|
646
|
-
|
|
647
|
-
const tasks = parseCsv(Read(`${sessionFolder}/tasks.csv`))
|
|
648
|
-
let contextMd = `# Frontend Debug Report\n\n`
|
|
649
|
-
contextMd += `**Session**: ${sessionId}\n`
|
|
650
|
-
contextMd += `**Pipeline**: ${tasks[0]?.pipeline_mode}\n`
|
|
651
|
-
contextMd += `**Date**: ${getUtc8ISOString().substring(0, 10)}\n\n`
|
|
652
|
-
|
|
653
|
-
contextMd += `## Summary\n`
|
|
654
|
-
contextMd += `| Status | Count |\n|--------|-------|\n`
|
|
655
|
-
contextMd += `| Completed | ${tasks.filter(t => t.status === 'completed').length} |\n`
|
|
656
|
-
contextMd += `| Failed | ${tasks.filter(t => t.status === 'failed').length} |\n`
|
|
657
|
-
contextMd += `| Skipped | ${tasks.filter(t => t.status === 'skipped').length} |\n\n`
|
|
658
|
-
|
|
659
|
-
const maxWave = Math.max(...tasks.map(t => t.wave))
|
|
660
|
-
contextMd += `## Wave Execution\n\n`
|
|
661
|
-
for (let w = 1; w <= maxWave; w++) {
|
|
662
|
-
const waveTasks = tasks.filter(t => t.wave === w)
|
|
663
|
-
contextMd += `### Wave ${w}\n\n`
|
|
664
|
-
for (const t of waveTasks) {
|
|
665
|
-
const icon = t.status === 'completed' ? '[DONE]' : t.status === 'failed' ? '[FAIL]' : '[SKIP]'
|
|
666
|
-
contextMd += `${icon} **${t.title}** [${t.role}]`
|
|
667
|
-
if (t.verdict) contextMd += ` Verdict: ${t.verdict}`
|
|
668
|
-
if (t.issues_count) contextMd += ` Issues: ${t.issues_count}`
|
|
669
|
-
contextMd += ` ${t.findings || ''}\n\n`
|
|
670
|
-
}
|
|
671
|
-
}
|
|
672
|
-
|
|
673
|
-
// Debug-specific sections
|
|
674
|
-
const verifyTasks = tasks.filter(t => t.role === 'verifier' && t.verdict)
|
|
675
|
-
if (verifyTasks.length > 0) {
|
|
676
|
-
contextMd += `## Verification Results\n\n`
|
|
677
|
-
for (const v of verifyTasks) {
|
|
678
|
-
contextMd += `- **${v.id}**: ${v.verdict}\n`
|
|
679
|
-
}
|
|
680
|
-
}
|
|
681
|
-
|
|
682
|
-
Write(`${sessionFolder}/context.md`, contextMd)
|
|
683
|
-
console.log(`Results exported to: ${sessionFolder}/results.csv`)
|
|
684
|
-
console.log(`Report generated at: ${sessionFolder}/context.md`)
|
|
685
|
-
```
|
|
686
|
-
|
|
687
|
-
**Success Criteria**:
|
|
688
|
-
- results.csv exported
|
|
689
|
-
- context.md generated with debug summary
|
|
690
|
-
- Summary displayed to user
|
|
691
|
-
|
|
692
|
-
---
|
|
693
|
-
|
|
694
|
-
## Shared Discovery Board Protocol
|
|
695
|
-
|
|
696
|
-
All agents share a single `discoveries.ndjson` file.
|
|
697
|
-
|
|
698
|
-
**Format**: One JSON object per line (NDJSON):
|
|
699
|
-
|
|
700
|
-
```jsonl
|
|
701
|
-
{"ts":"2026-03-08T10:00:00Z","worker":"TEST-001","type":"feature_tested","data":{"feature":"F-001","name":"Login","result":"fail","issues":2}}
|
|
702
|
-
{"ts":"2026-03-08T10:05:00Z","worker":"REPRODUCE-001","type":"bug_reproduced","data":{"url":"/settings","steps":3,"console_errors":2,"network_failures":1}}
|
|
703
|
-
{"ts":"2026-03-08T10:10:00Z","worker":"ANALYZE-001","type":"root_cause_found","data":{"category":"TypeError","file":"src/components/Settings.tsx","line":142,"confidence":"high"}}
|
|
704
|
-
{"ts":"2026-03-08T10:15:00Z","worker":"FIX-001","type":"file_modified","data":{"file":"src/components/Settings.tsx","change":"Added null check","lines_added":3}}
|
|
705
|
-
{"ts":"2026-03-08T10:20:00Z","worker":"VERIFY-001","type":"verification_result","data":{"verdict":"pass","original_error_resolved":true,"new_errors":0}}
|
|
706
|
-
```
|
|
707
|
-
|
|
708
|
-
**Discovery Types**:
|
|
709
|
-
|
|
710
|
-
| Type | Data Schema | Description |
|
|
711
|
-
|------|-------------|-------------|
|
|
712
|
-
| `feature_tested` | `{feature, name, result, issues}` | Feature test result |
|
|
713
|
-
| `bug_reproduced` | `{url, steps, console_errors, network_failures}` | Bug reproduction result |
|
|
714
|
-
| `evidence_collected` | `{dimension, file, description}` | Evidence artifact saved |
|
|
715
|
-
| `root_cause_found` | `{category, file, line, confidence}` | Root cause identified |
|
|
716
|
-
| `file_modified` | `{file, change, lines_added}` | Code fix applied |
|
|
717
|
-
| `verification_result` | `{verdict, original_error_resolved, new_errors}` | Fix verification result |
|
|
718
|
-
| `issue_found` | `{file, line, severity, description}` | Issue discovered |
|
|
719
|
-
|
|
720
|
-
**Protocol**:
|
|
721
|
-
1. Agents MUST read discoveries.ndjson at start of execution
|
|
722
|
-
2. Agents MUST append relevant discoveries during execution
|
|
723
|
-
3. Agents MUST NOT modify or delete existing entries
|
|
724
|
-
4. Deduplication by `{type, data.file}` key
|
|
725
|
-
|
|
726
|
-
---
|
|
727
|
-
|
|
728
|
-
## Conditional Skip Logic
|
|
729
|
-
|
|
730
|
-
After TEST-001 completes, evaluate issues:
|
|
731
|
-
|
|
732
|
-
| Condition | Action |
|
|
733
|
-
|-----------|--------|
|
|
734
|
-
| `issues_count === 0` | Skip ANALYZE/FIX/VERIFY. Pipeline complete with all-pass. |
|
|
735
|
-
| Only low-severity warnings | request_user_input: fix warnings or complete |
|
|
736
|
-
| High/medium severity issues | Proceed with ANALYZE -> FIX -> VERIFY |
|
|
737
|
-
|
|
738
|
-
---
|
|
739
|
-
|
|
740
|
-
## Iteration Rules
|
|
741
|
-
|
|
742
|
-
| Trigger | Condition | Action | Max |
|
|
743
|
-
|---------|-----------|--------|-----|
|
|
744
|
-
| Analyzer -> Reproducer | Confidence < 50% | Create REPRODUCE-002 -> ANALYZE-002 | 2 reproduction rounds |
|
|
745
|
-
| Verifier -> Fixer | Verdict = fail | Create FIX-002 -> VERIFY-002 | 3 fix rounds |
|
|
746
|
-
| Max iterations reached | Round >= max | Report to user for manual intervention | -- |
|
|
747
|
-
|
|
748
|
-
---
|
|
749
|
-
|
|
750
|
-
## Error Handling
|
|
751
|
-
|
|
752
|
-
| Error | Resolution |
|
|
753
|
-
|-------|------------|
|
|
754
|
-
| Circular dependency | Detect in wave computation, abort with error message |
|
|
755
|
-
| CSV agent timeout | Mark as failed in results, continue with wave |
|
|
756
|
-
| CSV agent failed | Mark as failed, skip dependent tasks in later waves |
|
|
757
|
-
| Interactive agent timeout | Urge convergence via send_input, then close if still timed out |
|
|
758
|
-
| All agents in wave failed | Log error, offer retry or abort |
|
|
759
|
-
| CSV parse error | Validate CSV format before execution, show line number |
|
|
760
|
-
| discoveries.ndjson corrupt | Ignore malformed lines, continue with valid entries |
|
|
761
|
-
| All features pass test | Skip downstream tasks, report success |
|
|
762
|
-
| Bug not reproducible | Report failure, ask user for more details |
|
|
763
|
-
| Browser not available | Report error, suggest manual reproduction steps |
|
|
764
|
-
| Analysis inconclusive | Request more evidence via iteration loop |
|
|
765
|
-
| Fix introduces regression | Verifier reports fail, dispatch re-fix |
|
|
766
|
-
| Max iterations reached | Escalate to user for manual intervention |
|
|
767
|
-
| Continue mode: no session found | List available sessions, prompt user to select |
|
|
768
|
-
|
|
769
|
-
---
|
|
770
|
-
|
|
771
|
-
## Core Rules
|
|
772
|
-
|
|
773
|
-
1. **Start Immediately**: First action is session initialization, then Phase 0/1
|
|
774
|
-
2. **Wave Order is Sacred**: Never execute wave N before wave N-1 completes and results are merged
|
|
775
|
-
3. **CSV is Source of Truth**: Master tasks.csv holds all state (both csv-wave and interactive)
|
|
776
|
-
4. **CSV First**: Default to csv-wave for tasks; only use interactive when interaction pattern requires it
|
|
777
|
-
5. **Context Propagation**: prev_context built from master CSV, not from memory
|
|
778
|
-
6. **Discovery Board is Append-Only**: Never clear, modify, or recreate discoveries.ndjson
|
|
779
|
-
7. **Skip on Failure**: If a dependency failed, skip the dependent task
|
|
780
|
-
8. **Conditional Skip**: If TEST finds 0 issues, skip all downstream tasks
|
|
781
|
-
9. **Iteration Bounds**: Max 2 reproduction rounds, max 3 fix rounds
|
|
782
|
-
10. **Cleanup Temp Files**: Remove wave-{N}.csv after results are merged
|
|
783
|
-
11. **DO NOT STOP**: Continuous execution until all waves complete or all remaining tasks are skipped
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
---
|
|
787
|
-
|
|
788
|
-
## Coordinator Role Constraints (Main Agent)
|
|
789
|
-
|
|
790
|
-
**CRITICAL**: The coordinator (main agent executing this skill) is responsible for **orchestration only**, NOT implementation.
|
|
791
|
-
|
|
792
|
-
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:
|
|
793
|
-
- Spawns agents with task assignments
|
|
794
|
-
- Waits for agent callbacks
|
|
795
|
-
- Merges results and coordinates workflow
|
|
796
|
-
- Manages workflow transitions between phases
|
|
797
|
-
|
|
798
|
-
16. **Patient Waiting is Mandatory**: Agent execution takes significant time (typically 10-30 minutes per phase, sometimes longer). The coordinator MUST:
|
|
799
|
-
- Wait patiently for `wait()` calls to complete
|
|
800
|
-
- NOT skip workflow steps due to perceived delays
|
|
801
|
-
- NOT assume agents have failed just because they're taking time
|
|
802
|
-
- Trust the timeout mechanisms defined in the skill
|
|
803
|
-
|
|
804
|
-
17. **Use send_input for Clarification**: When agents need guidance or appear stuck, the coordinator MUST:
|
|
805
|
-
- Use `send_input()` to ask questions or provide clarification
|
|
806
|
-
- NOT skip the agent or move to next phase prematurely
|
|
807
|
-
- Give agents opportunity to respond before escalating
|
|
808
|
-
- Example: `send_input({ id: agent_id, message: "Please provide status update or clarify blockers" })`
|
|
809
|
-
|
|
810
|
-
18. **No Workflow Shortcuts**: The coordinator MUST NOT:
|
|
811
|
-
- Skip phases or stages defined in the workflow
|
|
812
|
-
- Bypass required approval or review steps
|
|
813
|
-
- Execute dependent tasks before prerequisites complete
|
|
814
|
-
- Assume task completion without explicit agent callback
|
|
815
|
-
- Make up or fabricate agent results
|
|
816
|
-
|
|
817
|
-
19. **Respect Long-Running Processes**: This is a complex multi-agent workflow that requires patience:
|
|
818
|
-
- Total execution time may range from 30-90 minutes or longer
|
|
819
|
-
- Each phase may take 10-30 minutes depending on complexity
|
|
820
|
-
- The coordinator must remain active and attentive throughout the entire process
|
|
821
|
-
- Do not terminate or skip steps due to time concerns
|
|
1
|
+
---
|
|
2
|
+
name: team-frontend-debug
|
|
3
|
+
description: Frontend debugging team using Chrome DevTools MCP. Dual-mode — feature-list testing or bug-report debugging. Triggers on "team-frontend-debug", "frontend debug".
|
|
4
|
+
allowed-tools: spawn_agent(*), wait_agent(*), send_input(*), close_agent(*), report_agent_job_result(*), request_user_input(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*), mcp__chrome-devtools__*(*)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Frontend Debug Team
|
|
8
|
+
|
|
9
|
+
Dual-mode frontend debugging: feature-list testing or bug-report debugging, powered by Chrome DevTools MCP.
|
|
10
|
+
|
|
11
|
+
## Architecture
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Skill(skill="team-frontend-debug", args="feature list or bug 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 input → select pipeline → dispatch → spawn → STOP
|
|
26
|
+
|
|
|
27
|
+
┌──────────────────────────┼──────────────────────┐
|
|
28
|
+
v v v
|
|
29
|
+
[test-pipeline] [debug-pipeline] [shared]
|
|
30
|
+
tester(DevTools) reproducer(DevTools) analyzer
|
|
31
|
+
fixer
|
|
32
|
+
verifier
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Pipeline Modes
|
|
36
|
+
|
|
37
|
+
| Input | Pipeline | Flow |
|
|
38
|
+
|-------|----------|------|
|
|
39
|
+
| Feature list / 功能清单 | `test-pipeline` | TEST → ANALYZE → FIX → VERIFY |
|
|
40
|
+
| Bug report / 错误描述 | `debug-pipeline` | REPRODUCE → ANALYZE → FIX → VERIFY |
|
|
41
|
+
|
|
42
|
+
## Role Registry
|
|
43
|
+
|
|
44
|
+
| Role | Path | Prefix | Inner Loop |
|
|
45
|
+
|------|------|--------|------------|
|
|
46
|
+
| coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | — | — |
|
|
47
|
+
| tester | [roles/tester/role.md](roles/tester/role.md) | TEST-* | true |
|
|
48
|
+
| reproducer | [roles/reproducer/role.md](roles/reproducer/role.md) | REPRODUCE-* | false |
|
|
49
|
+
| analyzer | [roles/analyzer/role.md](roles/analyzer/role.md) | ANALYZE-* | false |
|
|
50
|
+
| fixer | [roles/fixer/role.md](roles/fixer/role.md) | FIX-* | true |
|
|
51
|
+
| verifier | [roles/verifier/role.md](roles/verifier/role.md) | VERIFY-* | false |
|
|
52
|
+
|
|
53
|
+
## Role Router
|
|
54
|
+
|
|
55
|
+
Parse `$ARGUMENTS`:
|
|
56
|
+
- Has `--role <name>` → Read `roles/<name>/role.md`, execute Phase 2-4
|
|
57
|
+
- No `--role` → `roles/coordinator/role.md`, execute entry router
|
|
58
|
+
|
|
59
|
+
## Shared Constants
|
|
60
|
+
|
|
61
|
+
- **Session prefix**: `TFD`
|
|
62
|
+
- **Session path**: `.workflow/.team/TFD-<slug>-<date>/`
|
|
63
|
+
- **CLI tools**: `ccw cli --mode analysis` (read-only), `ccw cli --mode write` (modifications)
|
|
64
|
+
- **Message bus**: `mcp__ccw-tools__team_msg(session_id=<session-id>, ...)`
|
|
65
|
+
|
|
66
|
+
## Workspace Resolution
|
|
67
|
+
|
|
68
|
+
Coordinator MUST resolve paths at Phase 2 before spawning workers:
|
|
69
|
+
|
|
70
|
+
1. Run `Bash({ command: "pwd" })` → capture `project_root` (absolute path)
|
|
71
|
+
2. `skill_root = <project_root>/.claude/skills/team-frontend-debug`
|
|
72
|
+
3. Store in `team-session.json`:
|
|
73
|
+
```json
|
|
74
|
+
{ "project_root": "/abs/path/to/project", "skill_root": "/abs/path/to/skill" }
|
|
75
|
+
```
|
|
76
|
+
4. All worker `role_spec` values MUST use `<skill_root>/roles/<role>/role.md` (absolute)
|
|
77
|
+
|
|
78
|
+
This ensures workers always receive an absolute, resolvable path regardless of their working directory.
|
|
79
|
+
|
|
80
|
+
## Chrome DevTools MCP Tools
|
|
81
|
+
|
|
82
|
+
All browser inspection operations use Chrome DevTools MCP. Reproducer and Verifier are primary consumers.
|
|
83
|
+
|
|
84
|
+
| Tool | Purpose |
|
|
85
|
+
|------|---------|
|
|
86
|
+
| `mcp__chrome-devtools__navigate_page` | Navigate to target URL |
|
|
87
|
+
| `mcp__chrome-devtools__take_screenshot` | Capture visual state |
|
|
88
|
+
| `mcp__chrome-devtools__take_snapshot` | Capture DOM/a11y tree |
|
|
89
|
+
| `mcp__chrome-devtools__list_console_messages` | Read console logs |
|
|
90
|
+
| `mcp__chrome-devtools__get_console_message` | Get specific console message |
|
|
91
|
+
| `mcp__chrome-devtools__list_network_requests` | Monitor network activity |
|
|
92
|
+
| `mcp__chrome-devtools__get_network_request` | Inspect request/response detail |
|
|
93
|
+
| `mcp__chrome-devtools__performance_start_trace` | Start performance recording |
|
|
94
|
+
| `mcp__chrome-devtools__performance_stop_trace` | Stop and analyze trace |
|
|
95
|
+
| `mcp__chrome-devtools__click` | Simulate user click |
|
|
96
|
+
| `mcp__chrome-devtools__fill` | Fill form inputs |
|
|
97
|
+
| `mcp__chrome-devtools__hover` | Hover over elements |
|
|
98
|
+
| `mcp__chrome-devtools__evaluate_script` | Execute JavaScript in page |
|
|
99
|
+
| `mcp__chrome-devtools__wait_for` | Wait for element/text |
|
|
100
|
+
| `mcp__chrome-devtools__list_pages` | List open browser tabs |
|
|
101
|
+
| `mcp__chrome-devtools__select_page` | Switch active tab |
|
|
102
|
+
|
|
103
|
+
## Worker Spawn Template
|
|
104
|
+
|
|
105
|
+
Coordinator spawns workers using this template:
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
spawn_agent({
|
|
109
|
+
agent_type: "team_worker",
|
|
110
|
+
items: [
|
|
111
|
+
{ type: "text", text: `## Role Assignment
|
|
112
|
+
role: <role>
|
|
113
|
+
role_spec: <skill_root>/roles/<role>/role.md
|
|
114
|
+
session: <session-folder>
|
|
115
|
+
session_id: <session-id>
|
|
116
|
+
requirement: <task-description>
|
|
117
|
+
inner_loop: <true|false>
|
|
118
|
+
|
|
119
|
+
Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.` },
|
|
120
|
+
|
|
121
|
+
{ type: "text", text: `## Task Context
|
|
122
|
+
task_id: <task-id>
|
|
123
|
+
title: <task-title>
|
|
124
|
+
description: <task-description>
|
|
125
|
+
pipeline_phase: <pipeline-phase>` },
|
|
126
|
+
|
|
127
|
+
{ type: "text", text: `## Upstream Context
|
|
128
|
+
<prev_context>` }
|
|
129
|
+
]
|
|
130
|
+
})
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
After spawning, use `wait_agent({ ids: [...], timeout_ms: 900000 })` to collect results, then `close_agent({ id })` each worker.
|
|
134
|
+
|
|
135
|
+
## User Commands
|
|
136
|
+
|
|
137
|
+
| Command | Action |
|
|
138
|
+
|---------|--------|
|
|
139
|
+
| `check` / `status` | View execution status graph |
|
|
140
|
+
| `resume` / `continue` | Advance to next step |
|
|
141
|
+
| `revise <TASK-ID> [feedback]` | Revise specific task |
|
|
142
|
+
| `feedback <text>` | Inject feedback for revision |
|
|
143
|
+
| `retry <TASK-ID>` | Re-run a failed task |
|
|
144
|
+
|
|
145
|
+
## Completion Action
|
|
146
|
+
|
|
147
|
+
When pipeline completes, coordinator presents:
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
request_user_input({
|
|
151
|
+
questions: [{
|
|
152
|
+
question: "Pipeline complete. What would you like to do?",
|
|
153
|
+
header: "Completion",
|
|
154
|
+
multiSelect: false,
|
|
155
|
+
options: [
|
|
156
|
+
{ label: "Archive & Clean (Recommended)", description: "Archive session, clean up" },
|
|
157
|
+
{ label: "Keep Active", description: "Keep session for follow-up debugging" },
|
|
158
|
+
{ label: "Export Results", description: "Export debug report and patches" }
|
|
159
|
+
]
|
|
160
|
+
}]
|
|
161
|
+
})
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Specs Reference
|
|
165
|
+
|
|
166
|
+
- [specs/pipelines.md](specs/pipelines.md) — Pipeline definitions and task registry
|
|
167
|
+
- [specs/debug-tools.md](specs/debug-tools.md) — Chrome DevTools MCP usage patterns and evidence collection
|
|
168
|
+
|
|
169
|
+
## Session Directory
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
.workflow/.team/TFD-<slug>-<date>/
|
|
173
|
+
├── team-session.json # Session state + role registry
|
|
174
|
+
├── evidence/ # Screenshots, snapshots, network logs
|
|
175
|
+
├── artifacts/ # Test reports, RCA reports, patches, verification reports
|
|
176
|
+
├── wisdom/ # Cross-task debug knowledge
|
|
177
|
+
└── .msg/ # Team message bus
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Error Handling
|
|
181
|
+
|
|
182
|
+
| Scenario | Resolution |
|
|
183
|
+
|----------|------------|
|
|
184
|
+
| All features pass test | Report success, pipeline completes without ANALYZE/FIX/VERIFY |
|
|
185
|
+
| Bug not reproducible | Reproducer reports failure, coordinator asks user for more details |
|
|
186
|
+
| Browser not available | Report error, suggest manual reproduction steps |
|
|
187
|
+
| Analysis inconclusive | Analyzer requests more evidence via iteration loop |
|
|
188
|
+
| Fix introduces regression | Verifier reports fail, coordinator dispatches re-fix |
|
|
189
|
+
| No issues found in test | Skip downstream tasks, report all-pass |
|
|
190
|
+
| Unknown command | Error with available command list |
|
|
191
|
+
| Role not found | Error with role registry |
|