aiox-core 5.0.3 → 5.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (652) hide show
  1. package/.aiox-core/core/config/config-cache.js +10 -1
  2. package/.aiox-core/core/config/config-loader.js +2 -2
  3. package/.aiox-core/core/execution/build-state-manager.js +1 -1
  4. package/.aiox-core/core/synapse/runtime/hook-runtime.js +11 -2
  5. package/.aiox-core/core/utils/yaml-validator.js +1 -1
  6. package/.aiox-core/data/entity-registry.yaml +1039 -1034
  7. package/.aiox-core/development/scripts/workflow-validator.js +92 -18
  8. package/.aiox-core/development/tasks/create-workflow.md +44 -42
  9. package/.aiox-core/development/tasks/project-status.md +280 -0
  10. package/.aiox-core/development/tasks/validate-workflow.md +2 -2
  11. package/.aiox-core/development/templates/service-template/README.md.hbs +158 -158
  12. package/.aiox-core/development/templates/service-template/__tests__/index.test.ts.hbs +237 -237
  13. package/.aiox-core/development/templates/service-template/client.ts.hbs +403 -403
  14. package/.aiox-core/development/templates/service-template/errors.ts.hbs +182 -182
  15. package/.aiox-core/development/templates/service-template/index.ts.hbs +120 -120
  16. package/.aiox-core/development/templates/service-template/package.json.hbs +87 -87
  17. package/.aiox-core/development/templates/service-template/types.ts.hbs +145 -145
  18. package/.aiox-core/development/templates/squad/workflow-template.yaml +106 -91
  19. package/.aiox-core/development/templates/squad-template/LICENSE +21 -21
  20. package/.aiox-core/development/templates/squad-template/workflows/example-workflow.yaml +72 -51
  21. package/.aiox-core/development/workflows/README.md +12 -5
  22. package/.aiox-core/development/workflows/development-cycle.yaml +90 -0
  23. package/.aiox-core/infrastructure/scripts/config-cache.js +10 -1
  24. package/.aiox-core/infrastructure/templates/aiox-sync.yaml.template +182 -182
  25. package/.aiox-core/infrastructure/templates/coderabbit.yaml.template +279 -279
  26. package/.aiox-core/infrastructure/templates/github-workflows/ci.yml.template +169 -169
  27. package/.aiox-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -330
  28. package/.aiox-core/infrastructure/templates/github-workflows/release.yml.template +196 -196
  29. package/.aiox-core/infrastructure/templates/gitignore/gitignore-aiox-base.tmpl +63 -63
  30. package/.aiox-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -18
  31. package/.aiox-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -85
  32. package/.aiox-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -145
  33. package/.aiox-core/install-manifest.yaml +85 -81
  34. package/.aiox-core/lib/build.json +1 -0
  35. package/.aiox-core/local-config.yaml.template +71 -71
  36. package/.aiox-core/monitor/hooks/lib/__init__.py +1 -1
  37. package/.aiox-core/monitor/hooks/lib/enrich.py +58 -58
  38. package/.aiox-core/monitor/hooks/lib/send_event.py +47 -47
  39. package/.aiox-core/monitor/hooks/notification.py +29 -29
  40. package/.aiox-core/monitor/hooks/post_tool_use.py +45 -45
  41. package/.aiox-core/monitor/hooks/pre_compact.py +29 -29
  42. package/.aiox-core/monitor/hooks/pre_tool_use.py +40 -40
  43. package/.aiox-core/monitor/hooks/stop.py +29 -29
  44. package/.aiox-core/monitor/hooks/subagent_stop.py +29 -29
  45. package/.aiox-core/monitor/hooks/user_prompt_submit.py +38 -38
  46. package/.aiox-core/product/templates/adr.hbs +125 -125
  47. package/.aiox-core/product/templates/dbdr.hbs +241 -241
  48. package/.aiox-core/product/templates/epic.hbs +212 -212
  49. package/.aiox-core/product/templates/pmdr.hbs +186 -186
  50. package/.aiox-core/product/templates/prd-v2.0.hbs +216 -216
  51. package/.aiox-core/product/templates/prd.hbs +201 -201
  52. package/.aiox-core/product/templates/story.hbs +263 -263
  53. package/.aiox-core/product/templates/task.hbs +170 -170
  54. package/.aiox-core/product/templates/tmpl-comment-on-examples.sql +158 -158
  55. package/.aiox-core/product/templates/tmpl-migration-script.sql +91 -91
  56. package/.aiox-core/product/templates/tmpl-rls-granular-policies.sql +104 -104
  57. package/.aiox-core/product/templates/tmpl-rls-kiss-policy.sql +10 -10
  58. package/.aiox-core/product/templates/tmpl-rls-roles.sql +135 -135
  59. package/.aiox-core/product/templates/tmpl-rls-simple.sql +77 -77
  60. package/.aiox-core/product/templates/tmpl-rls-tenant.sql +152 -152
  61. package/.aiox-core/product/templates/tmpl-rollback-script.sql +77 -77
  62. package/.aiox-core/product/templates/tmpl-seed-data.sql +140 -140
  63. package/.aiox-core/product/templates/tmpl-smoke-test.sql +16 -16
  64. package/.aiox-core/product/templates/tmpl-staging-copy-merge.sql +139 -139
  65. package/.aiox-core/product/templates/tmpl-stored-proc.sql +140 -140
  66. package/.aiox-core/product/templates/tmpl-trigger.sql +152 -152
  67. package/.aiox-core/product/templates/tmpl-view-materialized.sql +133 -133
  68. package/.aiox-core/product/templates/tmpl-view.sql +177 -177
  69. package/.aiox-core/scripts/pm.sh +0 -0
  70. package/.claude/hooks/enforce-architecture-first.py +196 -196
  71. package/.claude/hooks/mind-clone-governance.py +192 -192
  72. package/.claude/hooks/precompact-session-digest.cjs +47 -12
  73. package/.claude/hooks/read-protection.py +151 -151
  74. package/.claude/hooks/slug-validation.py +176 -176
  75. package/.claude/hooks/sql-governance.py +182 -182
  76. package/.claude/hooks/synapse-engine.cjs +13 -13
  77. package/.claude/hooks/write-path-validation.py +194 -194
  78. package/LICENSE +33 -33
  79. package/README.en.md +23 -37
  80. package/README.md +26 -38
  81. package/bin/aiox-graph.js +0 -0
  82. package/bin/aiox-minimal.js +0 -0
  83. package/bin/aiox.js +0 -0
  84. package/package.json +1 -1
  85. package/packages/aiox-install/bin/aiox-install.js +0 -0
  86. package/packages/aiox-install/bin/edmcp.js +0 -0
  87. package/packages/aiox-pro-cli/bin/aiox-pro.js +0 -0
  88. package/packages/installer/src/wizard/i18n.js +18 -15
  89. package/packages/installer/src/wizard/pro-setup.js +302 -40
  90. package/scripts/check-markdown-links.py +352 -352
  91. package/scripts/dashboard-parallel-dev.sh +0 -0
  92. package/scripts/dashboard-parallel-phase3.sh +0 -0
  93. package/scripts/dashboard-parallel-phase4.sh +0 -0
  94. package/scripts/install-monitor-hooks.sh +0 -0
  95. package/.aiox-core/data/registry-update-log.jsonl +0 -2
  96. package/.claude/hooks/code-intel-pretool.cjs +0 -107
  97. package/docs/guides/aios-workflows/README.md +0 -247
  98. package/docs/guides/aios-workflows/bob-orchestrator-workflow.md +0 -1536
  99. package/pro/README.md +0 -66
  100. package/pro/feature-registry.yaml +0 -223
  101. package/pro/license/degradation.js +0 -220
  102. package/pro/license/errors.js +0 -450
  103. package/pro/license/feature-gate.js +0 -354
  104. package/pro/license/index.js +0 -181
  105. package/pro/license/license-api.js +0 -679
  106. package/pro/license/license-cache.js +0 -523
  107. package/pro/license/license-crypto.js +0 -303
  108. package/pro/package.json +0 -39
  109. package/pro/pro-config.yaml +0 -63
  110. package/pro/squads/README.md +0 -24
  111. package/pro/squads/design/HEADLINE.md +0 -3
  112. package/pro/squads/design/README.md +0 -109
  113. package/pro/squads/design/agents/brad-frost.md +0 -1097
  114. package/pro/squads/design/agents/dan-mall.md +0 -857
  115. package/pro/squads/design/agents/dave-malouf.md +0 -2272
  116. package/pro/squads/design/agents/design-chief.md +0 -114
  117. package/pro/squads/design/agents/ds-foundations-lead.md +0 -194
  118. package/pro/squads/design/agents/ds-token-architect.md +0 -361
  119. package/pro/squads/design/agents/nano-banana-generator.md +0 -162
  120. package/pro/squads/design/agents/storybook-expert.md +0 -809
  121. package/pro/squads/design/checklists/atomic-refactor-checklist.md +0 -299
  122. package/pro/squads/design/checklists/component-adaptation-checklist.md +0 -81
  123. package/pro/squads/design/checklists/design-fidelity-checklist.md +0 -283
  124. package/pro/squads/design/checklists/design-handoff-checklist.md +0 -55
  125. package/pro/squads/design/checklists/design-team-health-checklist.md +0 -454
  126. package/pro/squads/design/checklists/designops-maturity-checklist.md +0 -518
  127. package/pro/squads/design/checklists/ds-a11y-release-gate-checklist.md +0 -45
  128. package/pro/squads/design/checklists/ds-accessibility-wcag-checklist.md +0 -147
  129. package/pro/squads/design/checklists/ds-component-quality-checklist.md +0 -150
  130. package/pro/squads/design/checklists/ds-critical-eye-review-checklist.md +0 -147
  131. package/pro/squads/design/checklists/ds-migration-readiness-checklist.md +0 -99
  132. package/pro/squads/design/checklists/ds-pattern-audit-checklist.md +0 -164
  133. package/pro/squads/design/checklists/reading-accessibility-checklist.md +0 -275
  134. package/pro/squads/design/checklists/token-mapping-checklist.md +0 -107
  135. package/pro/squads/design/config/coding-standards.md +0 -286
  136. package/pro/squads/design/config/source-tree.md +0 -59
  137. package/pro/squads/design/config/tech-stack.md +0 -48
  138. package/pro/squads/design/config.yaml +0 -204
  139. package/pro/squads/design/data/agentic-design-systems-guide.md +0 -46
  140. package/pro/squads/design/data/agentic-ds-principles.md +0 -100
  141. package/pro/squads/design/data/atomic-design-principles.md +0 -108
  142. package/pro/squads/design/data/atomic-refactor-rules.md +0 -582
  143. package/pro/squads/design/data/base-component-specs.md +0 -972
  144. package/pro/squads/design/data/brad-frost-analysis-extract-implicit.yaml +0 -270
  145. package/pro/squads/design/data/brad-frost-analysis-find-0.8.yaml +0 -176
  146. package/pro/squads/design/data/brad-frost-analysis-qa-report.yaml +0 -168
  147. package/pro/squads/design/data/brad-frost-dna.yaml +0 -713
  148. package/pro/squads/design/data/capability-tools.yaml +0 -124
  149. package/pro/squads/design/data/component-adaptation-changelog.md +0 -318
  150. package/pro/squads/design/data/consolidation-algorithms.md +0 -168
  151. package/pro/squads/design/data/critical-eye-scoring-rules.yaml +0 -240
  152. package/pro/squads/design/data/design-token-best-practices.md +0 -107
  153. package/pro/squads/design/data/design-tokens-spec.yaml +0 -418
  154. package/pro/squads/design/data/ds-reference-architectures.md +0 -93
  155. package/pro/squads/design/data/f2-qa-report.md +0 -168
  156. package/pro/squads/design/data/f3-derived-components-changelog.md +0 -100
  157. package/pro/squads/design/data/f3-qa-report.md +0 -208
  158. package/pro/squads/design/data/figma-base-components-raw.md +0 -102
  159. package/pro/squads/design/data/figma-tokens-raw.md +0 -1549
  160. package/pro/squads/design/data/fluent2-design-principles.md +0 -114
  161. package/pro/squads/design/data/high-retention-reading-guide.md +0 -349
  162. package/pro/squads/design/data/integration-patterns.md +0 -207
  163. package/pro/squads/design/data/internal-quality-chain.yaml +0 -48
  164. package/pro/squads/design/data/motion-tokens-guide.md +0 -202
  165. package/pro/squads/design/data/roi-calculation-guide.md +0 -142
  166. package/pro/squads/design/data/token-mapping-reference.md +0 -213
  167. package/pro/squads/design/data/w3c-dtcg-spec-reference.md +0 -149
  168. package/pro/squads/design/data/wcag-compliance-guide.md +0 -267
  169. package/pro/squads/design/docs/AUDIT_REPORT.md +0 -97
  170. package/pro/squads/design/docs/DS-CURATION-PIPELINE-PROPOSAL.md +0 -577
  171. package/pro/squads/design/docs/UPGRADE_PLAN.md +0 -618
  172. package/pro/squads/design/docs/brad-frost-research-validation.md +0 -372
  173. package/pro/squads/design/docs/dave-malouf-research-validation.md +0 -391
  174. package/pro/squads/design/docs/tool-discovery-report.md +0 -87
  175. package/pro/squads/design/docs/tool-integration-plan.md +0 -44
  176. package/pro/squads/design/protocols/ai-first-governance.md +0 -56
  177. package/pro/squads/design/protocols/governance-execution-boundary.md +0 -59
  178. package/pro/squads/design/protocols/handoff.md +0 -60
  179. package/pro/squads/design/rules/.claude-rules.md +0 -88
  180. package/pro/squads/design/scripts/design-system/curate_colors.cjs +0 -447
  181. package/pro/squads/design/scripts/design-system/curate_components.cjs +0 -217
  182. package/pro/squads/design/scripts/design-system/curate_radius.cjs +0 -190
  183. package/pro/squads/design/scripts/design-system/curate_shadows.cjs +0 -208
  184. package/pro/squads/design/scripts/design-system/curate_spacing.cjs +0 -243
  185. package/pro/squads/design/scripts/design-system/curate_typography.cjs +0 -404
  186. package/pro/squads/design/scripts/design-system/design-system-metadata.test.js +0 -49
  187. package/pro/squads/design/scripts/design-system/design_manifest_lib.cjs +0 -142
  188. package/pro/squads/design/scripts/design-system/fetch_page_images.cjs +0 -195
  189. package/pro/squads/design/scripts/design-system/generate_components_metadata.cjs +0 -114
  190. package/pro/squads/design/scripts/design-system/generate_curation_report.cjs +0 -258
  191. package/pro/squads/design/scripts/design-system/generate_tokens.cjs +0 -342
  192. package/pro/squads/design/scripts/design-system/sync_design_manifest.cjs +0 -27
  193. package/pro/squads/design/scripts/design-system/test_mcp_tools.cjs +0 -232
  194. package/pro/squads/design/scripts/design-system/validate_components_metadata.cjs +0 -96
  195. package/pro/squads/design/scripts/design-system/validate_curation.cjs +0 -226
  196. package/pro/squads/design/scripts/design-system/validate_design_manifest_drift.cjs +0 -72
  197. package/pro/squads/design/scripts/design-system/validate_mcp_skeleton.cjs +0 -38
  198. package/pro/squads/design/scripts/design-system/validate_registry.cjs +0 -186
  199. package/pro/squads/design/scripts/design-system/validate_task_checklist_bindings.cjs +0 -78
  200. package/pro/squads/design/scripts/dissect-artifact.cjs +0 -806
  201. package/pro/squads/design/scripts/validate-a11y-integration.cjs +0 -40
  202. package/pro/squads/design/scripts/validate-design-squad.py +0 -411
  203. package/pro/squads/design/squad.yaml +0 -714
  204. package/pro/squads/design/tasks/a11y-audit.md +0 -340
  205. package/pro/squads/design/tasks/aria-audit.md +0 -525
  206. package/pro/squads/design/tasks/atomic-refactor-execute.md +0 -391
  207. package/pro/squads/design/tasks/atomic-refactor-plan.md +0 -262
  208. package/pro/squads/design/tasks/audit-reading-experience.md +0 -350
  209. package/pro/squads/design/tasks/audit-tailwind-config.md +0 -101
  210. package/pro/squads/design/tasks/bootstrap-shadcn-library.md +0 -96
  211. package/pro/squads/design/tasks/bundle-audit.md +0 -245
  212. package/pro/squads/design/tasks/contrast-matrix.md +0 -373
  213. package/pro/squads/design/tasks/create-doc.md +0 -135
  214. package/pro/squads/design/tasks/dead-code-detection.md +0 -329
  215. package/pro/squads/design/tasks/design-compare.md +0 -414
  216. package/pro/squads/design/tasks/design-process-optimization.md +0 -407
  217. package/pro/squads/design/tasks/design-review-orchestration.md +0 -99
  218. package/pro/squads/design/tasks/design-team-scaling.md +0 -407
  219. package/pro/squads/design/tasks/design-tooling-audit.md +0 -404
  220. package/pro/squads/design/tasks/design-triage.md +0 -89
  221. package/pro/squads/design/tasks/designops-maturity-assessment.md +0 -364
  222. package/pro/squads/design/tasks/designops-metrics-setup.md +0 -465
  223. package/pro/squads/design/tasks/ds-agentic-audit.md +0 -100
  224. package/pro/squads/design/tasks/ds-agentic-setup.md +0 -103
  225. package/pro/squads/design/tasks/ds-audit-codebase.md +0 -273
  226. package/pro/squads/design/tasks/ds-build-component.md +0 -349
  227. package/pro/squads/design/tasks/ds-build-mcp-server.md +0 -84
  228. package/pro/squads/design/tasks/ds-calculate-roi.md +0 -282
  229. package/pro/squads/design/tasks/ds-compose-molecule.md +0 -106
  230. package/pro/squads/design/tasks/ds-consolidate-patterns.md +0 -253
  231. package/pro/squads/design/tasks/ds-context-contract.md +0 -194
  232. package/pro/squads/design/tasks/ds-critical-eye-compare.md +0 -130
  233. package/pro/squads/design/tasks/ds-critical-eye-decide.md +0 -139
  234. package/pro/squads/design/tasks/ds-critical-eye-inventory.md +0 -111
  235. package/pro/squads/design/tasks/ds-critical-eye-report.md +0 -101
  236. package/pro/squads/design/tasks/ds-critical-eye-score.md +0 -109
  237. package/pro/squads/design/tasks/ds-designops.md +0 -99
  238. package/pro/squads/design/tasks/ds-extend-pattern.md +0 -91
  239. package/pro/squads/design/tasks/ds-extract-tokens.md +0 -312
  240. package/pro/squads/design/tasks/ds-figma-pipeline.md +0 -95
  241. package/pro/squads/design/tasks/ds-fluent-audit.md +0 -105
  242. package/pro/squads/design/tasks/ds-fluent-build.md +0 -110
  243. package/pro/squads/design/tasks/ds-generate-ai-metadata.md +0 -81
  244. package/pro/squads/design/tasks/ds-generate-cursor-rules.md +0 -74
  245. package/pro/squads/design/tasks/ds-generate-documentation.md +0 -101
  246. package/pro/squads/design/tasks/ds-generate-migration-strategy.md +0 -331
  247. package/pro/squads/design/tasks/ds-generate-shock-report.md +0 -323
  248. package/pro/squads/design/tasks/ds-govern-a11y-compliance.md +0 -93
  249. package/pro/squads/design/tasks/ds-governance.md +0 -187
  250. package/pro/squads/design/tasks/ds-health-metrics.md +0 -278
  251. package/pro/squads/design/tasks/ds-integrate-squad.md +0 -130
  252. package/pro/squads/design/tasks/ds-integrate-workspace.md +0 -100
  253. package/pro/squads/design/tasks/ds-legacy-modernization.md +0 -302
  254. package/pro/squads/design/tasks/ds-mcp-status.md +0 -65
  255. package/pro/squads/design/tasks/ds-motion-audit.md +0 -118
  256. package/pro/squads/design/tasks/ds-multi-framework.md +0 -96
  257. package/pro/squads/design/tasks/ds-parallelization-gate.md +0 -246
  258. package/pro/squads/design/tasks/ds-query.md +0 -90
  259. package/pro/squads/design/tasks/ds-rebuild-artifact.md +0 -369
  260. package/pro/squads/design/tasks/ds-reverse-engineer.md +0 -194
  261. package/pro/squads/design/tasks/ds-scan-artifact.md +0 -131
  262. package/pro/squads/design/tasks/ds-setup-design-system.md +0 -297
  263. package/pro/squads/design/tasks/ds-sync-registry.md +0 -287
  264. package/pro/squads/design/tasks/ds-theme-multi-brand.md +0 -90
  265. package/pro/squads/design/tasks/ds-token-modes.md +0 -108
  266. package/pro/squads/design/tasks/ds-token-w3c-extract.md +0 -105
  267. package/pro/squads/design/tasks/ds-validate-ai-readiness.md +0 -69
  268. package/pro/squads/design/tasks/ds-visual-regression.md +0 -130
  269. package/pro/squads/design/tasks/execute-checklist.md +0 -141
  270. package/pro/squads/design/tasks/export-design-tokens-dtcg.md +0 -97
  271. package/pro/squads/design/tasks/f1-apply-foundations.md +0 -154
  272. package/pro/squads/design/tasks/f1-ingest-figma-tokens.md +0 -130
  273. package/pro/squads/design/tasks/f1-map-tokens-to-shadcn.md +0 -145
  274. package/pro/squads/design/tasks/f1-qa-foundations.md +0 -95
  275. package/pro/squads/design/tasks/f2-adapt-shadcn-components.md +0 -155
  276. package/pro/squads/design/tasks/f2-ingest-base-components.md +0 -148
  277. package/pro/squads/design/tasks/f2-qa-base-components.md +0 -98
  278. package/pro/squads/design/tasks/f3-derive-components.md +0 -145
  279. package/pro/squads/design/tasks/f3-qa-derived-components.md +0 -101
  280. package/pro/squads/design/tasks/focus-order-audit.md +0 -450
  281. package/pro/squads/design/tasks/sb-brownfield-migrate.md +0 -367
  282. package/pro/squads/design/tasks/sb-brownfield-scan.md +0 -318
  283. package/pro/squads/design/tasks/sb-configure.md +0 -230
  284. package/pro/squads/design/tasks/sb-expand-shadcn.md +0 -213
  285. package/pro/squads/design/tasks/sb-generate-all-stories.md +0 -288
  286. package/pro/squads/design/tasks/sb-install.md +0 -152
  287. package/pro/squads/design/tasks/sb-sync-workspace.md +0 -239
  288. package/pro/squads/design/tasks/sb-verify.md +0 -203
  289. package/pro/squads/design/tasks/tailwind-upgrade.md +0 -117
  290. package/pro/squads/design/tasks/token-usage-analytics.md +0 -262
  291. package/pro/squads/design/tasks/ux-rewrite-sixth-grade.md +0 -82
  292. package/pro/squads/design/tasks/validate-design-fidelity.md +0 -222
  293. package/pro/squads/design/templates/agent-template.yaml +0 -46
  294. package/pro/squads/design/templates/clone-mind-template.md +0 -352
  295. package/pro/squads/design/templates/component-prompt-injection-tmpl.md +0 -236
  296. package/pro/squads/design/templates/component-visual-spec-tmpl.md +0 -378
  297. package/pro/squads/design/templates/critical-eye-cycle-report-tmpl.md +0 -165
  298. package/pro/squads/design/templates/design-fidelity-report-tmpl.md +0 -155
  299. package/pro/squads/design/templates/ds-ai-component-metadata-schema-tmpl.json +0 -138
  300. package/pro/squads/design/templates/ds-artifact-analysis.md +0 -70
  301. package/pro/squads/design/templates/ds-health-report-tmpl.md +0 -236
  302. package/pro/squads/design/templates/ds-migration-strategy-tmpl.md +0 -524
  303. package/pro/squads/design/templates/ds-state-persistence-tmpl.yaml +0 -194
  304. package/pro/squads/design/templates/ds-tokens-schema-tmpl.yaml +0 -139
  305. package/pro/squads/design/templates/migration-strategy-tmpl.md +0 -524
  306. package/pro/squads/design/templates/reading-design-tokens.css +0 -26
  307. package/pro/squads/design/templates/state-persistence-tmpl.yaml +0 -219
  308. package/pro/squads/design/templates/tokens-schema-tmpl.yaml +0 -305
  309. package/pro/squads/design/workflows/agentic-readiness.yaml +0 -83
  310. package/pro/squads/design/workflows/audit-only.yaml +0 -198
  311. package/pro/squads/design/workflows/brownfield-complete.yaml +0 -257
  312. package/pro/squads/design/workflows/critical-eye.yaml +0 -184
  313. package/pro/squads/design/workflows/dtcg-tokens-governance.yaml +0 -64
  314. package/pro/squads/design/workflows/foundations-pipeline.yaml +0 -192
  315. package/pro/squads/design/workflows/greenfield-new.yaml +0 -192
  316. package/pro/squads/design/workflows/motion-quality.yaml +0 -65
  317. package/pro/squads/design/workflows/self-healing-workflow.yaml +0 -237
  318. package/pro/squads/design/workflows/storybook-brownfield-migration.yaml +0 -400
  319. package/pro/squads/design/workflows/storybook-full-setup.yaml +0 -280
  320. package/pro/squads/index.js +0 -145
  321. package/pro/squads/squad-creator-pro/.state.json +0 -32
  322. package/pro/squads/squad-creator-pro/CHANGELOG.md +0 -275
  323. package/pro/squads/squad-creator-pro/HEADLINE.md +0 -3
  324. package/pro/squads/squad-creator-pro/README.md +0 -1059
  325. package/pro/squads/squad-creator-pro/agents/oalanicolas.md +0 -438
  326. package/pro/squads/squad-creator-pro/agents/pedro-valerio.md +0 -449
  327. package/pro/squads/squad-creator-pro/agents/squad-chief.md +0 -1651
  328. package/pro/squads/squad-creator-pro/agents/thiago_finch.md +0 -976
  329. package/pro/squads/squad-creator-pro/assessments/axioma-assessment-wf-create-squad.yaml +0 -325
  330. package/pro/squads/squad-creator-pro/checklists/.gitkeep +0 -1
  331. package/pro/squads/squad-creator-pro/checklists/agent-depth-checklist.md +0 -244
  332. package/pro/squads/squad-creator-pro/checklists/agent-quality-gate.md +0 -434
  333. package/pro/squads/squad-creator-pro/checklists/create-agent-checklist.md +0 -184
  334. package/pro/squads/squad-creator-pro/checklists/create-squad-checklist.md +0 -219
  335. package/pro/squads/squad-creator-pro/checklists/create-workflow-checklist.md +0 -224
  336. package/pro/squads/squad-creator-pro/checklists/deep-research-quality.md +0 -506
  337. package/pro/squads/squad-creator-pro/checklists/executor-matrix-checklist.md +0 -260
  338. package/pro/squads/squad-creator-pro/checklists/mental-model-integration-checklist.md +0 -95
  339. package/pro/squads/squad-creator-pro/checklists/mind-validation.md +0 -374
  340. package/pro/squads/squad-creator-pro/checklists/quality-gate-checklist.md +0 -385
  341. package/pro/squads/squad-creator-pro/checklists/smoke-test-agent.md +0 -313
  342. package/pro/squads/squad-creator-pro/checklists/sop-validation.md +0 -250
  343. package/pro/squads/squad-creator-pro/checklists/squad-checklist.md +0 -1014
  344. package/pro/squads/squad-creator-pro/checklists/squad-overview-checklist.md +0 -393
  345. package/pro/squads/squad-creator-pro/checklists/task-anatomy-checklist.md +0 -626
  346. package/pro/squads/squad-creator-pro/config/.gitkeep +0 -1
  347. package/pro/squads/squad-creator-pro/config/axioma-validator.yaml +0 -371
  348. package/pro/squads/squad-creator-pro/config/heuristics.yaml +0 -753
  349. package/pro/squads/squad-creator-pro/config/model-routing.yaml +0 -693
  350. package/pro/squads/squad-creator-pro/config/quality-gates.yaml +0 -415
  351. package/pro/squads/squad-creator-pro/config/scoring-rubric.yaml +0 -199
  352. package/pro/squads/squad-creator-pro/config/squad-config.yaml +0 -165
  353. package/pro/squads/squad-creator-pro/config/task-anatomy.yaml +0 -263
  354. package/pro/squads/squad-creator-pro/config/veto-conditions.yaml +0 -455
  355. package/pro/squads/squad-creator-pro/config.yaml +0 -35
  356. package/pro/squads/squad-creator-pro/data/.gitkeep +0 -1
  357. package/pro/squads/squad-creator-pro/data/an-anchor-words.yaml +0 -78
  358. package/pro/squads/squad-creator-pro/data/an-clone-anti-patterns.yaml +0 -148
  359. package/pro/squads/squad-creator-pro/data/an-clone-validation.yaml +0 -190
  360. package/pro/squads/squad-creator-pro/data/an-diagnostic-framework.yaml +0 -164
  361. package/pro/squads/squad-creator-pro/data/an-output-examples.yaml +0 -102
  362. package/pro/squads/squad-creator-pro/data/an-source-signals.yaml +0 -98
  363. package/pro/squads/squad-creator-pro/data/an-source-tiers.yaml +0 -119
  364. package/pro/squads/squad-creator-pro/data/best-practices.md +0 -986
  365. package/pro/squads/squad-creator-pro/data/core-heuristics.md +0 -510
  366. package/pro/squads/squad-creator-pro/data/decision-heuristics-framework.md +0 -620
  367. package/pro/squads/squad-creator-pro/data/executor-decision-tree.md +0 -774
  368. package/pro/squads/squad-creator-pro/data/executor-matrix-framework.md +0 -441
  369. package/pro/squads/squad-creator-pro/data/fusion-decision-points-analysis.md +0 -397
  370. package/pro/squads/squad-creator-pro/data/fusion-executor-analysis.md +0 -677
  371. package/pro/squads/squad-creator-pro/data/hybridops-patterns.md +0 -1351
  372. package/pro/squads/squad-creator-pro/data/internal-infrastructure-library.yaml +0 -99
  373. package/pro/squads/squad-creator-pro/data/mental-model-task-matrix.yaml +0 -692
  374. package/pro/squads/squad-creator-pro/data/pipeline-patterns.md +0 -352
  375. package/pro/squads/squad-creator-pro/data/pm-best-practices.md +0 -440
  376. package/pro/squads/squad-creator-pro/data/pv-anchor-words.yaml +0 -64
  377. package/pro/squads/squad-creator-pro/data/pv-authenticity-markers.yaml +0 -200
  378. package/pro/squads/squad-creator-pro/data/pv-meta-axiomas.yaml +0 -162
  379. package/pro/squads/squad-creator-pro/data/pv-output-examples.yaml +0 -342
  380. package/pro/squads/squad-creator-pro/data/pv-workflow-validation.yaml +0 -318
  381. package/pro/squads/squad-creator-pro/data/quality-dimensions-framework.md +0 -405
  382. package/pro/squads/squad-creator-pro/data/squad-analytics-guide.md +0 -252
  383. package/pro/squads/squad-creator-pro/data/squad-kb.md +0 -987
  384. package/pro/squads/squad-creator-pro/data/squad-registry.yaml +0 -841
  385. package/pro/squads/squad-creator-pro/data/squad-type-definitions.yaml +0 -578
  386. package/pro/squads/squad-creator-pro/data/tier-system-framework.md +0 -475
  387. package/pro/squads/squad-creator-pro/data/tool-evaluation-framework.md +0 -847
  388. package/pro/squads/squad-creator-pro/data/tool-registry.yaml +0 -700
  389. package/pro/squads/squad-creator-pro/docs/ADR-001-model-tier-qualification.md +0 -344
  390. package/pro/squads/squad-creator-pro/docs/AGENT-COLLABORATION.md +0 -609
  391. package/pro/squads/squad-creator-pro/docs/ARCHITECTURE-DIAGRAMS.md +0 -1466
  392. package/pro/squads/squad-creator-pro/docs/COMMANDS.md +0 -544
  393. package/pro/squads/squad-creator-pro/docs/CONCEPTS.md +0 -584
  394. package/pro/squads/squad-creator-pro/docs/FAQ.md +0 -731
  395. package/pro/squads/squad-creator-pro/docs/HITL-FLOW.md +0 -255
  396. package/pro/squads/squad-creator-pro/docs/MIGRATION-PLAN-AGENT-CONFORMITY.md +0 -861
  397. package/pro/squads/squad-creator-pro/docs/MIGRATION-ROADMAP-HYBRIDOPS.md +0 -1161
  398. package/pro/squads/squad-creator-pro/docs/MODEL-TIER-QUALIFICATION.md +0 -337
  399. package/pro/squads/squad-creator-pro/docs/PATTERN-LIBRARY.md +0 -333
  400. package/pro/squads/squad-creator-pro/docs/PEDRO-VALERIO-ARCHITECTURE.md +0 -456
  401. package/pro/squads/squad-creator-pro/docs/POR-ONDE-COMECAR.md +0 -210
  402. package/pro/squads/squad-creator-pro/docs/QUICK-START.md +0 -205
  403. package/pro/squads/squad-creator-pro/docs/RFC-001-deterministic-refactoring.md +0 -463
  404. package/pro/squads/squad-creator-pro/docs/TOOL-RECOMMENDATIONS.md +0 -379
  405. package/pro/squads/squad-creator-pro/docs/TROUBLESHOOTING.md +0 -412
  406. package/pro/squads/squad-creator-pro/docs/TUTORIAL-COMPLETO.md +0 -458
  407. package/pro/squads/squad-creator-pro/docs/optimize-v4-proposal.md +0 -354
  408. package/pro/squads/squad-creator-pro/docs/session-report-2026-02-01.md +0 -411
  409. package/pro/squads/squad-creator-pro/docs/sop-extraction-process.md +0 -674
  410. package/pro/squads/squad-creator-pro/docs/squad-chief-agent-flow.md +0 -981
  411. package/pro/squads/squad-creator-pro/docs/squad-creation-pipeline-workflow.md +0 -937
  412. package/pro/squads/squad-creator-pro/docs/task-optimization-framework.md +0 -229
  413. package/pro/squads/squad-creator-pro/docs/validation-report-2026-02-01.md +0 -439
  414. package/pro/squads/squad-creator-pro/minds/oalanicolas/artifacts/HANDOFF_PROTOCOL.md +0 -269
  415. package/pro/squads/squad-creator-pro/minds/oalanicolas/artifacts/SOURCE_CLASSIFICATION.md +0 -258
  416. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_001.md +0 -166
  417. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_002.md +0 -206
  418. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_003.md +0 -239
  419. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_004.md +0 -153
  420. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_005.md +0 -161
  421. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_006.md +0 -166
  422. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_007.md +0 -190
  423. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_008.md +0 -191
  424. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_009.md +0 -234
  425. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_010.md +0 -240
  426. package/pro/squads/squad-creator-pro/minds/pedro_valerio/artifacts/Assinatura_Linguistica.md +0 -355
  427. package/pro/squads/squad-creator-pro/minds/pedro_valerio/artifacts/META_AXIOMAS.md +0 -277
  428. package/pro/squads/squad-creator-pro/minds/pedro_valerio/heuristics/PV_BS_001.md +0 -144
  429. package/pro/squads/squad-creator-pro/minds/pedro_valerio/heuristics/PV_PA_001.md +0 -174
  430. package/pro/squads/squad-creator-pro/minds/pedro_valerio/heuristics/PV_PM_001.md +0 -191
  431. package/pro/squads/squad-creator-pro/package.json +0 -26
  432. package/pro/squads/squad-creator-pro/protocols/ai-first-governance.md +0 -63
  433. package/pro/squads/squad-creator-pro/scripts/README.md +0 -246
  434. package/pro/squads/squad-creator-pro/scripts/__pycache__/dependency_check.cpython-314.pyc +0 -0
  435. package/pro/squads/squad-creator-pro/scripts/__pycache__/inventory.cpython-314.pyc +0 -0
  436. package/pro/squads/squad-creator-pro/scripts/__pycache__/naming_validator.cpython-314.pyc +0 -0
  437. package/pro/squads/squad-creator-pro/scripts/__pycache__/quality_gate.cpython-314.pyc +0 -0
  438. package/pro/squads/squad-creator-pro/scripts/__pycache__/scoring.cpython-314.pyc +0 -0
  439. package/pro/squads/squad-creator-pro/scripts/__pycache__/yaml_validator.cpython-314.pyc +0 -0
  440. package/pro/squads/squad-creator-pro/scripts/assess-sources.sh +0 -443
  441. package/pro/squads/squad-creator-pro/scripts/checklist_validator.py +0 -451
  442. package/pro/squads/squad-creator-pro/scripts/clone-review.sh +0 -394
  443. package/pro/squads/squad-creator-pro/scripts/coherence-validator.py +0 -836
  444. package/pro/squads/squad-creator-pro/scripts/create-agent-preflight.py +0 -243
  445. package/pro/squads/squad-creator-pro/scripts/cross-provider/compare-results.js +0 -281
  446. package/pro/squads/squad-creator-pro/scripts/cross-provider/cross-provider-runner.js +0 -462
  447. package/pro/squads/squad-creator-pro/scripts/dependency_check.py +0 -333
  448. package/pro/squads/squad-creator-pro/scripts/fidelity-score.sh +0 -519
  449. package/pro/squads/squad-creator-pro/scripts/generate-squad-greeting.js +0 -426
  450. package/pro/squads/squad-creator-pro/scripts/generate-squad-guide.js +0 -558
  451. package/pro/squads/squad-creator-pro/scripts/inventory.py +0 -269
  452. package/pro/squads/squad-creator-pro/scripts/lib/config-loader.js +0 -151
  453. package/pro/squads/squad-creator-pro/scripts/model-tier-validator.cjs +0 -369
  454. package/pro/squads/squad-creator-pro/scripts/model-usage-logger.cjs +0 -245
  455. package/pro/squads/squad-creator-pro/scripts/modernization-score.sh +0 -308
  456. package/pro/squads/squad-creator-pro/scripts/naming_validator.py +0 -299
  457. package/pro/squads/squad-creator-pro/scripts/on-specialist-complete.py +0 -98
  458. package/pro/squads/squad-creator-pro/scripts/quality_gate.py +0 -413
  459. package/pro/squads/squad-creator-pro/scripts/refresh-registry.py +0 -270
  460. package/pro/squads/squad-creator-pro/scripts/save-session-metrics.py +0 -136
  461. package/pro/squads/squad-creator-pro/scripts/scaffold-squad.cjs +0 -281
  462. package/pro/squads/squad-creator-pro/scripts/scoring.py +0 -395
  463. package/pro/squads/squad-creator-pro/scripts/security_scanner.py +0 -378
  464. package/pro/squads/squad-creator-pro/scripts/squad-analytics.py +0 -585
  465. package/pro/squads/squad-creator-pro/scripts/squad-context-loader.cjs +0 -205
  466. package/pro/squads/squad-creator-pro/scripts/squad-state-manager.cjs +0 -451
  467. package/pro/squads/squad-creator-pro/scripts/squad-workflow-runner.cjs +0 -471
  468. package/pro/squads/squad-creator-pro/scripts/squad_utils.py +0 -261
  469. package/pro/squads/squad-creator-pro/scripts/sync-ide-command.py +0 -590
  470. package/pro/squads/squad-creator-pro/scripts/tests/__init__.py +0 -1
  471. package/pro/squads/squad-creator-pro/scripts/tests/conftest.py +0 -309
  472. package/pro/squads/squad-creator-pro/scripts/tests/run_bash_tests.sh +0 -29
  473. package/pro/squads/squad-creator-pro/scripts/tests/test_assess_sources.sh +0 -216
  474. package/pro/squads/squad-creator-pro/scripts/tests/test_checklist_validator.py +0 -396
  475. package/pro/squads/squad-creator-pro/scripts/tests/test_clone_review.sh +0 -239
  476. package/pro/squads/squad-creator-pro/scripts/tests/test_coherence_validator.py +0 -212
  477. package/pro/squads/squad-creator-pro/scripts/tests/test_dependency_check.py +0 -361
  478. package/pro/squads/squad-creator-pro/scripts/tests/test_fidelity_score.sh +0 -298
  479. package/pro/squads/squad-creator-pro/scripts/tests/test_inventory.py +0 -307
  480. package/pro/squads/squad-creator-pro/scripts/tests/test_modernization_score.sh +0 -211
  481. package/pro/squads/squad-creator-pro/scripts/tests/test_naming_validator.py +0 -373
  482. package/pro/squads/squad-creator-pro/scripts/tests/test_quality_gate.py +0 -280
  483. package/pro/squads/squad-creator-pro/scripts/tests/test_refresh_registry.py +0 -338
  484. package/pro/squads/squad-creator-pro/scripts/tests/test_scoring.py +0 -366
  485. package/pro/squads/squad-creator-pro/scripts/tests/test_security_scanner.py +0 -354
  486. package/pro/squads/squad-creator-pro/scripts/tests/test_squad_analytics.py +0 -450
  487. package/pro/squads/squad-creator-pro/scripts/tests/test_validate_clone.sh +0 -252
  488. package/pro/squads/squad-creator-pro/scripts/tests/test_yaml_validator.py +0 -412
  489. package/pro/squads/squad-creator-pro/scripts/validate-agent-output.py +0 -115
  490. package/pro/squads/squad-creator-pro/scripts/validate-all.sh +0 -49
  491. package/pro/squads/squad-creator-pro/scripts/validate-squad-structure.py +0 -535
  492. package/pro/squads/squad-creator-pro/scripts/validate-squad.sh +0 -944
  493. package/pro/squads/squad-creator-pro/scripts/yaml_validator.py +0 -528
  494. package/pro/squads/squad-creator-pro/skills/squad.md +0 -301
  495. package/pro/squads/squad-creator-pro/squad.yaml +0 -36
  496. package/pro/squads/squad-creator-pro/tasks/CHANGELOG.md +0 -80
  497. package/pro/squads/squad-creator-pro/tasks/an-assess-sources.md +0 -78
  498. package/pro/squads/squad-creator-pro/tasks/an-clone-review.md +0 -104
  499. package/pro/squads/squad-creator-pro/tasks/an-compare-outputs.md +0 -354
  500. package/pro/squads/squad-creator-pro/tasks/an-design-clone.md +0 -79
  501. package/pro/squads/squad-creator-pro/tasks/an-diagnose-clone.md +0 -87
  502. package/pro/squads/squad-creator-pro/tasks/an-extract-dna.md +0 -90
  503. package/pro/squads/squad-creator-pro/tasks/an-extract-framework.md +0 -100
  504. package/pro/squads/squad-creator-pro/tasks/an-fidelity-score.md +0 -108
  505. package/pro/squads/squad-creator-pro/tasks/an-validate-clone.md +0 -96
  506. package/pro/squads/squad-creator-pro/tasks/auto-acquire-sources.md +0 -349
  507. package/pro/squads/squad-creator-pro/tasks/collect-sources.md +0 -533
  508. package/pro/squads/squad-creator-pro/tasks/create-agent.md +0 -768
  509. package/pro/squads/squad-creator-pro/tasks/create-documentation.md +0 -258
  510. package/pro/squads/squad-creator-pro/tasks/create-pipeline.md +0 -296
  511. package/pro/squads/squad-creator-pro/tasks/create-squad.md +0 -933
  512. package/pro/squads/squad-creator-pro/tasks/create-task.md +0 -1148
  513. package/pro/squads/squad-creator-pro/tasks/create-template.md +0 -474
  514. package/pro/squads/squad-creator-pro/tasks/create-workflow.md +0 -720
  515. package/pro/squads/squad-creator-pro/tasks/deconstruct.md +0 -167
  516. package/pro/squads/squad-creator-pro/tasks/deep-research-pre-agent.md +0 -566
  517. package/pro/squads/squad-creator-pro/tasks/detect-squad-context.md +0 -81
  518. package/pro/squads/squad-creator-pro/tasks/discover-tools.md +0 -944
  519. package/pro/squads/squad-creator-pro/tasks/extract-implicit.md +0 -352
  520. package/pro/squads/squad-creator-pro/tasks/extract-knowledge.md +0 -577
  521. package/pro/squads/squad-creator-pro/tasks/extract-sop.md +0 -320
  522. package/pro/squads/squad-creator-pro/tasks/extract-thinking-dna.md +0 -653
  523. package/pro/squads/squad-creator-pro/tasks/extract-voice-dna.md +0 -619
  524. package/pro/squads/squad-creator-pro/tasks/find-0.8.md +0 -222
  525. package/pro/squads/squad-creator-pro/tasks/install-commands.md +0 -373
  526. package/pro/squads/squad-creator-pro/tasks/lookup-model.md +0 -78
  527. package/pro/squads/squad-creator-pro/tasks/migrate-workflows-to-yaml.md +0 -259
  528. package/pro/squads/squad-creator-pro/tasks/next-squad.md +0 -487
  529. package/pro/squads/squad-creator-pro/tasks/optimize-workflow.md +0 -851
  530. package/pro/squads/squad-creator-pro/tasks/optimize.md +0 -1082
  531. package/pro/squads/squad-creator-pro/tasks/parallel-discovery.md +0 -58
  532. package/pro/squads/squad-creator-pro/tasks/pv-audit.md +0 -244
  533. package/pro/squads/squad-creator-pro/tasks/pv-axioma-assessment-wf-clone-mind.yaml +0 -256
  534. package/pro/squads/squad-creator-pro/tasks/pv-axioma-assessment.md +0 -83
  535. package/pro/squads/squad-creator-pro/tasks/pv-modernization-score.md +0 -83
  536. package/pro/squads/squad-creator-pro/tasks/qa-after-creation.md +0 -475
  537. package/pro/squads/squad-creator-pro/tasks/qualify-task.md +0 -265
  538. package/pro/squads/squad-creator-pro/tasks/reexecute-squad-phase.md +0 -64
  539. package/pro/squads/squad-creator-pro/tasks/refresh-registry.md +0 -403
  540. package/pro/squads/squad-creator-pro/tasks/smoke-test-model-routing.md +0 -167
  541. package/pro/squads/squad-creator-pro/tasks/squad-analytics.md +0 -265
  542. package/pro/squads/squad-creator-pro/tasks/squad-fusion.md +0 -817
  543. package/pro/squads/squad-creator-pro/tasks/squad-overview.md +0 -683
  544. package/pro/squads/squad-creator-pro/tasks/sync-ide-command.md +0 -392
  545. package/pro/squads/squad-creator-pro/tasks/update-mind.md +0 -428
  546. package/pro/squads/squad-creator-pro/tasks/upgrade-squad.md +0 -919
  547. package/pro/squads/squad-creator-pro/tasks/validate-extraction.md +0 -209
  548. package/pro/squads/squad-creator-pro/tasks/validate-final-artifacts.md +0 -80
  549. package/pro/squads/squad-creator-pro/tasks/validate-squad.md +0 -1385
  550. package/pro/squads/squad-creator-pro/templates/.gitkeep +0 -1
  551. package/pro/squads/squad-creator-pro/templates/agent-flow-doc-tmpl.md +0 -512
  552. package/pro/squads/squad-creator-pro/templates/agent-tmpl.md +0 -697
  553. package/pro/squads/squad-creator-pro/templates/config-tmpl.yaml +0 -352
  554. package/pro/squads/squad-creator-pro/templates/handoff-insumos-tmpl.yaml +0 -112
  555. package/pro/squads/squad-creator-pro/templates/orchestrator-tmpl.md +0 -74
  556. package/pro/squads/squad-creator-pro/templates/pipeline-progress-tmpl.py +0 -373
  557. package/pro/squads/squad-creator-pro/templates/pipeline-runner-tmpl.py +0 -444
  558. package/pro/squads/squad-creator-pro/templates/pipeline-state-tmpl.py +0 -413
  559. package/pro/squads/squad-creator-pro/templates/pop-extractor-prompt.md +0 -549
  560. package/pro/squads/squad-creator-pro/templates/quality-dashboard-tmpl.md +0 -286
  561. package/pro/squads/squad-creator-pro/templates/quality-gate-tmpl.yaml +0 -589
  562. package/pro/squads/squad-creator-pro/templates/readme-tmpl.md +0 -231
  563. package/pro/squads/squad-creator-pro/templates/research-output-tmpl.md +0 -625
  564. package/pro/squads/squad-creator-pro/templates/research-prompt-tmpl.md +0 -479
  565. package/pro/squads/squad-creator-pro/templates/squad-prd-tmpl.md +0 -464
  566. package/pro/squads/squad-creator-pro/templates/squad-readme-tmpl.md +0 -170
  567. package/pro/squads/squad-creator-pro/templates/story-create-agent-tmpl.md +0 -284
  568. package/pro/squads/squad-creator-pro/templates/task-tmpl.md +0 -461
  569. package/pro/squads/squad-creator-pro/templates/template-tmpl.yaml +0 -227
  570. package/pro/squads/squad-creator-pro/templates/workflow-doc-tmpl.md +0 -860
  571. package/pro/squads/squad-creator-pro/templates/workflow-tmpl.yaml +0 -394
  572. package/pro/squads/squad-creator-pro/test-cases/BATCH-PROGRESS.md +0 -268
  573. package/pro/squads/squad-creator-pro/test-cases/QUALIFICATION-DASHBOARD.yaml +0 -13
  574. package/pro/squads/squad-creator-pro/test-cases/_template.yaml +0 -147
  575. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/ASSESSMENT-SUMMARY.md +0 -275
  576. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/ASSESSMENT_SUMMARY.md +0 -140
  577. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/CHECKPOINT_MATRIX.md +0 -202
  578. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/EXECUTION-REPORT.md +0 -413
  579. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/EXECUTION_NOTES.md +0 -358
  580. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/README-v2.2.2.md +0 -299
  581. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/README.md +0 -320
  582. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/TEST-REPORT-v2.1.md +0 -351
  583. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/VERIFICATION-CHECKLIST.txt +0 -247
  584. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/formal-qualification-report.yaml +0 -389
  585. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-output.yaml +0 -366
  586. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.1-output.yaml +0 -452
  587. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.2.1-output.yaml +0 -281
  588. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.2.2-output.yaml +0 -332
  589. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/opus-baseline.yaml +0 -517
  590. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/qualification-report.yaml +0 -213
  591. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/test-case.yaml +0 -69
  592. package/pro/squads/squad-creator-pro/test-cases/an-clone-review/haiku-round-1.yaml +0 -213
  593. package/pro/squads/squad-creator-pro/test-cases/an-clone-review/opus-baseline.yaml +0 -566
  594. package/pro/squads/squad-creator-pro/test-cases/an-clone-review/qualification-report.yaml +0 -82
  595. package/pro/squads/squad-creator-pro/test-cases/an-design-clone/test-case.yaml +0 -102
  596. package/pro/squads/squad-creator-pro/test-cases/an-extract-dna/test-case.yaml +0 -105
  597. package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/haiku-round-1.yaml +0 -262
  598. package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/opus-baseline.yaml +0 -266
  599. package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/qualification-report.yaml +0 -94
  600. package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/haiku-round-1.yaml +0 -282
  601. package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/opus-baseline.yaml +0 -470
  602. package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/qualification-report.yaml +0 -106
  603. package/pro/squads/squad-creator-pro/test-cases/collect-sources/test-case.yaml +0 -105
  604. package/pro/squads/squad-creator-pro/test-cases/create-task/test-case.yaml +0 -104
  605. package/pro/squads/squad-creator-pro/test-cases/cross-provider/DASHBOARD.yaml +0 -11
  606. package/pro/squads/squad-creator-pro/test-cases/pv-audit/test-case.yaml +0 -106
  607. package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/haiku-output.yaml +0 -209
  608. package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/opus-baseline.yaml +0 -96
  609. package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/sonnet-output.yaml +0 -30
  610. package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/test-case.yaml +0 -129
  611. package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/comparison-round-1.yaml +0 -242
  612. package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/haiku-round-1.yaml +0 -393
  613. package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/opus-baseline.yaml +0 -488
  614. package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/qualification-report.yaml +0 -74
  615. package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/haiku-round-1.yaml +0 -292
  616. package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/opus-baseline.yaml +0 -603
  617. package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/qualification-report.yaml +0 -97
  618. package/pro/squads/squad-creator-pro/test-cases/smoke-test-model-routing/test-case.yaml +0 -100
  619. package/pro/squads/squad-creator-pro/test-cases/upgrade-squad/test-case.yaml +0 -106
  620. package/pro/squads/squad-creator-pro/test-cases/validate-squad/comparison-round-1.yaml +0 -223
  621. package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-1-MINE.yaml +0 -36
  622. package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-1.yaml +0 -193
  623. package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-2.yaml +0 -303
  624. package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-3-v4-task.yaml +0 -149
  625. package/pro/squads/squad-creator-pro/test-cases/validate-squad/opus-baseline.yaml +0 -529
  626. package/pro/squads/squad-creator-pro/test-cases/validate-squad/opus-round-3-v4-task.yaml +0 -132
  627. package/pro/squads/squad-creator-pro/test-cases/validate-squad/qualification-report.yaml +0 -104
  628. package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/haiku-output-v2-calibrated.yaml +0 -200
  629. package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/haiku-output.yaml +0 -183
  630. package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/opus-baseline.yaml +0 -112
  631. package/pro/squads/squad-creator-pro/utils/.gitkeep +0 -1
  632. package/pro/squads/squad-creator-pro/workflows/.gitkeep +0 -1
  633. package/pro/squads/squad-creator-pro/workflows/create-squad.yaml +0 -348
  634. package/pro/squads/squad-creator-pro/workflows/modules/module-discovery.yaml +0 -16
  635. package/pro/squads/squad-creator-pro/workflows/modules/module-integration.yaml +0 -16
  636. package/pro/squads/squad-creator-pro/workflows/modules/module-quality-gates.yaml +0 -15
  637. package/pro/squads/squad-creator-pro/workflows/validate-squad.yaml +0 -582
  638. package/pro/squads/squad-creator-pro/workflows/wf-auto-acquire-sources.yaml +0 -518
  639. package/pro/squads/squad-creator-pro/workflows/wf-brownfield-upgrade-squad.yaml +0 -46
  640. package/pro/squads/squad-creator-pro/workflows/wf-clone-mind.yaml +0 -521
  641. package/pro/squads/squad-creator-pro/workflows/wf-context-aware-create-squad.yaml +0 -47
  642. package/pro/squads/squad-creator-pro/workflows/wf-create-squad.yaml +0 -1619
  643. package/pro/squads/squad-creator-pro/workflows/wf-cross-provider-qualification.yaml +0 -711
  644. package/pro/squads/squad-creator-pro/workflows/wf-discover-tools.yaml +0 -1439
  645. package/pro/squads/squad-creator-pro/workflows/wf-extraction-pipeline.yaml +0 -486
  646. package/pro/squads/squad-creator-pro/workflows/wf-mind-research-loop.yaml +0 -668
  647. package/pro/squads/squad-creator-pro/workflows/wf-model-tier-qualification.yaml +0 -800
  648. package/pro/squads/squad-creator-pro/workflows/wf-optimize-squad.yaml +0 -684
  649. package/pro/squads/squad-creator-pro/workflows/wf-research-then-create-agent.yaml +0 -921
  650. package/pro/squads/squad-creator-pro/workflows/wf-squad-fusion.yaml +0 -1684
  651. package/scripts/glue/README.md +0 -355
  652. package/scripts/glue/compose-agent-prompt.cjs +0 -362
@@ -1,944 +0,0 @@
1
- #!/usr/bin/env bash
2
- # ═══════════════════════════════════════════════════════════════════════════════
3
- # VALIDATE-SQUAD.SH - Hybrid Squad Validation Script
4
- # ═══════════════════════════════════════════════════════════════════════════════
5
- # Version: 3.0.0 - Production Validation
6
- # Compatibility: bash 3.2+ (macOS compatible)
7
- # Purpose: Hybrid validation - bash for deterministic, Claude for qualitative
8
- # Usage: ./validate-squad.sh <squad-name> [--verbose] [--quick] [--json]
9
- #
10
- # HYBRID APPROACH:
11
- # BASH (deterministic):
12
- # - File/directory existence
13
- # - Security scan (grep patterns)
14
- # - Cross-reference validation
15
- # - Metrics collection (counts, ratios)
16
- #
17
- # CLAUDE CLI (qualitative):
18
- # - Prompt quality analysis
19
- # - Pipeline coherence evaluation
20
- # - Voice consistency check
21
- # - Overall assessment & recommendations
22
- #
23
- # Exit codes:
24
- # 0 = PASS (score >= 7.0, no blocking issues)
25
- # 1 = FAIL (score < 7.0 or blocking issues)
26
- # 2 = ERROR (script error, invalid input)
27
- # ═══════════════════════════════════════════════════════════════════════════════
28
-
29
- set -uo pipefail
30
-
31
- # ═══════════════════════════════════════════════════════════════════════════════
32
- # CONFIGURATION
33
- # ═══════════════════════════════════════════════════════════════════════════════
34
-
35
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
36
- SQUAD_CREATOR_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
37
- SQUADS_DIR="$(cd "$SCRIPT_DIR/../../.." && pwd)/squads"
38
-
39
- # Model configuration
40
- MODEL_DEFAULT="opus" # Best quality (default)
41
- MODEL_FAST="haiku" # Quick & cheap
42
- MODEL_QUALITY="$MODEL_DEFAULT"
43
-
44
- # Colors
45
- RED='\033[0;31m'
46
- GREEN='\033[0;32m'
47
- YELLOW='\033[0;33m'
48
- BLUE='\033[0;34m'
49
- CYAN='\033[0;36m'
50
- MAGENTA='\033[0;35m'
51
- NC='\033[0m'
52
- BOLD='\033[1m'
53
-
54
- # Counters
55
- PASS_COUNT=0
56
- FAIL_COUNT=0
57
- WARN_COUNT=0
58
-
59
- # Results arrays
60
- BLOCKING_ISSUES=""
61
- WARNINGS=""
62
-
63
- # Metrics (simple variables for bash 3.x compatibility)
64
- M_AGENT_COUNT=0
65
- M_TASK_COUNT=0
66
- M_CHECKLIST_COUNT=0
67
- M_TEMPLATE_COUNT=0
68
- M_DATA_COUNT=0
69
- M_TOTAL_LINES=0
70
- M_SECURITY_ISSUES=0
71
- M_XREF_ISSUES=0
72
- M_SQUAD_TYPE="unknown"
73
- M_TYPE_CONFIDENCE=0
74
- M_PROMPT_QUALITY=0
75
- M_STRUCTURE_COHERENCE=0
76
- M_COVERAGE_SCORE=0
77
- M_DOCUMENTATION=0
78
- M_QUALITY_SCORE="N/A"
79
- M_IMPROVEMENTS=""
80
- M_PROD_SCORE=0
81
-
82
- # Phase results
83
- TIER1_FAIL=0
84
- SEC_FAIL=0
85
- XREF_FAIL=0
86
- PROD_SCORE=0
87
- PROD_MAX=5
88
- FINAL_SCORE=0
89
- ENTRY_AGENT=""
90
-
91
- # ═══════════════════════════════════════════════════════════════════════════════
92
- # ARGUMENT PARSING
93
- # ═══════════════════════════════════════════════════════════════════════════════
94
-
95
- show_help() {
96
- cat << 'EOF'
97
- ╔══════════════════════════════════════════════════════════════╗
98
- ║ 🔍 VALIDATE-SQUAD v2.0 - Hybrid Validation Tool ║
99
- ╚══════════════════════════════════════════════════════════════╝
100
-
101
- Usage: ./validate-squad.sh <squad-name> [options]
102
-
103
- Arguments:
104
- squad-name Name of squad to validate (e.g., "my-squad", "new-squad")
105
-
106
- Options:
107
- --verbose Show all checks and Claude analysis details
108
- --quick Skip Claude analysis (deterministic only)
109
- --fast Use Haiku instead of Opus (cheaper, faster)
110
- --json Output results as JSON
111
- --help Show this help message
112
-
113
- Examples:
114
- ./validate-squad.sh {squad-name} # Full validation with Opus
115
- ./validate-squad.sh {squad-name} --verbose # Verbose output
116
- ./validate-squad.sh {squad-name} --quick # Deterministic only (no Claude)
117
- ./validate-squad.sh {squad-name} --fast # Quick validation with Haiku
118
-
119
- Exit Codes:
120
- 0 PASS Score >= 7.0, no blocking issues
121
- 1 FAIL Score < 7.0 or blocking issues found
122
- 2 ERROR Invalid input or script error
123
-
124
- EOF
125
- exit 0
126
- }
127
-
128
- SQUAD_NAME=""
129
- VERBOSE=false
130
- QUICK_MODE=false
131
- JSON_OUTPUT=false
132
- FAST_MODE=false
133
-
134
- while [[ $# -gt 0 ]]; do
135
- case $1 in
136
- --help|-h)
137
- show_help
138
- ;;
139
- --verbose|-v)
140
- VERBOSE=true
141
- shift
142
- ;;
143
- --quick|-q)
144
- QUICK_MODE=true
145
- shift
146
- ;;
147
- --fast|-f)
148
- FAST_MODE=true
149
- MODEL_QUALITY="$MODEL_FAST"
150
- shift
151
- ;;
152
- --json|-j)
153
- JSON_OUTPUT=true
154
- shift
155
- ;;
156
- -*)
157
- echo "Unknown option: $1"
158
- exit 2
159
- ;;
160
- *)
161
- SQUAD_NAME="$1"
162
- shift
163
- ;;
164
- esac
165
- done
166
-
167
- if [[ -z "$SQUAD_NAME" ]]; then
168
- echo "Error: Squad name required"
169
- echo "Usage: ./validate-squad.sh <squad-name>"
170
- exit 2
171
- fi
172
-
173
- SQUAD_DIR="$SQUADS_DIR/$SQUAD_NAME"
174
-
175
- if [[ ! -d "$SQUAD_DIR" ]]; then
176
- echo "Error: Squad not found: $SQUAD_DIR"
177
- exit 2
178
- fi
179
-
180
- # ═══════════════════════════════════════════════════════════════════════════════
181
- # LOGGING HELPERS
182
- # ═══════════════════════════════════════════════════════════════════════════════
183
-
184
- log_pass() {
185
- PASS_COUNT=$((PASS_COUNT + 1))
186
- if [[ "$VERBOSE" == "true" ]]; then
187
- echo -e " ${GREEN}✓${NC} $1"
188
- fi
189
- }
190
-
191
- log_fail() {
192
- FAIL_COUNT=$((FAIL_COUNT + 1))
193
- echo -e " ${RED}✗${NC} $1"
194
- BLOCKING_ISSUES="${BLOCKING_ISSUES}${1}\n"
195
- }
196
-
197
- log_warn() {
198
- WARN_COUNT=$((WARN_COUNT + 1))
199
- echo -e " ${YELLOW}⚠${NC} $1"
200
- WARNINGS="${WARNINGS}${1}\n"
201
- }
202
-
203
- log_info() {
204
- if [[ "$VERBOSE" == "true" ]]; then
205
- echo -e " ${CYAN}ℹ${NC} $1"
206
- fi
207
- }
208
-
209
- log_section() {
210
- echo ""
211
- echo -e "${BOLD}${BLUE}═══ $1 ═══${NC}"
212
- }
213
-
214
- log_subsection() {
215
- echo -e "${CYAN}--- $1 ---${NC}"
216
- }
217
-
218
- # ═══════════════════════════════════════════════════════════════════════════════
219
- # PHASE 1: STRUCTURE (Deterministic - Bash)
220
- # ═══════════════════════════════════════════════════════════════════════════════
221
-
222
- check_structure() {
223
- log_section "PHASE 1: Structure Validation (Bash)"
224
- local tier1_fail=0
225
-
226
- # 1.1 Config file
227
- log_subsection "1.1 Configuration"
228
- if [[ -f "$SQUAD_DIR/config.yaml" ]]; then
229
- log_pass "config.yaml exists"
230
-
231
- # Check for name (top-level or under pack:)
232
- if grep -qE "^name:|^[[:space:]]+name:" "$SQUAD_DIR/config.yaml" 2>/dev/null; then
233
- log_pass "config.yaml has 'name' field"
234
- else
235
- log_fail "config.yaml missing 'name' field"
236
- tier1_fail=$((tier1_fail + 1))
237
- fi
238
-
239
- # Check for version (top-level or under pack:)
240
- if grep -qE "^version:|^[[:space:]]+version:" "$SQUAD_DIR/config.yaml" 2>/dev/null; then
241
- log_pass "config.yaml has 'version' field"
242
- else
243
- log_fail "config.yaml missing 'version' field"
244
- tier1_fail=$((tier1_fail + 1))
245
- fi
246
-
247
- # Check for entry_agent (top-level, under pack:, or in agents list)
248
- if grep -q "entry_agent:" "$SQUAD_DIR/config.yaml" 2>/dev/null; then
249
- log_pass "config.yaml has 'entry_agent' field"
250
- ENTRY_AGENT=$(grep "entry_agent:" "$SQUAD_DIR/config.yaml" | head -1 | sed 's/.*entry_agent:[[:space:]]*//' | tr -d '"' | tr -d "'" | xargs)
251
- elif grep -qE "^[[:space:]]+- id:" "$SQUAD_DIR/config.yaml" 2>/dev/null; then
252
- # Has agents list, extract first agent as entry point
253
- ENTRY_AGENT=$(grep -E "^[[:space:]]+- id:" "$SQUAD_DIR/config.yaml" | head -1 | sed 's/.*- id:[[:space:]]*//' | tr -d '"' | tr -d "'" | xargs)
254
- log_warn "No entry_agent defined, using first agent: $ENTRY_AGENT"
255
- else
256
- log_warn "config.yaml missing 'entry_agent' field (non-blocking)"
257
- fi
258
- else
259
- log_fail "config.yaml not found"
260
- tier1_fail=$((tier1_fail + 1))
261
- fi
262
-
263
- # 1.2 Entry agent
264
- log_subsection "1.2 Entry Point"
265
- if [[ -n "${ENTRY_AGENT:-}" ]]; then
266
- if [[ -f "$SQUAD_DIR/agents/${ENTRY_AGENT}.md" ]]; then
267
- log_pass "Entry agent exists: agents/${ENTRY_AGENT}.md"
268
- else
269
- log_fail "Entry agent not found: agents/${ENTRY_AGENT}.md"
270
- tier1_fail=$((tier1_fail + 1))
271
- fi
272
- fi
273
-
274
- # 1.3 Directory structure
275
- log_subsection "1.3 Directory Structure"
276
- local found_dirs=0
277
- for dir in agents tasks checklists templates data; do
278
- if [[ -d "$SQUAD_DIR/$dir" ]]; then
279
- local count=$(find "$SQUAD_DIR/$dir" -type f \( -name "*.md" -o -name "*.yaml" -o -name "*.yml" \) 2>/dev/null | wc -l | tr -d ' ')
280
- log_pass "$dir/ exists ($count files)"
281
- found_dirs=$((found_dirs + 1))
282
- else
283
- log_info "$dir/ not found (optional)"
284
- fi
285
- done
286
-
287
- # 1.4 Collect metrics
288
- log_subsection "1.4 Metrics Collection"
289
- M_AGENT_COUNT=$(find "$SQUAD_DIR/agents" -name "*.md" 2>/dev/null | wc -l | tr -d ' ')
290
- M_TASK_COUNT=$(find "$SQUAD_DIR/tasks" -name "*.md" 2>/dev/null | wc -l | tr -d ' ')
291
- M_CHECKLIST_COUNT=$(find "$SQUAD_DIR/checklists" -name "*.md" 2>/dev/null | wc -l | tr -d ' ')
292
- M_TEMPLATE_COUNT=$(find "$SQUAD_DIR/templates" -type f 2>/dev/null | wc -l | tr -d ' ')
293
- M_DATA_COUNT=$(find "$SQUAD_DIR/data" -type f 2>/dev/null | wc -l | tr -d ' ')
294
- M_TOTAL_LINES=$(find "$SQUAD_DIR" -type f \( -name "*.md" -o -name "*.yaml" \) -exec cat {} + 2>/dev/null | wc -l | tr -d ' ')
295
-
296
- log_info "Agents: $M_AGENT_COUNT, Tasks: $M_TASK_COUNT, Checklists: $M_CHECKLIST_COUNT"
297
- log_info "Total lines: $M_TOTAL_LINES"
298
-
299
- TIER1_FAIL=$tier1_fail
300
- }
301
-
302
- # ═══════════════════════════════════════════════════════════════════════════════
303
- # PHASE 2: SECURITY SCAN (Deterministic - Bash)
304
- # ═══════════════════════════════════════════════════════════════════════════════
305
-
306
- check_security() {
307
- log_section "PHASE 2: Security Scan (Bash)"
308
- local sec_fail=0
309
-
310
- log_subsection "2.1 API Keys & Tokens"
311
-
312
- # API Keys (excluding placeholders, examples, documentation, fake values)
313
- local api_keys=$(grep -rE "(api[_-]?key|apikey)[[:space:]]*[:=][[:space:]]*['\"][^'\"\$\{]{8,}" "$SQUAD_DIR" 2>/dev/null | grep -vE "(\{\{|\\\$\{|process\.env|[Ee]xample|placeholder|grep|pattern|EXAMPLE|sk-1234|your-key|#.*api)" || true)
314
- if [[ -n "$api_keys" ]]; then
315
- log_fail "SEC-001: Potential API keys found"
316
- sec_fail=$((sec_fail + 1))
317
- else
318
- log_pass "SEC-001: No hardcoded API keys"
319
- fi
320
-
321
- # Secrets (excluding examples, documentation, fake values, obvious test secrets)
322
- local secrets=$(grep -rE "(secret|password)[[:space:]]*[:=][[:space:]]*['\"][^'\"\$\{]{8,}" "$SQUAD_DIR" 2>/dev/null | grep -vE "(\{\{|\\\$\{|process\.env|[Ee]xample|placeholder|grep|pattern|EXAMPLE|secret_key|your-secret|#.*secret|#.*password|mySecret|super-secret|-secret-|-here)" || true)
323
- if [[ -n "$secrets" ]]; then
324
- log_fail "SEC-002: Potential secrets found"
325
- sec_fail=$((sec_fail + 1))
326
- else
327
- log_pass "SEC-002: No hardcoded secrets"
328
- fi
329
-
330
- log_subsection "2.2 Cloud Credentials"
331
-
332
- # AWS Access Key (excluding examples, grep patterns, documentation)
333
- local aws_access=$(grep -rE "AKIA[A-Z0-9]{16}" "$SQUAD_DIR" 2>/dev/null | grep -vE "(EXAMPLE|grep|pattern|\.sh:|\.md:.*grep)" || true)
334
- if [[ -n "$aws_access" ]]; then
335
- log_fail "SEC-003: AWS Access Key found"
336
- sec_fail=$((sec_fail + 1))
337
- else
338
- log_pass "SEC-003: No AWS Access Keys"
339
- fi
340
-
341
- # GCP Service Account
342
- local gcp_key=$(grep -rE '"type"[[:space:]]*:[[:space:]]*"service_account"' "$SQUAD_DIR" 2>/dev/null || true)
343
- if [[ -n "$gcp_key" ]]; then
344
- log_fail "SEC-004: GCP Service Account found"
345
- sec_fail=$((sec_fail + 1))
346
- else
347
- log_pass "SEC-004: No GCP Service Accounts"
348
- fi
349
-
350
- log_subsection "2.3 Private Keys"
351
-
352
- local priv_key=$(grep -rE "-----BEGIN.*(PRIVATE|RSA|DSA|EC).*KEY-----" "$SQUAD_DIR" 2>/dev/null || true)
353
- if [[ -n "$priv_key" ]]; then
354
- log_fail "SEC-005: Private key content found"
355
- sec_fail=$((sec_fail + 1))
356
- else
357
- log_pass "SEC-005: No private key content"
358
- fi
359
-
360
- local key_files=$(find "$SQUAD_DIR" -name "*.pem" -o -name "*.key" -o -name "id_rsa*" 2>/dev/null || true)
361
- if [[ -n "$key_files" ]]; then
362
- log_fail "SEC-006: Private key files found"
363
- sec_fail=$((sec_fail + 1))
364
- else
365
- log_pass "SEC-006: No private key files"
366
- fi
367
-
368
- log_subsection "2.4 Database & Sensitive Files"
369
-
370
- # Exclude: placeholders, examples, documentation, localhost, generic passwords
371
- local db_urls=$(grep -rE "(postgres|mysql|mongodb|redis)://[^:]+:[^@]+@" "$SQUAD_DIR" 2>/dev/null | grep -vE "(\{\{|\[PASSWORD\]|[Ee]xample|localhost|user:pass|:password@|:secret@|grep|pattern)" || true)
372
- if [[ -n "$db_urls" ]]; then
373
- log_fail "SEC-007: Database URL with password found"
374
- sec_fail=$((sec_fail + 1))
375
- else
376
- log_pass "SEC-007: No database URLs with passwords"
377
- fi
378
-
379
- local env_files=$(find "$SQUAD_DIR" -name ".env*" -o -name "*.env" 2>/dev/null || true)
380
- if [[ -n "$env_files" ]]; then
381
- log_fail "SEC-008: .env files found"
382
- sec_fail=$((sec_fail + 1))
383
- else
384
- log_pass "SEC-008: No .env files"
385
- fi
386
-
387
- SEC_FAIL=$sec_fail
388
- M_SECURITY_ISSUES=$sec_fail
389
-
390
- if [[ $sec_fail -gt 0 ]]; then
391
- echo -e "\n${RED}⚠️ SECURITY: $sec_fail HIGH severity issues${NC}"
392
- else
393
- echo -e "\n${GREEN}✓ Security scan passed${NC}"
394
- fi
395
- }
396
-
397
- # ═══════════════════════════════════════════════════════════════════════════════
398
- # PHASE 3: CROSS-REFERENCE (Deterministic - Bash)
399
- # ═══════════════════════════════════════════════════════════════════════════════
400
-
401
- check_cross_references() {
402
- log_section "PHASE 3: Cross-Reference Validation (Bash)"
403
- local xref_fail=0
404
-
405
- log_subsection "3.1 Handoff Targets"
406
-
407
- if [[ -d "$SQUAD_DIR/agents" ]]; then
408
- for agent_file in "$SQUAD_DIR/agents"/*.md; do
409
- [[ -f "$agent_file" ]] || continue
410
- local handoffs=$(grep -oE "handoff_to:[[:space:]]*@?[a-z0-9_-]+" "$agent_file" 2>/dev/null | sed 's/handoff_to:[[:space:]]*@*//' || true)
411
- for handoff in $handoffs; do
412
- if [[ ! -f "$SQUAD_DIR/agents/${handoff}.md" ]]; then
413
- log_fail "XREF-001: Handoff target not found: $handoff (in $(basename "$agent_file"))"
414
- xref_fail=$((xref_fail + 1))
415
- else
416
- log_pass "XREF-001: Handoff valid: $handoff"
417
- fi
418
- done
419
- done
420
- fi
421
-
422
- log_subsection "3.2 Task References"
423
- # Check if tasks referenced in agents exist
424
- if [[ -d "$SQUAD_DIR/agents" ]]; then
425
- for agent_file in "$SQUAD_DIR/agents"/*.md; do
426
- [[ -f "$agent_file" ]] || continue
427
- local task_refs=$(grep -oE "\*[a-z0-9_-]+" "$agent_file" 2>/dev/null | sed 's/\*//' || true)
428
- for task_ref in $task_refs; do
429
- if [[ -f "$SQUAD_DIR/tasks/${task_ref}.md" ]]; then
430
- log_pass "XREF-002: Task exists: $task_ref"
431
- fi
432
- done
433
- done
434
- fi
435
-
436
- XREF_FAIL=$xref_fail
437
- M_XREF_ISSUES=$xref_fail
438
-
439
- if [[ $xref_fail -gt 0 ]]; then
440
- echo -e "\n${RED}⚠️ CROSS-REF: $xref_fail broken references${NC}"
441
- else
442
- echo -e "\n${GREEN}✓ Cross-references valid${NC}"
443
- fi
444
- }
445
-
446
- # ═══════════════════════════════════════════════════════════════════════════════
447
- # PHASE 4: SQUAD TYPE DETECTION (Deterministic - Bash)
448
- # ═══════════════════════════════════════════════════════════════════════════════
449
-
450
- detect_squad_type() {
451
- log_section "PHASE 4: Squad Type Detection (Bash)"
452
-
453
- local type="general"
454
- local confidence=5
455
-
456
- # Check for Expert indicators
457
- local has_voice_dna=$(find "$SQUAD_DIR" -name "*voice*" -o -name "*dna*" 2>/dev/null | wc -l | tr -d ' ')
458
- local has_clone=$(grep -ril "clone\|emulat\|mind\|persona" "$SQUAD_DIR/agents" 2>/dev/null | wc -l | tr -d ' ')
459
-
460
- # Check for Pipeline indicators
461
- local has_workflow=$(find "$SQUAD_DIR" -path "*/workflows/*.yaml" 2>/dev/null | wc -l | tr -d ' ')
462
- local has_phases=$(grep -ril "phase\|stage\|step" "$SQUAD_DIR/tasks" 2>/dev/null | wc -l | tr -d ' ')
463
-
464
- # Calculate task ratio
465
- local agent_count=${M_AGENT_COUNT:-1}
466
- [[ $agent_count -eq 0 ]] && agent_count=1
467
- local task_ratio=$((M_TASK_COUNT / agent_count))
468
-
469
- # Check for Hybrid indicators
470
- local has_human_exec=$(grep -ril "human\|manual\|executor" "$SQUAD_DIR" 2>/dev/null | wc -l | tr -d ' ')
471
-
472
- # Scoring
473
- local expert_score=0
474
- local pipeline_score=0
475
- local hybrid_score=0
476
-
477
- [[ $has_voice_dna -gt 0 ]] && expert_score=$((expert_score + 3))
478
- [[ $has_clone -gt 2 ]] && expert_score=$((expert_score + 2))
479
-
480
- [[ $has_workflow -gt 0 ]] && pipeline_score=$((pipeline_score + 3))
481
- [[ $has_phases -gt 3 ]] && pipeline_score=$((pipeline_score + 2))
482
- [[ $task_ratio -gt 3 ]] && pipeline_score=$((pipeline_score + 2))
483
-
484
- [[ $has_human_exec -gt 2 ]] && hybrid_score=$((hybrid_score + 3))
485
-
486
- # Determine type
487
- if [[ $expert_score -ge 4 ]]; then
488
- type="expert"
489
- confidence=$expert_score
490
- elif [[ $pipeline_score -ge 4 ]]; then
491
- type="pipeline"
492
- confidence=$pipeline_score
493
- elif [[ $hybrid_score -ge 3 ]]; then
494
- type="hybrid"
495
- confidence=$hybrid_score
496
- fi
497
-
498
- M_SQUAD_TYPE="$type"
499
- M_TYPE_CONFIDENCE="$confidence"
500
-
501
- log_info "Detected type: $type (confidence: $confidence)"
502
- log_info "Expert signals: voice_dna=$has_voice_dna, clone_refs=$has_clone"
503
- log_info "Pipeline signals: workflows=$has_workflow, phases=$has_phases, task_ratio=$task_ratio"
504
- log_info "Hybrid signals: human_exec=$has_human_exec"
505
-
506
- echo -e "\n${CYAN}Squad Type: ${BOLD}$type${NC} (confidence: $confidence/7)"
507
- }
508
-
509
- # ═══════════════════════════════════════════════════════════════════════════════
510
- # PHASE 5: PRODUCTION VALIDATION (Deterministic - Bash)
511
- # ═══════════════════════════════════════════════════════════════════════════════
512
-
513
- check_production() {
514
- log_section "PHASE 5: Production Validation (Bash)"
515
- local prod_score=0
516
-
517
- log_subsection "5.1 Outputs Directory"
518
- # Check for outputs/ in squad or in global outputs/
519
- local has_outputs=false
520
- if [ -d "$SQUAD_DIR/outputs" ]; then
521
- local output_count=$(find "$SQUAD_DIR/outputs" -type f 2>/dev/null | wc -l | tr -d ' ')
522
- if [ "$output_count" -gt 0 ]; then
523
- log_pass "outputs/ exists with $output_count files"
524
- has_outputs=true
525
- prod_score=$((prod_score + 2))
526
- else
527
- log_warn "outputs/ exists but is empty"
528
- fi
529
- else
530
- # Check global outputs directory for this squad (uses env var or relative path)
531
- local global_outputs="${OUTPUTS_DIR:-./outputs}"
532
- if [ -d "$global_outputs" ]; then
533
- local squad_outputs=$(find "$global_outputs" -type d -name "*$SQUAD_NAME*" 2>/dev/null | head -1)
534
- if [ -n "$squad_outputs" ] && [ -d "$squad_outputs" ]; then
535
- local output_count=$(find "$squad_outputs" -type f 2>/dev/null | wc -l | tr -d ' ')
536
- if [ "$output_count" -gt 0 ]; then
537
- log_pass "Found outputs in global directory ($output_count files)"
538
- has_outputs=true
539
- prod_score=$((prod_score + 2))
540
- fi
541
- fi
542
- fi
543
-
544
- if [ "$has_outputs" = false ]; then
545
- log_warn "No outputs/ directory found - squad not tested in production"
546
- fi
547
- fi
548
-
549
- log_subsection "5.2 Tested Flag"
550
- # Check for tested: true in config.yaml
551
- if grep -qE "^tested:[[:space:]]*(true|yes)" "$SQUAD_DIR/config.yaml" 2>/dev/null; then
552
- log_pass "config.yaml has tested: true"
553
- prod_score=$((prod_score + 1))
554
- else
555
- log_warn "config.yaml missing 'tested: true' flag"
556
- fi
557
-
558
- log_subsection "5.3 Usage Evidence"
559
- # Check for YOLO mode state files (real automation usage, not just creation logs)
560
- local state_files=$(find "$SQUAD_DIR" -name "*-state.json" -o -name "progress.txt" -o -name "handoff.md" 2>/dev/null | wc -l | tr -d ' ')
561
- if [ "$state_files" -gt 0 ]; then
562
- # Verify it's real usage, not just template files
563
- local real_state=$(find "$SQUAD_DIR" -name "*-state.json" -exec grep -l '"status"' {} \; 2>/dev/null | wc -l | tr -d ' ')
564
- if [ "$real_state" -gt 0 ]; then
565
- log_pass "Found $real_state state files with execution history (YOLO mode)"
566
- prod_score=$((prod_score + 1))
567
- else
568
- log_warn "State files found but appear to be templates"
569
- fi
570
- else
571
- log_warn "No YOLO mode state files found"
572
- fi
573
-
574
- # Check for user feedback or validation reports
575
- local feedback_files=$(find "$SQUAD_DIR" -name "*feedback*" -o -name "*validation-report*" -o -name "*qa-report*" 2>/dev/null | wc -l | tr -d ' ')
576
- if [ "$feedback_files" -gt 0 ]; then
577
- log_pass "Found $feedback_files feedback/validation files"
578
- prod_score=$((prod_score + 1))
579
- fi
580
-
581
- log_subsection "5.4 Sample Outputs"
582
- # Check for example outputs in docs or templates
583
- local has_examples=false
584
- if [ -d "$SQUAD_DIR/examples" ] || [ -d "$SQUAD_DIR/samples" ]; then
585
- log_pass "examples/ or samples/ directory exists"
586
- has_examples=true
587
- prod_score=$((prod_score + 1))
588
- fi
589
-
590
- # Check for output_examples in agents
591
- local output_examples=$(grep -rl "output_examples\|example_output\|sample_output" "$SQUAD_DIR/agents" 2>/dev/null | wc -l | tr -d ' ')
592
- if [ "$output_examples" -gt 0 ]; then
593
- log_pass "Found output examples in $output_examples agent files"
594
- if [ "$has_examples" = false ]; then
595
- prod_score=$((prod_score + 1))
596
- fi
597
- fi
598
-
599
- if [ "$has_examples" = false ] && [ "$output_examples" -eq 0 ]; then
600
- log_warn "No sample outputs or examples found"
601
- fi
602
-
603
- # Cap at max
604
- if [ $prod_score -gt $PROD_MAX ]; then
605
- prod_score=$PROD_MAX
606
- fi
607
-
608
- PROD_SCORE=$prod_score
609
- M_PROD_SCORE=$prod_score
610
-
611
- echo ""
612
- if [ $prod_score -eq 0 ]; then
613
- echo -e "${RED}⚠️ PRODUCTION: 0/$PROD_MAX - No evidence of real usage${NC}"
614
- echo -e "${YELLOW} Max possible score without production evidence: 5/10${NC}"
615
- elif [ $prod_score -lt 3 ]; then
616
- echo -e "${YELLOW}⚠️ PRODUCTION: $prod_score/$PROD_MAX - Limited production evidence${NC}"
617
- else
618
- echo -e "${GREEN}✓ Production validation: $prod_score/$PROD_MAX${NC}"
619
- fi
620
- }
621
-
622
- # ═══════════════════════════════════════════════════════════════════════════════
623
- # PHASE 6: QUALITY ANALYSIS (Claude CLI)
624
- # ═══════════════════════════════════════════════════════════════════════════════
625
-
626
- analyze_with_claude() {
627
- log_section "PHASE 6: Quality Analysis (Claude CLI)"
628
-
629
- if [[ "$QUICK_MODE" == "true" ]]; then
630
- echo -e "${YELLOW}Skipping Claude analysis (--quick mode)${NC}"
631
- M_QUALITY_SCORE="N/A"
632
- return 0
633
- fi
634
-
635
- echo -e "${MAGENTA}Running Claude analysis with $MODEL_QUALITY...${NC}"
636
-
637
- # Collect sample files for analysis
638
- local sample_agent=$(find "$SQUAD_DIR/agents" -name "*.md" 2>/dev/null | head -1)
639
- local sample_task=$(find "$SQUAD_DIR/tasks" -name "*.md" 2>/dev/null | head -1)
640
- local sample_checklist=$(find "$SQUAD_DIR/checklists" -name "*.md" 2>/dev/null | head -1)
641
-
642
- local agent_content=""
643
- local task_content=""
644
- local checklist_content=""
645
-
646
- [[ -f "$sample_agent" ]] && agent_content=$(head -100 "$sample_agent" 2>/dev/null || true)
647
- [[ -f "$sample_task" ]] && task_content=$(head -100 "$sample_task" 2>/dev/null || true)
648
- [[ -f "$sample_checklist" ]] && checklist_content=$(head -100 "$sample_checklist" 2>/dev/null || true)
649
-
650
- # Build analysis prompt
651
- local ANALYSIS_PROMPT="You are evaluating the quality of an AIOS squad. Analyze and provide a JSON response.
652
-
653
- ## Squad: $SQUAD_NAME
654
- Type: $M_SQUAD_TYPE
655
-
656
- ## Metrics
657
- - Agents: $M_AGENT_COUNT
658
- - Tasks: $M_TASK_COUNT
659
- - Checklists: $M_CHECKLIST_COUNT
660
- - Total lines: $M_TOTAL_LINES
661
-
662
- ## Sample Agent (first 100 lines):
663
- \`\`\`
664
- $agent_content
665
- \`\`\`
666
-
667
- ## Sample Task (first 100 lines):
668
- \`\`\`
669
- $task_content
670
- \`\`\`
671
-
672
- ## Sample Checklist (first 100 lines):
673
- \`\`\`
674
- $checklist_content
675
- \`\`\`
676
-
677
- ## Evaluation Criteria
678
- 1. **Prompt Quality (0-10)**: Are prompts specific, actionable, with examples?
679
- 2. **Structure Coherence (0-10)**: Do agents/tasks/checklists follow consistent patterns?
680
- 3. **Coverage (0-10)**: Does the squad have appropriate agent:task ratios for its type?
681
- 4. **Documentation (0-10)**: Are purposes, inputs, outputs clearly defined?
682
-
683
- ## Required Response Format (JSON only):
684
- {
685
- \"prompt_quality\": 8,
686
- \"structure_coherence\": 7,
687
- \"coverage\": 9,
688
- \"documentation\": 6,
689
- \"overall_score\": 7.5,
690
- \"strengths\": [\"clear prompts\", \"good task coverage\"],
691
- \"improvements\": [\"add more examples\", \"document edge cases\"],
692
- \"recommendation\": \"PASS\"
693
- }
694
-
695
- Respond with ONLY the JSON, no other text."
696
-
697
- # Run Claude
698
- local claude_output
699
- if claude_output=$(claude -p --model "$MODEL_QUALITY" --dangerously-skip-permissions "$ANALYSIS_PROMPT" 2>&1); then
700
- # Extract JSON from response (handle multiline)
701
- local json_result=$(echo "$claude_output" | tr '\n' ' ' | grep -oE '\{[^}]+\}' | head -1 || echo '{}')
702
-
703
- if [[ "$VERBOSE" == "true" ]]; then
704
- echo -e "\n${CYAN}Claude Analysis Result:${NC}"
705
- echo "$json_result" | jq '.' 2>/dev/null || echo "$json_result"
706
- fi
707
-
708
- # Parse scores using jq
709
- if command -v jq &> /dev/null; then
710
- M_PROMPT_QUALITY=$(echo "$json_result" | jq -r '.prompt_quality // 0' 2>/dev/null || echo "0")
711
- M_STRUCTURE_COHERENCE=$(echo "$json_result" | jq -r '.structure_coherence // 0' 2>/dev/null || echo "0")
712
- M_COVERAGE_SCORE=$(echo "$json_result" | jq -r '.coverage // 0' 2>/dev/null || echo "0")
713
- M_DOCUMENTATION=$(echo "$json_result" | jq -r '.documentation // 0' 2>/dev/null || echo "0")
714
- M_QUALITY_SCORE=$(echo "$json_result" | jq -r '.overall_score // 0' 2>/dev/null || echo "0")
715
- M_IMPROVEMENTS=$(echo "$json_result" | jq -r '.improvements | join("; ")' 2>/dev/null || echo "")
716
- else
717
- # Fallback without jq - basic parsing
718
- M_QUALITY_SCORE=$(echo "$json_result" | grep -oE '"overall_score"[[:space:]]*:[[:space:]]*[0-9.]+' | grep -oE '[0-9.]+$' || echo "0")
719
- fi
720
-
721
- echo -e "\n${GREEN}✓ Claude analysis complete${NC}"
722
- echo -e " Quality Score: ${BOLD}${M_QUALITY_SCORE}/10${NC}"
723
-
724
- else
725
- echo -e "${YELLOW}⚠️ Claude analysis failed, using deterministic score only${NC}"
726
- M_QUALITY_SCORE="N/A"
727
- fi
728
- }
729
-
730
- # ═══════════════════════════════════════════════════════════════════════════════
731
- # PHASE 6: FINAL SCORING & REPORT
732
- # ═══════════════════════════════════════════════════════════════════════════════
733
-
734
- calculate_final_score() {
735
- log_section "PHASE 7: Final Scoring"
736
-
737
- local base_score=10
738
- local total_fails=$((TIER1_FAIL + SEC_FAIL + XREF_FAIL))
739
-
740
- # Deduct for failures (1.5 per failure)
741
- local fail_penalty=$((total_fails * 15 / 10))
742
- # Deduct for warnings (0.3 per warning)
743
- local warn_penalty=$((WARN_COUNT * 3 / 10))
744
-
745
- # Calculate structure score (0-10)
746
- local struct_score=$((base_score - fail_penalty - warn_penalty))
747
- [ $struct_score -lt 0 ] && struct_score=0
748
-
749
- # Get Claude quality score (0-10)
750
- local quality_int=0
751
- if [[ "$M_QUALITY_SCORE" != "N/A" && "$M_QUALITY_SCORE" != "0" && -n "$M_QUALITY_SCORE" ]]; then
752
- quality_int=${M_QUALITY_SCORE%.*}
753
- [[ -z "$quality_int" || "$quality_int" == "0" ]] && quality_int=7 # Default if parsing failed
754
- else
755
- quality_int=7 # Default assumption if Claude failed
756
- fi
757
-
758
- # Production score is 0-5, normalize to 0-10
759
- local prod_normalized=$((PROD_SCORE * 2))
760
-
761
- # SCORING FORMULA:
762
- # - Structure/Security: 20%
763
- # - Quality (Claude): 30%
764
- # - Production: 50% (most important - real usage matters most)
765
- FINAL_SCORE=$(( (struct_score * 20 + quality_int * 30 + prod_normalized * 50) / 100 ))
766
-
767
- # CAPS based on production evidence:
768
- # - No production (0/5): MAX 5/10
769
- # - Minimal (1-2/5): MAX 7/10
770
- # - Good (3-4/5): MAX 9/10
771
- # - Full (5/5): MAX 10/10
772
- if [ "$PROD_SCORE" -eq 0 ]; then
773
- [ "$FINAL_SCORE" -gt 5 ] && FINAL_SCORE=5
774
- elif [ "$PROD_SCORE" -lt 3 ]; then
775
- [ "$FINAL_SCORE" -gt 7 ] && FINAL_SCORE=7
776
- elif [ "$PROD_SCORE" -lt 5 ]; then
777
- [ "$FINAL_SCORE" -gt 9 ] && FINAL_SCORE=9
778
- fi
779
-
780
- # Ensure score is in range 0-10
781
- [ $FINAL_SCORE -lt 0 ] && FINAL_SCORE=0
782
- [ $FINAL_SCORE -gt 10 ] && FINAL_SCORE=10
783
- }
784
-
785
- generate_report() {
786
- local result="FAIL"
787
- local result_color=$RED
788
-
789
- if [[ $FINAL_SCORE -ge 7 ]] && [[ -z "$BLOCKING_ISSUES" ]]; then
790
- result="PASS"
791
- result_color=$GREEN
792
- elif [[ $FINAL_SCORE -ge 5 ]]; then
793
- result="CONDITIONAL"
794
- result_color=$YELLOW
795
- fi
796
-
797
- if [[ "$JSON_OUTPUT" == "true" ]]; then
798
- cat << EOF
799
- {
800
- "squad": "$SQUAD_NAME",
801
- "result": "$result",
802
- "final_score": $FINAL_SCORE,
803
- "type": "$M_SQUAD_TYPE",
804
- "metrics": {
805
- "agents": $M_AGENT_COUNT,
806
- "tasks": $M_TASK_COUNT,
807
- "checklists": $M_CHECKLIST_COUNT,
808
- "total_lines": $M_TOTAL_LINES
809
- },
810
- "deterministic": {
811
- "tier1_fail": $TIER1_FAIL,
812
- "security_fail": $SEC_FAIL,
813
- "xref_fail": $XREF_FAIL,
814
- "warnings": $WARN_COUNT
815
- },
816
- "production": {
817
- "score": $PROD_SCORE,
818
- "max": $PROD_MAX
819
- },
820
- "claude_analysis": {
821
- "prompt_quality": $M_PROMPT_QUALITY,
822
- "structure_coherence": $M_STRUCTURE_COHERENCE,
823
- "coverage": $M_COVERAGE_SCORE,
824
- "documentation": $M_DOCUMENTATION,
825
- "quality_score": "$M_QUALITY_SCORE"
826
- },
827
- "improvements": "$M_IMPROVEMENTS"
828
- }
829
- EOF
830
- else
831
- echo ""
832
- echo -e "${BOLD}╔══════════════════════════════════════════════════════════════╗${NC}"
833
- if [[ "$result" == "PASS" ]]; then
834
- echo -e "${BOLD}║${result_color} ✅ VALIDATION PASSED ${NC}${BOLD}║${NC}"
835
- elif [[ "$result" == "CONDITIONAL" ]]; then
836
- echo -e "${BOLD}║${result_color} ⚠️ CONDITIONAL PASS ${NC}${BOLD}║${NC}"
837
- else
838
- echo -e "${BOLD}║${result_color} ❌ VALIDATION FAILED ${NC}${BOLD}║${NC}"
839
- fi
840
- echo -e "${BOLD}╚══════════════════════════════════════════════════════════════╝${NC}"
841
- echo ""
842
- echo -e " Squad: ${BOLD}$SQUAD_NAME${NC}"
843
- echo -e " Type: ${CYAN}$M_SQUAD_TYPE${NC}"
844
- echo -e " Final Score: ${BOLD}${result_color}$FINAL_SCORE/10${NC}"
845
- echo ""
846
- echo " ┌─────────────────────────────────────────┐"
847
- echo " │ Structure & Security (20%) │"
848
- printf " │ Structure failures: %-17s│\n" "$TIER1_FAIL"
849
- printf " │ Security issues: %-19s│\n" "$SEC_FAIL"
850
- printf " │ Cross-ref broken: %-18s│\n" "$XREF_FAIL"
851
- printf " │ Warnings: %-26s│\n" "$WARN_COUNT"
852
- echo " └─────────────────────────────────────────┘"
853
-
854
- echo " ┌─────────────────────────────────────────┐"
855
- echo " │ Production Evidence (50%) │"
856
- if [ "$PROD_SCORE" -eq 0 ]; then
857
- printf " │ ${RED}Score: %-32s${NC}│\n" "$PROD_SCORE/$PROD_MAX ⚠️ NOT TESTED"
858
- elif [ "$PROD_SCORE" -lt 3 ]; then
859
- printf " │ ${YELLOW}Score: %-32s${NC}│\n" "$PROD_SCORE/$PROD_MAX (limited)"
860
- else
861
- printf " │ ${GREEN}Score: %-32s${NC}│\n" "$PROD_SCORE/$PROD_MAX ✓"
862
- fi
863
- echo " └─────────────────────────────────────────┘"
864
-
865
- if [[ "$M_QUALITY_SCORE" != "N/A" ]]; then
866
- echo " ┌─────────────────────────────────────────┐"
867
- echo " │ Claude Quality Analysis (30%) │"
868
- printf " │ Prompt Quality: %-20s│\n" "$M_PROMPT_QUALITY/10"
869
- printf " │ Structure: %-25s│\n" "$M_STRUCTURE_COHERENCE/10"
870
- printf " │ Coverage: %-26s│\n" "$M_COVERAGE_SCORE/10"
871
- printf " │ Documentation: %-21s│\n" "$M_DOCUMENTATION/10"
872
- echo " └─────────────────────────────────────────┘"
873
- fi
874
-
875
- if [[ -n "$BLOCKING_ISSUES" ]]; then
876
- echo ""
877
- echo -e " ${RED}Blocking Issues:${NC}"
878
- echo -e "$BLOCKING_ISSUES" | while read -r issue; do
879
- [[ -n "$issue" ]] && echo -e " ${RED}•${NC} $issue"
880
- done
881
- fi
882
-
883
- if [[ -n "$M_IMPROVEMENTS" ]]; then
884
- echo ""
885
- echo -e " ${YELLOW}Improvements:${NC}"
886
- echo " $M_IMPROVEMENTS"
887
- fi
888
- echo ""
889
- fi
890
-
891
- # Return appropriate exit code
892
- if [[ "$result" == "PASS" ]]; then
893
- exit 0
894
- else
895
- exit 1
896
- fi
897
- }
898
-
899
- # ═══════════════════════════════════════════════════════════════════════════════
900
- # MAIN EXECUTION
901
- # ═══════════════════════════════════════════════════════════════════════════════
902
-
903
- main() {
904
- echo ""
905
- echo -e "${BOLD}╔══════════════════════════════════════════════════════════════╗${NC}"
906
- echo -e "${BOLD}║ 🔍 VALIDATE-SQUAD v2.0 - Hybrid Validation ║${NC}"
907
- echo -e "${BOLD}╚══════════════════════════════════════════════════════════════╝${NC}"
908
- echo ""
909
- echo -e " Squad: ${CYAN}$SQUAD_NAME${NC}"
910
- echo -e " Path: $SQUAD_DIR"
911
- if [[ "$QUICK_MODE" == "true" ]]; then
912
- echo -e " Mode: quick (no Claude)"
913
- else
914
- echo -e " Mode: hybrid"
915
- fi
916
- echo -e " Model: $MODEL_QUALITY"
917
-
918
- # Phase 1: Structure (Bash)
919
- check_structure
920
-
921
- # Phase 2: Security (Bash)
922
- check_security
923
-
924
- # Phase 3: Cross-references (Bash)
925
- check_cross_references
926
-
927
- # Phase 4: Type detection (Bash)
928
- detect_squad_type
929
-
930
- # Phase 5: Production validation (Bash) - NEW
931
- check_production
932
-
933
- # Phase 6: Quality analysis (Claude CLI)
934
- analyze_with_claude
935
-
936
- # Phase 7: Final scoring
937
- calculate_final_score
938
-
939
- # Generate report
940
- generate_report
941
- }
942
-
943
- # Run
944
- main