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
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
# Phase 3: Content Generation
|
|
2
|
+
|
|
3
|
+
Generate all role files, specs, and templates based on `teamConfig` and the generated SKILL.md.
|
|
4
|
+
|
|
5
|
+
## Objective
|
|
6
|
+
|
|
7
|
+
- Generate coordinator role.md + commands/ (analyze, dispatch, monitor)
|
|
8
|
+
- Generate each worker role.md (inline or with commands/)
|
|
9
|
+
- Generate specs/ files (pipelines.md + domain specs)
|
|
10
|
+
- Generate templates/ if needed
|
|
11
|
+
- Follow team-lifecycle-v4 golden sample patterns
|
|
12
|
+
|
|
13
|
+
## Golden Sample Reference
|
|
14
|
+
|
|
15
|
+
Read the golden sample at `~ or <project>/.claude/skills/team-lifecycle-v4/` for each file type before generating. This ensures pattern fidelity.
|
|
16
|
+
|
|
17
|
+
## Step 3.1: Generate Coordinator
|
|
18
|
+
|
|
19
|
+
The coordinator is the most complex role. It always has 3 commands.
|
|
20
|
+
|
|
21
|
+
### coordinator/role.md
|
|
22
|
+
|
|
23
|
+
```markdown
|
|
24
|
+
---
|
|
25
|
+
role: coordinator
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# Coordinator — ${teamConfig.title}
|
|
29
|
+
|
|
30
|
+
## Identity
|
|
31
|
+
|
|
32
|
+
You are the coordinator for ${teamConfig.title}. You orchestrate the ${teamConfig.domain} pipeline by analyzing requirements, dispatching tasks, and monitoring worker progress.
|
|
33
|
+
|
|
34
|
+
## Boundaries
|
|
35
|
+
|
|
36
|
+
- **DO**: Analyze, dispatch, monitor, reconcile, report
|
|
37
|
+
- **DO NOT**: Implement domain work directly — delegate to workers
|
|
38
|
+
|
|
39
|
+
## Command Execution Protocol
|
|
40
|
+
|
|
41
|
+
Read command file → Execute ALL steps sequentially → Return to entry router.
|
|
42
|
+
Commands: `commands/analyze.md`, `commands/dispatch.md`, `commands/monitor.md`.
|
|
43
|
+
|
|
44
|
+
## Entry Router
|
|
45
|
+
|
|
46
|
+
On each invocation, detect current state and route:
|
|
47
|
+
|
|
48
|
+
| Condition | Handler |
|
|
49
|
+
|-----------|---------|
|
|
50
|
+
| First invocation (no session) | → Phase 1: Requirement Clarification |
|
|
51
|
+
| Session exists, no team | → Phase 2: Team Setup |
|
|
52
|
+
| Team exists, no tasks | → Phase 3: Dispatch (analyze.md → dispatch.md) |
|
|
53
|
+
| Tasks exist, none started | → Phase 4: Spawn First (monitor.md → handleSpawnNext) |
|
|
54
|
+
| Callback received | → monitor.md → handleCallback |
|
|
55
|
+
| User says "check"/"status" | → monitor.md → handleCheck |
|
|
56
|
+
| User says "resume"/"continue" | → monitor.md → handleResume |
|
|
57
|
+
| All tasks completed | → Phase 5: Report & Completion |
|
|
58
|
+
|
|
59
|
+
## Phase 0: Session Resume
|
|
60
|
+
|
|
61
|
+
If `.workflow/.team/${teamConfig.sessionPrefix}-*/team-session.json` exists:
|
|
62
|
+
- Load session state, verify team, reconcile task status
|
|
63
|
+
- Route to appropriate handler based on current state
|
|
64
|
+
|
|
65
|
+
## Phase 1: Requirement Clarification
|
|
66
|
+
|
|
67
|
+
- Parse user's task description at TEXT LEVEL
|
|
68
|
+
- Use request_user_input if requirements are ambiguous
|
|
69
|
+
- Execute `commands/analyze.md` for signal detection + complexity scoring
|
|
70
|
+
|
|
71
|
+
## Phase 2: Team Setup
|
|
72
|
+
|
|
73
|
+
- Session folder creation with session ID: `${teamConfig.sessionPrefix}-<slug>-<date>`
|
|
74
|
+
- Initialize team_msg message bus
|
|
75
|
+
- Create session directory structure
|
|
76
|
+
|
|
77
|
+
## Phase 3: Dispatch
|
|
78
|
+
|
|
79
|
+
- Execute `commands/dispatch.md`
|
|
80
|
+
- Creates task entries in tasks.json with blockedBy dependencies
|
|
81
|
+
|
|
82
|
+
## Phase 4: Spawn & Monitor
|
|
83
|
+
|
|
84
|
+
- Execute `commands/monitor.md` → handleSpawnNext
|
|
85
|
+
- Spawn ready workers as team_worker agents via spawn_agent()
|
|
86
|
+
- **STOP after spawning** — wait for callback
|
|
87
|
+
|
|
88
|
+
## Phase 5: Report & Completion
|
|
89
|
+
|
|
90
|
+
- Aggregate all task artifacts
|
|
91
|
+
- Present completion action to user
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### coordinator/commands/analyze.md
|
|
95
|
+
|
|
96
|
+
Template based on golden sample — includes:
|
|
97
|
+
- Signal detection (keywords → capabilities)
|
|
98
|
+
- Dependency graph construction (tiers)
|
|
99
|
+
- Complexity scoring (1-3 Low, 4-6 Medium, 7+ High)
|
|
100
|
+
- Role minimization (cap at 5)
|
|
101
|
+
- Output: task-analysis.json
|
|
102
|
+
|
|
103
|
+
```markdown
|
|
104
|
+
# Command: Analyze
|
|
105
|
+
|
|
106
|
+
## Signal Detection
|
|
107
|
+
|
|
108
|
+
Scan requirement text for capability signals:
|
|
109
|
+
${teamConfig.roles.filter(r => r.name !== 'coordinator').map(r =>
|
|
110
|
+
`- **${r.name}**: [domain-specific keywords]`
|
|
111
|
+
).join('\n')}
|
|
112
|
+
|
|
113
|
+
## Dependency Graph
|
|
114
|
+
|
|
115
|
+
Build 4-tier dependency graph:
|
|
116
|
+
- Tier 0: Independent tasks (can run in parallel)
|
|
117
|
+
- Tier 1: Depends on Tier 0
|
|
118
|
+
- Tier 2: Depends on Tier 1
|
|
119
|
+
- Tier 3: Depends on Tier 2
|
|
120
|
+
|
|
121
|
+
## Complexity Scoring
|
|
122
|
+
|
|
123
|
+
| Score | Level | Strategy |
|
|
124
|
+
|-------|-------|----------|
|
|
125
|
+
| 1-3 | Low | Direct implementation, skip deep planning |
|
|
126
|
+
| 4-6 | Medium | Standard pipeline with planning |
|
|
127
|
+
| 7+ | High | Full spec → plan → implement cycle |
|
|
128
|
+
|
|
129
|
+
## Output
|
|
130
|
+
|
|
131
|
+
Write `task-analysis.json` to session directory:
|
|
132
|
+
\```json
|
|
133
|
+
{
|
|
134
|
+
"signals": [...],
|
|
135
|
+
"roles_needed": [...],
|
|
136
|
+
"dependency_tiers": [...],
|
|
137
|
+
"complexity": { "score": N, "level": "Low|Medium|High" },
|
|
138
|
+
"pipeline": "${teamConfig.pipelines[0].name}"
|
|
139
|
+
}
|
|
140
|
+
\```
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### coordinator/commands/dispatch.md
|
|
144
|
+
|
|
145
|
+
Template — includes:
|
|
146
|
+
- Topological sort from dependency graph
|
|
147
|
+
- tasks.json entries with blockedBy for dependencies
|
|
148
|
+
- Task description template (PURPOSE/TASK/CONTEXT/EXPECTED/CONSTRAINTS)
|
|
149
|
+
|
|
150
|
+
### coordinator/commands/monitor.md
|
|
151
|
+
|
|
152
|
+
Template — includes:
|
|
153
|
+
- Beat model constants (ONE_STEP_PER_INVOCATION, SPAWN_MODE: spawn-and-stop)
|
|
154
|
+
- 6 handlers: handleCallback, handleCheck, handleResume, handleSpawnNext, handleComplete, handleAdapt
|
|
155
|
+
- Checkpoint detection for quality gates
|
|
156
|
+
- Fast-advance reconciliation
|
|
157
|
+
|
|
158
|
+
**Critical**: This is the ONLY file that contains beat model logic.
|
|
159
|
+
|
|
160
|
+
## Step 3.2: Generate Worker Roles
|
|
161
|
+
|
|
162
|
+
For each worker role in `teamConfig.roles`:
|
|
163
|
+
|
|
164
|
+
### Inline Role Template (no commands/)
|
|
165
|
+
|
|
166
|
+
```markdown
|
|
167
|
+
---
|
|
168
|
+
role: ${role.name}
|
|
169
|
+
prefix: ${role.prefix}
|
|
170
|
+
inner_loop: ${role.inner_loop}
|
|
171
|
+
message_types: [${role.message_types.join(', ')}]
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
# ${capitalize(role.name)} — ${teamConfig.title}
|
|
175
|
+
|
|
176
|
+
## Identity
|
|
177
|
+
|
|
178
|
+
You are the ${role.name} for ${teamConfig.title}.
|
|
179
|
+
Task prefix: `${role.prefix}-*`
|
|
180
|
+
|
|
181
|
+
## Phase 2: Context Loading
|
|
182
|
+
|
|
183
|
+
- Read task description from tasks.json (find by id)
|
|
184
|
+
- Load relevant session artifacts from session directory
|
|
185
|
+
- Load specs from `specs/` as needed
|
|
186
|
+
|
|
187
|
+
## Phase 3: Domain Execution
|
|
188
|
+
|
|
189
|
+
[Domain-specific execution logic for this role]
|
|
190
|
+
|
|
191
|
+
### Execution Steps
|
|
192
|
+
|
|
193
|
+
1. [Step 1 based on role's domain]
|
|
194
|
+
2. [Step 2]
|
|
195
|
+
3. [Step 3]
|
|
196
|
+
|
|
197
|
+
### Tools Available
|
|
198
|
+
|
|
199
|
+
- CLI tools: `ccw cli --mode analysis|write`
|
|
200
|
+
- Direct tools: Read, Write, Edit, Bash, Grep, Glob
|
|
201
|
+
- Message bus: `mcp__ccw-tools__team_msg`
|
|
202
|
+
- **Cannot use spawn_agent()** — workers must use CLI or direct tools
|
|
203
|
+
|
|
204
|
+
## Phase 4: Output & Report
|
|
205
|
+
|
|
206
|
+
- Write artifacts to session directory
|
|
207
|
+
- Log state_update via team_msg
|
|
208
|
+
- Publish wisdom if cross-task knowledge discovered
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Command-Based Role Template (has commands/)
|
|
212
|
+
|
|
213
|
+
```markdown
|
|
214
|
+
---
|
|
215
|
+
role: ${role.name}
|
|
216
|
+
prefix: ${role.prefix}
|
|
217
|
+
inner_loop: ${role.inner_loop}
|
|
218
|
+
message_types: [${role.message_types.join(', ')}]
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
# ${capitalize(role.name)} — ${teamConfig.title}
|
|
222
|
+
|
|
223
|
+
## Identity
|
|
224
|
+
|
|
225
|
+
You are the ${role.name} for ${teamConfig.title}.
|
|
226
|
+
Task prefix: `${role.prefix}-*`
|
|
227
|
+
|
|
228
|
+
## Phase 2: Context Loading
|
|
229
|
+
|
|
230
|
+
Load task description, detect mode/command.
|
|
231
|
+
|
|
232
|
+
## Phase 3: Command Router
|
|
233
|
+
|
|
234
|
+
| Condition | Command |
|
|
235
|
+
|-----------|---------|
|
|
236
|
+
${role.commands.map(cmd =>
|
|
237
|
+
`| [condition for ${cmd}] | → commands/${cmd}.md |`
|
|
238
|
+
).join('\n')}
|
|
239
|
+
|
|
240
|
+
Read command file → Execute ALL steps → Return to Phase 4.
|
|
241
|
+
|
|
242
|
+
## Phase 4: Output & Report
|
|
243
|
+
|
|
244
|
+
Write artifacts, log state_update.
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Then generate each `commands/<cmd>.md` with domain-specific logic.
|
|
248
|
+
|
|
249
|
+
## Step 3.3: Generate Specs
|
|
250
|
+
|
|
251
|
+
### specs/pipelines.md
|
|
252
|
+
|
|
253
|
+
```markdown
|
|
254
|
+
# Pipeline Definitions
|
|
255
|
+
|
|
256
|
+
## Available Pipelines
|
|
257
|
+
|
|
258
|
+
${teamConfig.pipelines.map(p => `
|
|
259
|
+
### ${p.name}
|
|
260
|
+
|
|
261
|
+
| Task ID | Role | Name | Depends On | Checkpoint |
|
|
262
|
+
|---------|------|------|------------|------------|
|
|
263
|
+
${p.tasks.map(t =>
|
|
264
|
+
`| ${t.id} | ${t.role} | ${t.name} | ${t.dependsOn.join(', ') || '—'} | ${t.isCheckpoint ? '✓' : '—'} |`
|
|
265
|
+
).join('\n')}
|
|
266
|
+
`).join('\n')}
|
|
267
|
+
|
|
268
|
+
## Task Metadata Registry
|
|
269
|
+
|
|
270
|
+
Standard task description template:
|
|
271
|
+
|
|
272
|
+
\```
|
|
273
|
+
PURPOSE: [goal]
|
|
274
|
+
TASK: [steps]
|
|
275
|
+
CONTEXT: [session artifacts + specs]
|
|
276
|
+
EXPECTED: [deliverable format]
|
|
277
|
+
CONSTRAINTS: [scope limits]
|
|
278
|
+
\```
|
|
279
|
+
|
|
280
|
+
## Conditional Routing
|
|
281
|
+
|
|
282
|
+
${teamConfig.conditionalRouting ? `
|
|
283
|
+
PLAN-001 complexity assessment routes to:
|
|
284
|
+
- Low (1-3): Direct implementation
|
|
285
|
+
- Medium (4-6): Standard planning
|
|
286
|
+
- High (7+): Full spec → plan → implement
|
|
287
|
+
` : 'No conditional routing in this pipeline.'}
|
|
288
|
+
|
|
289
|
+
## Dynamic Specialist Injection
|
|
290
|
+
|
|
291
|
+
${teamConfig.dynamicSpecialists.length > 0 ?
|
|
292
|
+
teamConfig.dynamicSpecialists.map(s => `- ${s}: Injected when domain keywords detected`).join('\n') :
|
|
293
|
+
'No dynamic specialists configured.'
|
|
294
|
+
}
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### Additional Specs
|
|
298
|
+
|
|
299
|
+
For each additional spec in `teamConfig.specs` (beyond pipelines), generate domain-appropriate content:
|
|
300
|
+
|
|
301
|
+
- **quality-gates.md**: Thresholds (Pass≥80%, Review 60-79%, Fail<60%), scoring dimensions, per-phase gates
|
|
302
|
+
- **knowledge-transfer.md**: 5 transfer channels, Phase 2 loading protocol, Phase 4 publishing protocol
|
|
303
|
+
|
|
304
|
+
## Step 3.4: Generate Templates
|
|
305
|
+
|
|
306
|
+
For each template in `teamConfig.templates`:
|
|
307
|
+
|
|
308
|
+
1. Check if golden sample has matching template at `~ or <project>/.claude/skills/team-lifecycle-v4/templates/`
|
|
309
|
+
2. If exists: copy and adapt for new domain
|
|
310
|
+
3. If not: generate domain-appropriate template structure
|
|
311
|
+
|
|
312
|
+
## Step 3.5: Generation Order
|
|
313
|
+
|
|
314
|
+
Execute in this order (respects dependencies):
|
|
315
|
+
|
|
316
|
+
1. **specs/** — needed by roles for reference
|
|
317
|
+
2. **coordinator/** — role.md + commands/ (3 files)
|
|
318
|
+
3. **workers/** — each role.md (+ optional commands/)
|
|
319
|
+
4. **templates/** — independent, generate last
|
|
320
|
+
|
|
321
|
+
For each file:
|
|
322
|
+
1. Read golden sample equivalent (if exists)
|
|
323
|
+
2. Adapt content for current teamConfig
|
|
324
|
+
3. Write file
|
|
325
|
+
4. Verify file exists
|
|
326
|
+
|
|
327
|
+
## Output
|
|
328
|
+
|
|
329
|
+
- **Files**: All role.md, commands/*.md, specs/*.md, templates/*.md
|
|
330
|
+
- **Next**: Phase 4 - Validation
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
# Phase 4: Validation
|
|
2
|
+
|
|
3
|
+
Validate the generated team skill package for structural completeness, reference integrity, role consistency, and team-worker compatibility.
|
|
4
|
+
|
|
5
|
+
## Objective
|
|
6
|
+
|
|
7
|
+
- Verify all required files exist
|
|
8
|
+
- Validate SKILL.md role registry matches actual role files
|
|
9
|
+
- Check role.md frontmatter format for team-worker compatibility
|
|
10
|
+
- Verify pipeline task references match existing roles
|
|
11
|
+
- Report validation results
|
|
12
|
+
|
|
13
|
+
## Step 4.1: Structural Validation
|
|
14
|
+
|
|
15
|
+
```javascript
|
|
16
|
+
function validateStructure(teamConfig) {
|
|
17
|
+
const skillDir = `.claude/skills/${teamConfig.skillName}`;
|
|
18
|
+
const results = { errors: [], warnings: [], info: [] };
|
|
19
|
+
|
|
20
|
+
// Check SKILL.md exists
|
|
21
|
+
if (!fileExists(`${skillDir}/SKILL.md`)) {
|
|
22
|
+
results.errors.push('SKILL.md not found');
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Check coordinator structure
|
|
26
|
+
if (!fileExists(`${skillDir}/roles/coordinator/role.md`)) {
|
|
27
|
+
results.errors.push('Coordinator role.md not found');
|
|
28
|
+
}
|
|
29
|
+
for (const cmd of ['analyze', 'dispatch', 'monitor']) {
|
|
30
|
+
if (!fileExists(`${skillDir}/roles/coordinator/commands/${cmd}.md`)) {
|
|
31
|
+
results.errors.push(`Coordinator command ${cmd}.md not found`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Check worker roles
|
|
36
|
+
for (const role of teamConfig.roles.filter(r => r.name !== 'coordinator')) {
|
|
37
|
+
if (!fileExists(`${skillDir}/roles/${role.name}/role.md`)) {
|
|
38
|
+
results.errors.push(`Worker role.md not found: ${role.name}`);
|
|
39
|
+
}
|
|
40
|
+
if (role.hasCommands) {
|
|
41
|
+
for (const cmd of role.commands) {
|
|
42
|
+
if (!fileExists(`${skillDir}/roles/${role.name}/commands/${cmd}.md`)) {
|
|
43
|
+
results.errors.push(`Worker command not found: ${role.name}/commands/${cmd}.md`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Check specs
|
|
50
|
+
if (!fileExists(`${skillDir}/specs/pipelines.md`)) {
|
|
51
|
+
results.errors.push('specs/pipelines.md not found');
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return results;
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Step 4.2: SKILL.md Content Validation
|
|
59
|
+
|
|
60
|
+
```javascript
|
|
61
|
+
function validateSkillMd(teamConfig) {
|
|
62
|
+
const skillDir = `.claude/skills/${teamConfig.skillName}`;
|
|
63
|
+
const results = { errors: [], warnings: [], info: [] };
|
|
64
|
+
const skillMd = Read(`${skillDir}/SKILL.md`);
|
|
65
|
+
|
|
66
|
+
// Required sections
|
|
67
|
+
const requiredSections = [
|
|
68
|
+
'Role Registry', 'Role Router', 'Shared Constants',
|
|
69
|
+
'Worker Spawn Template', 'User Commands', 'Session Directory'
|
|
70
|
+
];
|
|
71
|
+
for (const section of requiredSections) {
|
|
72
|
+
if (!skillMd.includes(section)) {
|
|
73
|
+
results.errors.push(`SKILL.md missing section: ${section}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Verify role registry completeness
|
|
78
|
+
for (const role of teamConfig.roles) {
|
|
79
|
+
if (!skillMd.includes(role.path || `roles/${role.name}/role.md`)) {
|
|
80
|
+
results.errors.push(`Role registry missing path for: ${role.name}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Verify session prefix
|
|
85
|
+
if (!skillMd.includes(teamConfig.sessionPrefix)) {
|
|
86
|
+
results.warnings.push(`Session prefix ${teamConfig.sessionPrefix} not found in SKILL.md`);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Verify NO beat model content in SKILL.md
|
|
90
|
+
const beatModelPatterns = [
|
|
91
|
+
'ONE_STEP_PER_INVOCATION',
|
|
92
|
+
'spawn-and-stop',
|
|
93
|
+
'SPAWN_MODE',
|
|
94
|
+
'handleCallback',
|
|
95
|
+
'handleSpawnNext'
|
|
96
|
+
];
|
|
97
|
+
for (const pattern of beatModelPatterns) {
|
|
98
|
+
if (skillMd.includes(pattern)) {
|
|
99
|
+
results.errors.push(`SKILL.md contains beat model content: ${pattern} (should be in coordinator only)`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return results;
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Step 4.3: Role Frontmatter Validation
|
|
108
|
+
|
|
109
|
+
Verify role.md files have correct YAML frontmatter for team-worker agent compatibility:
|
|
110
|
+
|
|
111
|
+
```javascript
|
|
112
|
+
function validateRoleFrontmatter(teamConfig) {
|
|
113
|
+
const skillDir = `.claude/skills/${teamConfig.skillName}`;
|
|
114
|
+
const results = { errors: [], warnings: [], info: [] };
|
|
115
|
+
|
|
116
|
+
for (const role of teamConfig.roles.filter(r => r.name !== 'coordinator')) {
|
|
117
|
+
const roleMd = Read(`${skillDir}/roles/${role.name}/role.md`);
|
|
118
|
+
|
|
119
|
+
// Check frontmatter exists
|
|
120
|
+
if (!roleMd.startsWith('---')) {
|
|
121
|
+
results.errors.push(`${role.name}/role.md missing YAML frontmatter`);
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// Extract frontmatter
|
|
126
|
+
const fmMatch = roleMd.match(/^---\n([\s\S]*?)\n---/);
|
|
127
|
+
if (!fmMatch) {
|
|
128
|
+
results.errors.push(`${role.name}/role.md malformed frontmatter`);
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
const fm = fmMatch[1];
|
|
133
|
+
|
|
134
|
+
// Required fields
|
|
135
|
+
if (!fm.includes(`role: ${role.name}`)) {
|
|
136
|
+
results.errors.push(`${role.name}/role.md frontmatter missing 'role: ${role.name}'`);
|
|
137
|
+
}
|
|
138
|
+
if (!fm.includes(`prefix: ${role.prefix}`)) {
|
|
139
|
+
results.errors.push(`${role.name}/role.md frontmatter missing 'prefix: ${role.prefix}'`);
|
|
140
|
+
}
|
|
141
|
+
if (!fm.includes(`inner_loop: ${role.inner_loop}`)) {
|
|
142
|
+
results.warnings.push(`${role.name}/role.md frontmatter missing 'inner_loop: ${role.inner_loop}'`);
|
|
143
|
+
}
|
|
144
|
+
if (!fm.includes('message_types:')) {
|
|
145
|
+
results.warnings.push(`${role.name}/role.md frontmatter missing 'message_types'`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return results;
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Step 4.4: Pipeline Consistency
|
|
154
|
+
|
|
155
|
+
```javascript
|
|
156
|
+
function validatePipelines(teamConfig) {
|
|
157
|
+
const skillDir = `.claude/skills/${teamConfig.skillName}`;
|
|
158
|
+
const results = { errors: [], warnings: [], info: [] };
|
|
159
|
+
|
|
160
|
+
// Check every role referenced in pipelines exists
|
|
161
|
+
const definedRoles = new Set(teamConfig.roles.map(r => r.name));
|
|
162
|
+
|
|
163
|
+
for (const pipeline of teamConfig.pipelines) {
|
|
164
|
+
for (const task of pipeline.tasks) {
|
|
165
|
+
if (!definedRoles.has(task.role)) {
|
|
166
|
+
results.errors.push(
|
|
167
|
+
`Pipeline '${pipeline.name}' task ${task.id} references undefined role: ${task.role}`
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// Check for circular dependencies
|
|
173
|
+
const visited = new Set();
|
|
174
|
+
const stack = new Set();
|
|
175
|
+
for (const task of pipeline.tasks) {
|
|
176
|
+
if (hasCycle(task, pipeline.tasks, visited, stack)) {
|
|
177
|
+
results.errors.push(`Pipeline '${pipeline.name}' has circular dependency involving ${task.id}`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// Verify specs/pipelines.md contains all pipelines
|
|
183
|
+
const pipelinesMd = Read(`${skillDir}/specs/pipelines.md`);
|
|
184
|
+
for (const pipeline of teamConfig.pipelines) {
|
|
185
|
+
if (!pipelinesMd.includes(pipeline.name)) {
|
|
186
|
+
results.warnings.push(`specs/pipelines.md missing pipeline: ${pipeline.name}`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
return results;
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Step 4.5: Commands Distribution Validation
|
|
195
|
+
|
|
196
|
+
```javascript
|
|
197
|
+
function validateCommandsDistribution(teamConfig) {
|
|
198
|
+
const skillDir = `.claude/skills/${teamConfig.skillName}`;
|
|
199
|
+
const results = { errors: [], warnings: [], info: [] };
|
|
200
|
+
|
|
201
|
+
for (const role of teamConfig.roles.filter(r => r.name !== 'coordinator')) {
|
|
202
|
+
if (role.hasCommands) {
|
|
203
|
+
// Verify commands/ directory exists and has files
|
|
204
|
+
const cmdDir = `${skillDir}/roles/${role.name}/commands`;
|
|
205
|
+
if (role.commands.length < 2) {
|
|
206
|
+
results.warnings.push(
|
|
207
|
+
`${role.name} has commands/ but only ${role.commands.length} command(s) — consider inline`
|
|
208
|
+
);
|
|
209
|
+
}
|
|
210
|
+
// Verify role.md references commands
|
|
211
|
+
const roleMd = Read(`${skillDir}/roles/${role.name}/role.md`);
|
|
212
|
+
for (const cmd of role.commands) {
|
|
213
|
+
if (!roleMd.includes(`commands/${cmd}.md`)) {
|
|
214
|
+
results.warnings.push(
|
|
215
|
+
`${role.name}/role.md doesn't reference commands/${cmd}.md`
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
} else {
|
|
220
|
+
// Verify no commands/ directory exists
|
|
221
|
+
const cmdDir = `${skillDir}/roles/${role.name}/commands`;
|
|
222
|
+
if (directoryExists(cmdDir)) {
|
|
223
|
+
results.warnings.push(
|
|
224
|
+
`${role.name} is inline but has commands/ directory`
|
|
225
|
+
);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
return results;
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
## Step 4.6: Aggregate Results and Report
|
|
235
|
+
|
|
236
|
+
```javascript
|
|
237
|
+
function generateValidationReport(teamConfig) {
|
|
238
|
+
const structural = validateStructure(teamConfig);
|
|
239
|
+
const skillMd = validateSkillMd(teamConfig);
|
|
240
|
+
const frontmatter = validateRoleFrontmatter(teamConfig);
|
|
241
|
+
const pipelines = validatePipelines(teamConfig);
|
|
242
|
+
const commands = validateCommandsDistribution(teamConfig);
|
|
243
|
+
|
|
244
|
+
const allErrors = [
|
|
245
|
+
...structural.errors, ...skillMd.errors,
|
|
246
|
+
...frontmatter.errors, ...pipelines.errors, ...commands.errors
|
|
247
|
+
];
|
|
248
|
+
const allWarnings = [
|
|
249
|
+
...structural.warnings, ...skillMd.warnings,
|
|
250
|
+
...frontmatter.warnings, ...pipelines.warnings, ...commands.warnings
|
|
251
|
+
];
|
|
252
|
+
|
|
253
|
+
const gate = allErrors.length === 0 ? 'PASS' :
|
|
254
|
+
allErrors.length <= 2 ? 'REVIEW' : 'FAIL';
|
|
255
|
+
|
|
256
|
+
const skillDir = `.claude/skills/${teamConfig.skillName}`;
|
|
257
|
+
|
|
258
|
+
console.log(`
|
|
259
|
+
╔══════════════════════════════════════╗
|
|
260
|
+
║ Team Skill Validation Report ║
|
|
261
|
+
╠══════════════════════════════════════╣
|
|
262
|
+
║ Skill: ${teamConfig.skillName.padEnd(28)}║
|
|
263
|
+
║ Gate: ${gate.padEnd(28)}║
|
|
264
|
+
╚══════════════════════════════════════╝
|
|
265
|
+
|
|
266
|
+
Structure:
|
|
267
|
+
${skillDir}/
|
|
268
|
+
├── SKILL.md ✓
|
|
269
|
+
├── roles/
|
|
270
|
+
│ ├── coordinator/
|
|
271
|
+
│ │ ├── role.md ✓
|
|
272
|
+
│ │ └── commands/ (analyze, dispatch, monitor)
|
|
273
|
+
${teamConfig.roles.filter(r => r.name !== 'coordinator').map(r => {
|
|
274
|
+
const structure = r.hasCommands
|
|
275
|
+
? ` │ ├── ${r.name}/ (role.md + commands/)`
|
|
276
|
+
: ` │ ├── ${r.name}/role.md`;
|
|
277
|
+
return `${structure.padEnd(50)}✓`;
|
|
278
|
+
}).join('\n')}
|
|
279
|
+
├── specs/
|
|
280
|
+
│ └── pipelines.md ✓
|
|
281
|
+
└── templates/ ${teamConfig.templates.length > 0 ? '✓' : '(empty)'}
|
|
282
|
+
|
|
283
|
+
${allErrors.length > 0 ? `Errors (${allErrors.length}):\n${allErrors.map(e => ` ✗ ${e}`).join('\n')}` : 'Errors: None ✓'}
|
|
284
|
+
|
|
285
|
+
${allWarnings.length > 0 ? `Warnings (${allWarnings.length}):\n${allWarnings.map(w => ` ⚠ ${w}`).join('\n')}` : 'Warnings: None ✓'}
|
|
286
|
+
|
|
287
|
+
Usage:
|
|
288
|
+
Skill(skill="${teamConfig.skillName}", args="<task description>")
|
|
289
|
+
`);
|
|
290
|
+
|
|
291
|
+
return { gate, errors: allErrors, warnings: allWarnings };
|
|
292
|
+
}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
## Step 4.7: Error Recovery
|
|
296
|
+
|
|
297
|
+
```javascript
|
|
298
|
+
if (report.gate === 'FAIL') {
|
|
299
|
+
const recovery = request_user_input({
|
|
300
|
+
prompt: `Validation found ${report.errors.length} errors. How to proceed?\n\nOptions:\n1. Auto-fix - Attempt automatic fixes (missing files, frontmatter)\n2. Regenerate - Re-run Phase 3 with fixes\n3. Accept as-is - Manual fix later`
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
## Output
|
|
306
|
+
|
|
307
|
+
- **Report**: Validation results with quality gate (PASS/REVIEW/FAIL)
|
|
308
|
+
- **Completion**: Team skill package ready at `.claude/skills/${teamConfig.skillName}/`
|
|
309
|
+
|
|
310
|
+
## Completion
|
|
311
|
+
|
|
312
|
+
Team Skill Designer has completed. The generated team skill is ready for use.
|
|
313
|
+
|
|
314
|
+
```
|
|
315
|
+
Next Steps:
|
|
316
|
+
1. Review SKILL.md router for correctness
|
|
317
|
+
2. Review each role.md for domain accuracy
|
|
318
|
+
3. Test: Skill(skill="${teamConfig.skillName}", args="<test task>")
|
|
319
|
+
4. Iterate based on execution results
|
|
320
|
+
```
|