aiox-core 5.0.2 → 5.0.3

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 (547) hide show
  1. package/.aiox-core/data/entity-registry.yaml +748 -763
  2. package/.aiox-core/install-manifest.yaml +4 -4
  3. package/package.json +6 -1
  4. package/pro/feature-registry.yaml +223 -0
  5. package/pro/package.json +39 -0
  6. package/pro/pro-config.yaml +63 -0
  7. package/pro/squads/README.md +24 -0
  8. package/pro/squads/design/HEADLINE.md +3 -0
  9. package/pro/squads/design/README.md +109 -0
  10. package/pro/squads/design/agents/brad-frost.md +1097 -0
  11. package/pro/squads/design/agents/dan-mall.md +857 -0
  12. package/pro/squads/design/agents/dave-malouf.md +2272 -0
  13. package/pro/squads/design/agents/design-chief.md +114 -0
  14. package/pro/squads/design/agents/ds-foundations-lead.md +194 -0
  15. package/pro/squads/design/agents/ds-token-architect.md +361 -0
  16. package/pro/squads/design/agents/nano-banana-generator.md +162 -0
  17. package/pro/squads/design/agents/storybook-expert.md +809 -0
  18. package/pro/squads/design/checklists/atomic-refactor-checklist.md +299 -0
  19. package/pro/squads/design/checklists/component-adaptation-checklist.md +81 -0
  20. package/pro/squads/design/checklists/design-fidelity-checklist.md +283 -0
  21. package/pro/squads/design/checklists/design-handoff-checklist.md +55 -0
  22. package/pro/squads/design/checklists/design-team-health-checklist.md +454 -0
  23. package/pro/squads/design/checklists/designops-maturity-checklist.md +518 -0
  24. package/pro/squads/design/checklists/ds-a11y-release-gate-checklist.md +45 -0
  25. package/pro/squads/design/checklists/ds-accessibility-wcag-checklist.md +147 -0
  26. package/pro/squads/design/checklists/ds-component-quality-checklist.md +150 -0
  27. package/pro/squads/design/checklists/ds-critical-eye-review-checklist.md +147 -0
  28. package/pro/squads/design/checklists/ds-migration-readiness-checklist.md +99 -0
  29. package/pro/squads/design/checklists/ds-pattern-audit-checklist.md +164 -0
  30. package/pro/squads/design/checklists/reading-accessibility-checklist.md +275 -0
  31. package/pro/squads/design/checklists/token-mapping-checklist.md +107 -0
  32. package/pro/squads/design/config/coding-standards.md +286 -0
  33. package/pro/squads/design/config/source-tree.md +59 -0
  34. package/pro/squads/design/config/tech-stack.md +48 -0
  35. package/pro/squads/design/config.yaml +204 -0
  36. package/pro/squads/design/data/agentic-design-systems-guide.md +46 -0
  37. package/pro/squads/design/data/agentic-ds-principles.md +100 -0
  38. package/pro/squads/design/data/atomic-design-principles.md +108 -0
  39. package/pro/squads/design/data/atomic-refactor-rules.md +582 -0
  40. package/pro/squads/design/data/base-component-specs.md +972 -0
  41. package/pro/squads/design/data/brad-frost-analysis-extract-implicit.yaml +270 -0
  42. package/pro/squads/design/data/brad-frost-analysis-find-0.8.yaml +176 -0
  43. package/pro/squads/design/data/brad-frost-analysis-qa-report.yaml +168 -0
  44. package/pro/squads/design/data/brad-frost-dna.yaml +713 -0
  45. package/pro/squads/design/data/capability-tools.yaml +124 -0
  46. package/pro/squads/design/data/component-adaptation-changelog.md +318 -0
  47. package/pro/squads/design/data/consolidation-algorithms.md +168 -0
  48. package/pro/squads/design/data/critical-eye-scoring-rules.yaml +240 -0
  49. package/pro/squads/design/data/design-token-best-practices.md +107 -0
  50. package/pro/squads/design/data/design-tokens-spec.yaml +418 -0
  51. package/pro/squads/design/data/ds-reference-architectures.md +93 -0
  52. package/pro/squads/design/data/f2-qa-report.md +168 -0
  53. package/pro/squads/design/data/f3-derived-components-changelog.md +100 -0
  54. package/pro/squads/design/data/f3-qa-report.md +208 -0
  55. package/pro/squads/design/data/figma-base-components-raw.md +102 -0
  56. package/pro/squads/design/data/figma-tokens-raw.md +1549 -0
  57. package/pro/squads/design/data/fluent2-design-principles.md +114 -0
  58. package/pro/squads/design/data/high-retention-reading-guide.md +349 -0
  59. package/pro/squads/design/data/integration-patterns.md +207 -0
  60. package/pro/squads/design/data/internal-quality-chain.yaml +48 -0
  61. package/pro/squads/design/data/motion-tokens-guide.md +202 -0
  62. package/pro/squads/design/data/roi-calculation-guide.md +142 -0
  63. package/pro/squads/design/data/token-mapping-reference.md +213 -0
  64. package/pro/squads/design/data/w3c-dtcg-spec-reference.md +149 -0
  65. package/pro/squads/design/data/wcag-compliance-guide.md +267 -0
  66. package/pro/squads/design/docs/AUDIT_REPORT.md +97 -0
  67. package/pro/squads/design/docs/DS-CURATION-PIPELINE-PROPOSAL.md +577 -0
  68. package/pro/squads/design/docs/UPGRADE_PLAN.md +618 -0
  69. package/pro/squads/design/docs/brad-frost-research-validation.md +372 -0
  70. package/pro/squads/design/docs/dave-malouf-research-validation.md +391 -0
  71. package/pro/squads/design/docs/tool-discovery-report.md +87 -0
  72. package/pro/squads/design/docs/tool-integration-plan.md +44 -0
  73. package/pro/squads/design/protocols/ai-first-governance.md +56 -0
  74. package/pro/squads/design/protocols/governance-execution-boundary.md +59 -0
  75. package/pro/squads/design/protocols/handoff.md +60 -0
  76. package/pro/squads/design/rules/.claude-rules.md +88 -0
  77. package/pro/squads/design/scripts/design-system/curate_colors.cjs +447 -0
  78. package/pro/squads/design/scripts/design-system/curate_components.cjs +217 -0
  79. package/pro/squads/design/scripts/design-system/curate_radius.cjs +190 -0
  80. package/pro/squads/design/scripts/design-system/curate_shadows.cjs +208 -0
  81. package/pro/squads/design/scripts/design-system/curate_spacing.cjs +243 -0
  82. package/pro/squads/design/scripts/design-system/curate_typography.cjs +404 -0
  83. package/pro/squads/design/scripts/design-system/design-system-metadata.test.js +49 -0
  84. package/pro/squads/design/scripts/design-system/design_manifest_lib.cjs +142 -0
  85. package/pro/squads/design/scripts/design-system/fetch_page_images.cjs +195 -0
  86. package/pro/squads/design/scripts/design-system/generate_components_metadata.cjs +114 -0
  87. package/pro/squads/design/scripts/design-system/generate_curation_report.cjs +258 -0
  88. package/pro/squads/design/scripts/design-system/generate_tokens.cjs +342 -0
  89. package/pro/squads/design/scripts/design-system/sync_design_manifest.cjs +27 -0
  90. package/pro/squads/design/scripts/design-system/test_mcp_tools.cjs +232 -0
  91. package/pro/squads/design/scripts/design-system/validate_components_metadata.cjs +96 -0
  92. package/pro/squads/design/scripts/design-system/validate_curation.cjs +226 -0
  93. package/pro/squads/design/scripts/design-system/validate_design_manifest_drift.cjs +72 -0
  94. package/pro/squads/design/scripts/design-system/validate_mcp_skeleton.cjs +38 -0
  95. package/pro/squads/design/scripts/design-system/validate_registry.cjs +186 -0
  96. package/pro/squads/design/scripts/design-system/validate_task_checklist_bindings.cjs +78 -0
  97. package/pro/squads/design/scripts/dissect-artifact.cjs +806 -0
  98. package/pro/squads/design/scripts/validate-a11y-integration.cjs +40 -0
  99. package/pro/squads/design/scripts/validate-design-squad.py +411 -0
  100. package/pro/squads/design/squad.yaml +714 -0
  101. package/pro/squads/design/tasks/a11y-audit.md +340 -0
  102. package/pro/squads/design/tasks/aria-audit.md +525 -0
  103. package/pro/squads/design/tasks/atomic-refactor-execute.md +391 -0
  104. package/pro/squads/design/tasks/atomic-refactor-plan.md +262 -0
  105. package/pro/squads/design/tasks/audit-reading-experience.md +350 -0
  106. package/pro/squads/design/tasks/audit-tailwind-config.md +101 -0
  107. package/pro/squads/design/tasks/bootstrap-shadcn-library.md +96 -0
  108. package/pro/squads/design/tasks/bundle-audit.md +245 -0
  109. package/pro/squads/design/tasks/contrast-matrix.md +373 -0
  110. package/pro/squads/design/tasks/create-doc.md +135 -0
  111. package/pro/squads/design/tasks/dead-code-detection.md +329 -0
  112. package/pro/squads/design/tasks/design-compare.md +414 -0
  113. package/pro/squads/design/tasks/design-process-optimization.md +407 -0
  114. package/pro/squads/design/tasks/design-review-orchestration.md +99 -0
  115. package/pro/squads/design/tasks/design-team-scaling.md +407 -0
  116. package/pro/squads/design/tasks/design-tooling-audit.md +404 -0
  117. package/pro/squads/design/tasks/design-triage.md +89 -0
  118. package/pro/squads/design/tasks/designops-maturity-assessment.md +364 -0
  119. package/pro/squads/design/tasks/designops-metrics-setup.md +465 -0
  120. package/pro/squads/design/tasks/ds-agentic-audit.md +100 -0
  121. package/pro/squads/design/tasks/ds-agentic-setup.md +103 -0
  122. package/pro/squads/design/tasks/ds-audit-codebase.md +273 -0
  123. package/pro/squads/design/tasks/ds-build-component.md +349 -0
  124. package/pro/squads/design/tasks/ds-build-mcp-server.md +84 -0
  125. package/pro/squads/design/tasks/ds-calculate-roi.md +282 -0
  126. package/pro/squads/design/tasks/ds-compose-molecule.md +106 -0
  127. package/pro/squads/design/tasks/ds-consolidate-patterns.md +253 -0
  128. package/pro/squads/design/tasks/ds-context-contract.md +194 -0
  129. package/pro/squads/design/tasks/ds-critical-eye-compare.md +130 -0
  130. package/pro/squads/design/tasks/ds-critical-eye-decide.md +139 -0
  131. package/pro/squads/design/tasks/ds-critical-eye-inventory.md +111 -0
  132. package/pro/squads/design/tasks/ds-critical-eye-report.md +101 -0
  133. package/pro/squads/design/tasks/ds-critical-eye-score.md +109 -0
  134. package/pro/squads/design/tasks/ds-designops.md +99 -0
  135. package/pro/squads/design/tasks/ds-extend-pattern.md +91 -0
  136. package/pro/squads/design/tasks/ds-extract-tokens.md +312 -0
  137. package/pro/squads/design/tasks/ds-figma-pipeline.md +95 -0
  138. package/pro/squads/design/tasks/ds-fluent-audit.md +105 -0
  139. package/pro/squads/design/tasks/ds-fluent-build.md +110 -0
  140. package/pro/squads/design/tasks/ds-generate-ai-metadata.md +81 -0
  141. package/pro/squads/design/tasks/ds-generate-cursor-rules.md +74 -0
  142. package/pro/squads/design/tasks/ds-generate-documentation.md +101 -0
  143. package/pro/squads/design/tasks/ds-generate-migration-strategy.md +331 -0
  144. package/pro/squads/design/tasks/ds-generate-shock-report.md +323 -0
  145. package/pro/squads/design/tasks/ds-govern-a11y-compliance.md +93 -0
  146. package/pro/squads/design/tasks/ds-governance.md +187 -0
  147. package/pro/squads/design/tasks/ds-health-metrics.md +278 -0
  148. package/pro/squads/design/tasks/ds-integrate-squad.md +130 -0
  149. package/pro/squads/design/tasks/ds-integrate-workspace.md +100 -0
  150. package/pro/squads/design/tasks/ds-legacy-modernization.md +302 -0
  151. package/pro/squads/design/tasks/ds-mcp-status.md +65 -0
  152. package/pro/squads/design/tasks/ds-motion-audit.md +118 -0
  153. package/pro/squads/design/tasks/ds-multi-framework.md +96 -0
  154. package/pro/squads/design/tasks/ds-parallelization-gate.md +246 -0
  155. package/pro/squads/design/tasks/ds-query.md +90 -0
  156. package/pro/squads/design/tasks/ds-rebuild-artifact.md +369 -0
  157. package/pro/squads/design/tasks/ds-reverse-engineer.md +194 -0
  158. package/pro/squads/design/tasks/ds-scan-artifact.md +131 -0
  159. package/pro/squads/design/tasks/ds-setup-design-system.md +297 -0
  160. package/pro/squads/design/tasks/ds-sync-registry.md +287 -0
  161. package/pro/squads/design/tasks/ds-theme-multi-brand.md +90 -0
  162. package/pro/squads/design/tasks/ds-token-modes.md +108 -0
  163. package/pro/squads/design/tasks/ds-token-w3c-extract.md +105 -0
  164. package/pro/squads/design/tasks/ds-validate-ai-readiness.md +69 -0
  165. package/pro/squads/design/tasks/ds-visual-regression.md +130 -0
  166. package/pro/squads/design/tasks/execute-checklist.md +141 -0
  167. package/pro/squads/design/tasks/export-design-tokens-dtcg.md +97 -0
  168. package/pro/squads/design/tasks/f1-apply-foundations.md +154 -0
  169. package/pro/squads/design/tasks/f1-ingest-figma-tokens.md +130 -0
  170. package/pro/squads/design/tasks/f1-map-tokens-to-shadcn.md +145 -0
  171. package/pro/squads/design/tasks/f1-qa-foundations.md +95 -0
  172. package/pro/squads/design/tasks/f2-adapt-shadcn-components.md +155 -0
  173. package/pro/squads/design/tasks/f2-ingest-base-components.md +148 -0
  174. package/pro/squads/design/tasks/f2-qa-base-components.md +98 -0
  175. package/pro/squads/design/tasks/f3-derive-components.md +145 -0
  176. package/pro/squads/design/tasks/f3-qa-derived-components.md +101 -0
  177. package/pro/squads/design/tasks/focus-order-audit.md +450 -0
  178. package/pro/squads/design/tasks/sb-brownfield-migrate.md +367 -0
  179. package/pro/squads/design/tasks/sb-brownfield-scan.md +318 -0
  180. package/pro/squads/design/tasks/sb-configure.md +230 -0
  181. package/pro/squads/design/tasks/sb-expand-shadcn.md +213 -0
  182. package/pro/squads/design/tasks/sb-generate-all-stories.md +288 -0
  183. package/pro/squads/design/tasks/sb-install.md +152 -0
  184. package/pro/squads/design/tasks/sb-sync-workspace.md +239 -0
  185. package/pro/squads/design/tasks/sb-verify.md +203 -0
  186. package/pro/squads/design/tasks/tailwind-upgrade.md +117 -0
  187. package/pro/squads/design/tasks/token-usage-analytics.md +262 -0
  188. package/pro/squads/design/tasks/ux-rewrite-sixth-grade.md +82 -0
  189. package/pro/squads/design/tasks/validate-design-fidelity.md +222 -0
  190. package/pro/squads/design/templates/agent-template.yaml +46 -0
  191. package/pro/squads/design/templates/clone-mind-template.md +352 -0
  192. package/pro/squads/design/templates/component-prompt-injection-tmpl.md +236 -0
  193. package/pro/squads/design/templates/component-visual-spec-tmpl.md +378 -0
  194. package/pro/squads/design/templates/critical-eye-cycle-report-tmpl.md +165 -0
  195. package/pro/squads/design/templates/design-fidelity-report-tmpl.md +155 -0
  196. package/pro/squads/design/templates/ds-ai-component-metadata-schema-tmpl.json +138 -0
  197. package/pro/squads/design/templates/ds-artifact-analysis.md +70 -0
  198. package/pro/squads/design/templates/ds-health-report-tmpl.md +236 -0
  199. package/pro/squads/design/templates/ds-migration-strategy-tmpl.md +524 -0
  200. package/pro/squads/design/templates/ds-state-persistence-tmpl.yaml +194 -0
  201. package/pro/squads/design/templates/ds-tokens-schema-tmpl.yaml +139 -0
  202. package/pro/squads/design/templates/migration-strategy-tmpl.md +524 -0
  203. package/pro/squads/design/templates/reading-design-tokens.css +26 -0
  204. package/pro/squads/design/templates/state-persistence-tmpl.yaml +219 -0
  205. package/pro/squads/design/templates/tokens-schema-tmpl.yaml +305 -0
  206. package/pro/squads/design/workflows/agentic-readiness.yaml +83 -0
  207. package/pro/squads/design/workflows/audit-only.yaml +198 -0
  208. package/pro/squads/design/workflows/brownfield-complete.yaml +257 -0
  209. package/pro/squads/design/workflows/critical-eye.yaml +184 -0
  210. package/pro/squads/design/workflows/dtcg-tokens-governance.yaml +64 -0
  211. package/pro/squads/design/workflows/foundations-pipeline.yaml +192 -0
  212. package/pro/squads/design/workflows/greenfield-new.yaml +192 -0
  213. package/pro/squads/design/workflows/motion-quality.yaml +65 -0
  214. package/pro/squads/design/workflows/self-healing-workflow.yaml +237 -0
  215. package/pro/squads/design/workflows/storybook-brownfield-migration.yaml +400 -0
  216. package/pro/squads/design/workflows/storybook-full-setup.yaml +280 -0
  217. package/pro/squads/index.js +145 -0
  218. package/pro/squads/squad-creator-pro/.state.json +32 -0
  219. package/pro/squads/squad-creator-pro/CHANGELOG.md +275 -0
  220. package/pro/squads/squad-creator-pro/HEADLINE.md +3 -0
  221. package/pro/squads/squad-creator-pro/README.md +1059 -0
  222. package/pro/squads/squad-creator-pro/agents/oalanicolas.md +438 -0
  223. package/pro/squads/squad-creator-pro/agents/pedro-valerio.md +449 -0
  224. package/pro/squads/squad-creator-pro/agents/squad-chief.md +1651 -0
  225. package/pro/squads/squad-creator-pro/agents/thiago_finch.md +976 -0
  226. package/pro/squads/squad-creator-pro/assessments/axioma-assessment-wf-create-squad.yaml +325 -0
  227. package/pro/squads/squad-creator-pro/checklists/.gitkeep +1 -0
  228. package/pro/squads/squad-creator-pro/checklists/agent-depth-checklist.md +244 -0
  229. package/pro/squads/squad-creator-pro/checklists/agent-quality-gate.md +434 -0
  230. package/pro/squads/squad-creator-pro/checklists/create-agent-checklist.md +184 -0
  231. package/pro/squads/squad-creator-pro/checklists/create-squad-checklist.md +219 -0
  232. package/pro/squads/squad-creator-pro/checklists/create-workflow-checklist.md +224 -0
  233. package/pro/squads/squad-creator-pro/checklists/deep-research-quality.md +506 -0
  234. package/pro/squads/squad-creator-pro/checklists/executor-matrix-checklist.md +260 -0
  235. package/pro/squads/squad-creator-pro/checklists/mental-model-integration-checklist.md +95 -0
  236. package/pro/squads/squad-creator-pro/checklists/mind-validation.md +374 -0
  237. package/pro/squads/squad-creator-pro/checklists/quality-gate-checklist.md +385 -0
  238. package/pro/squads/squad-creator-pro/checklists/smoke-test-agent.md +313 -0
  239. package/pro/squads/squad-creator-pro/checklists/sop-validation.md +250 -0
  240. package/pro/squads/squad-creator-pro/checklists/squad-checklist.md +1014 -0
  241. package/pro/squads/squad-creator-pro/checklists/squad-overview-checklist.md +393 -0
  242. package/pro/squads/squad-creator-pro/checklists/task-anatomy-checklist.md +626 -0
  243. package/pro/squads/squad-creator-pro/config/.gitkeep +1 -0
  244. package/pro/squads/squad-creator-pro/config/axioma-validator.yaml +371 -0
  245. package/pro/squads/squad-creator-pro/config/heuristics.yaml +753 -0
  246. package/pro/squads/squad-creator-pro/config/model-routing.yaml +693 -0
  247. package/pro/squads/squad-creator-pro/config/quality-gates.yaml +415 -0
  248. package/pro/squads/squad-creator-pro/config/scoring-rubric.yaml +199 -0
  249. package/pro/squads/squad-creator-pro/config/squad-config.yaml +165 -0
  250. package/pro/squads/squad-creator-pro/config/task-anatomy.yaml +263 -0
  251. package/pro/squads/squad-creator-pro/config/veto-conditions.yaml +455 -0
  252. package/pro/squads/squad-creator-pro/config.yaml +35 -0
  253. package/pro/squads/squad-creator-pro/data/.gitkeep +1 -0
  254. package/pro/squads/squad-creator-pro/data/an-anchor-words.yaml +78 -0
  255. package/pro/squads/squad-creator-pro/data/an-clone-anti-patterns.yaml +148 -0
  256. package/pro/squads/squad-creator-pro/data/an-clone-validation.yaml +190 -0
  257. package/pro/squads/squad-creator-pro/data/an-diagnostic-framework.yaml +164 -0
  258. package/pro/squads/squad-creator-pro/data/an-output-examples.yaml +102 -0
  259. package/pro/squads/squad-creator-pro/data/an-source-signals.yaml +98 -0
  260. package/pro/squads/squad-creator-pro/data/an-source-tiers.yaml +119 -0
  261. package/pro/squads/squad-creator-pro/data/best-practices.md +986 -0
  262. package/pro/squads/squad-creator-pro/data/core-heuristics.md +510 -0
  263. package/pro/squads/squad-creator-pro/data/decision-heuristics-framework.md +620 -0
  264. package/pro/squads/squad-creator-pro/data/executor-decision-tree.md +774 -0
  265. package/pro/squads/squad-creator-pro/data/executor-matrix-framework.md +441 -0
  266. package/pro/squads/squad-creator-pro/data/fusion-decision-points-analysis.md +397 -0
  267. package/pro/squads/squad-creator-pro/data/fusion-executor-analysis.md +677 -0
  268. package/pro/squads/squad-creator-pro/data/hybridops-patterns.md +1351 -0
  269. package/pro/squads/squad-creator-pro/data/internal-infrastructure-library.yaml +99 -0
  270. package/pro/squads/squad-creator-pro/data/mental-model-task-matrix.yaml +692 -0
  271. package/pro/squads/squad-creator-pro/data/pipeline-patterns.md +352 -0
  272. package/pro/squads/squad-creator-pro/data/pm-best-practices.md +440 -0
  273. package/pro/squads/squad-creator-pro/data/pv-anchor-words.yaml +64 -0
  274. package/pro/squads/squad-creator-pro/data/pv-authenticity-markers.yaml +200 -0
  275. package/pro/squads/squad-creator-pro/data/pv-meta-axiomas.yaml +162 -0
  276. package/pro/squads/squad-creator-pro/data/pv-output-examples.yaml +342 -0
  277. package/pro/squads/squad-creator-pro/data/pv-workflow-validation.yaml +318 -0
  278. package/pro/squads/squad-creator-pro/data/quality-dimensions-framework.md +405 -0
  279. package/pro/squads/squad-creator-pro/data/squad-analytics-guide.md +252 -0
  280. package/pro/squads/squad-creator-pro/data/squad-kb.md +987 -0
  281. package/pro/squads/squad-creator-pro/data/squad-registry.yaml +841 -0
  282. package/pro/squads/squad-creator-pro/data/squad-type-definitions.yaml +578 -0
  283. package/pro/squads/squad-creator-pro/data/tier-system-framework.md +475 -0
  284. package/pro/squads/squad-creator-pro/data/tool-evaluation-framework.md +847 -0
  285. package/pro/squads/squad-creator-pro/data/tool-registry.yaml +700 -0
  286. package/pro/squads/squad-creator-pro/docs/ADR-001-model-tier-qualification.md +344 -0
  287. package/pro/squads/squad-creator-pro/docs/AGENT-COLLABORATION.md +609 -0
  288. package/pro/squads/squad-creator-pro/docs/ARCHITECTURE-DIAGRAMS.md +1466 -0
  289. package/pro/squads/squad-creator-pro/docs/COMMANDS.md +544 -0
  290. package/pro/squads/squad-creator-pro/docs/CONCEPTS.md +584 -0
  291. package/pro/squads/squad-creator-pro/docs/FAQ.md +731 -0
  292. package/pro/squads/squad-creator-pro/docs/HITL-FLOW.md +255 -0
  293. package/pro/squads/squad-creator-pro/docs/MIGRATION-PLAN-AGENT-CONFORMITY.md +861 -0
  294. package/pro/squads/squad-creator-pro/docs/MIGRATION-ROADMAP-HYBRIDOPS.md +1161 -0
  295. package/pro/squads/squad-creator-pro/docs/MODEL-TIER-QUALIFICATION.md +337 -0
  296. package/pro/squads/squad-creator-pro/docs/PATTERN-LIBRARY.md +333 -0
  297. package/pro/squads/squad-creator-pro/docs/PEDRO-VALERIO-ARCHITECTURE.md +456 -0
  298. package/pro/squads/squad-creator-pro/docs/POR-ONDE-COMECAR.md +210 -0
  299. package/pro/squads/squad-creator-pro/docs/QUICK-START.md +205 -0
  300. package/pro/squads/squad-creator-pro/docs/RFC-001-deterministic-refactoring.md +463 -0
  301. package/pro/squads/squad-creator-pro/docs/TOOL-RECOMMENDATIONS.md +379 -0
  302. package/pro/squads/squad-creator-pro/docs/TROUBLESHOOTING.md +412 -0
  303. package/pro/squads/squad-creator-pro/docs/TUTORIAL-COMPLETO.md +458 -0
  304. package/pro/squads/squad-creator-pro/docs/optimize-v4-proposal.md +354 -0
  305. package/pro/squads/squad-creator-pro/docs/session-report-2026-02-01.md +411 -0
  306. package/pro/squads/squad-creator-pro/docs/sop-extraction-process.md +674 -0
  307. package/pro/squads/squad-creator-pro/docs/squad-chief-agent-flow.md +981 -0
  308. package/pro/squads/squad-creator-pro/docs/squad-creation-pipeline-workflow.md +937 -0
  309. package/pro/squads/squad-creator-pro/docs/task-optimization-framework.md +229 -0
  310. package/pro/squads/squad-creator-pro/docs/validation-report-2026-02-01.md +439 -0
  311. package/pro/squads/squad-creator-pro/minds/oalanicolas/artifacts/HANDOFF_PROTOCOL.md +269 -0
  312. package/pro/squads/squad-creator-pro/minds/oalanicolas/artifacts/SOURCE_CLASSIFICATION.md +258 -0
  313. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_001.md +166 -0
  314. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_002.md +206 -0
  315. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_003.md +239 -0
  316. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_004.md +153 -0
  317. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_005.md +161 -0
  318. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_006.md +166 -0
  319. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_007.md +190 -0
  320. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_008.md +191 -0
  321. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_009.md +234 -0
  322. package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_010.md +240 -0
  323. package/pro/squads/squad-creator-pro/minds/pedro_valerio/artifacts/Assinatura_Linguistica.md +355 -0
  324. package/pro/squads/squad-creator-pro/minds/pedro_valerio/artifacts/META_AXIOMAS.md +277 -0
  325. package/pro/squads/squad-creator-pro/minds/pedro_valerio/heuristics/PV_BS_001.md +144 -0
  326. package/pro/squads/squad-creator-pro/minds/pedro_valerio/heuristics/PV_PA_001.md +174 -0
  327. package/pro/squads/squad-creator-pro/minds/pedro_valerio/heuristics/PV_PM_001.md +191 -0
  328. package/pro/squads/squad-creator-pro/package.json +26 -0
  329. package/pro/squads/squad-creator-pro/protocols/ai-first-governance.md +63 -0
  330. package/pro/squads/squad-creator-pro/scripts/README.md +246 -0
  331. package/pro/squads/squad-creator-pro/scripts/__pycache__/dependency_check.cpython-314.pyc +0 -0
  332. package/pro/squads/squad-creator-pro/scripts/__pycache__/inventory.cpython-314.pyc +0 -0
  333. package/pro/squads/squad-creator-pro/scripts/__pycache__/naming_validator.cpython-314.pyc +0 -0
  334. package/pro/squads/squad-creator-pro/scripts/__pycache__/quality_gate.cpython-314.pyc +0 -0
  335. package/pro/squads/squad-creator-pro/scripts/__pycache__/scoring.cpython-314.pyc +0 -0
  336. package/pro/squads/squad-creator-pro/scripts/__pycache__/yaml_validator.cpython-314.pyc +0 -0
  337. package/pro/squads/squad-creator-pro/scripts/assess-sources.sh +443 -0
  338. package/pro/squads/squad-creator-pro/scripts/checklist_validator.py +451 -0
  339. package/pro/squads/squad-creator-pro/scripts/clone-review.sh +394 -0
  340. package/pro/squads/squad-creator-pro/scripts/coherence-validator.py +836 -0
  341. package/pro/squads/squad-creator-pro/scripts/create-agent-preflight.py +243 -0
  342. package/pro/squads/squad-creator-pro/scripts/cross-provider/compare-results.js +281 -0
  343. package/pro/squads/squad-creator-pro/scripts/cross-provider/cross-provider-runner.js +462 -0
  344. package/pro/squads/squad-creator-pro/scripts/dependency_check.py +333 -0
  345. package/pro/squads/squad-creator-pro/scripts/fidelity-score.sh +519 -0
  346. package/pro/squads/squad-creator-pro/scripts/generate-squad-greeting.js +426 -0
  347. package/pro/squads/squad-creator-pro/scripts/generate-squad-guide.js +558 -0
  348. package/pro/squads/squad-creator-pro/scripts/inventory.py +269 -0
  349. package/pro/squads/squad-creator-pro/scripts/lib/config-loader.js +151 -0
  350. package/pro/squads/squad-creator-pro/scripts/model-tier-validator.cjs +369 -0
  351. package/pro/squads/squad-creator-pro/scripts/model-usage-logger.cjs +245 -0
  352. package/pro/squads/squad-creator-pro/scripts/modernization-score.sh +308 -0
  353. package/pro/squads/squad-creator-pro/scripts/naming_validator.py +299 -0
  354. package/pro/squads/squad-creator-pro/scripts/on-specialist-complete.py +98 -0
  355. package/pro/squads/squad-creator-pro/scripts/quality_gate.py +413 -0
  356. package/pro/squads/squad-creator-pro/scripts/refresh-registry.py +270 -0
  357. package/pro/squads/squad-creator-pro/scripts/save-session-metrics.py +136 -0
  358. package/pro/squads/squad-creator-pro/scripts/scaffold-squad.cjs +281 -0
  359. package/pro/squads/squad-creator-pro/scripts/scoring.py +395 -0
  360. package/pro/squads/squad-creator-pro/scripts/security_scanner.py +378 -0
  361. package/pro/squads/squad-creator-pro/scripts/squad-analytics.py +585 -0
  362. package/pro/squads/squad-creator-pro/scripts/squad-context-loader.cjs +205 -0
  363. package/pro/squads/squad-creator-pro/scripts/squad-state-manager.cjs +451 -0
  364. package/pro/squads/squad-creator-pro/scripts/squad-workflow-runner.cjs +471 -0
  365. package/pro/squads/squad-creator-pro/scripts/squad_utils.py +261 -0
  366. package/pro/squads/squad-creator-pro/scripts/sync-ide-command.py +590 -0
  367. package/pro/squads/squad-creator-pro/scripts/tests/__init__.py +1 -0
  368. package/pro/squads/squad-creator-pro/scripts/tests/conftest.py +309 -0
  369. package/pro/squads/squad-creator-pro/scripts/tests/run_bash_tests.sh +29 -0
  370. package/pro/squads/squad-creator-pro/scripts/tests/test_assess_sources.sh +216 -0
  371. package/pro/squads/squad-creator-pro/scripts/tests/test_checklist_validator.py +396 -0
  372. package/pro/squads/squad-creator-pro/scripts/tests/test_clone_review.sh +239 -0
  373. package/pro/squads/squad-creator-pro/scripts/tests/test_coherence_validator.py +212 -0
  374. package/pro/squads/squad-creator-pro/scripts/tests/test_dependency_check.py +361 -0
  375. package/pro/squads/squad-creator-pro/scripts/tests/test_fidelity_score.sh +298 -0
  376. package/pro/squads/squad-creator-pro/scripts/tests/test_inventory.py +307 -0
  377. package/pro/squads/squad-creator-pro/scripts/tests/test_modernization_score.sh +211 -0
  378. package/pro/squads/squad-creator-pro/scripts/tests/test_naming_validator.py +373 -0
  379. package/pro/squads/squad-creator-pro/scripts/tests/test_quality_gate.py +280 -0
  380. package/pro/squads/squad-creator-pro/scripts/tests/test_refresh_registry.py +338 -0
  381. package/pro/squads/squad-creator-pro/scripts/tests/test_scoring.py +366 -0
  382. package/pro/squads/squad-creator-pro/scripts/tests/test_security_scanner.py +354 -0
  383. package/pro/squads/squad-creator-pro/scripts/tests/test_squad_analytics.py +450 -0
  384. package/pro/squads/squad-creator-pro/scripts/tests/test_validate_clone.sh +252 -0
  385. package/pro/squads/squad-creator-pro/scripts/tests/test_yaml_validator.py +412 -0
  386. package/pro/squads/squad-creator-pro/scripts/validate-agent-output.py +115 -0
  387. package/pro/squads/squad-creator-pro/scripts/validate-all.sh +49 -0
  388. package/pro/squads/squad-creator-pro/scripts/validate-squad-structure.py +535 -0
  389. package/pro/squads/squad-creator-pro/scripts/validate-squad.sh +944 -0
  390. package/pro/squads/squad-creator-pro/scripts/yaml_validator.py +528 -0
  391. package/pro/squads/squad-creator-pro/skills/squad.md +301 -0
  392. package/pro/squads/squad-creator-pro/squad.yaml +36 -0
  393. package/pro/squads/squad-creator-pro/tasks/CHANGELOG.md +80 -0
  394. package/pro/squads/squad-creator-pro/tasks/an-assess-sources.md +78 -0
  395. package/pro/squads/squad-creator-pro/tasks/an-clone-review.md +104 -0
  396. package/pro/squads/squad-creator-pro/tasks/an-compare-outputs.md +354 -0
  397. package/pro/squads/squad-creator-pro/tasks/an-design-clone.md +79 -0
  398. package/pro/squads/squad-creator-pro/tasks/an-diagnose-clone.md +87 -0
  399. package/pro/squads/squad-creator-pro/tasks/an-extract-dna.md +90 -0
  400. package/pro/squads/squad-creator-pro/tasks/an-extract-framework.md +100 -0
  401. package/pro/squads/squad-creator-pro/tasks/an-fidelity-score.md +108 -0
  402. package/pro/squads/squad-creator-pro/tasks/an-validate-clone.md +96 -0
  403. package/pro/squads/squad-creator-pro/tasks/auto-acquire-sources.md +349 -0
  404. package/pro/squads/squad-creator-pro/tasks/collect-sources.md +533 -0
  405. package/pro/squads/squad-creator-pro/tasks/create-agent.md +768 -0
  406. package/pro/squads/squad-creator-pro/tasks/create-documentation.md +258 -0
  407. package/pro/squads/squad-creator-pro/tasks/create-pipeline.md +296 -0
  408. package/pro/squads/squad-creator-pro/tasks/create-squad.md +933 -0
  409. package/pro/squads/squad-creator-pro/tasks/create-task.md +1148 -0
  410. package/pro/squads/squad-creator-pro/tasks/create-template.md +474 -0
  411. package/pro/squads/squad-creator-pro/tasks/create-workflow.md +720 -0
  412. package/pro/squads/squad-creator-pro/tasks/deconstruct.md +167 -0
  413. package/pro/squads/squad-creator-pro/tasks/deep-research-pre-agent.md +566 -0
  414. package/pro/squads/squad-creator-pro/tasks/detect-squad-context.md +81 -0
  415. package/pro/squads/squad-creator-pro/tasks/discover-tools.md +944 -0
  416. package/pro/squads/squad-creator-pro/tasks/extract-implicit.md +352 -0
  417. package/pro/squads/squad-creator-pro/tasks/extract-knowledge.md +577 -0
  418. package/pro/squads/squad-creator-pro/tasks/extract-sop.md +320 -0
  419. package/pro/squads/squad-creator-pro/tasks/extract-thinking-dna.md +653 -0
  420. package/pro/squads/squad-creator-pro/tasks/extract-voice-dna.md +619 -0
  421. package/pro/squads/squad-creator-pro/tasks/find-0.8.md +222 -0
  422. package/pro/squads/squad-creator-pro/tasks/install-commands.md +373 -0
  423. package/pro/squads/squad-creator-pro/tasks/lookup-model.md +78 -0
  424. package/pro/squads/squad-creator-pro/tasks/migrate-workflows-to-yaml.md +259 -0
  425. package/pro/squads/squad-creator-pro/tasks/next-squad.md +487 -0
  426. package/pro/squads/squad-creator-pro/tasks/optimize-workflow.md +851 -0
  427. package/pro/squads/squad-creator-pro/tasks/optimize.md +1082 -0
  428. package/pro/squads/squad-creator-pro/tasks/parallel-discovery.md +58 -0
  429. package/pro/squads/squad-creator-pro/tasks/pv-audit.md +244 -0
  430. package/pro/squads/squad-creator-pro/tasks/pv-axioma-assessment-wf-clone-mind.yaml +256 -0
  431. package/pro/squads/squad-creator-pro/tasks/pv-axioma-assessment.md +83 -0
  432. package/pro/squads/squad-creator-pro/tasks/pv-modernization-score.md +83 -0
  433. package/pro/squads/squad-creator-pro/tasks/qa-after-creation.md +475 -0
  434. package/pro/squads/squad-creator-pro/tasks/qualify-task.md +265 -0
  435. package/pro/squads/squad-creator-pro/tasks/reexecute-squad-phase.md +64 -0
  436. package/pro/squads/squad-creator-pro/tasks/refresh-registry.md +403 -0
  437. package/pro/squads/squad-creator-pro/tasks/smoke-test-model-routing.md +167 -0
  438. package/pro/squads/squad-creator-pro/tasks/squad-analytics.md +265 -0
  439. package/pro/squads/squad-creator-pro/tasks/squad-fusion.md +817 -0
  440. package/pro/squads/squad-creator-pro/tasks/squad-overview.md +683 -0
  441. package/pro/squads/squad-creator-pro/tasks/sync-ide-command.md +392 -0
  442. package/pro/squads/squad-creator-pro/tasks/update-mind.md +428 -0
  443. package/pro/squads/squad-creator-pro/tasks/upgrade-squad.md +919 -0
  444. package/pro/squads/squad-creator-pro/tasks/validate-extraction.md +209 -0
  445. package/pro/squads/squad-creator-pro/tasks/validate-final-artifacts.md +80 -0
  446. package/pro/squads/squad-creator-pro/tasks/validate-squad.md +1385 -0
  447. package/pro/squads/squad-creator-pro/templates/.gitkeep +1 -0
  448. package/pro/squads/squad-creator-pro/templates/agent-flow-doc-tmpl.md +512 -0
  449. package/pro/squads/squad-creator-pro/templates/agent-tmpl.md +697 -0
  450. package/pro/squads/squad-creator-pro/templates/config-tmpl.yaml +352 -0
  451. package/pro/squads/squad-creator-pro/templates/handoff-insumos-tmpl.yaml +112 -0
  452. package/pro/squads/squad-creator-pro/templates/orchestrator-tmpl.md +74 -0
  453. package/pro/squads/squad-creator-pro/templates/pipeline-progress-tmpl.py +373 -0
  454. package/pro/squads/squad-creator-pro/templates/pipeline-runner-tmpl.py +444 -0
  455. package/pro/squads/squad-creator-pro/templates/pipeline-state-tmpl.py +413 -0
  456. package/pro/squads/squad-creator-pro/templates/pop-extractor-prompt.md +549 -0
  457. package/pro/squads/squad-creator-pro/templates/quality-dashboard-tmpl.md +286 -0
  458. package/pro/squads/squad-creator-pro/templates/quality-gate-tmpl.yaml +589 -0
  459. package/pro/squads/squad-creator-pro/templates/readme-tmpl.md +231 -0
  460. package/pro/squads/squad-creator-pro/templates/research-output-tmpl.md +625 -0
  461. package/pro/squads/squad-creator-pro/templates/research-prompt-tmpl.md +479 -0
  462. package/pro/squads/squad-creator-pro/templates/squad-prd-tmpl.md +464 -0
  463. package/pro/squads/squad-creator-pro/templates/squad-readme-tmpl.md +170 -0
  464. package/pro/squads/squad-creator-pro/templates/story-create-agent-tmpl.md +284 -0
  465. package/pro/squads/squad-creator-pro/templates/task-tmpl.md +461 -0
  466. package/pro/squads/squad-creator-pro/templates/template-tmpl.yaml +227 -0
  467. package/pro/squads/squad-creator-pro/templates/workflow-doc-tmpl.md +860 -0
  468. package/pro/squads/squad-creator-pro/templates/workflow-tmpl.yaml +394 -0
  469. package/pro/squads/squad-creator-pro/test-cases/BATCH-PROGRESS.md +268 -0
  470. package/pro/squads/squad-creator-pro/test-cases/QUALIFICATION-DASHBOARD.yaml +13 -0
  471. package/pro/squads/squad-creator-pro/test-cases/_template.yaml +147 -0
  472. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/ASSESSMENT-SUMMARY.md +275 -0
  473. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/ASSESSMENT_SUMMARY.md +140 -0
  474. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/CHECKPOINT_MATRIX.md +202 -0
  475. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/EXECUTION-REPORT.md +413 -0
  476. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/EXECUTION_NOTES.md +358 -0
  477. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/README-v2.2.2.md +299 -0
  478. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/README.md +320 -0
  479. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/TEST-REPORT-v2.1.md +351 -0
  480. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/VERIFICATION-CHECKLIST.txt +247 -0
  481. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/formal-qualification-report.yaml +389 -0
  482. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-output.yaml +366 -0
  483. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.1-output.yaml +452 -0
  484. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.2.1-output.yaml +281 -0
  485. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.2.2-output.yaml +332 -0
  486. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/opus-baseline.yaml +517 -0
  487. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/qualification-report.yaml +213 -0
  488. package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/test-case.yaml +69 -0
  489. package/pro/squads/squad-creator-pro/test-cases/an-clone-review/haiku-round-1.yaml +213 -0
  490. package/pro/squads/squad-creator-pro/test-cases/an-clone-review/opus-baseline.yaml +566 -0
  491. package/pro/squads/squad-creator-pro/test-cases/an-clone-review/qualification-report.yaml +82 -0
  492. package/pro/squads/squad-creator-pro/test-cases/an-design-clone/test-case.yaml +102 -0
  493. package/pro/squads/squad-creator-pro/test-cases/an-extract-dna/test-case.yaml +105 -0
  494. package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/haiku-round-1.yaml +262 -0
  495. package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/opus-baseline.yaml +266 -0
  496. package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/qualification-report.yaml +94 -0
  497. package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/haiku-round-1.yaml +282 -0
  498. package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/opus-baseline.yaml +470 -0
  499. package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/qualification-report.yaml +106 -0
  500. package/pro/squads/squad-creator-pro/test-cases/collect-sources/test-case.yaml +105 -0
  501. package/pro/squads/squad-creator-pro/test-cases/create-task/test-case.yaml +104 -0
  502. package/pro/squads/squad-creator-pro/test-cases/cross-provider/DASHBOARD.yaml +11 -0
  503. package/pro/squads/squad-creator-pro/test-cases/pv-audit/test-case.yaml +106 -0
  504. package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/haiku-output.yaml +209 -0
  505. package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/opus-baseline.yaml +96 -0
  506. package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/sonnet-output.yaml +30 -0
  507. package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/test-case.yaml +129 -0
  508. package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/comparison-round-1.yaml +242 -0
  509. package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/haiku-round-1.yaml +393 -0
  510. package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/opus-baseline.yaml +488 -0
  511. package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/qualification-report.yaml +74 -0
  512. package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/haiku-round-1.yaml +292 -0
  513. package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/opus-baseline.yaml +603 -0
  514. package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/qualification-report.yaml +97 -0
  515. package/pro/squads/squad-creator-pro/test-cases/smoke-test-model-routing/test-case.yaml +100 -0
  516. package/pro/squads/squad-creator-pro/test-cases/upgrade-squad/test-case.yaml +106 -0
  517. package/pro/squads/squad-creator-pro/test-cases/validate-squad/comparison-round-1.yaml +223 -0
  518. package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-1-MINE.yaml +36 -0
  519. package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-1.yaml +193 -0
  520. package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-2.yaml +303 -0
  521. package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-3-v4-task.yaml +149 -0
  522. package/pro/squads/squad-creator-pro/test-cases/validate-squad/opus-baseline.yaml +529 -0
  523. package/pro/squads/squad-creator-pro/test-cases/validate-squad/opus-round-3-v4-task.yaml +132 -0
  524. package/pro/squads/squad-creator-pro/test-cases/validate-squad/qualification-report.yaml +104 -0
  525. package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/haiku-output-v2-calibrated.yaml +200 -0
  526. package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/haiku-output.yaml +183 -0
  527. package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/opus-baseline.yaml +112 -0
  528. package/pro/squads/squad-creator-pro/utils/.gitkeep +1 -0
  529. package/pro/squads/squad-creator-pro/workflows/.gitkeep +1 -0
  530. package/pro/squads/squad-creator-pro/workflows/create-squad.yaml +348 -0
  531. package/pro/squads/squad-creator-pro/workflows/modules/module-discovery.yaml +16 -0
  532. package/pro/squads/squad-creator-pro/workflows/modules/module-integration.yaml +16 -0
  533. package/pro/squads/squad-creator-pro/workflows/modules/module-quality-gates.yaml +15 -0
  534. package/pro/squads/squad-creator-pro/workflows/validate-squad.yaml +582 -0
  535. package/pro/squads/squad-creator-pro/workflows/wf-auto-acquire-sources.yaml +518 -0
  536. package/pro/squads/squad-creator-pro/workflows/wf-brownfield-upgrade-squad.yaml +46 -0
  537. package/pro/squads/squad-creator-pro/workflows/wf-clone-mind.yaml +521 -0
  538. package/pro/squads/squad-creator-pro/workflows/wf-context-aware-create-squad.yaml +47 -0
  539. package/pro/squads/squad-creator-pro/workflows/wf-create-squad.yaml +1619 -0
  540. package/pro/squads/squad-creator-pro/workflows/wf-cross-provider-qualification.yaml +711 -0
  541. package/pro/squads/squad-creator-pro/workflows/wf-discover-tools.yaml +1439 -0
  542. package/pro/squads/squad-creator-pro/workflows/wf-extraction-pipeline.yaml +486 -0
  543. package/pro/squads/squad-creator-pro/workflows/wf-mind-research-loop.yaml +668 -0
  544. package/pro/squads/squad-creator-pro/workflows/wf-model-tier-qualification.yaml +800 -0
  545. package/pro/squads/squad-creator-pro/workflows/wf-optimize-squad.yaml +684 -0
  546. package/pro/squads/squad-creator-pro/workflows/wf-research-then-create-agent.yaml +921 -0
  547. package/pro/squads/squad-creator-pro/workflows/wf-squad-fusion.yaml +1684 -0
@@ -0,0 +1,450 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Tests for squad-analytics.py
4
+ Run with: pytest scripts/tests/test_squad_analytics.py -v
5
+ """
6
+
7
+ import os
8
+ import sys
9
+ import pytest
10
+ from pathlib import Path
11
+ from datetime import datetime
12
+
13
+ # Add parent directory to path for imports
14
+ sys.path.insert(0, str(Path(__file__).parent.parent))
15
+
16
+ # Import using underscore version of module name
17
+ import importlib.util
18
+ spec = importlib.util.spec_from_file_location(
19
+ "squad_analytics",
20
+ Path(__file__).parent.parent / "squad-analytics.py"
21
+ )
22
+ squad_analytics = importlib.util.module_from_spec(spec)
23
+ spec.loader.exec_module(squad_analytics)
24
+
25
+ count_files_by_extension = squad_analytics.count_files_by_extension
26
+ count_md_files = squad_analytics.count_md_files
27
+ list_files = squad_analytics.list_files
28
+ simple_yaml_parse = squad_analytics.simple_yaml_parse
29
+ read_config = squad_analytics.read_config
30
+ analyze_squad = squad_analytics.analyze_squad
31
+ calculate_quality_score = squad_analytics.calculate_quality_score
32
+ analyze_all_squads = squad_analytics.analyze_all_squads
33
+ format_table = squad_analytics.format_table
34
+
35
+
36
+ class TestCountFilesByExtension:
37
+ """Tests for count_files_by_extension function"""
38
+
39
+ def test_count_files_empty_dir(self, tmp_path):
40
+ """Empty directory returns 0"""
41
+ empty_dir = tmp_path / "empty"
42
+ empty_dir.mkdir()
43
+
44
+ result = count_files_by_extension(empty_dir, [".py"])
45
+
46
+ assert result == 0
47
+
48
+ def test_count_files_with_matches(self, tmp_path):
49
+ """Files matching extension are counted"""
50
+ test_dir = tmp_path / "test"
51
+ test_dir.mkdir()
52
+
53
+ (test_dir / "script1.py").write_text("# Python")
54
+ (test_dir / "script2.py").write_text("# Python")
55
+ (test_dir / "script3.js").write_text("// JS")
56
+
57
+ result = count_files_by_extension(test_dir, [".py"])
58
+
59
+ assert result == 2
60
+
61
+ def test_count_files_multiple_extensions(self, tmp_path):
62
+ """Multiple extensions work correctly"""
63
+ test_dir = tmp_path / "test"
64
+ test_dir.mkdir()
65
+
66
+ (test_dir / "file.py").write_text("PY")
67
+ (test_dir / "file.js").write_text("JS")
68
+ (test_dir / "file.sh").write_text("SH")
69
+
70
+ result = count_files_by_extension(test_dir, [".py", ".js"])
71
+
72
+ assert result == 2
73
+
74
+ def test_count_files_nonexistent_dir(self, tmp_path):
75
+ """Nonexistent directory returns 0"""
76
+ result = count_files_by_extension(tmp_path / "nonexistent", [".py"])
77
+
78
+ assert result == 0
79
+
80
+
81
+ class TestCountMdFiles:
82
+ """Tests for count_md_files function"""
83
+
84
+ def test_count_md_files_basic(self, tmp_path):
85
+ """MD files are counted"""
86
+ test_dir = tmp_path / "test"
87
+ test_dir.mkdir()
88
+
89
+ (test_dir / "file1.md").write_text("# F1")
90
+ (test_dir / "file2.md").write_text("# F2")
91
+
92
+ result = count_md_files(test_dir)
93
+
94
+ assert result == 2
95
+
96
+ def test_count_md_files_excludes_readme(self, tmp_path):
97
+ """README.md is excluded"""
98
+ test_dir = tmp_path / "test"
99
+ test_dir.mkdir()
100
+
101
+ (test_dir / "real-file.md").write_text("# Real")
102
+ (test_dir / "README.md").write_text("# README")
103
+ (test_dir / "readme.md").write_text("# readme")
104
+ (test_dir / "template.md").write_text("# Template")
105
+
106
+ result = count_md_files(test_dir)
107
+
108
+ assert result == 1
109
+
110
+
111
+ class TestListFiles:
112
+ """Tests for list_files function"""
113
+
114
+ def test_list_files_basic(self, tmp_path):
115
+ """Files are listed correctly"""
116
+ test_dir = tmp_path / "test"
117
+ test_dir.mkdir()
118
+
119
+ (test_dir / "alpha.md").write_text("A")
120
+ (test_dir / "beta.md").write_text("B")
121
+
122
+ result = list_files(test_dir, [".md"])
123
+
124
+ assert len(result) == 2
125
+ assert "alpha" in result
126
+ assert "beta" in result
127
+
128
+ def test_list_files_sorted(self, tmp_path):
129
+ """Files are returned sorted"""
130
+ test_dir = tmp_path / "test"
131
+ test_dir.mkdir()
132
+
133
+ (test_dir / "zebra.md").write_text("Z")
134
+ (test_dir / "alpha.md").write_text("A")
135
+
136
+ result = list_files(test_dir, [".md"])
137
+
138
+ assert result == ["alpha", "zebra"]
139
+
140
+ def test_list_files_excludes_special(self, tmp_path):
141
+ """Special files are excluded"""
142
+ test_dir = tmp_path / "test"
143
+ test_dir.mkdir()
144
+
145
+ (test_dir / "real.md").write_text("R")
146
+ (test_dir / "readme.md").write_text("README")
147
+
148
+ result = list_files(test_dir, [".md"])
149
+
150
+ assert "real" in result
151
+ assert "readme" not in result
152
+
153
+
154
+ class TestSimpleYamlParse:
155
+ """Tests for simple_yaml_parse function"""
156
+
157
+ def test_simple_yaml_parse_basic(self):
158
+ """Basic key-value pairs are parsed"""
159
+ content = """
160
+ name: test-squad
161
+ version: 1.0.0
162
+ description: Test description
163
+ """
164
+ result = simple_yaml_parse(content)
165
+
166
+ assert result["name"] == "test-squad"
167
+ assert result["version"] == "1.0.0"
168
+ assert result["description"] == "Test description"
169
+
170
+ def test_simple_yaml_parse_quoted_values(self):
171
+ """Quoted values have quotes stripped"""
172
+ content = """
173
+ name: "quoted-value"
174
+ other: 'single-quoted'
175
+ """
176
+ result = simple_yaml_parse(content)
177
+
178
+ assert result["name"] == "quoted-value"
179
+ assert result["other"] == "single-quoted"
180
+
181
+ def test_simple_yaml_parse_skips_comments(self):
182
+ """Comments are skipped"""
183
+ content = """
184
+ # This is a comment
185
+ name: value
186
+ # Another comment
187
+ version: 1.0.0
188
+ """
189
+ result = simple_yaml_parse(content)
190
+
191
+ assert "name" in result
192
+ assert result["name"] == "value"
193
+
194
+ def test_simple_yaml_parse_skips_list_items(self):
195
+ """List items (starting with -) are skipped"""
196
+ content = """
197
+ name: test
198
+ items:
199
+ - item1
200
+ - item2
201
+ version: 1.0.0
202
+ """
203
+ result = simple_yaml_parse(content)
204
+
205
+ assert "name" in result
206
+ assert "version" in result
207
+ # List items should not create keys
208
+
209
+
210
+ class TestReadConfig:
211
+ """Tests for read_config function"""
212
+
213
+ def test_read_config_exists(self, tmp_path):
214
+ """Config is read when exists"""
215
+ squad_dir = tmp_path / "test-squad"
216
+ squad_dir.mkdir()
217
+
218
+ (squad_dir / "config.yaml").write_text("""
219
+ name: test-squad
220
+ version: 2.0.0
221
+ """)
222
+
223
+ result = read_config(squad_dir)
224
+
225
+ assert result is not None
226
+ assert result["name"] == "test-squad"
227
+ assert result["version"] == "2.0.0"
228
+
229
+ def test_read_config_not_exists(self, tmp_path):
230
+ """Returns None when config doesn't exist"""
231
+ squad_dir = tmp_path / "test-squad"
232
+ squad_dir.mkdir()
233
+
234
+ result = read_config(squad_dir)
235
+
236
+ assert result is None
237
+
238
+
239
+ class TestCalculateQualityScore:
240
+ """Tests for calculate_quality_score function"""
241
+
242
+ def test_quality_score_complete(self):
243
+ """Complete squad gets high score"""
244
+ counts = {
245
+ "agents": 5,
246
+ "tasks": 10,
247
+ "workflows": 3,
248
+ "templates": 5,
249
+ "checklists": 3,
250
+ "data": 2,
251
+ }
252
+ result = calculate_quality_score(counts, has_readme=True, has_config=True)
253
+
254
+ assert "⭐⭐⭐" in result
255
+
256
+ def test_quality_score_minimal(self):
257
+ """Minimal squad gets low score"""
258
+ counts = {
259
+ "agents": 0,
260
+ "tasks": 0,
261
+ "workflows": 0,
262
+ "templates": 0,
263
+ "checklists": 0,
264
+ "data": 0,
265
+ }
266
+ result = calculate_quality_score(counts, has_readme=False, has_config=False)
267
+
268
+ assert "🔨" in result or "⭐" not in result
269
+
270
+ def test_quality_score_medium(self):
271
+ """Medium squad gets medium score"""
272
+ counts = {
273
+ "agents": 2,
274
+ "tasks": 3,
275
+ "workflows": 0,
276
+ "templates": 0,
277
+ "checklists": 0,
278
+ "data": 0,
279
+ }
280
+ result = calculate_quality_score(counts, has_readme=True, has_config=True)
281
+
282
+ # Should have some stars but not maximum
283
+ assert "⭐" in result
284
+
285
+
286
+ class TestAnalyzeSquad:
287
+ """Tests for analyze_squad function"""
288
+
289
+ def test_analyze_squad_complete(self, tmp_path):
290
+ """Complete squad is analyzed correctly"""
291
+ squad_dir = tmp_path / "test-squad"
292
+ squad_dir.mkdir()
293
+
294
+ (squad_dir / "config.yaml").write_text("""
295
+ name: test-squad
296
+ version: 1.5.0
297
+ description: Test description
298
+ short-title: Test
299
+ """)
300
+
301
+ agents_dir = squad_dir / "agents"
302
+ agents_dir.mkdir()
303
+ (agents_dir / "agent1.md").write_text("# A1")
304
+ (agents_dir / "agent2.md").write_text("# A2")
305
+
306
+ tasks_dir = squad_dir / "tasks"
307
+ tasks_dir.mkdir()
308
+ (tasks_dir / "task1.md").write_text("# T1")
309
+
310
+ (squad_dir / "README.md").write_text("# README")
311
+ (squad_dir / "CHANGELOG.md").write_text("# Changes")
312
+
313
+ result = analyze_squad(squad_dir)
314
+
315
+ assert result["name"] == "test-squad"
316
+ assert result["version"] == "1.5.0"
317
+ assert result["counts"]["agents"] == 2
318
+ assert result["counts"]["tasks"] == 1
319
+ assert result["has_readme"] == True
320
+ assert result["has_changelog"] == True
321
+ assert result["has_config"] == True
322
+ assert result["total"] == 3 # 2 agents + 1 task
323
+ assert "quality_score" in result
324
+
325
+ def test_analyze_squad_includes_components(self, tmp_path):
326
+ """Component names are captured"""
327
+ squad_dir = tmp_path / "test-squad"
328
+ squad_dir.mkdir()
329
+
330
+ agents_dir = squad_dir / "agents"
331
+ agents_dir.mkdir()
332
+ (agents_dir / "alpha-agent.md").write_text("# A")
333
+ (agents_dir / "beta-agent.md").write_text("# B")
334
+
335
+ result = analyze_squad(squad_dir)
336
+
337
+ assert "alpha-agent" in result["components"]["agents"]
338
+ assert "beta-agent" in result["components"]["agents"]
339
+
340
+
341
+ class TestAnalyzeAllSquads:
342
+ """Tests for analyze_all_squads function"""
343
+
344
+ def test_analyze_all_squads_empty(self, tmp_path):
345
+ """Empty directory returns empty results"""
346
+ squads_dir = tmp_path / "squads"
347
+ squads_dir.mkdir()
348
+
349
+ result = analyze_all_squads(squads_dir)
350
+
351
+ assert result["totals"]["squads"] == 0
352
+ assert len(result["squads"]) == 0
353
+
354
+ def test_analyze_all_squads_multiple(self, tmp_path):
355
+ """Multiple squads are analyzed"""
356
+ squads_dir = tmp_path / "squads"
357
+ squads_dir.mkdir()
358
+
359
+ # Squad 1
360
+ s1 = squads_dir / "squad-one"
361
+ s1.mkdir()
362
+ (s1 / "config.yaml").write_text("name: squad-one")
363
+ (s1 / "agents").mkdir()
364
+ (s1 / "agents" / "a1.md").write_text("A")
365
+ (s1 / "agents" / "a2.md").write_text("A")
366
+
367
+ # Squad 2
368
+ s2 = squads_dir / "squad-two"
369
+ s2.mkdir()
370
+ (s2 / "config.yaml").write_text("name: squad-two")
371
+ (s2 / "agents").mkdir()
372
+ (s2 / "agents" / "a1.md").write_text("A")
373
+
374
+ result = analyze_all_squads(squads_dir)
375
+
376
+ assert result["totals"]["squads"] == 2
377
+ assert result["totals"]["agents"] == 3
378
+ assert len(result["squads"]) == 2
379
+
380
+ def test_analyze_all_squads_skips_hidden(self, tmp_path):
381
+ """Hidden directories are skipped"""
382
+ squads_dir = tmp_path / "squads"
383
+ squads_dir.mkdir()
384
+
385
+ # Valid
386
+ valid = squads_dir / "valid-squad"
387
+ valid.mkdir()
388
+ (valid / "agents").mkdir()
389
+
390
+ # Hidden
391
+ hidden = squads_dir / ".hidden-squad"
392
+ hidden.mkdir()
393
+ (hidden / "agents").mkdir()
394
+
395
+ result = analyze_all_squads(squads_dir)
396
+
397
+ assert result["totals"]["squads"] == 1
398
+
399
+
400
+ class TestFormatTable:
401
+ """Tests for format_table function"""
402
+
403
+ def test_format_table_has_header(self, tmp_path):
404
+ """Table has header"""
405
+ squads_dir = tmp_path / "squads"
406
+ squads_dir.mkdir()
407
+
408
+ valid = squads_dir / "test-squad"
409
+ valid.mkdir()
410
+ (valid / "config.yaml").write_text("name: test-squad")
411
+
412
+ results = analyze_all_squads(squads_dir)
413
+ output = format_table(results)
414
+
415
+ assert "SQUAD ANALYTICS" in output
416
+ assert "Squad" in output
417
+
418
+ def test_format_table_shows_squads(self, tmp_path):
419
+ """Table shows squad data"""
420
+ squads_dir = tmp_path / "squads"
421
+ squads_dir.mkdir()
422
+
423
+ squad = squads_dir / "my-squad"
424
+ squad.mkdir()
425
+ (squad / "config.yaml").write_text("name: my-squad")
426
+ (squad / "agents").mkdir()
427
+ (squad / "agents" / "agent.md").write_text("A")
428
+
429
+ results = analyze_all_squads(squads_dir)
430
+ output = format_table(results)
431
+
432
+ assert "my-squad" in output
433
+
434
+ def test_format_table_shows_totals(self, tmp_path):
435
+ """Table shows totals"""
436
+ squads_dir = tmp_path / "squads"
437
+ squads_dir.mkdir()
438
+
439
+ squad = squads_dir / "test"
440
+ squad.mkdir()
441
+ (squad / "config.yaml").write_text("name: test")
442
+
443
+ results = analyze_all_squads(squads_dir)
444
+ output = format_table(results)
445
+
446
+ assert "SUMMARY" in output or "Squads:" in output
447
+
448
+
449
+ if __name__ == "__main__":
450
+ pytest.main([__file__, "-v"])
@@ -0,0 +1,252 @@
1
+ #!/bin/bash
2
+ # Tests for validate-clone.sh
3
+ # Run: bash squads/squad-creator-pro/scripts/tests/test_validate_clone.sh
4
+
5
+ set -u
6
+
7
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
+ SCRIPT="$SCRIPT_DIR/../validate-clone.sh"
9
+ FIDELITY_SCRIPT="$SCRIPT_DIR/../fidelity-score.sh"
10
+ PASS=0
11
+ FAIL=0
12
+ TOTAL=0
13
+
14
+ assert_eq() {
15
+ local test_name="$1" expected="$2" actual="$3"
16
+ TOTAL=$((TOTAL + 1))
17
+ if [[ "$expected" == "$actual" ]]; then
18
+ PASS=$((PASS + 1))
19
+ else
20
+ FAIL=$((FAIL + 1))
21
+ echo " FAIL: $test_name (expected '$expected', got '$actual')"
22
+ fi
23
+ }
24
+
25
+ assert_contains() {
26
+ local test_name="$1" pattern="$2" text="$3"
27
+ TOTAL=$((TOTAL + 1))
28
+ if echo "$text" | grep -qE "$pattern"; then
29
+ PASS=$((PASS + 1))
30
+ else
31
+ FAIL=$((FAIL + 1))
32
+ echo " FAIL: $test_name (pattern '$pattern' not found)"
33
+ fi
34
+ }
35
+
36
+ assert_exit() {
37
+ local test_name="$1" expected="$2" actual="$3"
38
+ TOTAL=$((TOTAL + 1))
39
+ if [[ "$expected" == "$actual" ]]; then
40
+ PASS=$((PASS + 1))
41
+ else
42
+ FAIL=$((FAIL + 1))
43
+ echo " FAIL: $test_name (expected exit $expected, got $actual)"
44
+ fi
45
+ }
46
+
47
+ # Check fidelity-score.sh exists (dependency)
48
+ if [[ ! -f "$FIDELITY_SCRIPT" ]]; then
49
+ echo "ERROR: fidelity-score.sh not found at $FIDELITY_SCRIPT"
50
+ exit 2
51
+ fi
52
+
53
+ echo "=== test_validate_clone.sh ==="
54
+
55
+ TMP=$(mktemp -d)
56
+ trap "rm -rf $TMP" EXIT
57
+
58
+ # Fixture: high-quality clone
59
+ cat > "$TMP/quality-clone.md" << 'FIXTURE'
60
+ # Quality Clone
61
+
62
+ activation-instructions: "Hello"
63
+ response_format: structured
64
+ modes:
65
+ default: "Standard"
66
+ states:
67
+ active: "Working"
68
+ triggers:
69
+ - provocation: "Stay calm"
70
+ objection_handling:
71
+ - response: "Let me explain"
72
+ never: Skip steps
73
+ anti_patterns:
74
+ - Rushing
75
+
76
+ signature_phrases:
77
+ - "Here's the deal"
78
+ - "Let me be frank"
79
+ - "No shortcuts"
80
+ - "Quality first"
81
+
82
+ vocabulary:
83
+ always_use:
84
+ - validate
85
+ - execute
86
+ - deliver
87
+ - verify
88
+ - confirm
89
+ - test
90
+ never_use:
91
+ - maybe
92
+ - perhaps
93
+ - might
94
+ writing_style: Direct and punchy
95
+ sentence_pattern: Short declarative
96
+ tone: Confident
97
+ tone: Casual in private
98
+ tone: Formal in presentations
99
+
100
+ metaphors:
101
+ - "Foundation before walls"
102
+ - "Measure twice cut once"
103
+ - "Polish after building"
104
+ - "Test before deploy"
105
+
106
+ greeting: "Let's work."
107
+ steps:
108
+ - Initialize
109
+ - Execute
110
+ - Validate
111
+ checkpoint: Verify each step
112
+ closing: "Done."
113
+ on_error: "Retry"
114
+
115
+ red_flags:
116
+ - No tests
117
+ green_flags:
118
+ - Clear specs
119
+ decision_rules:
120
+ - If unclear ask
121
+ PV_BS_001: Always validate
122
+ threshold: 80%
123
+
124
+ primary_framework: Decision Pipeline
125
+ thinking_dna: systematic
126
+ decision_architecture:
127
+ pipeline: Analyze Decide Execute
128
+ framework: Strategic Planning
129
+ framework: Risk Assessment
130
+ framework: Quality Gates
131
+ steps:
132
+ - Analyze
133
+ anti_patterns:
134
+ - Jumping to conclusions
135
+
136
+ core_beliefs:
137
+ - Quality over speed
138
+ defends: Process
139
+ rejects: Shortcuts
140
+ never: Compromise
141
+ trade_off: Speed for quality
142
+ non_negotiable: Testing
143
+
144
+ obsession: Quality
145
+ focus_areas:
146
+ - Automation
147
+ hills_to_die_on:
148
+ - Testing
149
+ mission: Build reliable systems
150
+ legacy: Quality standard
151
+ impact: Industry improvement
152
+
153
+ contradictions:
154
+ - "Fast but thorough"
155
+ paradox: Speed and quality
156
+ feature.not.bug: "Thoroughness"
157
+ context: "Emergency vs normal"
158
+ integration: "Balance"
159
+
160
+ experience: 20 years in the field
161
+ experience: Built 100+ systems
162
+ experience: Trained 500 engineers
163
+ client: Fortune 500 companies
164
+ case study: Reduced bugs by 90%
165
+
166
+ trigger: Quality provocation
167
+ objection_algorithm: Counter with data
168
+ FIXTURE
169
+
170
+ # Fixture: thin clone
171
+ cat > "$TMP/thin-clone.md" << 'FIXTURE'
172
+ # Thin Clone
173
+
174
+ A basic agent with minimal content.
175
+ Does some things.
176
+ FIXTURE
177
+
178
+ # --- Test 1: No args ---
179
+ echo " Test: no args"
180
+ output=$(bash "$SCRIPT" 2>&1)
181
+ exit_code=$?
182
+ assert_exit "no_args" "1" "$exit_code"
183
+ assert_contains "no_args_usage" "Usage:" "$output"
184
+
185
+ # --- Test 2: Missing file ---
186
+ echo " Test: missing file"
187
+ output=$(bash "$SCRIPT" "$TMP/nonexistent.md" 2>&1)
188
+ exit_code=$?
189
+ assert_exit "missing_file" "1" "$exit_code"
190
+
191
+ # --- Test 3: Quality clone produces report ---
192
+ echo " Test: quality clone report"
193
+ output=$(bash "$SCRIPT" "$TMP/quality-clone.md" 2>&1)
194
+ exit_code=$?
195
+ assert_exit "quality_exit" "0" "$exit_code"
196
+ assert_contains "has_validation_report" "validation_report:" "$output"
197
+ assert_contains "has_fidelity" "fidelity:" "$output"
198
+ assert_contains "has_authenticity" "authenticity:" "$output"
199
+ assert_contains "has_hackability" "hackability:" "$output"
200
+ assert_contains "has_verdict" "verdict:" "$output"
201
+
202
+ # --- Test 4: Authenticity markers scored ---
203
+ echo " Test: authenticity markers"
204
+ output=$(bash "$SCRIPT" "$TMP/quality-clone.md" 2>&1)
205
+ for id in 1 2 3 4 5 6 7 8 9; do
206
+ assert_contains "auth_marker_$id" "id: $id" "$output"
207
+ done
208
+ # AM10 should be REQUIRES_LLM
209
+ assert_contains "am10_requires_llm" "REQUIRES_LLM" "$output"
210
+
211
+ # --- Test 5: Hackability defaults to SKIPPED ---
212
+ echo " Test: hackability skipped by default"
213
+ output=$(bash "$SCRIPT" "$TMP/quality-clone.md" 2>&1)
214
+ assert_contains "hack_skipped" "SKIPPED" "$output"
215
+
216
+ # --- Test 6: --assume-hack pass ---
217
+ echo " Test: assume hack pass"
218
+ output=$(bash "$SCRIPT" "$TMP/quality-clone.md" --assume-hack pass 2>&1)
219
+ assert_contains "hack_assumed_pass" "ASSUMED_PASS" "$output"
220
+
221
+ # --- Test 7: --assume-hack fail ---
222
+ echo " Test: assume hack fail"
223
+ output=$(bash "$SCRIPT" "$TMP/quality-clone.md" --assume-hack fail 2>&1)
224
+ assert_contains "hack_assumed_fail" "ASSUMED_FAIL" "$output"
225
+
226
+ # --- Test 8: Thin clone gets FAIL or REVIEW ---
227
+ echo " Test: thin clone verdict"
228
+ output=$(bash "$SCRIPT" "$TMP/thin-clone.md" 2>&1)
229
+ assert_contains "thin_verdict" "(FAIL|REVIEW)" "$output"
230
+
231
+ # --- Test 9: JSON output ---
232
+ echo " Test: JSON output"
233
+ json_output=$(bash "$SCRIPT" "$TMP/quality-clone.md" --json 2>&1)
234
+ assert_contains "json_brace" "^\{" "$json_output"
235
+ assert_contains "json_validation" '"validation_report"' "$json_output"
236
+
237
+ # --- Test 10: Decision tree thresholds ---
238
+ echo " Test: decision tree"
239
+ # Quality clone with hack fail should FAIL
240
+ output=$(bash "$SCRIPT" "$TMP/quality-clone.md" --assume-hack fail 2>&1)
241
+ verdict=$(echo "$output" | grep "decision:" | head -1)
242
+ assert_contains "hack_fail_verdict" "FAIL" "$verdict"
243
+
244
+ # --- Test 11: Determinism ---
245
+ echo " Test: determinism"
246
+ out1=$(bash "$SCRIPT" "$TMP/quality-clone.md" 2>&1 | grep "decision:")
247
+ out2=$(bash "$SCRIPT" "$TMP/quality-clone.md" 2>&1 | grep "decision:")
248
+ assert_eq "deterministic" "$out1" "$out2"
249
+
250
+ echo ""
251
+ echo "=== RESULTS: $PASS/$TOTAL passed, $FAIL failed ==="
252
+ [[ $FAIL -eq 0 ]] && exit 0 || exit 1