create-genia-os 2.4.0 → 3.0.0

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 (724) hide show
  1. package/bin/index.js +332 -332
  2. package/package.json +42 -42
  3. package/template/.aiox-core/constitution.md +171 -0
  4. package/template/.aiox-core/core-config.yaml +388 -0
  5. package/template/.aiox-core/development/README.md +142 -0
  6. package/template/.aiox-core/development/agent-teams/team-all.yaml +15 -0
  7. package/template/.aiox-core/development/agent-teams/team-fullstack.yaml +18 -0
  8. package/template/.aiox-core/development/agent-teams/team-ide-minimal.yaml +10 -0
  9. package/template/.aiox-core/development/agent-teams/team-no-ui.yaml +13 -0
  10. package/template/.aiox-core/development/agent-teams/team-qa-focused.yaml +155 -0
  11. package/template/.aiox-core/development/agents/aiox-master.md +463 -0
  12. package/template/.aiox-core/development/agents/analyst/MEMORY.md +33 -0
  13. package/template/.aiox-core/development/agents/analyst.md +271 -0
  14. package/template/.aiox-core/development/agents/architect/MEMORY.md +39 -0
  15. package/template/.aiox-core/development/agents/architect.md +472 -0
  16. package/template/.aiox-core/development/agents/data-engineer/MEMORY.md +32 -0
  17. package/template/.aiox-core/development/agents/data-engineer.md +493 -0
  18. package/template/.aiox-core/development/agents/dev/MEMORY.md +46 -0
  19. package/template/.aiox-core/development/agents/dev.md +558 -0
  20. package/template/.aiox-core/development/agents/devops/MEMORY.md +39 -0
  21. package/template/.aiox-core/development/agents/devops.md +537 -0
  22. package/template/.aiox-core/development/agents/pm/MEMORY.md +38 -0
  23. package/template/.aiox-core/development/agents/pm.md +375 -0
  24. package/template/.aiox-core/development/agents/po/MEMORY.md +45 -0
  25. package/template/.aiox-core/development/agents/po.md +333 -0
  26. package/template/.aiox-core/development/agents/qa/MEMORY.md +42 -0
  27. package/template/.aiox-core/development/agents/qa.md +447 -0
  28. package/template/.aiox-core/development/agents/sm/MEMORY.md +31 -0
  29. package/template/.aiox-core/development/agents/sm.md +285 -0
  30. package/template/.aiox-core/development/agents/squad-creator.md +342 -0
  31. package/template/.aiox-core/development/agents/ux/MEMORY.md +31 -0
  32. package/template/.aiox-core/development/agents/ux-design-expert.md +493 -0
  33. package/template/.aiox-core/development/checklists/agent-quality-gate.md +559 -0
  34. package/template/.aiox-core/development/checklists/brownfield-compatibility-checklist.md +114 -0
  35. package/template/.aiox-core/development/checklists/issue-triage-checklist.md +35 -0
  36. package/template/.aiox-core/development/checklists/memory-audit-checklist.md +53 -0
  37. package/template/.aiox-core/development/checklists/self-critique-checklist.md +273 -0
  38. package/template/.aiox-core/development/data/decision-heuristics-framework.md +621 -0
  39. package/template/.aiox-core/development/data/quality-dimensions-framework.md +426 -0
  40. package/template/.aiox-core/development/data/tier-system-framework.md +475 -0
  41. package/template/.aiox-core/development/scripts/activation-runtime.js +63 -0
  42. package/template/.aiox-core/development/scripts/agent-assignment-resolver.js +231 -0
  43. package/template/.aiox-core/development/scripts/agent-config-loader.js +626 -0
  44. package/template/.aiox-core/development/scripts/agent-exit-hooks.js +96 -0
  45. package/template/.aiox-core/development/scripts/apply-inline-greeting-all-agents.js +146 -0
  46. package/template/.aiox-core/development/scripts/approval-workflow.js +643 -0
  47. package/template/.aiox-core/development/scripts/audit-agent-config.js +380 -0
  48. package/template/.aiox-core/development/scripts/backlog-manager.js +407 -0
  49. package/template/.aiox-core/development/scripts/backup-manager.js +607 -0
  50. package/template/.aiox-core/development/scripts/batch-update-agents-session-context.js +95 -0
  51. package/template/.aiox-core/development/scripts/branch-manager.js +390 -0
  52. package/template/.aiox-core/development/scripts/code-quality-improver.js +1329 -0
  53. package/template/.aiox-core/development/scripts/commit-message-generator.js +850 -0
  54. package/template/.aiox-core/development/scripts/conflict-resolver.js +675 -0
  55. package/template/.aiox-core/development/scripts/decision-context.js +228 -0
  56. package/template/.aiox-core/development/scripts/decision-log-generator.js +293 -0
  57. package/template/.aiox-core/development/scripts/decision-log-indexer.js +284 -0
  58. package/template/.aiox-core/development/scripts/decision-recorder.js +168 -0
  59. package/template/.aiox-core/development/scripts/dependency-analyzer.js +638 -0
  60. package/template/.aiox-core/development/scripts/dev-context-loader.js +296 -0
  61. package/template/.aiox-core/development/scripts/diff-generator.js +352 -0
  62. package/template/.aiox-core/development/scripts/elicitation-engine.js +385 -0
  63. package/template/.aiox-core/development/scripts/elicitation-session-manager.js +300 -0
  64. package/template/.aiox-core/development/scripts/generate-greeting.js +109 -0
  65. package/template/.aiox-core/development/scripts/git-wrapper.js +462 -0
  66. package/template/.aiox-core/development/scripts/greeting-builder.js +1404 -0
  67. package/template/.aiox-core/development/scripts/greeting-config-cli.js +85 -0
  68. package/template/.aiox-core/development/scripts/greeting-preference-manager.js +169 -0
  69. package/template/.aiox-core/development/scripts/issue-triage.js +171 -0
  70. package/template/.aiox-core/development/scripts/manifest-preview.js +245 -0
  71. package/template/.aiox-core/development/scripts/metrics-tracker.js +776 -0
  72. package/template/.aiox-core/development/scripts/migrate-task-to-v2.js +377 -0
  73. package/template/.aiox-core/development/scripts/modification-validator.js +555 -0
  74. package/template/.aiox-core/development/scripts/pattern-learner.js +1225 -0
  75. package/template/.aiox-core/development/scripts/performance-analyzer.js +758 -0
  76. package/template/.aiox-core/development/scripts/populate-entity-registry.js +673 -0
  77. package/template/.aiox-core/development/scripts/refactoring-suggester.js +1148 -0
  78. package/template/.aiox-core/development/scripts/rollback-handler.js +531 -0
  79. package/template/.aiox-core/development/scripts/security-checker.js +359 -0
  80. package/template/.aiox-core/development/scripts/skill-validator.js +341 -0
  81. package/template/.aiox-core/development/scripts/squad/README.md +112 -0
  82. package/template/.aiox-core/development/scripts/squad/index.js +123 -0
  83. package/template/.aiox-core/development/scripts/squad/squad-analyzer.js +637 -0
  84. package/template/.aiox-core/development/scripts/squad/squad-designer.js +1010 -0
  85. package/template/.aiox-core/development/scripts/squad/squad-downloader.js +510 -0
  86. package/template/.aiox-core/development/scripts/squad/squad-extender.js +871 -0
  87. package/template/.aiox-core/development/scripts/squad/squad-generator.js +1405 -0
  88. package/template/.aiox-core/development/scripts/squad/squad-loader.js +359 -0
  89. package/template/.aiox-core/development/scripts/squad/squad-migrator.js +627 -0
  90. package/template/.aiox-core/development/scripts/squad/squad-publisher.js +629 -0
  91. package/template/.aiox-core/development/scripts/squad/squad-validator.js +855 -0
  92. package/template/.aiox-core/development/scripts/story-index-generator.js +337 -0
  93. package/template/.aiox-core/development/scripts/story-manager.js +375 -0
  94. package/template/.aiox-core/development/scripts/story-update-hook.js +259 -0
  95. package/template/.aiox-core/development/scripts/task-identifier-resolver.js +145 -0
  96. package/template/.aiox-core/development/scripts/template-engine.js +240 -0
  97. package/template/.aiox-core/development/scripts/template-validator.js +279 -0
  98. package/template/.aiox-core/development/scripts/test-generator.js +844 -0
  99. package/template/.aiox-core/development/scripts/test-greeting-system.js +142 -0
  100. package/template/.aiox-core/development/scripts/transaction-manager.js +590 -0
  101. package/template/.aiox-core/development/scripts/unified-activation-pipeline.js +815 -0
  102. package/template/.aiox-core/development/scripts/usage-tracker.js +674 -0
  103. package/template/.aiox-core/development/scripts/validate-filenames.js +226 -0
  104. package/template/.aiox-core/development/scripts/validate-task-v2.js +319 -0
  105. package/template/.aiox-core/development/scripts/verify-workflow-gaps.js +1032 -0
  106. package/template/.aiox-core/development/scripts/version-tracker.js +527 -0
  107. package/template/.aiox-core/development/scripts/workflow-navigator.js +327 -0
  108. package/template/.aiox-core/development/scripts/workflow-state-manager.js +650 -0
  109. package/template/.aiox-core/development/scripts/workflow-validator.js +769 -0
  110. package/template/.aiox-core/development/scripts/yaml-validator.js +397 -0
  111. package/template/.aiox-core/development/tasks/add-mcp.md +436 -0
  112. package/template/.aiox-core/development/tasks/advanced-elicitation.md +319 -0
  113. package/template/.aiox-core/development/tasks/analyst-facilitate-brainstorming.md +342 -0
  114. package/template/.aiox-core/development/tasks/analyze-brownfield.md +456 -0
  115. package/template/.aiox-core/development/tasks/analyze-cross-artifact.md +357 -0
  116. package/template/.aiox-core/development/tasks/analyze-framework.md +697 -0
  117. package/template/.aiox-core/development/tasks/analyze-performance.md +637 -0
  118. package/template/.aiox-core/development/tasks/analyze-project-structure.md +669 -0
  119. package/template/.aiox-core/development/tasks/apply-qa-fixes.md +347 -0
  120. package/template/.aiox-core/development/tasks/architect-analyze-impact.md +834 -0
  121. package/template/.aiox-core/development/tasks/audit-codebase.md +429 -0
  122. package/template/.aiox-core/development/tasks/audit-tailwind-config.md +270 -0
  123. package/template/.aiox-core/development/tasks/audit-utilities.md +358 -0
  124. package/template/.aiox-core/development/tasks/blocks/README.md +178 -0
  125. package/template/.aiox-core/development/tasks/blocks/agent-prompt-template.md +115 -0
  126. package/template/.aiox-core/development/tasks/blocks/context-loading.md +108 -0
  127. package/template/.aiox-core/development/tasks/blocks/execution-pattern.md +121 -0
  128. package/template/.aiox-core/development/tasks/blocks/finalization.md +123 -0
  129. package/template/.aiox-core/development/tasks/bootstrap-shadcn-library.md +286 -0
  130. package/template/.aiox-core/development/tasks/brownfield-create-epic.md +573 -0
  131. package/template/.aiox-core/development/tasks/brownfield-create-story.md +364 -0
  132. package/template/.aiox-core/development/tasks/build-autonomous.md +199 -0
  133. package/template/.aiox-core/development/tasks/build-component.md +478 -0
  134. package/template/.aiox-core/development/tasks/build-resume.md +125 -0
  135. package/template/.aiox-core/development/tasks/build-status.md +155 -0
  136. package/template/.aiox-core/development/tasks/build.md +141 -0
  137. package/template/.aiox-core/development/tasks/calculate-roi.md +455 -0
  138. package/template/.aiox-core/development/tasks/check-docs-links.md +114 -0
  139. package/template/.aiox-core/development/tasks/ci-cd-configuration.md +764 -0
  140. package/template/.aiox-core/development/tasks/cleanup-utilities.md +670 -0
  141. package/template/.aiox-core/development/tasks/cleanup-worktrees.md +39 -0
  142. package/template/.aiox-core/development/tasks/collaborative-edit.md +1109 -0
  143. package/template/.aiox-core/development/tasks/compose-molecule.md +284 -0
  144. package/template/.aiox-core/development/tasks/consolidate-patterns.md +414 -0
  145. package/template/.aiox-core/development/tasks/correct-course.md +280 -0
  146. package/template/.aiox-core/development/tasks/create-agent.md +1198 -0
  147. package/template/.aiox-core/development/tasks/create-brownfield-story.md +727 -0
  148. package/template/.aiox-core/development/tasks/create-deep-research-prompt.md +506 -0
  149. package/template/.aiox-core/development/tasks/create-doc.md +360 -0
  150. package/template/.aiox-core/development/tasks/create-next-story.md +791 -0
  151. package/template/.aiox-core/development/tasks/create-service.md +414 -0
  152. package/template/.aiox-core/development/tasks/create-suite.md +291 -0
  153. package/template/.aiox-core/development/tasks/create-task.md +390 -0
  154. package/template/.aiox-core/development/tasks/create-workflow.md +430 -0
  155. package/template/.aiox-core/development/tasks/create-worktree.md +437 -0
  156. package/template/.aiox-core/development/tasks/db-analyze-hotpaths.md +572 -0
  157. package/template/.aiox-core/development/tasks/db-apply-migration.md +381 -0
  158. package/template/.aiox-core/development/tasks/db-bootstrap.md +642 -0
  159. package/template/.aiox-core/development/tasks/db-domain-modeling.md +693 -0
  160. package/template/.aiox-core/development/tasks/db-dry-run.md +293 -0
  161. package/template/.aiox-core/development/tasks/db-env-check.md +260 -0
  162. package/template/.aiox-core/development/tasks/db-explain.md +631 -0
  163. package/template/.aiox-core/development/tasks/db-impersonate.md +495 -0
  164. package/template/.aiox-core/development/tasks/db-load-csv.md +593 -0
  165. package/template/.aiox-core/development/tasks/db-policy-apply.md +653 -0
  166. package/template/.aiox-core/development/tasks/db-rls-audit.md +411 -0
  167. package/template/.aiox-core/development/tasks/db-rollback.md +739 -0
  168. package/template/.aiox-core/development/tasks/db-run-sql.md +613 -0
  169. package/template/.aiox-core/development/tasks/db-schema-audit.md +1011 -0
  170. package/template/.aiox-core/development/tasks/db-seed.md +390 -0
  171. package/template/.aiox-core/development/tasks/db-smoke-test.md +351 -0
  172. package/template/.aiox-core/development/tasks/db-snapshot.md +569 -0
  173. package/template/.aiox-core/development/tasks/db-squad-integration.md +663 -0
  174. package/template/.aiox-core/development/tasks/db-supabase-setup.md +712 -0
  175. package/template/.aiox-core/development/tasks/db-verify-order.md +515 -0
  176. package/template/.aiox-core/development/tasks/deprecate-component.md +957 -0
  177. package/template/.aiox-core/development/tasks/dev-apply-qa-fixes.md +318 -0
  178. package/template/.aiox-core/development/tasks/dev-backlog-debt.md +469 -0
  179. package/template/.aiox-core/development/tasks/dev-develop-story.md +924 -0
  180. package/template/.aiox-core/development/tasks/dev-improve-code-quality.md +873 -0
  181. package/template/.aiox-core/development/tasks/dev-optimize-performance.md +1034 -0
  182. package/template/.aiox-core/development/tasks/dev-suggest-refactoring.md +877 -0
  183. package/template/.aiox-core/development/tasks/dev-validate-next-story.md +349 -0
  184. package/template/.aiox-core/development/tasks/document-gotchas.md +477 -0
  185. package/template/.aiox-core/development/tasks/document-project.md +553 -0
  186. package/template/.aiox-core/development/tasks/environment-bootstrap.md +1389 -0
  187. package/template/.aiox-core/development/tasks/execute-checklist.md +308 -0
  188. package/template/.aiox-core/development/tasks/execute-epic-plan.md +885 -0
  189. package/template/.aiox-core/development/tasks/export-design-tokens-dtcg.md +274 -0
  190. package/template/.aiox-core/development/tasks/extend-pattern.md +269 -0
  191. package/template/.aiox-core/development/tasks/extract-patterns.md +397 -0
  192. package/template/.aiox-core/development/tasks/extract-tokens.md +467 -0
  193. package/template/.aiox-core/development/tasks/facilitate-brainstorming-session.md +518 -0
  194. package/template/.aiox-core/development/tasks/generate-ai-frontend-prompt.md +261 -0
  195. package/template/.aiox-core/development/tasks/generate-documentation.md +284 -0
  196. package/template/.aiox-core/development/tasks/generate-migration-strategy.md +522 -0
  197. package/template/.aiox-core/development/tasks/generate-shock-report.md +501 -0
  198. package/template/.aiox-core/development/tasks/github-devops-github-pr-automation.md +720 -0
  199. package/template/.aiox-core/development/tasks/github-devops-pre-push-quality-gate.md +860 -0
  200. package/template/.aiox-core/development/tasks/github-devops-repository-cleanup.md +374 -0
  201. package/template/.aiox-core/development/tasks/github-devops-version-management.md +483 -0
  202. package/template/.aiox-core/development/tasks/github-issue-triage.md +118 -0
  203. package/template/.aiox-core/development/tasks/gotcha.md +136 -0
  204. package/template/.aiox-core/development/tasks/gotchas.md +153 -0
  205. package/template/.aiox-core/development/tasks/health-check.yaml +265 -0
  206. package/template/.aiox-core/development/tasks/ids-governor.md +94 -0
  207. package/template/.aiox-core/development/tasks/ids-health.md +89 -0
  208. package/template/.aiox-core/development/tasks/ids-query.md +154 -0
  209. package/template/.aiox-core/development/tasks/improve-self.md +823 -0
  210. package/template/.aiox-core/development/tasks/index-docs.md +388 -0
  211. package/template/.aiox-core/development/tasks/init-project-status.md +506 -0
  212. package/template/.aiox-core/development/tasks/integrate-squad.md +314 -0
  213. package/template/.aiox-core/development/tasks/kb-mode-interaction.md +284 -0
  214. package/template/.aiox-core/development/tasks/learn-patterns.md +901 -0
  215. package/template/.aiox-core/development/tasks/list-mcps.md +33 -0
  216. package/template/.aiox-core/development/tasks/list-worktrees.md +342 -0
  217. package/template/.aiox-core/development/tasks/mcp-workflow.md +437 -0
  218. package/template/.aiox-core/development/tasks/merge-worktree.md +42 -0
  219. package/template/.aiox-core/development/tasks/modify-agent.md +398 -0
  220. package/template/.aiox-core/development/tasks/modify-task.md +441 -0
  221. package/template/.aiox-core/development/tasks/modify-workflow.md +510 -0
  222. package/template/.aiox-core/development/tasks/next.md +325 -0
  223. package/template/.aiox-core/development/tasks/orchestrate-resume.md +59 -0
  224. package/template/.aiox-core/development/tasks/orchestrate-status.md +63 -0
  225. package/template/.aiox-core/development/tasks/orchestrate-stop.md +54 -0
  226. package/template/.aiox-core/development/tasks/orchestrate.md +65 -0
  227. package/template/.aiox-core/development/tasks/patterns.md +334 -0
  228. package/template/.aiox-core/development/tasks/plan-create-context.md +856 -0
  229. package/template/.aiox-core/development/tasks/plan-create-implementation.md +852 -0
  230. package/template/.aiox-core/development/tasks/plan-execute-subtask.md +960 -0
  231. package/template/.aiox-core/development/tasks/po-backlog-add.md +370 -0
  232. package/template/.aiox-core/development/tasks/po-close-story.md +434 -0
  233. package/template/.aiox-core/development/tasks/po-manage-story-backlog.md +523 -0
  234. package/template/.aiox-core/development/tasks/po-pull-story-from-clickup.md +540 -0
  235. package/template/.aiox-core/development/tasks/po-pull-story.md +316 -0
  236. package/template/.aiox-core/development/tasks/po-stories-index.md +351 -0
  237. package/template/.aiox-core/development/tasks/po-sync-story-to-clickup.md +457 -0
  238. package/template/.aiox-core/development/tasks/po-sync-story.md +303 -0
  239. package/template/.aiox-core/development/tasks/pr-automation.md +701 -0
  240. package/template/.aiox-core/development/tasks/project-status.md +280 -0
  241. package/template/.aiox-core/development/tasks/propose-modification.md +843 -0
  242. package/template/.aiox-core/development/tasks/publish-npm.md +257 -0
  243. package/template/.aiox-core/development/tasks/qa-after-creation.md +519 -0
  244. package/template/.aiox-core/development/tasks/qa-backlog-add-followup.md +425 -0
  245. package/template/.aiox-core/development/tasks/qa-browser-console-check.md +343 -0
  246. package/template/.aiox-core/development/tasks/qa-create-fix-request.md +630 -0
  247. package/template/.aiox-core/development/tasks/qa-evidence-requirements.md +314 -0
  248. package/template/.aiox-core/development/tasks/qa-false-positive-detection.md +374 -0
  249. package/template/.aiox-core/development/tasks/qa-fix-issues.md +692 -0
  250. package/template/.aiox-core/development/tasks/qa-gate.md +430 -0
  251. package/template/.aiox-core/development/tasks/qa-generate-tests.md +1175 -0
  252. package/template/.aiox-core/development/tasks/qa-library-validation.md +496 -0
  253. package/template/.aiox-core/development/tasks/qa-migration-validation.md +583 -0
  254. package/template/.aiox-core/development/tasks/qa-nfr-assess.md +558 -0
  255. package/template/.aiox-core/development/tasks/qa-review-build.md +1224 -0
  256. package/template/.aiox-core/development/tasks/qa-review-proposal.md +1158 -0
  257. package/template/.aiox-core/development/tasks/qa-review-story.md +714 -0
  258. package/template/.aiox-core/development/tasks/qa-risk-profile.md +567 -0
  259. package/template/.aiox-core/development/tasks/qa-run-tests.md +277 -0
  260. package/template/.aiox-core/development/tasks/qa-security-checklist.md +551 -0
  261. package/template/.aiox-core/development/tasks/qa-test-design.md +388 -0
  262. package/template/.aiox-core/development/tasks/qa-trace-requirements.md +477 -0
  263. package/template/.aiox-core/development/tasks/release-management.md +759 -0
  264. package/template/.aiox-core/development/tasks/remove-mcp.md +35 -0
  265. package/template/.aiox-core/development/tasks/remove-worktree.md +433 -0
  266. package/template/.aiox-core/development/tasks/resolve-github-issue.md +608 -0
  267. package/template/.aiox-core/development/tasks/review-contributor-pr.md +152 -0
  268. package/template/.aiox-core/development/tasks/run-design-system-pipeline.md +640 -0
  269. package/template/.aiox-core/development/tasks/run-workflow-engine.md +859 -0
  270. package/template/.aiox-core/development/tasks/run-workflow.md +387 -0
  271. package/template/.aiox-core/development/tasks/search-mcp.md +309 -0
  272. package/template/.aiox-core/development/tasks/security-audit.md +554 -0
  273. package/template/.aiox-core/development/tasks/security-scan.md +790 -0
  274. package/template/.aiox-core/development/tasks/session-resume.md +192 -0
  275. package/template/.aiox-core/development/tasks/setup-database.md +741 -0
  276. package/template/.aiox-core/development/tasks/setup-design-system.md +462 -0
  277. package/template/.aiox-core/development/tasks/setup-github.md +874 -0
  278. package/template/.aiox-core/development/tasks/setup-llm-routing.md +229 -0
  279. package/template/.aiox-core/development/tasks/setup-mcp-docker.md +627 -0
  280. package/template/.aiox-core/development/tasks/setup-project-docs.md +440 -0
  281. package/template/.aiox-core/development/tasks/shard-doc.md +538 -0
  282. package/template/.aiox-core/development/tasks/sm-create-next-story.md +480 -0
  283. package/template/.aiox-core/development/tasks/spec-assess-complexity.md +461 -0
  284. package/template/.aiox-core/development/tasks/spec-critique.md +603 -0
  285. package/template/.aiox-core/development/tasks/spec-gather-requirements.md +552 -0
  286. package/template/.aiox-core/development/tasks/spec-research-dependencies.md +449 -0
  287. package/template/.aiox-core/development/tasks/spec-write-spec.md +536 -0
  288. package/template/.aiox-core/development/tasks/squad-creator-analyze.md +315 -0
  289. package/template/.aiox-core/development/tasks/squad-creator-create.md +312 -0
  290. package/template/.aiox-core/development/tasks/squad-creator-design.md +334 -0
  291. package/template/.aiox-core/development/tasks/squad-creator-download.md +167 -0
  292. package/template/.aiox-core/development/tasks/squad-creator-extend.md +411 -0
  293. package/template/.aiox-core/development/tasks/squad-creator-list.md +225 -0
  294. package/template/.aiox-core/development/tasks/squad-creator-migrate.md +243 -0
  295. package/template/.aiox-core/development/tasks/squad-creator-publish.md +229 -0
  296. package/template/.aiox-core/development/tasks/squad-creator-sync-ide-command.md +402 -0
  297. package/template/.aiox-core/development/tasks/squad-creator-sync-synkra.md +315 -0
  298. package/template/.aiox-core/development/tasks/squad-creator-validate.md +159 -0
  299. package/template/.aiox-core/development/tasks/story-checkpoint.md +360 -0
  300. package/template/.aiox-core/development/tasks/sync-documentation.md +865 -0
  301. package/template/.aiox-core/development/tasks/sync-registry-intel.md +79 -0
  302. package/template/.aiox-core/development/tasks/tailwind-upgrade.md +294 -0
  303. package/template/.aiox-core/development/tasks/test-as-user.md +621 -0
  304. package/template/.aiox-core/development/tasks/test-validation-task.md +171 -0
  305. package/template/.aiox-core/development/tasks/triage-github-issues.md +356 -0
  306. package/template/.aiox-core/development/tasks/undo-last.md +347 -0
  307. package/template/.aiox-core/development/tasks/update-aiox.md +151 -0
  308. package/template/.aiox-core/development/tasks/update-manifest.md +410 -0
  309. package/template/.aiox-core/development/tasks/update-source-tree.md +137 -0
  310. package/template/.aiox-core/development/tasks/ux-create-wireframe.md +617 -0
  311. package/template/.aiox-core/development/tasks/ux-ds-scan-artifact.md +672 -0
  312. package/template/.aiox-core/development/tasks/ux-user-research.md +559 -0
  313. package/template/.aiox-core/development/tasks/validate-agents.md +119 -0
  314. package/template/.aiox-core/development/tasks/validate-next-story.md +472 -0
  315. package/template/.aiox-core/development/tasks/validate-tech-preset.md +186 -0
  316. package/template/.aiox-core/development/tasks/validate-workflow.md +321 -0
  317. package/template/.aiox-core/development/tasks/verify-subtask.md +235 -0
  318. package/template/.aiox-core/development/tasks/waves.md +205 -0
  319. package/template/.aiox-core/development/tasks/yolo-toggle.md +113 -0
  320. package/template/.aiox-core/development/templates/agent-handoff-tmpl.yaml +48 -0
  321. package/template/.aiox-core/development/templates/aiox-doc-template.md +494 -0
  322. package/template/.aiox-core/development/templates/code-intel-integration-pattern.md +199 -0
  323. package/template/.aiox-core/development/templates/ptc-entity-validation.md +113 -0
  324. package/template/.aiox-core/development/templates/ptc-qa-gate.md +100 -0
  325. package/template/.aiox-core/development/templates/ptc-research-aggregation.md +94 -0
  326. package/template/.aiox-core/development/templates/research-prompt-tmpl.md +486 -0
  327. package/template/.aiox-core/development/templates/service-template/README.md.hbs +158 -0
  328. package/template/.aiox-core/development/templates/service-template/__tests__/index.test.ts.hbs +237 -0
  329. package/template/.aiox-core/development/templates/service-template/client.ts.hbs +403 -0
  330. package/template/.aiox-core/development/templates/service-template/errors.ts.hbs +182 -0
  331. package/template/.aiox-core/development/templates/service-template/index.ts.hbs +120 -0
  332. package/template/.aiox-core/development/templates/service-template/jest.config.js +89 -0
  333. package/template/.aiox-core/development/templates/service-template/package.json.hbs +87 -0
  334. package/template/.aiox-core/development/templates/service-template/tsconfig.json +45 -0
  335. package/template/.aiox-core/development/templates/service-template/types.ts.hbs +145 -0
  336. package/template/.aiox-core/development/templates/squad/agent-template.md +80 -0
  337. package/template/.aiox-core/development/templates/squad/checklist-template.md +82 -0
  338. package/template/.aiox-core/development/templates/squad/data-template.yaml +105 -0
  339. package/template/.aiox-core/development/templates/squad/script-template.js +179 -0
  340. package/template/.aiox-core/development/templates/squad/task-template.md +146 -0
  341. package/template/.aiox-core/development/templates/squad/template-template.md +97 -0
  342. package/template/.aiox-core/development/templates/squad/tool-template.js +103 -0
  343. package/template/.aiox-core/development/templates/squad/workflow-template.yaml +123 -0
  344. package/template/.aiox-core/development/templates/squad-template/LICENSE +21 -0
  345. package/template/.aiox-core/development/templates/squad-template/README.md +37 -0
  346. package/template/.aiox-core/development/templates/squad-template/agents/example-agent.yaml +36 -0
  347. package/template/.aiox-core/development/templates/squad-template/package.json +19 -0
  348. package/template/.aiox-core/development/templates/squad-template/squad.yaml +25 -0
  349. package/template/.aiox-core/development/templates/squad-template/tasks/example-task.yaml +46 -0
  350. package/template/.aiox-core/development/templates/squad-template/templates/example-template.md +24 -0
  351. package/template/.aiox-core/development/templates/squad-template/tests/example-agent.test.js +53 -0
  352. package/template/.aiox-core/development/templates/squad-template/workflows/example-workflow.yaml +75 -0
  353. package/template/.aiox-core/development/templates/subagent-step-prompt.md +120 -0
  354. package/template/.aiox-core/development/workflows/README.md +88 -0
  355. package/template/.aiox-core/development/workflows/auto-worktree.yaml +421 -0
  356. package/template/.aiox-core/development/workflows/brownfield-discovery.yaml +932 -0
  357. package/template/.aiox-core/development/workflows/brownfield-fullstack.yaml +367 -0
  358. package/template/.aiox-core/development/workflows/brownfield-service.yaml +244 -0
  359. package/template/.aiox-core/development/workflows/brownfield-ui.yaml +258 -0
  360. package/template/.aiox-core/development/workflows/design-system-build-quality.yaml +227 -0
  361. package/template/.aiox-core/development/workflows/development-cycle.yaml +515 -0
  362. package/template/.aiox-core/development/workflows/epic-orchestration.yaml +326 -0
  363. package/template/.aiox-core/development/workflows/greenfield-fullstack.yaml +384 -0
  364. package/template/.aiox-core/development/workflows/greenfield-service.yaml +276 -0
  365. package/template/.aiox-core/development/workflows/greenfield-ui.yaml +282 -0
  366. package/template/.aiox-core/development/workflows/qa-loop.yaml +443 -0
  367. package/template/.aiox-core/development/workflows/spec-pipeline.yaml +576 -0
  368. package/template/.aiox-core/development/workflows/story-development-cycle.yaml +284 -0
  369. package/template/.aiox-core/elicitation/agent-elicitation.js +272 -0
  370. package/template/.aiox-core/elicitation/task-elicitation.js +281 -0
  371. package/template/.aiox-core/elicitation/workflow-elicitation.js +315 -0
  372. package/template/.aiox-core/framework-config.yaml +158 -0
  373. package/template/.aiox-core/hooks/gemini/after-tool.js +77 -0
  374. package/template/.aiox-core/hooks/gemini/before-agent.js +79 -0
  375. package/template/.aiox-core/hooks/gemini/before-tool.js +114 -0
  376. package/template/.aiox-core/hooks/gemini/rewind-handler.js +68 -0
  377. package/template/.aiox-core/hooks/gemini/session-end.js +90 -0
  378. package/template/.aiox-core/hooks/gemini/session-start.js +90 -0
  379. package/template/.aiox-core/hooks/ids-post-commit.js +116 -0
  380. package/template/.aiox-core/hooks/ids-pre-push.js +123 -0
  381. package/template/.aiox-core/hooks/unified/README.md +338 -0
  382. package/template/.aiox-core/hooks/unified/hook-interface.js +159 -0
  383. package/template/.aiox-core/hooks/unified/hook-registry.js +143 -0
  384. package/template/.aiox-core/hooks/unified/index.js +36 -0
  385. package/template/.aiox-core/hooks/unified/runners/precompact-runner.js +96 -0
  386. package/template/.aiox-core/manifests/schema/manifest-schema.json +190 -0
  387. package/template/.aiox-core/presets/README.md +358 -0
  388. package/template/.aiox-core/product/README.md +56 -0
  389. package/template/.aiox-core/product/checklists/accessibility-wcag-checklist.md +80 -0
  390. package/template/.aiox-core/product/checklists/architect-checklist.md +444 -0
  391. package/template/.aiox-core/product/checklists/change-checklist.md +183 -0
  392. package/template/.aiox-core/product/checklists/component-quality-checklist.md +74 -0
  393. package/template/.aiox-core/product/checklists/database-design-checklist.md +119 -0
  394. package/template/.aiox-core/product/checklists/dba-predeploy-checklist.md +97 -0
  395. package/template/.aiox-core/product/checklists/dba-rollback-checklist.md +99 -0
  396. package/template/.aiox-core/product/checklists/migration-readiness-checklist.md +75 -0
  397. package/template/.aiox-core/product/checklists/pattern-audit-checklist.md +88 -0
  398. package/template/.aiox-core/product/checklists/pm-checklist.md +376 -0
  399. package/template/.aiox-core/product/checklists/po-master-checklist.md +442 -0
  400. package/template/.aiox-core/product/checklists/pre-push-checklist.md +108 -0
  401. package/template/.aiox-core/product/checklists/release-checklist.md +122 -0
  402. package/template/.aiox-core/product/checklists/self-critique-checklist.md +386 -0
  403. package/template/.aiox-core/product/checklists/story-dod-checklist.md +102 -0
  404. package/template/.aiox-core/product/checklists/story-draft-checklist.md +216 -0
  405. package/template/.aiox-core/product/data/atomic-design-principles.md +108 -0
  406. package/template/.aiox-core/product/data/brainstorming-techniques.md +37 -0
  407. package/template/.aiox-core/product/data/consolidation-algorithms.md +142 -0
  408. package/template/.aiox-core/product/data/database-best-practices.md +182 -0
  409. package/template/.aiox-core/product/data/design-token-best-practices.md +107 -0
  410. package/template/.aiox-core/product/data/elicitation-methods.md +135 -0
  411. package/template/.aiox-core/product/data/integration-patterns.md +207 -0
  412. package/template/.aiox-core/product/data/migration-safety-guide.md +329 -0
  413. package/template/.aiox-core/product/data/mode-selection-best-practices.md +471 -0
  414. package/template/.aiox-core/product/data/postgres-tuning-guide.md +300 -0
  415. package/template/.aiox-core/product/data/rls-security-patterns.md +333 -0
  416. package/template/.aiox-core/product/data/roi-calculation-guide.md +142 -0
  417. package/template/.aiox-core/product/data/supabase-patterns.md +330 -0
  418. package/template/.aiox-core/product/data/test-levels-framework.md +149 -0
  419. package/template/.aiox-core/product/data/test-priorities-matrix.md +175 -0
  420. package/template/.aiox-core/product/data/wcag-compliance-guide.md +267 -0
  421. package/template/.aiox-core/product/templates/activation-instructions-inline-greeting.yaml +63 -0
  422. package/template/.aiox-core/product/templates/activation-instructions-template.md +258 -0
  423. package/template/.aiox-core/product/templates/adr.hbs +125 -0
  424. package/template/.aiox-core/product/templates/agent-template.yaml +121 -0
  425. package/template/.aiox-core/product/templates/aiox-ai-config.yaml +106 -0
  426. package/template/.aiox-core/product/templates/architecture-tmpl.yaml +651 -0
  427. package/template/.aiox-core/product/templates/brainstorming-output-tmpl.yaml +156 -0
  428. package/template/.aiox-core/product/templates/brownfield-architecture-tmpl.yaml +476 -0
  429. package/template/.aiox-core/product/templates/brownfield-prd-tmpl.yaml +280 -0
  430. package/template/.aiox-core/product/templates/brownfield-risk-report-tmpl.yaml +277 -0
  431. package/template/.aiox-core/product/templates/changelog-template.md +134 -0
  432. package/template/.aiox-core/product/templates/command-rationalization-matrix.md +152 -0
  433. package/template/.aiox-core/product/templates/competitor-analysis-tmpl.yaml +293 -0
  434. package/template/.aiox-core/product/templates/component-react-tmpl.tsx +98 -0
  435. package/template/.aiox-core/product/templates/current-approach-tmpl.md +56 -0
  436. package/template/.aiox-core/product/templates/dbdr.hbs +241 -0
  437. package/template/.aiox-core/product/templates/design-story-tmpl.yaml +587 -0
  438. package/template/.aiox-core/product/templates/ds-artifact-analysis.md +70 -0
  439. package/template/.aiox-core/product/templates/engine/elicitation.js +297 -0
  440. package/template/.aiox-core/product/templates/engine/index.js +308 -0
  441. package/template/.aiox-core/product/templates/engine/loader.js +231 -0
  442. package/template/.aiox-core/product/templates/engine/renderer.js +343 -0
  443. package/template/.aiox-core/product/templates/engine/schemas/adr.schema.json +102 -0
  444. package/template/.aiox-core/product/templates/engine/schemas/dbdr.schema.json +205 -0
  445. package/template/.aiox-core/product/templates/engine/schemas/epic.schema.json +175 -0
  446. package/template/.aiox-core/product/templates/engine/schemas/pmdr.schema.json +175 -0
  447. package/template/.aiox-core/product/templates/engine/schemas/prd-v2.schema.json +300 -0
  448. package/template/.aiox-core/product/templates/engine/schemas/prd.schema.json +152 -0
  449. package/template/.aiox-core/product/templates/engine/schemas/story.schema.json +222 -0
  450. package/template/.aiox-core/product/templates/engine/schemas/task.schema.json +154 -0
  451. package/template/.aiox-core/product/templates/engine/validator.js +294 -0
  452. package/template/.aiox-core/product/templates/epic.hbs +212 -0
  453. package/template/.aiox-core/product/templates/eslintrc-security.json +32 -0
  454. package/template/.aiox-core/product/templates/front-end-architecture-tmpl.yaml +206 -0
  455. package/template/.aiox-core/product/templates/front-end-spec-tmpl.yaml +349 -0
  456. package/template/.aiox-core/product/templates/fullstack-architecture-tmpl.yaml +805 -0
  457. package/template/.aiox-core/product/templates/gemini/settings.json +79 -0
  458. package/template/.aiox-core/product/templates/github-actions-cd.yml +212 -0
  459. package/template/.aiox-core/product/templates/github-actions-ci.yml +172 -0
  460. package/template/.aiox-core/product/templates/github-pr-template.md +67 -0
  461. package/template/.aiox-core/product/templates/gordon-mcp.yaml +140 -0
  462. package/template/.aiox-core/product/templates/ide-rules/antigravity-rules.md +115 -0
  463. package/template/.aiox-core/product/templates/ide-rules/claude-rules.md +356 -0
  464. package/template/.aiox-core/product/templates/ide-rules/codex-rules.md +65 -0
  465. package/template/.aiox-core/product/templates/ide-rules/copilot-rules.md +92 -0
  466. package/template/.aiox-core/product/templates/ide-rules/cursor-rules.md +115 -0
  467. package/template/.aiox-core/product/templates/ide-rules/gemini-rules.md +87 -0
  468. package/template/.aiox-core/product/templates/index-strategy-tmpl.yaml +53 -0
  469. package/template/.aiox-core/product/templates/market-research-tmpl.yaml +252 -0
  470. package/template/.aiox-core/product/templates/mcp-workflow.js +271 -0
  471. package/template/.aiox-core/product/templates/migration-plan-tmpl.yaml +1022 -0
  472. package/template/.aiox-core/product/templates/migration-strategy-tmpl.md +524 -0
  473. package/template/.aiox-core/product/templates/personalized-agent-template.md +258 -0
  474. package/template/.aiox-core/product/templates/personalized-checklist-template.md +340 -0
  475. package/template/.aiox-core/product/templates/personalized-task-template-v2.md +905 -0
  476. package/template/.aiox-core/product/templates/personalized-task-template.md +344 -0
  477. package/template/.aiox-core/product/templates/personalized-template-file.yaml +322 -0
  478. package/template/.aiox-core/product/templates/personalized-workflow-template.yaml +460 -0
  479. package/template/.aiox-core/product/templates/pmdr.hbs +186 -0
  480. package/template/.aiox-core/product/templates/prd-tmpl.yaml +202 -0
  481. package/template/.aiox-core/product/templates/prd-v2.0.hbs +216 -0
  482. package/template/.aiox-core/product/templates/prd.hbs +201 -0
  483. package/template/.aiox-core/product/templates/project-brief-tmpl.yaml +221 -0
  484. package/template/.aiox-core/product/templates/qa-gate-tmpl.yaml +240 -0
  485. package/template/.aiox-core/product/templates/qa-report-tmpl.md +234 -0
  486. package/template/.aiox-core/product/templates/rls-policies-tmpl.yaml +1203 -0
  487. package/template/.aiox-core/product/templates/schema-design-tmpl.yaml +428 -0
  488. package/template/.aiox-core/product/templates/shock-report-tmpl.html +502 -0
  489. package/template/.aiox-core/product/templates/spec-tmpl.md +234 -0
  490. package/template/.aiox-core/product/templates/state-persistence-tmpl.yaml +219 -0
  491. package/template/.aiox-core/product/templates/statusline/statusline-script.js +188 -0
  492. package/template/.aiox-core/product/templates/statusline/track-agent.sh +68 -0
  493. package/template/.aiox-core/product/templates/story-tmpl.yaml +368 -0
  494. package/template/.aiox-core/product/templates/story.hbs +263 -0
  495. package/template/.aiox-core/product/templates/task-execution-report.md +495 -0
  496. package/template/.aiox-core/product/templates/task-template.md +123 -0
  497. package/template/.aiox-core/product/templates/task.hbs +170 -0
  498. package/template/.aiox-core/product/templates/tmpl-comment-on-examples.sql +158 -0
  499. package/template/.aiox-core/product/templates/tmpl-migration-script.sql +91 -0
  500. package/template/.aiox-core/product/templates/tmpl-rls-granular-policies.sql +104 -0
  501. package/template/.aiox-core/product/templates/tmpl-rls-kiss-policy.sql +10 -0
  502. package/template/.aiox-core/product/templates/tmpl-rls-roles.sql +135 -0
  503. package/template/.aiox-core/product/templates/tmpl-rls-simple.sql +77 -0
  504. package/template/.aiox-core/product/templates/tmpl-rls-tenant.sql +152 -0
  505. package/template/.aiox-core/product/templates/tmpl-rollback-script.sql +77 -0
  506. package/template/.aiox-core/product/templates/tmpl-seed-data.sql +140 -0
  507. package/template/.aiox-core/product/templates/tmpl-smoke-test.sql +16 -0
  508. package/template/.aiox-core/product/templates/tmpl-staging-copy-merge.sql +139 -0
  509. package/template/.aiox-core/product/templates/tmpl-stored-proc.sql +140 -0
  510. package/template/.aiox-core/product/templates/tmpl-trigger.sql +152 -0
  511. package/template/.aiox-core/product/templates/tmpl-view-materialized.sql +133 -0
  512. package/template/.aiox-core/product/templates/tmpl-view.sql +177 -0
  513. package/template/.aiox-core/product/templates/token-exports-css-tmpl.css +240 -0
  514. package/template/.aiox-core/product/templates/token-exports-tailwind-tmpl.js +395 -0
  515. package/template/.aiox-core/product/templates/tokens-schema-tmpl.yaml +305 -0
  516. package/template/.aiox-core/product/templates/workflow-template.yaml +151 -0
  517. package/template/.aiox-core/project-config.yaml +166 -0
  518. package/template/.aiox-core/quality/metrics-collector.js +599 -0
  519. package/template/.aiox-core/quality/metrics-hook.js +260 -0
  520. package/template/.aiox-core/quality/schemas/quality-metrics.schema.json +233 -0
  521. package/template/.aiox-core/quality/seed-metrics.js +336 -0
  522. package/template/.aiox-core/schemas/README.md +403 -0
  523. package/template/.aiox-core/schemas/agent-v3-schema.json +394 -0
  524. package/template/.aiox-core/schemas/squad-design-schema.json +299 -0
  525. package/template/.aiox-core/schemas/squad-schema.json +185 -0
  526. package/template/.aiox-core/schemas/task-v3-schema.json +353 -0
  527. package/template/.aiox-core/schemas/validate-v3-schema.js +430 -0
  528. package/template/.aiox-core/user-guide.md +1409 -0
  529. package/template/.aiox-core/utils/aiox-validator.js +25 -0
  530. package/template/.aiox-core/utils/filters/constants.js +10 -0
  531. package/template/.aiox-core/utils/filters/content-filter.js +223 -0
  532. package/template/.aiox-core/utils/filters/field-filter.js +126 -0
  533. package/template/.aiox-core/utils/filters/index.js +180 -0
  534. package/template/.aiox-core/utils/filters/schema-filter.js +157 -0
  535. package/template/.aiox-core/utils/format-duration.js +95 -0
  536. package/template/.aiox-core/workflow-intelligence/__tests__/confidence-scorer.test.js +334 -0
  537. package/template/.aiox-core/workflow-intelligence/__tests__/integration.test.js +339 -0
  538. package/template/.aiox-core/workflow-intelligence/__tests__/suggestion-engine.test.js +437 -0
  539. package/template/.aiox-core/workflow-intelligence/__tests__/wave-analyzer.test.js +447 -0
  540. package/template/.aiox-core/workflow-intelligence/__tests__/workflow-registry.test.js +302 -0
  541. package/template/.aiox-core/workflow-intelligence/engine/confidence-scorer.js +306 -0
  542. package/template/.aiox-core/workflow-intelligence/engine/output-formatter.js +299 -0
  543. package/template/.aiox-core/workflow-intelligence/engine/suggestion-engine.js +797 -0
  544. package/template/.aiox-core/workflow-intelligence/engine/wave-analyzer.js +683 -0
  545. package/template/.aiox-core/workflow-intelligence/index.js +329 -0
  546. package/template/.aiox-core/workflow-intelligence/learning/capture-hook.js +147 -0
  547. package/template/.aiox-core/workflow-intelligence/learning/gotcha-registry.js +653 -0
  548. package/template/.aiox-core/workflow-intelligence/learning/index.js +305 -0
  549. package/template/.aiox-core/workflow-intelligence/learning/pattern-capture.js +329 -0
  550. package/template/.aiox-core/workflow-intelligence/learning/pattern-store.js +497 -0
  551. package/template/.aiox-core/workflow-intelligence/learning/pattern-validator.js +309 -0
  552. package/template/.aiox-core/workflow-intelligence/learning/qa-feedback.js +585 -0
  553. package/template/.aiox-core/workflow-intelligence/learning/semantic-search.js +521 -0
  554. package/template/.aiox-core/workflow-intelligence/registry/workflow-registry.js +357 -0
  555. package/template/.aiox-core/working-in-the-brownfield.md +361 -0
  556. package/template/.antigravity/rules/agents/aiox-master.md +97 -0
  557. package/template/.antigravity/rules/agents/analyst.md +41 -0
  558. package/template/.antigravity/rules/agents/architect.md +50 -0
  559. package/template/.antigravity/rules/agents/data-engineer.md +43 -0
  560. package/template/.antigravity/rules/agents/dev.md +74 -0
  561. package/template/.antigravity/rules/agents/devops.md +71 -0
  562. package/template/.antigravity/rules/agents/pm.md +50 -0
  563. package/template/.antigravity/rules/agents/po.md +45 -0
  564. package/template/.antigravity/rules/agents/qa.md +57 -0
  565. package/template/.antigravity/rules/agents/sm.md +34 -0
  566. package/template/.antigravity/rules/agents/squad-creator.md +41 -0
  567. package/template/.antigravity/rules/agents/ux-design-expert.md +12 -0
  568. package/template/.claude/CLAUDE.md +313 -97
  569. package/template/.claude/commands/AIOX/agents/aiox-master.md +465 -0
  570. package/template/.claude/commands/AIOX/agents/analyst.md +273 -0
  571. package/template/.claude/commands/AIOX/agents/architect.md +474 -0
  572. package/template/.claude/commands/AIOX/agents/data-engineer.md +495 -0
  573. package/template/.claude/commands/AIOX/agents/dev.md +560 -0
  574. package/template/.claude/commands/AIOX/agents/devops.md +539 -0
  575. package/template/.claude/commands/AIOX/agents/pm.md +377 -0
  576. package/template/.claude/commands/AIOX/agents/po.md +335 -0
  577. package/template/.claude/commands/AIOX/agents/qa.md +449 -0
  578. package/template/.claude/commands/AIOX/agents/sm.md +287 -0
  579. package/template/.claude/commands/AIOX/agents/squad-creator.md +344 -0
  580. package/template/.claude/commands/AIOX/agents/ux-design-expert.md +495 -0
  581. package/template/.claude/commands/AIOX/scripts/agent-config-loader.js +624 -0
  582. package/template/.claude/commands/AIOX/scripts/generate-greeting.js +160 -0
  583. package/template/.claude/commands/AIOX/scripts/greeting-builder.js +866 -0
  584. package/template/.claude/commands/AIOX/scripts/session-context-loader.js +286 -0
  585. package/template/.claude/commands/AIOX/stories/story-6.1.4.md +1404 -0
  586. package/template/.claude/commands/cohort-squad/agents/cohort-manager.md +145 -0
  587. package/template/.claude/commands/design-system/agents/brad-frost.md +1097 -0
  588. package/template/.claude/commands/design-system/agents/dan-mall.md +857 -0
  589. package/template/.claude/commands/design-system/agents/dave-malouf.md +2272 -0
  590. package/template/.claude/commands/design-system/agents/design-chief.md +102 -0
  591. package/template/.claude/commands/design-system/agents/nano-banana-generator.md +162 -0
  592. package/template/.claude/commands/greet.md +101 -0
  593. package/template/.claude/commands/synapse/manager.md +75 -0
  594. package/template/.claude/commands/synapse/tasks/add-rule.md +94 -0
  595. package/template/.claude/commands/synapse/tasks/create-command.md +109 -0
  596. package/template/.claude/commands/synapse/tasks/create-domain.md +127 -0
  597. package/template/.claude/commands/synapse/tasks/diagnose-synapse.md +245 -0
  598. package/template/.claude/commands/synapse/tasks/edit-rule.md +109 -0
  599. package/template/.claude/commands/synapse/tasks/suggest-domain.md +116 -0
  600. package/template/.claude/commands/synapse/tasks/toggle-domain.md +83 -0
  601. package/template/.claude/commands/synapse/templates/domain-template +8 -0
  602. package/template/.claude/commands/synapse/templates/manifest-entry-template +4 -0
  603. package/template/.claude/commands/synapse/utils/manifest-parser-reference.md +134 -0
  604. package/template/.claude/hooks/README.md +194 -0
  605. package/template/.claude/hooks/enforce-architecture-first.py +196 -0
  606. package/template/.claude/hooks/enforce-git-push-authority.sh +33 -0
  607. package/template/.claude/hooks/install-hooks.sh +41 -0
  608. package/template/.claude/hooks/mind-clone-governance.py +192 -0
  609. package/template/.claude/hooks/pre-commit-version-check.sh +156 -0
  610. package/template/.claude/hooks/precompact-session-digest.cjs +141 -87
  611. package/template/.claude/hooks/precompact-wrapper.cjs +46 -0
  612. package/template/.claude/hooks/read-protection.py +151 -0
  613. package/template/.claude/hooks/slug-validation.py +176 -0
  614. package/template/.claude/hooks/sql-governance.py +155 -38
  615. package/template/.claude/hooks/synapse-engine.cjs +91 -324
  616. package/template/.claude/hooks/synapse-wrapper.cjs +57 -0
  617. package/template/.claude/hooks/write-path-validation.py +169 -34
  618. package/template/.claude/rules/agent-authority.md +105 -39
  619. package/template/.claude/rules/agent-handoff.md +97 -71
  620. package/template/.claude/rules/agent-memory-imports.md +15 -0
  621. package/template/.claude/rules/coderabbit-integration.md +101 -0
  622. package/template/.claude/rules/ids-principles.md +119 -52
  623. package/template/.claude/rules/mcp-usage.md +176 -49
  624. package/template/.claude/rules/story-lifecycle.md +145 -87
  625. package/template/.claude/rules/tool-examples.md +64 -0
  626. package/template/.claude/rules/tool-response-filtering.md +57 -0
  627. package/template/.claude/rules/workflow-execution.md +150 -68
  628. package/template/.claude/settings.json +26 -58
  629. package/template/.synapse/agent-aiox-master +15 -0
  630. package/template/.synapse/agent-analyst +14 -38
  631. package/template/.synapse/agent-architect +16 -44
  632. package/template/.synapse/agent-data-engineer +17 -0
  633. package/template/.synapse/agent-dev +18 -8
  634. package/template/.synapse/agent-devops +17 -53
  635. package/template/.synapse/agent-pm +16 -37
  636. package/template/.synapse/agent-po +15 -48
  637. package/template/.synapse/agent-qa +16 -42
  638. package/template/.synapse/agent-sm +13 -68
  639. package/template/.synapse/agent-squad-creator +14 -0
  640. package/template/.synapse/agent-ux +15 -0
  641. package/template/.synapse/commands +109 -0
  642. package/template/.synapse/constitution +49 -44
  643. package/template/.synapse/context +25 -8
  644. package/template/.synapse/global +24 -47
  645. package/template/.synapse/manifest +56 -14
  646. package/template/.synapse/workflow-arch-review +15 -0
  647. package/template/.synapse/workflow-epic-create +16 -0
  648. package/template/.synapse/workflow-story-dev +20 -0
  649. package/template/AGENTS.md +75 -0
  650. package/template/README.md +746 -53
  651. package/template/.claude/agent-memory/analyst/MEMORY.md +0 -20
  652. package/template/.claude/agent-memory/architect/MEMORY.md +0 -20
  653. package/template/.claude/agent-memory/dev/MEMORY.md +0 -20
  654. package/template/.claude/agent-memory/devops/MEMORY.md +0 -20
  655. package/template/.claude/agent-memory/pm/MEMORY.md +0 -20
  656. package/template/.claude/agent-memory/po/MEMORY.md +0 -20
  657. package/template/.claude/agent-memory/qa/MEMORY.md +0 -20
  658. package/template/.claude/agent-memory/reviewer/MEMORY.md +0 -20
  659. package/template/.claude/agent-memory/sm/MEMORY.md +0 -20
  660. package/template/.claude/commands/analyst.md +0 -55
  661. package/template/.claude/commands/architect.md +0 -56
  662. package/template/.claude/commands/dev.md +0 -63
  663. package/template/.claude/commands/devops.md +0 -64
  664. package/template/.claude/commands/plan-story.md +0 -70
  665. package/template/.claude/commands/pm.md +0 -51
  666. package/template/.claude/commands/po.md +0 -69
  667. package/template/.claude/commands/project-state.md +0 -35
  668. package/template/.claude/commands/project-sync.md +0 -44
  669. package/template/.claude/commands/qa.md +0 -67
  670. package/template/.claude/commands/reviewer.md +0 -63
  671. package/template/.claude/commands/sm.md +0 -82
  672. package/template/.claude/commands/squad.md +0 -56
  673. package/template/.claude/hooks/enforce-git-push-authority.py +0 -70
  674. package/template/.claude/hooks/metrics-tracker.cjs +0 -65
  675. package/template/.claude/rules/agent-memory.md +0 -61
  676. package/template/.claude/rules/new-project.md +0 -157
  677. package/template/.claude/settings.local.json +0 -14
  678. package/template/.genia/CONSTITUTION.md +0 -129
  679. package/template/.genia/contexts/api-patterns.md +0 -134
  680. package/template/.genia/contexts/nextjs-react.md +0 -210
  681. package/template/.genia/contexts/projeto.md +0 -18
  682. package/template/.genia/contexts/supabase.md +0 -152
  683. package/template/.genia/contexts/whatsapp-cloud.md +0 -176
  684. package/template/.genia/core-config.yaml +0 -192
  685. package/template/.genia/development/agents/analyst.md +0 -138
  686. package/template/.genia/development/agents/architect.md +0 -171
  687. package/template/.genia/development/agents/dev.md +0 -160
  688. package/template/.genia/development/agents/devops.md +0 -200
  689. package/template/.genia/development/agents/pm.md +0 -142
  690. package/template/.genia/development/agents/po.md +0 -165
  691. package/template/.genia/development/agents/qa.md +0 -183
  692. package/template/.genia/development/agents/reviewer.md +0 -198
  693. package/template/.genia/development/agents/sm.md +0 -230
  694. package/template/.genia/development/checklists/architecture-review.md +0 -189
  695. package/template/.genia/development/checklists/pre-commit.md +0 -205
  696. package/template/.genia/development/checklists/pre-deploy.md +0 -230
  697. package/template/.genia/development/checklists/qa-gate.md +0 -216
  698. package/template/.genia/development/checklists/story-dod.md +0 -155
  699. package/template/.genia/development/tasks/code-review.md +0 -197
  700. package/template/.genia/development/tasks/criar-prd.md +0 -170
  701. package/template/.genia/development/tasks/criar-spec.md +0 -188
  702. package/template/.genia/development/tasks/criar-story.md +0 -185
  703. package/template/.genia/development/tasks/debug-sistematico.md +0 -230
  704. package/template/.genia/development/tasks/dev-implement.md +0 -199
  705. package/template/.genia/development/tasks/qa-review.md +0 -224
  706. package/template/.genia/development/workflows/brownfield.md +0 -178
  707. package/template/.genia/development/workflows/delivery.md +0 -208
  708. package/template/.genia/development/workflows/development.md +0 -189
  709. package/template/.genia/development/workflows/greenfield.md +0 -166
  710. package/template/.genia/development/workflows/planning.md +0 -167
  711. package/template/.genia/development/workflows/qa-loop.md +0 -179
  712. package/template/.genia/development/workflows/spec-pipeline.md +0 -192
  713. package/template/.genia/development/workflows/story-development-cycle.md +0 -252
  714. package/template/.genia/guidelines/clean-code.md +0 -98
  715. package/template/.genia/guidelines/testing.md +0 -176
  716. package/template/.genia/skills/design/canvas-design.md +0 -109
  717. package/template/.genia/skills/design/frontend-design.md +0 -140
  718. package/template/.genia/skills/dev/mcp-builder.md +0 -172
  719. package/template/.genia/skills/dev/webapp-testing.md +0 -150
  720. package/template/.genia/skills/documents/docx.md +0 -153
  721. package/template/.genia/skills/documents/pdf.md +0 -134
  722. package/template/.genia/skills/documents/pptx.md +0 -118
  723. package/template/.genia/skills/documents/xlsx.md +0 -140
  724. package/template/.synapse/agent-reviewer +0 -43
@@ -0,0 +1,1032 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Verification Script for Workflow Gap Fixes (GAP 1, 2, 3)
5
+ *
6
+ * Runs all verification checks and reports results.
7
+ * Usage: node .aiox-core/development/scripts/verify-workflow-gaps.js
8
+ *
9
+ * @version 1.0.0
10
+ */
11
+
12
+ const fs = require('fs');
13
+ const _fsPromises = require('fs').promises; // Reserved for future async operations
14
+ const path = require('path');
15
+ const yaml = require('js-yaml');
16
+ const ROOT = path.resolve(__dirname, '..', '..', '..');
17
+
18
+ // ============ Test Infrastructure ============
19
+
20
+ let totalTests = 0;
21
+ let passedTests = 0;
22
+ let failedTests = 0;
23
+ const failures = [];
24
+
25
+ function pass(name) {
26
+ totalTests++;
27
+ passedTests++;
28
+ console.log(` [PASS] ${name}`);
29
+ }
30
+
31
+ function fail(name, reason) {
32
+ totalTests++;
33
+ failedTests++;
34
+ failures.push({ name, reason });
35
+ console.log(` [FAIL] ${name}`);
36
+ console.log(` Reason: ${reason}`);
37
+ }
38
+
39
+ function assert(condition, name, reason) {
40
+ if (condition) {
41
+ pass(name);
42
+ } else {
43
+ fail(name, reason || 'Assertion failed');
44
+ }
45
+ }
46
+
47
+ function section(title) {
48
+ console.log(`\n${'='.repeat(60)}`);
49
+ console.log(` ${title}`);
50
+ console.log('='.repeat(60));
51
+ }
52
+
53
+ // ============ GAP 1: Context Targeting ============
54
+
55
+ function verifyGap1() {
56
+ section('GAP 1: Context Targeting');
57
+
58
+ // 1.1 create-workflow.md has target_context and squad_name
59
+ const createWf = fs.readFileSync(path.join(ROOT, '.aiox-core/development/tasks/create-workflow.md'), 'utf-8');
60
+ assert(
61
+ createWf.includes('campo: target_context'),
62
+ '1.1a create-workflow.md has target_context field',
63
+ 'Missing "campo: target_context" in Entrada',
64
+ );
65
+ assert(
66
+ createWf.includes('campo: squad_name'),
67
+ '1.1b create-workflow.md has squad_name field',
68
+ 'Missing "campo: squad_name" in Entrada',
69
+ );
70
+ assert(
71
+ createWf.includes('target_context="squad"'),
72
+ '1.1c create-workflow.md has squad pre-condition',
73
+ 'Missing squad existence pre-condition',
74
+ );
75
+ assert(
76
+ createWf.includes('squads/{squad_name}/workflows/'),
77
+ '1.1d create-workflow.md has squad path resolution',
78
+ 'Missing squad path in step 4',
79
+ );
80
+ assert(
81
+ createWf.includes('Update Squad Manifest'),
82
+ '1.1e create-workflow.md has step 4.5',
83
+ 'Missing step 4.5 for squad manifest update',
84
+ );
85
+
86
+ // 1.2 modify-workflow.md
87
+ const modifyWf = fs.readFileSync(path.join(ROOT, '.aiox-core/development/tasks/modify-workflow.md'), 'utf-8');
88
+ assert(
89
+ modifyWf.includes('campo: target_context'),
90
+ '1.2a modify-workflow.md has target_context field',
91
+ 'Missing "campo: target_context" in Entrada',
92
+ );
93
+ assert(
94
+ modifyWf.includes('campo: squad_name'),
95
+ '1.2b modify-workflow.md has squad_name field',
96
+ 'Missing "campo: squad_name" in Entrada',
97
+ );
98
+ assert(
99
+ modifyWf.includes('Resolve workflow path based on target_context'),
100
+ '1.2c modify-workflow.md has conditional path resolution',
101
+ 'Missing path resolution in step 1',
102
+ );
103
+
104
+ // 1.3 workflow-elicitation.js
105
+ const steps = require('../../../.aiox-core/core/elicitation/workflow-elicitation.js');
106
+ const firstStep = steps[0];
107
+ assert(
108
+ firstStep.title === 'Target Context',
109
+ '1.3a Elicitation first step is Target Context',
110
+ `First step title is "${firstStep.title}" instead of "Target Context"`,
111
+ );
112
+
113
+ const targetContextQ = firstStep.questions.find((q) => q.name === 'targetContext');
114
+ assert(
115
+ !!targetContextQ,
116
+ '1.3b Elicitation has targetContext question',
117
+ 'Missing targetContext question',
118
+ );
119
+ assert(
120
+ targetContextQ && targetContextQ.choices.length === 3,
121
+ '1.3c targetContext has 3 choices (core/squad/hybrid)',
122
+ 'Expected 3 choices',
123
+ );
124
+
125
+ const squadNameQ = firstStep.questions.find((q) => q.name === 'squadName');
126
+ assert(
127
+ !!squadNameQ,
128
+ '1.3d Elicitation has squadName question',
129
+ 'Missing squadName question',
130
+ );
131
+ assert(
132
+ squadNameQ && typeof squadNameQ.when === 'function',
133
+ '1.3e squadName has conditional when function',
134
+ 'Missing when condition',
135
+ );
136
+ assert(
137
+ squadNameQ && squadNameQ.when({ targetContext: 'squad' }) === true,
138
+ '1.3f squadName shows when targetContext=squad',
139
+ 'when() should return true for squad',
140
+ );
141
+ assert(
142
+ squadNameQ && squadNameQ.when({ targetContext: 'core' }) === false,
143
+ '1.3g squadName hidden when targetContext=core',
144
+ 'when() should return false for core',
145
+ );
146
+ assert(
147
+ squadNameQ && squadNameQ.validate('my-squad') === true,
148
+ '1.3h squadName accepts valid kebab-case',
149
+ 'Should accept "my-squad"',
150
+ );
151
+ assert(
152
+ squadNameQ && squadNameQ.validate('INVALID') !== true,
153
+ '1.3i squadName rejects non-kebab-case',
154
+ 'Should reject "INVALID"',
155
+ );
156
+
157
+ // 1.4 workflow-template.yaml
158
+ const template = fs.readFileSync(path.join(ROOT, '.aiox-core/product/templates/workflow-template.yaml'), 'utf-8');
159
+ assert(
160
+ template.includes('{{TARGET_CONTEXT}}'),
161
+ '1.4a Template has TARGET_CONTEXT variable',
162
+ 'Missing {{TARGET_CONTEXT}}',
163
+ );
164
+ assert(
165
+ template.includes('{{SQUAD_NAME}}'),
166
+ '1.4b Template has SQUAD_NAME variable',
167
+ 'Missing {{SQUAD_NAME}}',
168
+ );
169
+ assert(
170
+ template.includes('{{#IF_CONTEXT}}'),
171
+ '1.4c Template has IF_CONTEXT conditional',
172
+ 'Missing {{#IF_CONTEXT}}',
173
+ );
174
+ }
175
+
176
+ // ============ GAP 2: Workflow Validation ============
177
+
178
+ async function verifyGap2() {
179
+ section('GAP 2: Standalone Workflow Validation');
180
+
181
+ // 2.1 WorkflowValidator loads
182
+ let WorkflowValidator;
183
+ try {
184
+ ({ WorkflowValidator } = require('../../../.aiox-core/development/scripts/workflow-validator'));
185
+ pass('2.1 WorkflowValidator module loads');
186
+ } catch (e) {
187
+ fail('2.1 WorkflowValidator module loads', e.message);
188
+ return; // Can't continue without module
189
+ }
190
+
191
+ // 2.2 Instantiation
192
+ const validator = new WorkflowValidator({ verbose: false });
193
+ assert(
194
+ typeof validator.validate === 'function',
195
+ '2.2a WorkflowValidator has validate() method',
196
+ 'Missing validate method',
197
+ );
198
+ assert(
199
+ typeof validator.formatResult === 'function',
200
+ '2.2b WorkflowValidator has formatResult() method',
201
+ 'Missing formatResult method',
202
+ );
203
+
204
+ // 2.3 Validate known-good workflow
205
+ const goodResult = await validator.validate(path.join(ROOT, '.aiox-core/development/workflows/greenfield-service.yaml'));
206
+ assert(
207
+ goodResult.valid === true,
208
+ '2.3a greenfield-service.yaml validates as valid',
209
+ `Expected valid=true, got valid=${goodResult.valid}. Errors: ${JSON.stringify(goodResult.errors)}`,
210
+ );
211
+ assert(
212
+ goodResult.errors.length === 0,
213
+ '2.3b greenfield-service.yaml has 0 errors',
214
+ `Has ${goodResult.errors.length} errors: ${goodResult.errors.map((e) => e.code).join(', ')}`,
215
+ );
216
+ assert(
217
+ typeof goodResult.warnings === 'object',
218
+ '2.3c Result has warnings array',
219
+ 'Missing warnings array',
220
+ );
221
+
222
+ // 2.4 formatResult works
223
+ const formatted = validator.formatResult(goodResult, 'greenfield-service.yaml');
224
+ assert(
225
+ formatted.includes('greenfield-service.yaml'),
226
+ '2.4 formatResult includes filename',
227
+ 'Missing filename in formatted output',
228
+ );
229
+
230
+ // 2.5 Validate broken YAML — missing required fields
231
+ const brokenPath = path.join(__dirname, '_test_broken_wf.yaml');
232
+ fs.writeFileSync(brokenPath, 'workflow:\n id: broken-test\n');
233
+ try {
234
+ const brokenResult = await validator.validate(brokenPath);
235
+ assert(
236
+ brokenResult.valid === false,
237
+ '2.5a Broken workflow (missing name+sequence) is invalid',
238
+ 'Should be invalid',
239
+ );
240
+ const errorCodes = brokenResult.errors.map((e) => e.code);
241
+ assert(
242
+ errorCodes.includes('WF_MISSING_REQUIRED_FIELD'),
243
+ '2.5b Has WF_MISSING_REQUIRED_FIELD error',
244
+ `Error codes: ${errorCodes.join(', ')}`,
245
+ );
246
+ } finally {
247
+ fs.unlinkSync(brokenPath);
248
+ }
249
+
250
+ // 2.6 Validate non-existent file
251
+ const missingResult = await validator.validate('/nonexistent/workflow.yaml');
252
+ assert(
253
+ missingResult.valid === false,
254
+ '2.6a Non-existent file returns invalid',
255
+ 'Should be invalid',
256
+ );
257
+ assert(
258
+ missingResult.errors.length > 0 && missingResult.errors[0].code === 'WF_FILE_NOT_FOUND',
259
+ '2.6b Error code is WF_FILE_NOT_FOUND',
260
+ `Got: ${missingResult.errors[0]?.code}`,
261
+ );
262
+
263
+ // 2.7 Validate invalid YAML syntax
264
+ const badYamlPath = path.join(__dirname, '_test_bad_yaml.yaml');
265
+ fs.writeFileSync(badYamlPath, '{ invalid yaml [[[');
266
+ try {
267
+ const badYamlResult = await validator.validate(badYamlPath);
268
+ assert(
269
+ badYamlResult.valid === false,
270
+ '2.7a Invalid YAML syntax returns invalid',
271
+ 'Should be invalid',
272
+ );
273
+ assert(
274
+ badYamlResult.errors.length > 0 && badYamlResult.errors[0].code === 'WF_YAML_PARSE_ERROR',
275
+ '2.7b Error code is WF_YAML_PARSE_ERROR',
276
+ `Got: ${badYamlResult.errors[0]?.code}`,
277
+ );
278
+ } finally {
279
+ fs.unlinkSync(badYamlPath);
280
+ }
281
+
282
+ // 2.8 Strict mode — warnings become errors
283
+ const strictValidator = new WorkflowValidator({ strict: true });
284
+ const strictResult = await strictValidator.validate(path.join(ROOT, '.aiox-core/development/workflows/greenfield-service.yaml'));
285
+ assert(
286
+ strictResult.warnings.length === 0,
287
+ '2.8 Strict mode moves all warnings to errors',
288
+ `Still has ${strictResult.warnings.length} warnings`,
289
+ );
290
+
291
+ // 2.9 Artifact flow validation
292
+ const artifactTestPath = path.join(__dirname, '_test_artifact_wf.yaml');
293
+ fs.writeFileSync(artifactTestPath, yaml.dump({
294
+ workflow: {
295
+ id: 'artifact-test',
296
+ name: 'Artifact Test',
297
+ type: 'test',
298
+ sequence: [
299
+ { agent: 'dev', creates: 'output-a.md' },
300
+ { agent: 'qa', requires: 'nonexistent.md', creates: 'review.md' },
301
+ ],
302
+ },
303
+ }));
304
+ try {
305
+ const artifactResult = await validator.validate(artifactTestPath);
306
+ const hasArtifactWarning = artifactResult.warnings.some(
307
+ (w) => w.code === 'WF_ARTIFACT_CHAIN_BROKEN',
308
+ );
309
+ assert(
310
+ hasArtifactWarning,
311
+ '2.9 Detects broken artifact chain (requires without creates)',
312
+ 'Should warn about missing artifact "nonexistent.md"',
313
+ );
314
+ } finally {
315
+ fs.unlinkSync(artifactTestPath);
316
+ }
317
+
318
+ // 2.10 SquadValidator has validateWorkflows
319
+ const { SquadValidator } = require('../../../.aiox-core/development/scripts/squad/squad-validator');
320
+ const sv = new SquadValidator({ verbose: false });
321
+ assert(
322
+ typeof sv.validateWorkflows === 'function',
323
+ '2.10 SquadValidator has validateWorkflows() method',
324
+ 'Missing validateWorkflows method',
325
+ );
326
+
327
+ // 2.11 framework-analyzer integration
328
+ const FrameworkAnalyzer = require('../../../.aiox-core/infrastructure/scripts/framework-analyzer');
329
+ const fa = new FrameworkAnalyzer();
330
+ const faResult = await fa.validateWorkflow({ id: 'test', name: 'Test', sequence: [] });
331
+ assert(
332
+ faResult.valid !== undefined,
333
+ '2.11 FrameworkAnalyzer.validateWorkflow returns result with valid field',
334
+ 'Missing valid field in result',
335
+ );
336
+
337
+ // 2.12 validate-workflow.md task exists
338
+ assert(
339
+ fs.existsSync(path.join(ROOT, '.aiox-core/development/tasks/validate-workflow.md')),
340
+ '2.12 validate-workflow.md task file exists',
341
+ 'File not found',
342
+ );
343
+
344
+ // 2.13 aiox-master has validate-workflow command
345
+ const masterMd = fs.readFileSync(path.join(ROOT, '.aiox-core/development/agents/aiox-master.md'), 'utf-8');
346
+ assert(
347
+ masterMd.includes('name: validate-workflow'),
348
+ '2.13a aiox-master has validate-workflow command',
349
+ 'Command not found in aiox-master.md',
350
+ );
351
+ assert(
352
+ masterMd.includes('validate-workflow.md'),
353
+ '2.13b aiox-master has validate-workflow.md in dependencies',
354
+ 'Dependency not found',
355
+ );
356
+ }
357
+
358
+ // ============ GAP 3: Guided Workflow Automation ============
359
+
360
+ async function verifyGap3() {
361
+ section('GAP 3: Guided Workflow Automation');
362
+
363
+ // 3.1 WorkflowStateManager loads
364
+ let WorkflowStateManager;
365
+ try {
366
+ ({ WorkflowStateManager } = require('../../../.aiox-core/development/scripts/workflow-state-manager'));
367
+ pass('3.1 WorkflowStateManager module loads');
368
+ } catch (e) {
369
+ fail('3.1 WorkflowStateManager module loads', e.message);
370
+ return;
371
+ }
372
+
373
+ const mgr = new WorkflowStateManager({ verbose: false });
374
+ let statePath;
375
+
376
+ try {
377
+
378
+ // 3.2 Load real workflow and create state
379
+ const wfContent = fs.readFileSync(path.join(ROOT, '.aiox-core/development/workflows/greenfield-service.yaml'), 'utf-8');
380
+ const wfData = yaml.load(wfContent);
381
+
382
+ const state = await mgr.createState(wfData, { target_context: 'core' });
383
+ assert(
384
+ !!state.instance_id,
385
+ '3.2a createState generates instance_id',
386
+ 'Missing instance_id',
387
+ );
388
+ assert(
389
+ state.status === 'active',
390
+ '3.2b Initial status is active',
391
+ `Got: ${state.status}`,
392
+ );
393
+ assert(
394
+ state.steps.length > 0,
395
+ '3.2c Steps array populated from sequence',
396
+ `Got ${state.steps.length} steps`,
397
+ );
398
+ assert(
399
+ state.current_step_index === 0,
400
+ '3.2d Starts at step 0',
401
+ `Got: ${state.current_step_index}`,
402
+ );
403
+ assert(
404
+ state.workflow_id === 'greenfield-service',
405
+ '3.2e workflow_id matches',
406
+ `Got: ${state.workflow_id}`,
407
+ );
408
+ assert(
409
+ state.target_context === 'core',
410
+ '3.2f target_context is core',
411
+ `Got: ${state.target_context}`,
412
+ );
413
+
414
+ // 3.3 State file was written to disk
415
+ statePath = mgr._resolveStatePath(state.instance_id);
416
+ assert(
417
+ fs.existsSync(statePath),
418
+ '3.3 State file exists on disk',
419
+ `File not found: ${statePath}`,
420
+ );
421
+
422
+ // 3.4 Progress query
423
+ const progress = mgr.getProgress(state);
424
+ assert(
425
+ progress.completed === 0,
426
+ '3.4a Initial progress: 0 completed',
427
+ `Got: ${progress.completed}`,
428
+ );
429
+ assert(
430
+ progress.total === state.steps.length,
431
+ '3.4b Total matches steps count',
432
+ `Got: ${progress.total}`,
433
+ );
434
+ assert(
435
+ progress.percentage === 0,
436
+ '3.4c Initial percentage is 0',
437
+ `Got: ${progress.percentage}`,
438
+ );
439
+
440
+ // 3.5 getCurrentStep
441
+ const currentStep = mgr.getCurrentStep(state);
442
+ assert(
443
+ currentStep !== null,
444
+ '3.5a getCurrentStep returns step object',
445
+ 'Got null',
446
+ );
447
+ assert(
448
+ currentStep.step_index === 0,
449
+ '3.5b Current step is index 0',
450
+ `Got: ${currentStep?.step_index}`,
451
+ );
452
+
453
+ // 3.6 Mark step completed + advance
454
+ mgr.markStepCompleted(state, 0, ['project-brief.md']);
455
+ assert(
456
+ state.steps[0].status === 'completed',
457
+ '3.6a Step 0 marked completed',
458
+ `Got: ${state.steps[0].status}`,
459
+ );
460
+ assert(
461
+ state.steps[0].artifacts_created.includes('project-brief.md'),
462
+ '3.6b Artifacts recorded',
463
+ `Got: ${state.steps[0].artifacts_created}`,
464
+ );
465
+
466
+ mgr.advanceStep(state);
467
+ assert(
468
+ state.current_step_index > 0,
469
+ '3.6c Advanced past step 0',
470
+ `Still at: ${state.current_step_index}`,
471
+ );
472
+
473
+ // 3.7 Artifact status
474
+ const artifacts = mgr.getArtifactStatus(state);
475
+ assert(
476
+ artifacts.created.length > 0 || artifacts.pending.length > 0,
477
+ '3.7 getArtifactStatus returns artifacts',
478
+ 'No artifacts found',
479
+ );
480
+
481
+ // 3.8 Status report
482
+ const report = mgr.generateStatusReport(state);
483
+ assert(
484
+ report.includes('Progress:'),
485
+ '3.8a Status report has progress bar',
486
+ 'Missing "Progress:" in report',
487
+ );
488
+ assert(
489
+ report.includes('[x]'),
490
+ '3.8b Status report shows completed step',
491
+ 'Missing [x] checkmark',
492
+ );
493
+ assert(
494
+ report.includes('<-- current'),
495
+ '3.8c Status report shows current step marker',
496
+ 'Missing "<-- current" marker',
497
+ );
498
+
499
+ // 3.9 Handoff context
500
+ const handoff = mgr.generateHandoffContext(state);
501
+ assert(
502
+ handoff.includes('Workflow Handoff Context'),
503
+ '3.9a Handoff has header',
504
+ 'Missing header',
505
+ );
506
+ assert(
507
+ handoff.includes('*run-workflow'),
508
+ '3.9b Handoff has resume command',
509
+ 'Missing resume command',
510
+ );
511
+
512
+ // 3.10 Save and reload
513
+ await mgr.saveState(state);
514
+ const reloaded = await mgr.loadState(state.instance_id);
515
+ assert(
516
+ reloaded !== null,
517
+ '3.10a Reloaded state is not null',
518
+ 'loadState returned null',
519
+ );
520
+ assert(
521
+ reloaded.instance_id === state.instance_id,
522
+ '3.10b Reloaded instance_id matches',
523
+ `Got: ${reloaded?.instance_id}`,
524
+ );
525
+ assert(
526
+ reloaded.current_step_index === state.current_step_index,
527
+ '3.10c Reloaded current_step_index matches',
528
+ `Got: ${reloaded?.current_step_index}`,
529
+ );
530
+
531
+ // 3.11 Skip optional step
532
+ const optionalIdx = state.steps.findIndex((s) => s.optional && s.status === 'pending');
533
+ if (optionalIdx !== -1) {
534
+ state.current_step_index = optionalIdx;
535
+ mgr.markStepSkipped(state, optionalIdx);
536
+ assert(
537
+ state.steps[optionalIdx].status === 'skipped',
538
+ '3.11a Optional step marked skipped',
539
+ `Got: ${state.steps[optionalIdx].status}`,
540
+ );
541
+ } else {
542
+ pass('3.11a (skip) No optional pending steps — N/A');
543
+ }
544
+
545
+ // 3.12 Reject skip on required step
546
+ const requiredIdx = state.steps.findIndex((s) => !s.optional && s.status === 'pending');
547
+ if (requiredIdx !== -1) {
548
+ let threw = false;
549
+ try {
550
+ mgr.markStepSkipped(state, requiredIdx);
551
+ } catch {
552
+ threw = true;
553
+ }
554
+ assert(
555
+ threw,
556
+ '3.12 Rejects skip on required step',
557
+ 'Should throw error for non-optional step',
558
+ );
559
+ } else {
560
+ pass('3.12 (skip reject) No required pending steps — N/A');
561
+ }
562
+
563
+ // 3.13 List active workflows
564
+ const activeList = await mgr.listActiveWorkflows();
565
+ assert(
566
+ activeList.length >= 1,
567
+ '3.13 listActiveWorkflows finds our test instance',
568
+ `Found ${activeList.length} active workflows`,
569
+ );
570
+
571
+ // 3.14 Load non-existent state returns null
572
+ const missing = await mgr.loadState('nonexistent-instance');
573
+ assert(
574
+ missing === null,
575
+ '3.14 loadState returns null for missing instance',
576
+ `Got: ${missing}`,
577
+ );
578
+
579
+ // 3.15 WorkflowNavigator state integration
580
+ const WorkflowNavigator = require('../../../.aiox-core/development/scripts/workflow-navigator');
581
+ const nav = new WorkflowNavigator();
582
+ assert(
583
+ typeof nav.detectWorkflowStateFromFile === 'function',
584
+ '3.15a Navigator has detectWorkflowStateFromFile()',
585
+ 'Missing method',
586
+ );
587
+ assert(
588
+ typeof nav.suggestNextCommandsFromState === 'function',
589
+ '3.15b Navigator has suggestNextCommandsFromState()',
590
+ 'Missing method',
591
+ );
592
+
593
+ // 3.16 Navigator detects state from file
594
+ const navState = nav.detectWorkflowStateFromFile(statePath);
595
+ assert(
596
+ navState !== null,
597
+ '3.16a Navigator detects state from file',
598
+ 'Got null',
599
+ );
600
+ assert(
601
+ navState && navState.workflow === 'greenfield-service',
602
+ '3.16b Detected correct workflow',
603
+ `Got: ${navState?.workflow}`,
604
+ );
605
+
606
+ // 3.17 Navigator suggests commands from state
607
+ const suggestions = nav.suggestNextCommandsFromState(state);
608
+ assert(
609
+ suggestions.length > 0,
610
+ '3.17a Navigator generates suggestions from state',
611
+ 'No suggestions',
612
+ );
613
+ assert(
614
+ suggestions.some((s) => s.command.includes('run-workflow')),
615
+ '3.17b Suggestions include run-workflow continue',
616
+ `Commands: ${suggestions.map((s) => s.command).join(', ')}`,
617
+ );
618
+
619
+ // 3.18 Navigator returns null for missing file
620
+ const navMissing = nav.detectWorkflowStateFromFile('/nonexistent.yaml');
621
+ assert(
622
+ navMissing === null,
623
+ '3.18 Navigator returns null for non-existent file',
624
+ `Got: ${navMissing}`,
625
+ );
626
+
627
+ // 3.19 workflow-patterns.yaml has state_integration
628
+ const patterns = yaml.load(fs.readFileSync(path.join(ROOT, '.aiox-core/data/workflow-patterns.yaml'), 'utf-8'));
629
+ assert(
630
+ !!patterns.state_integration,
631
+ '3.19a workflow-patterns.yaml has state_integration key',
632
+ 'Missing state_integration',
633
+ );
634
+ assert(
635
+ !!patterns.state_integration.state_file_location,
636
+ '3.19b state_integration has state_file_location',
637
+ 'Missing state_file_location',
638
+ );
639
+ assert(
640
+ !!patterns.state_integration.behavior,
641
+ '3.19c state_integration has behavior section',
642
+ 'Missing behavior',
643
+ );
644
+ assert(
645
+ !!patterns.state_integration.commands,
646
+ '3.19d state_integration has commands section',
647
+ 'Missing commands',
648
+ );
649
+
650
+ // 3.20 workflow-state-schema.yaml exists and is valid YAML
651
+ const schemaContent = fs.readFileSync(path.join(ROOT, '.aiox-core/data/workflow-state-schema.yaml'), 'utf-8');
652
+ const schema = yaml.load(schemaContent);
653
+ assert(
654
+ !!schema.fields,
655
+ '3.20a State schema has fields definition',
656
+ 'Missing fields',
657
+ );
658
+ assert(
659
+ !!schema.fields.steps,
660
+ '3.20b State schema defines steps field',
661
+ 'Missing steps field',
662
+ );
663
+
664
+ // 3.21 run-workflow.md task exists
665
+ assert(
666
+ fs.existsSync(path.join(ROOT, '.aiox-core/development/tasks/run-workflow.md')),
667
+ '3.21 run-workflow.md task file exists',
668
+ 'File not found',
669
+ );
670
+
671
+ // 3.22 aiox-master has run-workflow command
672
+ const masterMd = fs.readFileSync(path.join(ROOT, '.aiox-core/development/agents/aiox-master.md'), 'utf-8');
673
+ assert(
674
+ masterMd.includes('name: run-workflow'),
675
+ '3.22a aiox-master has run-workflow command',
676
+ 'Command not found',
677
+ );
678
+ assert(
679
+ masterMd.includes('run-workflow.md'),
680
+ '3.22b aiox-master has run-workflow.md in dependencies',
681
+ 'Dependency not found',
682
+ );
683
+
684
+ } finally {
685
+ // Cleanup test state file
686
+ try {
687
+ fs.unlinkSync(statePath);
688
+ } catch {
689
+ // Already cleaned
690
+ }
691
+ }
692
+ }
693
+
694
+ // ============ GAP 4: Cross-Context Agent Support (Hybrid Workflows) ============
695
+
696
+ async function verifyGap4() {
697
+ section('GAP 4: Cross-Context Agent Support (Hybrid)');
698
+
699
+ // 4.1 Elicitation has 3 choices including hybrid
700
+ const steps = require('../../../.aiox-core/core/elicitation/workflow-elicitation.js');
701
+ const firstStep = steps[0];
702
+ const targetContextQ = firstStep.questions.find((q) => q.name === 'targetContext');
703
+ assert(
704
+ targetContextQ && targetContextQ.choices.length === 3,
705
+ '4.1a Elicitation has 3 choices',
706
+ `Expected 3 choices, got ${targetContextQ?.choices?.length}`,
707
+ );
708
+ const hybridChoice = targetContextQ && targetContextQ.choices.find((c) => c.value === 'hybrid');
709
+ assert(
710
+ !!hybridChoice,
711
+ '4.1b Elicitation includes hybrid choice',
712
+ 'Missing hybrid choice in targetContext',
713
+ );
714
+
715
+ // 4.2 squadName shows for hybrid, hides for core
716
+ const squadNameQ = firstStep.questions.find((q) => q.name === 'squadName');
717
+ assert(
718
+ squadNameQ && squadNameQ.when({ targetContext: 'hybrid' }) === true,
719
+ '4.2a squadName shows when targetContext=hybrid',
720
+ 'when() should return true for hybrid',
721
+ );
722
+ assert(
723
+ squadNameQ && squadNameQ.when({ targetContext: 'core' }) === false,
724
+ '4.2b squadName hidden when targetContext=core',
725
+ 'when() should return false for core',
726
+ );
727
+
728
+ // 4.3 Schema includes hybrid
729
+ const schemaContent = fs.readFileSync(path.join(ROOT, '.aiox-core/data/workflow-state-schema.yaml'), 'utf-8');
730
+ const schema = yaml.load(schemaContent);
731
+ assert(
732
+ schema.fields.target_context.enum.includes('hybrid'),
733
+ '4.3 Schema enum includes hybrid',
734
+ `Enum: ${schema.fields.target_context.enum}`,
735
+ );
736
+
737
+ // 4.4 WorkflowValidator accepts squadAgentsPath
738
+ const { WorkflowValidator, WorkflowValidationErrorCodes } = require('../../../.aiox-core/development/scripts/workflow-validator');
739
+ const hybridValidator = new WorkflowValidator({
740
+ squadAgentsPath: '/tmp/fake-squad-agents',
741
+ });
742
+ assert(
743
+ hybridValidator.squadAgentsPath === '/tmp/fake-squad-agents',
744
+ '4.4 WorkflowValidator accepts squadAgentsPath option',
745
+ `Got: ${hybridValidator.squadAgentsPath}`,
746
+ );
747
+
748
+ // Setup temp dirs for agent tests
749
+ const tmpDir = path.join(__dirname, '_test_hybrid_agents');
750
+ const tmpCoreAgents = path.join(tmpDir, 'core-agents');
751
+ const tmpSquadAgents = path.join(tmpDir, 'squad-agents');
752
+ fs.mkdirSync(tmpCoreAgents, { recursive: true });
753
+ fs.mkdirSync(tmpSquadAgents, { recursive: true });
754
+
755
+ let hybridStateMgr, hybridState;
756
+
757
+ try {
758
+
759
+ // Create test agent files
760
+ fs.writeFileSync(path.join(tmpCoreAgents, 'architect.md'), '# Architect Agent');
761
+ fs.writeFileSync(path.join(tmpSquadAgents, 'validator.md'), '# Validator Agent');
762
+ fs.writeFileSync(path.join(tmpCoreAgents, 'pm.md'), '# PM Agent');
763
+ fs.writeFileSync(path.join(tmpSquadAgents, 'pm.md'), '# PM Agent (squad)'); // exists in both
764
+
765
+ const testValidator = new WorkflowValidator({
766
+ agentsPath: tmpCoreAgents,
767
+ squadAgentsPath: tmpSquadAgents,
768
+ });
769
+
770
+ // 4.5 Validator finds agent in core during hybrid mode
771
+ const coreAgentResult = await testValidator.validateAgentReferences([
772
+ { agent: 'architect' },
773
+ ]);
774
+ const coreNotFound = coreAgentResult.warnings.some(
775
+ (w) => w.code === 'WF_AGENT_NOT_FOUND' && w.message.includes('architect'),
776
+ );
777
+ assert(
778
+ !coreNotFound,
779
+ '4.5 Validator finds core agent "architect" in hybrid mode',
780
+ 'architect should be found in core agents',
781
+ );
782
+
783
+ // 4.6 Validator finds agent in squad during hybrid mode
784
+ const squadAgentResult = await testValidator.validateAgentReferences([
785
+ { agent: 'validator' },
786
+ ]);
787
+ const squadNotFound = squadAgentResult.warnings.some(
788
+ (w) => w.code === 'WF_AGENT_NOT_FOUND' && w.message.includes('validator'),
789
+ );
790
+ assert(
791
+ !squadNotFound,
792
+ '4.6 Validator finds squad agent "validator" in hybrid mode',
793
+ 'validator should be found in squad agents',
794
+ );
795
+
796
+ // 4.7 Validator warns for agent not found in either context
797
+ const missingResult = await testValidator.validateAgentReferences([
798
+ { agent: 'nonexistent-agent' },
799
+ ]);
800
+ const missingWarning = missingResult.warnings.some(
801
+ (w) => w.code === 'WF_AGENT_NOT_FOUND' && w.message.includes('nonexistent-agent'),
802
+ );
803
+ assert(
804
+ missingWarning,
805
+ '4.7 Validator warns for agent not found in either context',
806
+ 'Should warn about nonexistent-agent',
807
+ );
808
+
809
+ // 4.8 Core-only validator works identically (backward compat)
810
+ const coreOnlyValidator = new WorkflowValidator({
811
+ agentsPath: tmpCoreAgents,
812
+ // squadAgentsPath NOT set — null
813
+ });
814
+ const coreOnlyResult = await coreOnlyValidator.validateAgentReferences([
815
+ { agent: 'architect' },
816
+ ]);
817
+ const coreOnlyNotFound = coreOnlyResult.warnings.some(
818
+ (w) => w.code === 'WF_AGENT_NOT_FOUND' && w.message.includes('architect'),
819
+ );
820
+ assert(
821
+ !coreOnlyNotFound,
822
+ '4.8 Core-only validator finds architect (backward compat)',
823
+ 'architect should be found without squadAgentsPath',
824
+ );
825
+
826
+ // 4.9 Explicit prefix core:architect works
827
+ const explicitCoreResult = await testValidator.validateAgentReferences([
828
+ { agent: 'core:architect' },
829
+ ]);
830
+ const explicitCoreNotFound = explicitCoreResult.warnings.some(
831
+ (w) => w.code === 'WF_AGENT_NOT_FOUND',
832
+ );
833
+ assert(
834
+ !explicitCoreNotFound,
835
+ '4.9 Explicit prefix "core:architect" resolves correctly',
836
+ 'core:architect should be found',
837
+ );
838
+
839
+ // 4.10 Explicit prefix squad:validator works
840
+ const explicitSquadResult = await testValidator.validateAgentReferences([
841
+ { agent: 'squad:validator' },
842
+ ]);
843
+ const explicitSquadNotFound = explicitSquadResult.warnings.some(
844
+ (w) => w.code === 'WF_AGENT_NOT_FOUND',
845
+ );
846
+ assert(
847
+ !explicitSquadNotFound,
848
+ '4.10 Explicit prefix "squad:validator" resolves correctly',
849
+ 'squad:validator should be found',
850
+ );
851
+
852
+ // 4.11 StateManager.createState with hybrid
853
+ const { WorkflowStateManager } = require('../../../.aiox-core/development/scripts/workflow-state-manager');
854
+ hybridStateMgr = new WorkflowStateManager({ verbose: false });
855
+ const wfData = {
856
+ workflow: {
857
+ id: 'hybrid-test',
858
+ name: 'Hybrid Test Workflow',
859
+ sequence: [
860
+ { agent: 'architect', creates: 'design.md' },
861
+ { agent: 'validator', validates: 'design.md' },
862
+ ],
863
+ },
864
+ };
865
+ hybridState = await hybridStateMgr.createState(wfData, {
866
+ target_context: 'hybrid',
867
+ squad_name: 'test-squad',
868
+ });
869
+ assert(
870
+ hybridState.target_context === 'hybrid',
871
+ '4.11a createState sets target_context=hybrid',
872
+ `Got: ${hybridState.target_context}`,
873
+ );
874
+ assert(
875
+ hybridState.squad_name === 'test-squad',
876
+ '4.11b createState sets squad_name for hybrid',
877
+ `Got: ${hybridState.squad_name}`,
878
+ );
879
+
880
+ // 4.12 resolveAgentPaths returns both paths for hybrid
881
+ const hybridPaths = hybridStateMgr.resolveAgentPaths(hybridState);
882
+ assert(
883
+ hybridPaths.corePath !== null && hybridPaths.squadPath !== null,
884
+ '4.12 resolveAgentPaths returns both corePath and squadPath for hybrid',
885
+ `corePath=${hybridPaths.corePath}, squadPath=${hybridPaths.squadPath}`,
886
+ );
887
+
888
+ // 4.13 resolveAgentPaths returns null squadPath for core
889
+ const coreState = { target_context: 'core', squad_name: null };
890
+ const corePaths = hybridStateMgr.resolveAgentPaths(coreState);
891
+ assert(
892
+ corePaths.squadPath === null,
893
+ '4.13 resolveAgentPaths returns null squadPath for core',
894
+ `Got squadPath: ${corePaths.squadPath}`,
895
+ );
896
+
897
+ // 4.14 workflow-patterns.yaml has cross_context
898
+ const patterns = yaml.load(fs.readFileSync(path.join(ROOT, '.aiox-core/data/workflow-patterns.yaml'), 'utf-8'));
899
+ assert(
900
+ !!patterns.cross_context,
901
+ '4.14a workflow-patterns.yaml has cross_context key',
902
+ 'Missing cross_context',
903
+ );
904
+ assert(
905
+ !!patterns.cross_context.resolution_rules,
906
+ '4.14b cross_context has resolution_rules',
907
+ 'Missing resolution_rules',
908
+ );
909
+ assert(
910
+ !!patterns.cross_context.explicit_prefix,
911
+ '4.14c cross_context has explicit_prefix',
912
+ 'Missing explicit_prefix',
913
+ );
914
+ assert(
915
+ !!patterns.cross_context.hybrid_workflow_storage,
916
+ '4.14d cross_context has hybrid_workflow_storage',
917
+ 'Missing hybrid_workflow_storage',
918
+ );
919
+ assert(
920
+ !!patterns.cross_context.validator_behavior,
921
+ '4.14e cross_context has validator_behavior',
922
+ 'Missing validator_behavior',
923
+ );
924
+
925
+ // 4.15 All 4 task docs mention hybrid
926
+ const taskFiles = [
927
+ 'create-workflow.md',
928
+ 'modify-workflow.md',
929
+ 'validate-workflow.md',
930
+ 'run-workflow.md',
931
+ ];
932
+ for (const taskFile of taskFiles) {
933
+ const content = fs.readFileSync(path.join(ROOT, '.aiox-core/development/tasks', taskFile), 'utf-8');
934
+ assert(
935
+ content.includes('hybrid'),
936
+ `4.15 ${taskFile} mentions hybrid`,
937
+ `"hybrid" not found in ${taskFile}`,
938
+ );
939
+ }
940
+
941
+ // 4.16 Template mentions hybrid
942
+ const template = fs.readFileSync(path.join(ROOT, '.aiox-core/product/templates/workflow-template.yaml'), 'utf-8');
943
+ assert(
944
+ template.includes('hybrid') || template.includes('IF_HYBRID'),
945
+ '4.16 workflow-template.yaml mentions hybrid',
946
+ 'Missing hybrid reference in template',
947
+ );
948
+
949
+ // 4.17 WF_AGENT_AMBIGUOUS error code exists
950
+ assert(
951
+ WorkflowValidationErrorCodes.WF_AGENT_AMBIGUOUS === 'WF_AGENT_AMBIGUOUS',
952
+ '4.17a WF_AGENT_AMBIGUOUS error code exists',
953
+ 'Missing WF_AGENT_AMBIGUOUS in error codes',
954
+ );
955
+
956
+ // Also verify ambiguity detection works (pm exists in both)
957
+ const ambiguousResult = await testValidator.validateAgentReferences([
958
+ { agent: 'pm' },
959
+ ]);
960
+ const ambiguousWarning = ambiguousResult.warnings.some(
961
+ (w) => w.code === 'WF_AGENT_AMBIGUOUS' && w.message.includes('pm'),
962
+ );
963
+ assert(
964
+ ambiguousWarning,
965
+ '4.17b Validator detects ambiguous agent (pm in both contexts)',
966
+ 'Should emit WF_AGENT_AMBIGUOUS for pm',
967
+ );
968
+ } finally {
969
+ // Cleanup
970
+ if (hybridStateMgr && hybridState) {
971
+ const cleanupPath = hybridStateMgr._resolveStatePath(hybridState.instance_id);
972
+ try { fs.unlinkSync(cleanupPath); } catch { /* already cleaned */ }
973
+ }
974
+ try { fs.rmSync(tmpDir, { recursive: true }); } catch { /* cleanup */ }
975
+ }
976
+ }
977
+
978
+ // ============ Main ============
979
+
980
+ async function main() {
981
+ console.log('\n' + '='.repeat(60));
982
+ console.log(' AIOX Workflow Gaps — Verification Suite');
983
+ console.log(' Running from:', process.cwd());
984
+ console.log('='.repeat(60));
985
+
986
+ try {
987
+ verifyGap1();
988
+ } catch (e) {
989
+ fail('GAP 1 unexpected error', e.message);
990
+ }
991
+
992
+ try {
993
+ await verifyGap2();
994
+ } catch (e) {
995
+ fail('GAP 2 unexpected error', e.message);
996
+ }
997
+
998
+ try {
999
+ await verifyGap3();
1000
+ } catch (e) {
1001
+ fail('GAP 3 unexpected error', e.message);
1002
+ }
1003
+
1004
+ try {
1005
+ await verifyGap4();
1006
+ } catch (e) {
1007
+ fail('GAP 4 unexpected error', e.message);
1008
+ }
1009
+
1010
+ // Summary
1011
+ console.log('\n' + '='.repeat(60));
1012
+ console.log(' RESULTS');
1013
+ console.log('='.repeat(60));
1014
+ console.log(` Total: ${totalTests}`);
1015
+ console.log(` Passed: ${passedTests}`);
1016
+ console.log(` Failed: ${failedTests}`);
1017
+
1018
+ if (failures.length > 0) {
1019
+ console.log('\n Failed tests:');
1020
+ failures.forEach((f) => {
1021
+ console.log(` - ${f.name}`);
1022
+ console.log(` ${f.reason}`);
1023
+ });
1024
+ }
1025
+
1026
+ console.log('\n' + (failedTests === 0 ? ' ALL TESTS PASSED' : ` ${failedTests} TEST(S) FAILED`));
1027
+ console.log('='.repeat(60) + '\n');
1028
+
1029
+ process.exit(failedTests > 0 ? 1 : 0);
1030
+ }
1031
+
1032
+ main();