sinapse-ai 1.19.2 → 1.20.1

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 (592) hide show
  1. package/.claude/CLAUDE.md +2 -2
  2. package/.claude/hooks/enforce-delegation.cjs +32 -36
  3. package/.claude/rules/agent-handoff.md +10 -21
  4. package/.claude/rules/mandatory-delegation.md +1 -1
  5. package/.claude/rules/token-economy.md +12 -5
  6. package/.sinapse-ai/constitution.md +2 -0
  7. package/.sinapse-ai/core/atlas/flows-pt.js +6 -0
  8. package/.sinapse-ai/core/atlas/flows.js +7 -0
  9. package/.sinapse-ai/core/atlas/render-html.js +10 -8
  10. package/.sinapse-ai/core/atlas/render-markdown.js +8 -0
  11. package/.sinapse-ai/core/doctor/checks/constitution-consistency.js +7 -0
  12. package/.sinapse-ai/core/execution/autonomous-build-loop.js +10 -4
  13. package/.sinapse-ai/core/execution/build-orchestrator.js +73 -2
  14. package/.sinapse-ai/core/execution/rate-limit-manager.js +2 -0
  15. package/.sinapse-ai/core/execution/result-aggregator.js +2 -0
  16. package/.sinapse-ai/core/health-check/checks/project/constitution-consistency.js +12 -1
  17. package/.sinapse-ai/core/orchestration/cli-commands.js +121 -4
  18. package/.sinapse-ai/core/orchestration/executors/epic-4-executor.js +10 -2
  19. package/.sinapse-ai/core/orchestration/executors/epic-6-executor.js +53 -2
  20. package/.sinapse-ai/core/orchestration/index.js +3 -0
  21. package/.sinapse-ai/core/orchestration/master-orchestrator.js +116 -18
  22. package/.sinapse-ai/core/registry/service-registry.json +2 -32
  23. package/.sinapse-ai/core/synapse/context/context-tracker.js +118 -11
  24. package/.sinapse-ai/core/synapse/engine.js +18 -3
  25. package/.sinapse-ai/core/synapse/layers/l0-constitution.js +189 -8
  26. package/.sinapse-ai/core/synapse/output/formatter.js +65 -25
  27. package/.sinapse-ai/core-config.yaml +8 -1
  28. package/.sinapse-ai/data/entity-registry.yaml +492 -246
  29. package/.sinapse-ai/development/agents/analyst.md +18 -34
  30. package/.sinapse-ai/development/agents/architect.md +18 -34
  31. package/.sinapse-ai/development/agents/data-engineer.md +15 -28
  32. package/.sinapse-ai/development/agents/developer.md +18 -40
  33. package/.sinapse-ai/development/agents/devops.md +15 -28
  34. package/.sinapse-ai/development/agents/product-lead.md +18 -34
  35. package/.sinapse-ai/development/agents/project-lead.md +18 -34
  36. package/.sinapse-ai/development/agents/quality-gate.md +18 -34
  37. package/.sinapse-ai/development/agents/snps-orqx.md +5 -5
  38. package/.sinapse-ai/development/agents/sprint-lead.md +20 -36
  39. package/.sinapse-ai/development/agents/squad-creator.md +15 -27
  40. package/.sinapse-ai/development/agents/ux-design-expert.md +15 -27
  41. package/.sinapse-ai/development/scripts/agent-exit-hooks.js +13 -4
  42. package/.sinapse-ai/development/scripts/populate-entity-registry.js +3 -0
  43. package/.sinapse-ai/development/tasks/execute-epic-plan.md +0 -4
  44. package/.sinapse-ai/development/workflows/epic-orchestration.yaml +0 -1
  45. package/.sinapse-ai/git-hooks/lib/staged-secret-scan.js +3 -1
  46. package/.sinapse-ai/infrastructure/integrations/ai-providers/README.md +2 -2
  47. package/.sinapse-ai/install-manifest.yaml +94 -126
  48. package/.sinapse-ai/product/templates/activation-instructions-template.md +72 -185
  49. package/.sinapse-ai/product/templates/ide-rules/claude-rules.md +45 -274
  50. package/.sinapse-ai/product/templates/personalized-agent-template.md +3 -5
  51. package/.sinapse-ai/product/templates/statusline/agent-badges.json +2 -2
  52. package/.sinapse-ai/product/templates/statusline/statusline-script.js +5 -3
  53. package/.sinapse-ai/workflow-intelligence/index.js +3 -21
  54. package/AGENTS.md +2 -2
  55. package/CHANGELOG.md +50 -2
  56. package/README.md +10 -0
  57. package/bin/cli.js +29 -0
  58. package/bin/commands/help.js +5 -0
  59. package/bin/commands/install.js +5 -4
  60. package/bin/commands/uninstall.js +5 -0
  61. package/bin/lib/command-generator.js +4 -4
  62. package/bin/lib/fs-utils.js +18 -0
  63. package/bin/lib/setup-statusline.js +3 -1
  64. package/bin/modules/chrome-brain-installer.js +5 -3
  65. package/bin/modules/mcp-installer.js +3 -6
  66. package/bin/postinstall.js +9 -1
  67. package/bin/sinapse-init.js +8 -9
  68. package/bin/sinapse.js +152 -2
  69. package/bin/utils/staged-secret-scan.js +3 -1
  70. package/docs/framework/atlas/OPERATING-ATLAS.md +3 -3
  71. package/docs/framework/atlas/atlas-data.json +27 -27
  72. package/docs/framework/atlas/atlas.html +12 -10
  73. package/docs/framework/source-tree.md +2 -3
  74. package/docs/framework/workflow-engine-status.md +70 -0
  75. package/docs/guides/ade-guide.md +4 -2
  76. package/docs/guides/api-reference.md +2 -0
  77. package/docs/guides/permission-modes.md +2 -0
  78. package/docs/guides/user-guide.md +21 -7
  79. package/docs/guides/workflows/AUTO-WORKTREE-WORKFLOW.md +2 -2
  80. package/docs/pt/architecture/ade-architecture.md +2 -0
  81. package/docs/pt/architecture/high-level-architecture.md +1 -1
  82. package/docs/pt/guides/ade-guide.md +4 -2
  83. package/docs/pt/guides/api-reference.md +2 -0
  84. package/docs/pt/guides/permission-modes.md +2 -0
  85. package/docs/pt/guides/user-guide.md +21 -7
  86. package/docs/pt/platforms/claude-code.md +2 -2
  87. package/docs/sinapse-workflows/auto-worktree-workflow.md +2 -2
  88. package/package.json +1 -1
  89. package/packages/installer/src/config/configure-environment.js +14 -6
  90. package/packages/installer/src/config/templates/core-config-template.js +43 -1
  91. package/packages/installer/src/installer/brownfield-upgrader.js +5 -3
  92. package/packages/installer/src/installer/file-hasher.js +29 -21
  93. package/packages/installer/src/installer/manifest-signature.js +61 -49
  94. package/packages/installer/src/installer/post-install-validator.js +24 -17
  95. package/packages/installer/src/installer/synapse-runtime-installer.js +148 -0
  96. package/packages/installer/src/merger/parsers/markdown-section-parser.js +3 -2
  97. package/packages/installer/src/updater/index.js +7 -1
  98. package/packages/installer/src/utils/atomic-write.js +35 -0
  99. package/packages/installer/src/wizard/i18n.js +294 -0
  100. package/packages/installer/src/wizard/index.js +31 -3
  101. package/packages/installer/src/wizard/validation/troubleshooting-system.js +60 -131
  102. package/packages/sinapse-install/src/capabilities/chrome-brain.js +5 -3
  103. package/packages/sinapse-install/src/installer.js +3 -1
  104. package/packages/sinapse-install/src/utils/atomic-write.js +67 -0
  105. package/scripts/apply-persona-disclaimer.js +2 -1
  106. package/scripts/bracket-report.js +103 -0
  107. package/scripts/sinapse-patch.js +2 -1
  108. package/scripts/sync-squad-yaml-components.js +2 -1
  109. package/scripts/validate-agent-codenames.js +168 -37
  110. package/scripts/validate-agents-md.js +2 -1
  111. package/scripts/validate-article-xi.js +10 -8
  112. package/scripts/validate-install-docs.js +23 -2
  113. package/scripts/validate-no-external-refs.js +14 -8
  114. package/sinapse/agents/sinapse-orqx.md +3 -3
  115. package/sinapse/agents/snps-orqx.md +3 -3
  116. package/sinapse/knowledge-base/routing-catalog.md +1 -1
  117. package/sinapse/tasks/diagnose-and-route.md +1 -1
  118. package/squads/claude-code-mastery/CHANGELOG.md +1 -1
  119. package/squads/claude-code-mastery/README.md +6 -6
  120. package/squads/claude-code-mastery/agents/claude-mastery-chief.md +10 -15
  121. package/squads/claude-code-mastery/agents/config-engineer.md +5 -12
  122. package/squads/claude-code-mastery/agents/hooks-architect.md +5 -11
  123. package/squads/claude-code-mastery/agents/mcp-integrator.md +5 -12
  124. package/squads/claude-code-mastery/agents/project-integrator.md +5 -12
  125. package/squads/claude-code-mastery/agents/roadmap-sentinel.md +14 -21
  126. package/squads/claude-code-mastery/agents/skill-craftsman.md +5 -11
  127. package/squads/claude-code-mastery/agents/swarm-orqx.md +20 -33
  128. package/squads/claude-code-mastery/data/claude-code-quick-ref.yaml +1 -1
  129. package/squads/claude-code-mastery/knowledge-base/claude-code-internals-deep.md +4 -4
  130. package/squads/claude-code-mastery/knowledge-base/claude-code-internals-reference.md +4 -4
  131. package/squads/claude-code-mastery/tasks/create-agent-definition.md +6 -6
  132. package/squads/claude-code-mastery/tasks/create-team-topology.md +3 -3
  133. package/squads/claude-code-mastery/tasks/diagnose.md +1 -1
  134. package/squads/claude-code-mastery/tasks/parallel-decomposition.md +1 -1
  135. package/squads/claude-code-mastery/tasks/worktree-strategy.md +1 -1
  136. package/squads/squad-animations/README.md +1 -1
  137. package/squads/squad-animations/agents/animation-interpreter.md +5 -5
  138. package/squads/squad-animations/agents/animations-orqx.md +6 -6
  139. package/squads/squad-animations/squad.yaml +1 -1
  140. package/squads/squad-animations/tasks/analyze-reference-animation.md +1 -1
  141. package/squads/squad-animations/tasks/build-animation-brief.md +1 -1
  142. package/squads/squad-animations/tasks/create-animation-storyboard.md +1 -1
  143. package/squads/squad-animations/tasks/cross-reference-brand-system.md +1 -1
  144. package/squads/squad-animations/tasks/extract-animation-intent.md +1 -1
  145. package/squads/squad-animations/tasks/generate-motion-vocabulary.md +1 -1
  146. package/squads/squad-animations/tasks/identify-website-animation.md +1 -1
  147. package/squads/squad-animations/tasks/interpret-animation-prompt.md +1 -1
  148. package/squads/squad-animations/tasks/refine-animation-specification.md +1 -1
  149. package/squads/squad-animations/tasks/translate-feeling-to-parameters.md +1 -1
  150. package/squads/squad-animations/tasks/validate-animation-feasibility.md +1 -1
  151. package/squads/squad-animations/workflows/prompt-to-animation-cycle.yaml +2 -2
  152. package/squads/squad-brand/agents/brand-auditor.md +1 -1
  153. package/squads/squad-brand/agents/brand-compiler.md +1 -1
  154. package/squads/squad-brand/agents/brand-motion-vfx.md +5 -5
  155. package/squads/squad-brand/agents/brand-orqx.md +2 -2
  156. package/squads/squad-brand/agents/brand-sonic-designer.md +1 -1
  157. package/squads/squad-brand/squad.yaml +1 -1
  158. package/squads/squad-brand/tasks/create-animation-library.md +1 -1
  159. package/squads/squad-brand/tasks/create-brand-characters.md +2 -2
  160. package/squads/squad-brand/tasks/create-event-branding.md +2 -2
  161. package/squads/squad-brand/tasks/create-micro-interactions.md +1 -1
  162. package/squads/squad-brand/tasks/create-page-transitions.md +1 -1
  163. package/squads/squad-brand/tasks/create-video-templates.md +1 -1
  164. package/squads/squad-brand/tasks/create-web-templates.md +1 -1
  165. package/squads/squad-brand/tasks/define-motion-language.md +1 -1
  166. package/squads/squad-brand/tasks/design-dynamic-identity-system.md +2 -2
  167. package/squads/squad-brand/tasks/design-illustration-system.md +1 -1
  168. package/squads/squad-commercial/README.md +3 -3
  169. package/squads/squad-commercial/agents/commercial-orqx.md +8 -8
  170. package/squads/squad-commercial/agents/cs-crm-specialist.md +3 -3
  171. package/squads/squad-commercial/agents/cs-revops-analyst.md +3 -3
  172. package/squads/squad-commercial/agents/cs-sales-closer.md +1 -1
  173. package/squads/squad-commercial/knowledge-base/commercial-analytics-reporting.md +7 -7
  174. package/squads/squad-commercial/knowledge-base/sales-revenue-master-reference.md +1 -1
  175. package/squads/squad-commercial/squad.yaml +3 -3
  176. package/squads/squad-commercial/tasks/analyze-revenue-leaks.md +2 -2
  177. package/squads/squad-commercial/tasks/audit-commercial-tech-stack.md +1 -1
  178. package/squads/squad-commercial/tasks/audit-crm-data.md +1 -1
  179. package/squads/squad-commercial/tasks/build-deal-scoring-model.md +1 -1
  180. package/squads/squad-commercial/tasks/build-forecasting-model.md +1 -1
  181. package/squads/squad-commercial/tasks/build-pipeline-dashboard.md +2 -2
  182. package/squads/squad-commercial/tasks/build-unit-economics-model.md +1 -1
  183. package/squads/squad-commercial/tasks/conduct-commercial-retrospective.md +2 -2
  184. package/squads/squad-commercial/tasks/conduct-deal-review.md +1 -1
  185. package/squads/squad-commercial/tasks/conduct-win-loss-analysis.md +1 -1
  186. package/squads/squad-commercial/tasks/configure-activity-tracking.md +1 -1
  187. package/squads/squad-commercial/tasks/configure-crm-integrations.md +1 -1
  188. package/squads/squad-commercial/tasks/configure-pipeline-stages.md +1 -1
  189. package/squads/squad-commercial/tasks/coordinate-revenue-cycle.md +1 -1
  190. package/squads/squad-commercial/tasks/create-commercial-brief.md +2 -2
  191. package/squads/squad-commercial/tasks/create-revenue-dashboard.md +1 -1
  192. package/squads/squad-commercial/tasks/design-lead-routing.md +1 -1
  193. package/squads/squad-commercial/tasks/design-quota-model.md +1 -1
  194. package/squads/squad-commercial/tasks/execute-save-play.md +1 -1
  195. package/squads/squad-commercial/tasks/manage-commercial-handoffs.md +1 -1
  196. package/squads/squad-commercial/tasks/manage-pipeline-forecast.md +3 -3
  197. package/squads/squad-commercial/tasks/monitor-pipeline-health.md +1 -1
  198. package/squads/squad-commercial/tasks/monitor-saas-metrics.md +1 -1
  199. package/squads/squad-commercial/tasks/plan-sales-capacity.md +1 -1
  200. package/squads/squad-commercial/tasks/plan-territory-mapping.md +1 -1
  201. package/squads/squad-commercial/tasks/review-revenue-architecture.md +2 -2
  202. package/squads/squad-commercial/tasks/run-quarterly-commercial-review.md +3 -3
  203. package/squads/squad-commercial/tasks/select-commercial-workflow.md +1 -1
  204. package/squads/squad-commercial/tasks/setup-outreach-sequences.md +1 -1
  205. package/squads/squad-commercial/templates/offer-brief-template.md +2 -2
  206. package/squads/squad-commercial/workflows/new-offer-launch.yaml +2 -2
  207. package/squads/squad-commercial/workflows/quarterly-commercial-review.yaml +1 -1
  208. package/squads/squad-commercial/workflows/revenue-forecasting-cycle.yaml +2 -2
  209. package/squads/squad-content/README.md +1 -1
  210. package/squads/squad-content/agents/content-analyst.md +4 -4
  211. package/squads/squad-content/agents/content-engineer.md +2 -2
  212. package/squads/squad-content/agents/content-governor.md +1 -1
  213. package/squads/squad-content/agents/content-orqx.md +6 -6
  214. package/squads/squad-content/agents/editorial-strategist.md +5 -5
  215. package/squads/squad-content/agents/platform-specialist.md +1 -1
  216. package/squads/squad-content/agents/signal-intelligence.md +4 -4
  217. package/squads/squad-content/checklists/editorial-planning-checklist.md +1 -1
  218. package/squads/squad-content/checklists/onboarding-setup-checklist.md +2 -2
  219. package/squads/squad-content/knowledge-base/ai-native-content-loop.md +2 -2
  220. package/squads/squad-content/knowledge-base/content-governance-principles.md +2 -2
  221. package/squads/squad-content/knowledge-base/cross-squad-integration-protocol.md +1 -1
  222. package/squads/squad-content/knowledge-base/signal-intelligence-v2.md +1 -1
  223. package/squads/squad-content/knowledge-base/task-ownership-map.md +5 -5
  224. package/squads/squad-content/squad.yaml +2 -2
  225. package/squads/squad-content/tasks/alert-opportunity-windows.md +6 -6
  226. package/squads/squad-content/tasks/analyze-content-performance.md +2 -2
  227. package/squads/squad-content/tasks/batch-content-production.md +1 -1
  228. package/squads/squad-content/tasks/benchmark-against-competitors.md +1 -1
  229. package/squads/squad-content/tasks/coordinate-cross-squad.md +1 -1
  230. package/squads/squad-content/tasks/create-content-governance.md +1 -1
  231. package/squads/squad-content/tasks/create-editorial-calendar.md +1 -1
  232. package/squads/squad-content/tasks/curate-ugc-signals.md +2 -2
  233. package/squads/squad-content/tasks/define-big-idea.md +1 -1
  234. package/squads/squad-content/tasks/define-content-kpis.md +1 -1
  235. package/squads/squad-content/tasks/flag-content-for-amplification.md +2 -2
  236. package/squads/squad-content/tasks/generate-content-report.md +3 -3
  237. package/squads/squad-content/tasks/manage-content-sprint.md +1 -1
  238. package/squads/squad-content/tasks/measure-content-roi.md +3 -3
  239. package/squads/squad-content/tasks/orchestrate-content-pipeline.md +2 -2
  240. package/squads/squad-content/tasks/plan-content-sprint.md +3 -3
  241. package/squads/squad-content/tasks/predict-content-performance.md +2 -2
  242. package/squads/squad-content/tasks/scan-daily-signals.md +2 -2
  243. package/squads/squad-content/tasks/triage-content-requests.md +1 -1
  244. package/squads/squad-content/tasks/triage-urgent-signal.md +1 -1
  245. package/squads/squad-content/templates/signal-alert-template.md +2 -2
  246. package/squads/squad-content/templates/weekly-briefing-template.md +1 -1
  247. package/squads/squad-content/workflows/content-audit-cycle.yaml +1 -1
  248. package/squads/squad-content/workflows/content-creation-cycle.yaml +3 -3
  249. package/squads/squad-content/workflows/editorial-planning-cycle.yaml +3 -3
  250. package/squads/squad-content/workflows/onboarding-content-cycle.yaml +3 -3
  251. package/squads/squad-content/workflows/performance-feedback-loop.yaml +3 -3
  252. package/squads/squad-content/workflows/signal-to-content-cycle.yaml +5 -5
  253. package/squads/squad-copy/README.md +4 -4
  254. package/squads/squad-copy/agents/ad-copywriter.md +4 -4
  255. package/squads/squad-copy/agents/copy-orqx.md +3 -3
  256. package/squads/squad-copy/agents/copy-strategist.md +5 -5
  257. package/squads/squad-copy/agents/direct-response-writer.md +3 -3
  258. package/squads/squad-copy/agents/email-sequence-strategist.md +1 -1
  259. package/squads/squad-copy/agents/funnel-copywriter.md +3 -3
  260. package/squads/squad-copy/agents/headline-specialist.md +1 -1
  261. package/squads/squad-copy/agents/proof-architect.md +3 -3
  262. package/squads/squad-copy/squad.yaml +3 -3
  263. package/squads/squad-copy/tasks/build-proof-stack.md +3 -3
  264. package/squads/squad-copy/tasks/craft-cta-variations.md +2 -2
  265. package/squads/squad-copy/tasks/craft-email-nurture-sequence.md +2 -2
  266. package/squads/squad-copy/tasks/craft-objection-handlers.md +1 -1
  267. package/squads/squad-copy/tasks/craft-social-media-hooks.md +1 -1
  268. package/squads/squad-copy/tasks/create-cart-abandonment-sequence.md +2 -2
  269. package/squads/squad-copy/tasks/create-customer-story.md +2 -2
  270. package/squads/squad-copy/tasks/create-email-campaign.md +2 -2
  271. package/squads/squad-copy/tasks/create-mechanism-copy.md +4 -4
  272. package/squads/squad-copy/tasks/create-opening-hooks.md +1 -1
  273. package/squads/squad-copy/tasks/create-ugc-script.md +2 -2
  274. package/squads/squad-copy/tasks/create-urgency-scarcity-framework.md +1 -1
  275. package/squads/squad-copy/tasks/create-welcome-sequence.md +2 -2
  276. package/squads/squad-copy/tasks/design-headline-ab-tests.md +1 -1
  277. package/squads/squad-copy/tasks/design-trigger-sequence.md +1 -1
  278. package/squads/squad-copy/tasks/design-welcome-series.md +2 -2
  279. package/squads/squad-copy/tasks/optimize-existing-copy.md +2 -2
  280. package/squads/squad-copy/tasks/optimize-funnel-conversion-copy.md +2 -2
  281. package/squads/squad-copy/tasks/optimize-pricing-framing.md +2 -2
  282. package/squads/squad-copy/tasks/write-ad-copy-google.md +2 -2
  283. package/squads/squad-copy/tasks/write-ad-copy-social.md +2 -2
  284. package/squads/squad-copy/tasks/write-ad-copy-variations.md +4 -4
  285. package/squads/squad-copy/tasks/write-case-study.md +2 -2
  286. package/squads/squad-copy/tasks/write-comparison-piece.md +2 -2
  287. package/squads/squad-copy/tasks/write-email-sequence.md +1 -1
  288. package/squads/squad-copy/tasks/write-email-subject-lines.md +1 -1
  289. package/squads/squad-copy/tasks/write-funnel-copy-sequence.md +4 -4
  290. package/squads/squad-copy/tasks/write-landing-page-copy.md +2 -2
  291. package/squads/squad-copy/tasks/write-launch-sequence.md +2 -2
  292. package/squads/squad-copy/tasks/write-opt-in-page.md +2 -2
  293. package/squads/squad-copy/tasks/write-product-narrative.md +2 -2
  294. package/squads/squad-copy/tasks/write-retargeting-copy.md +2 -2
  295. package/squads/squad-copy/tasks/write-sales-letter.md +1 -1
  296. package/squads/squad-copy/tasks/write-social-proof-section.md +1 -1
  297. package/squads/squad-copy/tasks/write-subheadlines-and-deck-copy.md +1 -1
  298. package/squads/squad-copy/tasks/write-upsell-copy.md +2 -2
  299. package/squads/squad-copy/tasks/write-vsl-script.md +3 -3
  300. package/squads/squad-copy/tasks/write-whitepaper-persuasive.md +2 -2
  301. package/squads/squad-copy/workflows/campaign-copy-cycle.yaml +4 -4
  302. package/squads/squad-copy/workflows/conversion-copy-sprint.yaml +6 -6
  303. package/squads/squad-copy/workflows/sales-copy-pipeline.yaml +4 -4
  304. package/squads/squad-design/README.md +6 -6
  305. package/squads/squad-design/agents/cro-persuasion.md +3 -3
  306. package/squads/squad-design/agents/design-orqx.md +17 -17
  307. package/squads/squad-design/agents/dx-accessibility-specialist.md +5 -5
  308. package/squads/squad-design/agents/dx-design-system-architect.md +8 -8
  309. package/squads/squad-design/agents/dx-frontend-engineer.md +7 -7
  310. package/squads/squad-design/agents/dx-interaction-designer.md +6 -6
  311. package/squads/squad-design/agents/dx-performance-engineer.md +3 -3
  312. package/squads/squad-design/agents/dx-ui-designer.md +7 -7
  313. package/squads/squad-design/agents/dx-ux-strategist.md +7 -7
  314. package/squads/squad-design/agents/platform-aesthetic-director.md +11 -11
  315. package/squads/squad-design/agents/premium-packaging-strategist.md +2 -2
  316. package/squads/squad-design/agents/product-surface-director.md +1 -1
  317. package/squads/squad-design/squad.yaml +6 -6
  318. package/squads/squad-design/tasks/analyze-javascript-bundles.md +1 -1
  319. package/squads/squad-design/tasks/audit-core-web-vitals.md +1 -1
  320. package/squads/squad-design/tasks/audit-design-system-health.md +1 -1
  321. package/squads/squad-design/tasks/audit-motion-performance.md +1 -1
  322. package/squads/squad-design/tasks/certify-accessibility-compliance.md +2 -2
  323. package/squads/squad-design/tasks/compose-screen-layouts.md +3 -3
  324. package/squads/squad-design/tasks/conduct-competitive-ux-analysis.md +1 -1
  325. package/squads/squad-design/tasks/conduct-dx-quality-gate.md +3 -3
  326. package/squads/squad-design/tasks/conduct-usability-heuristic-review.md +1 -1
  327. package/squads/squad-design/tasks/conduct-visual-qa.md +1 -1
  328. package/squads/squad-design/tasks/conduct-wcag-audit.md +1 -1
  329. package/squads/squad-design/tasks/configure-cdn-strategy.md +1 -1
  330. package/squads/squad-design/tasks/configure-token-export-pipeline.md +1 -1
  331. package/squads/squad-design/tasks/create-a11y-remediation-plan.md +4 -4
  332. package/squads/squad-design/tasks/create-color-system.md +2 -2
  333. package/squads/squad-design/tasks/create-component-governance.md +1 -1
  334. package/squads/squad-design/tasks/create-component-tokens.md +2 -2
  335. package/squads/squad-design/tasks/create-dark-light-themes.md +3 -3
  336. package/squads/squad-design/tasks/create-easing-curve-library.md +1 -1
  337. package/squads/squad-design/tasks/create-empty-error-states.md +1 -1
  338. package/squads/squad-design/tasks/create-error-boundary-patterns.md +1 -1
  339. package/squads/squad-design/tasks/create-illustration-style.md +1 -1
  340. package/squads/squad-design/tasks/create-mobile-first-designs.md +2 -2
  341. package/squads/squad-design/tasks/create-motion-documentation.md +1 -1
  342. package/squads/squad-design/tasks/create-motion-tokens.md +2 -2
  343. package/squads/squad-design/tasks/create-primitive-tokens.md +1 -1
  344. package/squads/squad-design/tasks/create-responsive-grid-system.md +1 -1
  345. package/squads/squad-design/tasks/create-screen-reader-specs.md +1 -1
  346. package/squads/squad-design/tasks/create-scroll-animation-patterns.md +1 -1
  347. package/squads/squad-design/tasks/create-semantic-tokens.md +1 -1
  348. package/squads/squad-design/tasks/create-storybook-documentation-standards.md +1 -1
  349. package/squads/squad-design/tasks/create-user-personas.md +1 -1
  350. package/squads/squad-design/tasks/create-ux-principles.md +1 -1
  351. package/squads/squad-design/tasks/create-wireframe-brief.md +2 -2
  352. package/squads/squad-design/tasks/define-atomic-hierarchy.md +2 -2
  353. package/squads/squad-design/tasks/define-content-hierarchy.md +2 -2
  354. package/squads/squad-design/tasks/define-motion-principles.md +4 -4
  355. package/squads/squad-design/tasks/define-performance-budgets.md +1 -1
  356. package/squads/squad-design/tasks/define-token-taxonomy.md +2 -2
  357. package/squads/squad-design/tasks/design-accessible-form-patterns.md +2 -2
  358. package/squads/squad-design/tasks/design-component-api-contracts.md +3 -3
  359. package/squads/squad-design/tasks/design-component-visual-states.md +4 -4
  360. package/squads/squad-design/tasks/design-dashboard-layouts.md +1 -1
  361. package/squads/squad-design/tasks/design-duration-scale.md +1 -1
  362. package/squads/squad-design/tasks/design-feedback-animations.md +2 -2
  363. package/squads/squad-design/tasks/design-focus-management.md +1 -1
  364. package/squads/squad-design/tasks/design-form-patterns.md +2 -2
  365. package/squads/squad-design/tasks/design-icon-system.md +1 -1
  366. package/squads/squad-design/tasks/design-information-architecture.md +2 -2
  367. package/squads/squad-design/tasks/design-landing-page-ui.md +3 -3
  368. package/squads/squad-design/tasks/design-loading-choreography.md +1 -1
  369. package/squads/squad-design/tasks/design-multi-brand-theming.md +1 -1
  370. package/squads/squad-design/tasks/design-page-transitions.md +1 -1
  371. package/squads/squad-design/tasks/design-spacing-scale.md +3 -3
  372. package/squads/squad-design/tasks/design-typography-scale.md +3 -3
  373. package/squads/squad-design/tasks/design-user-flows.md +2 -2
  374. package/squads/squad-design/tasks/design-visual-hierarchy.md +2 -2
  375. package/squads/squad-design/tasks/eliminate-render-blocking.md +1 -1
  376. package/squads/squad-design/tasks/extract-critical-css.md +1 -1
  377. package/squads/squad-design/tasks/govern-third-party-scripts.md +1 -1
  378. package/squads/squad-design/tasks/implement-authentication-ui.md +1 -1
  379. package/squads/squad-design/tasks/implement-component-library.md +4 -4
  380. package/squads/squad-design/tasks/implement-form-system.md +2 -2
  381. package/squads/squad-design/tasks/implement-reduced-motion.md +3 -3
  382. package/squads/squad-design/tasks/implement-responsive-layouts.md +1 -1
  383. package/squads/squad-design/tasks/implement-routing-strategy.md +1 -1
  384. package/squads/squad-design/tasks/map-dark-mode-tokens.md +3 -3
  385. package/squads/squad-design/tasks/map-user-journeys.md +2 -2
  386. package/squads/squad-design/tasks/migrate-legacy-design-system.md +1 -1
  387. package/squads/squad-design/tasks/monitor-performance-regression.md +1 -1
  388. package/squads/squad-design/tasks/optimize-font-loading.md +1 -1
  389. package/squads/squad-design/tasks/optimize-image-pipeline.md +1 -1
  390. package/squads/squad-design/tasks/orchestrate-dx-pipeline.md +2 -2
  391. package/squads/squad-design/tasks/plan-ux-research-sprint.md +1 -1
  392. package/squads/squad-design/tasks/produce-design-handoff-specs.md +4 -4
  393. package/squads/squad-design/tasks/review-aria-patterns.md +1 -1
  394. package/squads/squad-design/tasks/setup-performance-ci-gates.md +1 -1
  395. package/squads/squad-design/tasks/setup-storybook-integration.md +1 -1
  396. package/squads/squad-design/tasks/spec-gesture-interactions.md +1 -1
  397. package/squads/squad-design/tasks/spec-micro-interactions.md +2 -2
  398. package/squads/squad-design/tasks/synthesize-user-research.md +2 -2
  399. package/squads/squad-design/tasks/test-keyboard-navigation.md +1 -1
  400. package/squads/squad-design/tasks/validate-ux-with-testing.md +1 -1
  401. package/squads/squad-design/tasks/verify-color-contrast.md +2 -2
  402. package/squads/squad-design/templates/a11y-audit-report-template.md +1 -1
  403. package/squads/squad-design/templates/design-handoff-template.md +1 -1
  404. package/squads/squad-design/templates/performance-budget-template.md +1 -1
  405. package/squads/squad-design/templates/ux-research-plan-template.md +1 -1
  406. package/squads/squad-design/workflows/a11y-compliance-cycle.yaml +8 -8
  407. package/squads/squad-design/workflows/design-system-build-cycle.yaml +12 -12
  408. package/squads/squad-design/workflows/landing-page-sprint.yaml +10 -10
  409. package/squads/squad-design/workflows/performance-remediation-cycle.yaml +6 -6
  410. package/squads/squad-design/workflows/ux-research-sprint.yaml +8 -8
  411. package/squads/squad-design/workflows/zero-to-digital-product-cycle.yaml +16 -16
  412. package/squads/squad-finance/README.md +1 -1
  413. package/squads/squad-finance/agents/budget-controller.md +1 -1
  414. package/squads/squad-finance/agents/cost-optimizer.md +2 -2
  415. package/squads/squad-finance/agents/finance-orqx.md +4 -4
  416. package/squads/squad-finance/agents/fiscal-compliance-br.md +4 -4
  417. package/squads/squad-finance/agents/forecast-strategist.md +6 -6
  418. package/squads/squad-finance/agents/pricing-strategist.md +3 -3
  419. package/squads/squad-finance/agents/profitability-analyst.md +1 -1
  420. package/squads/squad-finance/agents/revenue-analyst.md +1 -1
  421. package/squads/squad-finance/checklists/monthly-close-checklist.md +1 -1
  422. package/squads/squad-finance/checklists/quarterly-review-checklist.md +1 -1
  423. package/squads/squad-finance/squad.yaml +2 -2
  424. package/squads/squad-finance/tasks/analyze-price-sensitivity.md +1 -1
  425. package/squads/squad-finance/tasks/benchmark-competitor-pricing.md +1 -1
  426. package/squads/squad-finance/tasks/calculate-rate-card.md +1 -1
  427. package/squads/squad-finance/tasks/coordinate-quarterly-review.md +2 -2
  428. package/squads/squad-finance/tasks/create-proposal-pricing.md +1 -1
  429. package/squads/squad-finance/tasks/design-service-tiers.md +1 -1
  430. package/squads/squad-finance/tasks/design-value-based-pricing.md +1 -1
  431. package/squads/squad-finance/tasks/manage-financial-calendar.md +1 -1
  432. package/squads/squad-finance/tasks/model-pricing-scenario.md +1 -1
  433. package/squads/squad-finance/tasks/optimize-rate-realization.md +1 -1
  434. package/squads/squad-finance/tasks/simulate-pricing-impact.md +1 -1
  435. package/squads/squad-finance/tasks/track-pricing-performance.md +1 -1
  436. package/squads/squad-paidmedia/README.md +4 -4
  437. package/squads/squad-paidmedia/agents/campaign-analyst.md +6 -6
  438. package/squads/squad-paidmedia/agents/creative-strategist.md +2 -2
  439. package/squads/squad-paidmedia/agents/cro-specialist.md +5 -5
  440. package/squads/squad-paidmedia/agents/google-ads-specialist.md +2 -2
  441. package/squads/squad-paidmedia/agents/meta-ads-specialist.md +6 -6
  442. package/squads/squad-paidmedia/agents/paidmedia-orqx.md +6 -6
  443. package/squads/squad-paidmedia/agents/performance-engineer.md +2 -2
  444. package/squads/squad-paidmedia/agents/pm-creative-performance-analyst.md +2 -2
  445. package/squads/squad-paidmedia/knowledge-base/routing-catalog.md +21 -21
  446. package/squads/squad-paidmedia/squad.yaml +4 -4
  447. package/squads/squad-paidmedia/tasks/allocate-cross-channel-budget.md +1 -1
  448. package/squads/squad-paidmedia/tasks/allocate-meta-budget.md +2 -2
  449. package/squads/squad-paidmedia/tasks/analyze-audience-performance.md +1 -1
  450. package/squads/squad-paidmedia/tasks/analyze-content-performance.md +1 -1
  451. package/squads/squad-paidmedia/tasks/analyze-conversion-funnel.md +2 -2
  452. package/squads/squad-paidmedia/tasks/analyze-creative-effectiveness.md +1 -1
  453. package/squads/squad-paidmedia/tasks/analyze-keyword-rankings.md +1 -1
  454. package/squads/squad-paidmedia/tasks/analyze-landing-page.md +1 -1
  455. package/squads/squad-paidmedia/tasks/analyze-local-keywords.md +1 -1
  456. package/squads/squad-paidmedia/tasks/analyze-local-market.md +1 -1
  457. package/squads/squad-paidmedia/tasks/analyze-reviews-strategy.md +1 -1
  458. package/squads/squad-paidmedia/tasks/analyze-top-pages.md +1 -1
  459. package/squads/squad-paidmedia/tasks/analyze-traffic-sources.md +1 -1
  460. package/squads/squad-paidmedia/tasks/analyze-user-behavior.md +1 -1
  461. package/squads/squad-paidmedia/tasks/audit-conversion-tracking.md +1 -1
  462. package/squads/squad-paidmedia/tasks/audit-gmb-location.md +1 -1
  463. package/squads/squad-paidmedia/tasks/audit-meta-ads-account.md +1 -1
  464. package/squads/squad-paidmedia/tasks/audit-sitemap-health.md +1 -1
  465. package/squads/squad-paidmedia/tasks/build-audience-architecture.md +2 -2
  466. package/squads/squad-paidmedia/tasks/build-creative-scorecard.md +1 -1
  467. package/squads/squad-paidmedia/tasks/calculate-sample-size.md +1 -1
  468. package/squads/squad-paidmedia/tasks/check-indexing-status.md +1 -1
  469. package/squads/squad-paidmedia/tasks/create-scaling-roadmap.md +1 -1
  470. package/squads/squad-paidmedia/tasks/design-campaign-structure.md +2 -2
  471. package/squads/squad-paidmedia/tasks/design-progressive-profiling.md +1 -1
  472. package/squads/squad-paidmedia/tasks/detect-creative-fatigue.md +1 -1
  473. package/squads/squad-paidmedia/tasks/execute-launch-checklist.md +1 -1
  474. package/squads/squad-paidmedia/tasks/generate-monthly-report.md +1 -1
  475. package/squads/squad-paidmedia/tasks/generate-search-performance-overview.md +1 -1
  476. package/squads/squad-paidmedia/tasks/generate-weekly-summary.md +1 -1
  477. package/squads/squad-paidmedia/tasks/manage-pixel-capi-health.md +1 -1
  478. package/squads/squad-paidmedia/tasks/manage-scaling-roadmap.md +1 -1
  479. package/squads/squad-paidmedia/tasks/measure-activation-rate.md +1 -1
  480. package/squads/squad-paidmedia/tasks/optimize-ad-set-targeting.md +2 -2
  481. package/squads/squad-paidmedia/tasks/optimize-form-conversion.md +1 -1
  482. package/squads/squad-paidmedia/tasks/optimize-onboarding-activation.md +1 -1
  483. package/squads/squad-paidmedia/tasks/optimize-page-conversion.md +1 -1
  484. package/squads/squad-paidmedia/tasks/optimize-signup-flow.md +1 -1
  485. package/squads/squad-paidmedia/tasks/plan-customer-engagement.md +1 -1
  486. package/squads/squad-paidmedia/tasks/run-ab-test.md +1 -1
  487. package/squads/squad-paidmedia/tasks/run-creative-test.md +1 -1
  488. package/squads/squad-paidmedia/tasks/track-gmb-performance-trends.md +1 -1
  489. package/squads/squad-paidmedia/tasks/triage-campaign-issues.md +1 -1
  490. package/squads/squad-product/README.md +2 -2
  491. package/squads/squad-product/agents/product-orqx.md +4 -4
  492. package/squads/squad-product/agents/ps-delivery-manager.md +2 -2
  493. package/squads/squad-product/agents/ps-product-ops-specialist.md +2 -2
  494. package/squads/squad-product/squad.yaml +2 -2
  495. package/squads/squad-product/tasks/audit-product-tool-stack.md +1 -1
  496. package/squads/squad-product/tasks/build-product-knowledge-base.md +1 -1
  497. package/squads/squad-product/tasks/calculate-sprint-velocity.md +1 -1
  498. package/squads/squad-product/tasks/configure-feature-flag-rollout.md +1 -1
  499. package/squads/squad-product/tasks/create-product-artifact-template.md +1 -1
  500. package/squads/squad-product/tasks/create-product-onboarding-runbook.md +3 -3
  501. package/squads/squad-product/tasks/create-product-playbook.md +2 -2
  502. package/squads/squad-product/tasks/document-product-process.md +1 -1
  503. package/squads/squad-product/tasks/execute-feature-launch-checklist.md +1 -1
  504. package/squads/squad-product/tasks/facilitate-sprint-retrospective.md +1 -1
  505. package/squads/squad-product/tasks/generate-product-health-report.md +2 -2
  506. package/squads/squad-product/tasks/maintain-decision-log-system.md +1 -1
  507. package/squads/squad-product/tasks/manage-sprint-capacity-planning.md +1 -1
  508. package/squads/squad-product/tasks/map-cross-functional-dependencies.md +1 -1
  509. package/squads/squad-product/tasks/prepare-product-handoff-package.md +4 -4
  510. package/squads/squad-product/tasks/run-product-operations-audit.md +1 -1
  511. package/squads/squad-product/tasks/run-shape-up-betting-table.md +1 -1
  512. package/squads/squad-product/tasks/run-sprint-planning-session.md +1 -1
  513. package/squads/squad-product/tasks/scope-agency-mvp.md +1 -1
  514. package/squads/squad-product/tasks/setup-new-client-product-operations.md +1 -1
  515. package/squads/squad-product/tasks/standardize-cross-client-metrics.md +1 -1
  516. package/squads/squad-product/tasks/triage-technical-debt-backlog.md +1 -1
  517. package/squads/squad-product/tasks/write-release-notes.md +1 -1
  518. package/squads/squad-research/README.md +3 -3
  519. package/squads/squad-research/agents/audience-intelligence.md +9 -9
  520. package/squads/squad-research/agents/competitive-intelligence.md +1 -1
  521. package/squads/squad-research/agents/data-synthesizer.md +11 -11
  522. package/squads/squad-research/agents/deep-researcher.md +2 -2
  523. package/squads/squad-research/agents/market-analyst.md +9 -9
  524. package/squads/squad-research/agents/research-orqx.md +4 -4
  525. package/squads/squad-research/agents/trend-forecaster.md +2 -2
  526. package/squads/squad-research/knowledge-base/agentic-second-brain-reference.md +1 -1
  527. package/squads/squad-research/knowledge-base/community-platforms-reference.md +1 -1
  528. package/squads/squad-research/knowledge-base/cross-squad-integration-protocol.md +1 -1
  529. package/squads/squad-research/knowledge-base/multi-agent-research-methodology.md +3 -3
  530. package/squads/squad-research/squad.yaml +3 -3
  531. package/squads/squad-research/tasks/analyze-audience-behavior.md +2 -2
  532. package/squads/squad-research/tasks/analyze-audience-psychographics.md +2 -2
  533. package/squads/squad-research/tasks/analyze-competitor-pricing.md +1 -1
  534. package/squads/squad-research/tasks/analyze-industry-trends.md +2 -2
  535. package/squads/squad-research/tasks/analyze-macro-forces.md +1 -1
  536. package/squads/squad-research/tasks/analyze-pricing-landscape.md +2 -2
  537. package/squads/squad-research/tasks/analyze-social-listening.md +2 -2
  538. package/squads/squad-research/tasks/analyze-value-chain.md +2 -2
  539. package/squads/squad-research/tasks/answer-strategic-question.md +1 -1
  540. package/squads/squad-research/tasks/assess-market-maturity.md +2 -2
  541. package/squads/squad-research/tasks/build-audience-persona.md +2 -2
  542. package/squads/squad-research/tasks/build-data-narrative.md +2 -2
  543. package/squads/squad-research/tasks/compile-competitive-dossier.md +2 -2
  544. package/squads/squad-research/tasks/conduct-deep-research.md +1 -1
  545. package/squads/squad-research/tasks/conduct-jobs-to-be-done.md +2 -2
  546. package/squads/squad-research/tasks/create-empathy-map.md +2 -2
  547. package/squads/squad-research/tasks/create-executive-briefing.md +2 -2
  548. package/squads/squad-research/tasks/create-insight-deck.md +2 -2
  549. package/squads/squad-research/tasks/create-research-dossier.md +1 -1
  550. package/squads/squad-research/tasks/create-research-repository.md +2 -2
  551. package/squads/squad-research/tasks/create-swot-analysis.md +4 -4
  552. package/squads/squad-research/tasks/design-survey.md +2 -2
  553. package/squads/squad-research/tasks/evaluate-market-entry.md +2 -2
  554. package/squads/squad-research/tasks/evaluate-regulatory-landscape.md +2 -2
  555. package/squads/squad-research/tasks/forecast-industry-trends.md +2 -2
  556. package/squads/squad-research/tasks/forecast-market-growth.md +2 -2
  557. package/squads/squad-research/tasks/generate-actionable-recommendations.md +2 -2
  558. package/squads/squad-research/tasks/identify-market-segments.md +3 -3
  559. package/squads/squad-research/tasks/map-audience-ecosystem.md +2 -2
  560. package/squads/squad-research/tasks/map-audience-journey.md +2 -2
  561. package/squads/squad-research/tasks/map-industry-ecosystem.md +2 -2
  562. package/squads/squad-research/tasks/map-market-opportunity.md +2 -2
  563. package/squads/squad-research/tasks/map-pain-gain-matrix.md +2 -2
  564. package/squads/squad-research/tasks/map-strategic-implications.md +2 -2
  565. package/squads/squad-research/tasks/orchestrate-research-pipeline.md +4 -4
  566. package/squads/squad-research/tasks/predict-market-shifts.md +1 -1
  567. package/squads/squad-research/tasks/profile-ideal-customer.md +2 -2
  568. package/squads/squad-research/tasks/run-porter-five-forces.md +1 -1
  569. package/squads/squad-research/tasks/run-scenario-planning.md +1 -1
  570. package/squads/squad-research/tasks/segment-audience.md +2 -2
  571. package/squads/squad-research/tasks/size-market-tam-sam-som.md +2 -2
  572. package/squads/squad-research/tasks/synthesize-multi-source.md +1 -1
  573. package/squads/squad-research/tasks/synthesize-research-report.md +2 -2
  574. package/squads/squad-research/tasks/validate-persona-with-data.md +2 -2
  575. package/squads/squad-research/tasks/visualize-research-data.md +2 -2
  576. package/squads/squad-research/templates/audience-persona-template.md +1 -1
  577. package/squads/squad-research/templates/competitive-dossier-template.md +1 -1
  578. package/squads/squad-research/templates/market-analysis-template.md +1 -1
  579. package/squads/squad-research/workflows/audience-intelligence-cycle.yaml +12 -12
  580. package/squads/squad-research/workflows/competitive-intelligence-cycle.yaml +2 -2
  581. package/squads/squad-research/workflows/deep-research-cycle.yaml +2 -2
  582. package/squads/squad-research/workflows/full-research-sprint.yaml +8 -8
  583. package/squads/squad-research/workflows/market-analysis-cycle.yaml +12 -12
  584. package/squads/squad-research/workflows/trend-forecasting-cycle.yaml +2 -2
  585. package/.sinapse-ai/core/execution/context-injector.js +0 -537
  586. package/.sinapse-ai/core/execution/parallel-executor.js +0 -299
  587. package/.sinapse-ai/core/execution/parallel-monitor.js +0 -430
  588. package/.sinapse-ai/core/execution/semantic-merge-engine.js +0 -1748
  589. package/.sinapse-ai/core/execution/wave-executor.js +0 -401
  590. package/.sinapse-ai/development/tasks/waves.md +0 -205
  591. package/.sinapse-ai/lib/build.json +0 -1
  592. package/.sinapse-ai/workflow-intelligence/engine/wave-analyzer.js +0 -684
@@ -1,684 +0,0 @@
1
- /**
2
- * @module WaveAnalyzer
3
- * @description Wave Analysis Engine for parallel task execution detection
4
- * @story WIS-4 - Wave Analysis Engine
5
- * @version 1.0.0
6
- *
7
- * @example
8
- * const { WaveAnalyzer } = require('./wave-analyzer');
9
- * const analyzer = new WaveAnalyzer();
10
- *
11
- * const result = analyzer.analyzeWaves('story_development');
12
- * console.log(result.waves); // [{ waveNumber: 1, tasks: [...], parallel: true }, ...]
13
- */
14
-
15
- 'use strict';
16
-
17
- /**
18
- * Custom error class for circular dependency detection
19
- */
20
- class CircularDependencyError extends Error {
21
- /**
22
- * Create a CircularDependencyError
23
- * @param {string[]} cycle - Array of task names forming the cycle
24
- */
25
- constructor(cycle) {
26
- super(`Circular dependency detected: ${cycle.join(' → ')}`);
27
- this.name = 'CircularDependencyError';
28
- this.cycle = cycle;
29
- }
30
-
31
- /**
32
- * Get a suggested resolution for the circular dependency
33
- * @returns {string} Resolution suggestion
34
- */
35
- getSuggestion() {
36
- if (this.cycle.length < 2) {
37
- return 'Remove the self-referencing dependency';
38
- }
39
- const _lastEdge = `${this.cycle[this.cycle.length - 2]} → ${this.cycle[this.cycle.length - 1]}`;
40
- return `Consider removing the dependency from ${this.cycle[this.cycle.length - 1]} to ${this.cycle[0]}`;
41
- }
42
- }
43
-
44
- /**
45
- * Default task duration estimates (in minutes)
46
- * @type {Object}
47
- */
48
- const DEFAULT_TASK_DURATIONS = {
49
- 'read-story': 5,
50
- 'setup-branch': 2,
51
- implement: 30,
52
- 'write-tests': 10,
53
- 'update-docs': 5,
54
- 'run-tests': 5,
55
- 'review-qa': 15,
56
- 'apply-qa-fixes': 10,
57
- default: 10,
58
- };
59
-
60
- /**
61
- * WaveAnalyzer class for detecting parallel execution opportunities
62
- */
63
- class WaveAnalyzer {
64
- /**
65
- * Create a WaveAnalyzer instance
66
- * @param {Object} options - Configuration options
67
- * @param {Object} options.registry - WorkflowRegistry instance (optional)
68
- * @param {Object} options.taskDurations - Custom task duration estimates
69
- */
70
- constructor(options = {}) {
71
- this.registry = options.registry || null;
72
- this.taskDurations = { ...DEFAULT_TASK_DURATIONS, ...options.taskDurations };
73
-
74
- // Lazy-loaded registry
75
- this._registryModule = null;
76
- }
77
-
78
- /**
79
- * Get the workflow registry (lazy-loaded)
80
- * @returns {Object} WorkflowRegistry instance
81
- * @private
82
- */
83
- _getRegistry() {
84
- if (this.registry) {
85
- return this.registry;
86
- }
87
-
88
- if (!this._registryModule) {
89
- try {
90
- const { createWorkflowRegistry } = require('../registry/workflow-registry');
91
- this._registryModule = createWorkflowRegistry();
92
- } catch (error) {
93
- throw new Error(`Failed to load WorkflowRegistry: ${error.message}`);
94
- }
95
- }
96
-
97
- return this._registryModule;
98
- }
99
-
100
- /**
101
- * Analyze waves for a workflow
102
- * @param {string} workflowId - Workflow identifier
103
- * @param {Object} options - Analysis options
104
- * @param {Object} options.customTasks - Custom task definitions with dependencies
105
- * @returns {Object} Wave analysis result
106
- */
107
- analyzeWaves(workflowId, options = {}) {
108
- const startTime = Date.now();
109
-
110
- // Get workflow definition
111
- const workflow = this._getWorkflowTasks(workflowId, options);
112
-
113
- if (!workflow || !workflow.tasks || workflow.tasks.length === 0) {
114
- return {
115
- workflowId,
116
- totalTasks: 0,
117
- waves: [],
118
- optimizationGain: '0%',
119
- criticalPath: [],
120
- analysisTime: Date.now() - startTime,
121
- };
122
- }
123
-
124
- // Build dependency graph
125
- const graph = this.buildDependencyGraph(workflow.tasks);
126
-
127
- // Check for cycles
128
- const cycle = this.findCycle(graph);
129
- if (cycle) {
130
- throw new CircularDependencyError(cycle);
131
- }
132
-
133
- // Perform wave analysis using Kahn's algorithm
134
- const waves = this._kahnWaveAnalysis(graph);
135
-
136
- // Calculate metrics
137
- const criticalPath = this._findCriticalPath(graph, waves);
138
- const sequentialTime = this._calculateSequentialTime(workflow.tasks);
139
- const parallelTime = this._calculateParallelTime(waves);
140
- const optimizationGain = this._calculateOptimizationGain(sequentialTime, parallelTime);
141
-
142
- return {
143
- workflowId,
144
- totalTasks: workflow.tasks.length,
145
- waves: waves.map((wave, index) => ({
146
- waveNumber: index + 1,
147
- tasks: wave.tasks,
148
- parallel: wave.tasks.length > 1,
149
- dependsOn: wave.dependsOn || [],
150
- estimatedDuration: this._formatDuration(wave.duration),
151
- })),
152
- optimizationGain: `${optimizationGain}%`,
153
- criticalPath,
154
- metrics: {
155
- sequentialTime: this._formatDuration(sequentialTime),
156
- parallelTime: this._formatDuration(parallelTime),
157
- analysisTime: Date.now() - startTime,
158
- },
159
- };
160
- }
161
-
162
- /**
163
- * Get workflow tasks with dependencies
164
- * @param {string} workflowId - Workflow identifier
165
- * @param {Object} options - Options including custom tasks
166
- * @returns {Object} Workflow with tasks array
167
- * @private
168
- */
169
- _getWorkflowTasks(workflowId, options = {}) {
170
- // Use custom tasks if provided
171
- if (options.customTasks && options.customTasks.length > 0) {
172
- return { id: workflowId, tasks: options.customTasks };
173
- }
174
-
175
- // Get from registry
176
- const registry = this._getRegistry();
177
- const workflowDef = registry.getWorkflow(workflowId);
178
-
179
- if (!workflowDef) {
180
- return null;
181
- }
182
-
183
- // Extract tasks from workflow definition
184
- return {
185
- id: workflowId,
186
- tasks: this._extractTasksFromWorkflow(workflowDef),
187
- };
188
- }
189
-
190
- /**
191
- * Extract tasks from workflow definition
192
- * @param {Object} workflowDef - Workflow definition from registry
193
- * @returns {Object[]} Array of task objects with dependencies
194
- * @private
195
- */
196
- _extractTasksFromWorkflow(workflowDef) {
197
- const tasks = [];
198
-
199
- // If workflow has explicit tasks defined
200
- if (workflowDef.tasks) {
201
- return workflowDef.tasks;
202
- }
203
-
204
- // Extract from transitions (implicit task order)
205
- if (workflowDef.transitions) {
206
- const stateOrder = Object.keys(workflowDef.transitions);
207
-
208
- for (let i = 0; i < stateOrder.length; i++) {
209
- const state = stateOrder[i];
210
- const transition = workflowDef.transitions[state];
211
-
212
- // Create task from transition
213
- const task = {
214
- id: state,
215
- name: state,
216
- dependsOn: i > 0 ? [stateOrder[i - 1]] : [],
217
- };
218
-
219
- // Add next_steps as parallel tasks within this state
220
- if (transition.next_steps) {
221
- for (const step of transition.next_steps) {
222
- const stepTask = {
223
- id: step.command,
224
- name: step.command,
225
- description: step.description,
226
- duration:
227
- step.duration || this.taskDurations[step.command] || this.taskDurations.default,
228
- dependsOn: [state], // Depends on the parent state
229
- };
230
- tasks.push(stepTask);
231
- }
232
- }
233
-
234
- tasks.push(task);
235
- }
236
- }
237
-
238
- // Extract from key_commands if no transitions
239
- if (tasks.length === 0 && workflowDef.key_commands) {
240
- for (let i = 0; i < workflowDef.key_commands.length; i++) {
241
- const cmd = workflowDef.key_commands[i];
242
- tasks.push({
243
- id: cmd,
244
- name: cmd,
245
- dependsOn: i > 0 ? [workflowDef.key_commands[i - 1]] : [],
246
- duration: this.taskDurations[cmd] || this.taskDurations.default,
247
- });
248
- }
249
- }
250
-
251
- return tasks;
252
- }
253
-
254
- /**
255
- * Build directed acyclic graph from tasks
256
- * @param {Object[]} tasks - Array of task objects
257
- * @returns {Object} Graph object with nodes and adjacency list
258
- */
259
- buildDependencyGraph(tasks) {
260
- const graph = {
261
- nodes: new Set(),
262
- edges: new Map(), // node -> Set of nodes it points to
263
- inEdges: new Map(), // node -> Set of nodes pointing to it
264
- taskMap: new Map(), // node -> task object
265
- };
266
-
267
- // Add all nodes
268
- for (const task of tasks) {
269
- const nodeId = task.id || task.name;
270
- graph.nodes.add(nodeId);
271
- graph.edges.set(nodeId, new Set());
272
- graph.inEdges.set(nodeId, new Set());
273
- graph.taskMap.set(nodeId, task);
274
- }
275
-
276
- // Add edges based on dependencies
277
- for (const task of tasks) {
278
- const nodeId = task.id || task.name;
279
- const dependencies = task.dependsOn || [];
280
-
281
- for (const dep of dependencies) {
282
- if (graph.nodes.has(dep)) {
283
- // Edge from dependency to this task
284
- graph.edges.get(dep).add(nodeId);
285
- graph.inEdges.get(nodeId).add(dep);
286
- }
287
- }
288
- }
289
-
290
- return graph;
291
- }
292
-
293
- /**
294
- * Find cycle in graph using DFS
295
- * @param {Object} graph - Dependency graph
296
- * @returns {string[]|null} Cycle path or null if no cycle
297
- */
298
- findCycle(graph) {
299
- const visited = new Set();
300
- const recursionStack = new Set();
301
- const parent = new Map();
302
-
303
- for (const node of graph.nodes) {
304
- if (!visited.has(node)) {
305
- const cycle = this._dfsForCycle(graph, node, visited, recursionStack, parent);
306
- if (cycle) {
307
- return cycle;
308
- }
309
- }
310
- }
311
-
312
- return null;
313
- }
314
-
315
- /**
316
- * DFS helper for cycle detection
317
- * @param {Object} graph - Dependency graph
318
- * @param {string} node - Current node
319
- * @param {Set} visited - Visited nodes
320
- * @param {Set} recursionStack - Current recursion stack
321
- * @param {Map} parent - Parent map for path reconstruction
322
- * @returns {string[]|null} Cycle path or null
323
- * @private
324
- */
325
- _dfsForCycle(graph, node, visited, recursionStack, parent) {
326
- visited.add(node);
327
- recursionStack.add(node);
328
-
329
- const neighbors = graph.edges.get(node) || new Set();
330
-
331
- for (const neighbor of neighbors) {
332
- if (!visited.has(neighbor)) {
333
- parent.set(neighbor, node);
334
- const cycle = this._dfsForCycle(graph, neighbor, visited, recursionStack, parent);
335
- if (cycle) {
336
- return cycle;
337
- }
338
- } else if (recursionStack.has(neighbor)) {
339
- // Found cycle - reconstruct path
340
- const cyclePath = [neighbor];
341
- let current = node;
342
- while (current !== neighbor) {
343
- cyclePath.unshift(current);
344
- current = parent.get(current);
345
- }
346
- cyclePath.unshift(neighbor);
347
- return cyclePath;
348
- }
349
- }
350
-
351
- recursionStack.delete(node);
352
- return null;
353
- }
354
-
355
- /**
356
- * Perform Kahn's algorithm for topological sort with wave grouping
357
- * @param {Object} graph - Dependency graph
358
- * @returns {Object[]} Array of wave objects
359
- * @private
360
- */
361
- _kahnWaveAnalysis(graph) {
362
- const waves = [];
363
- const inDegree = new Map();
364
- const remaining = new Set(graph.nodes);
365
-
366
- // Calculate initial in-degrees
367
- for (const node of graph.nodes) {
368
- inDegree.set(node, graph.inEdges.get(node)?.size || 0);
369
- }
370
-
371
- while (remaining.size > 0) {
372
- // Find all nodes with no incoming edges
373
- const waveTasks = [];
374
- const completedInWave = [];
375
-
376
- for (const node of remaining) {
377
- if (inDegree.get(node) === 0) {
378
- waveTasks.push(node);
379
- completedInWave.push(node);
380
- }
381
- }
382
-
383
- if (waveTasks.length === 0) {
384
- // Should not happen if we checked for cycles
385
- throw new Error('Unexpected cycle detected during wave analysis');
386
- }
387
-
388
- // Calculate wave duration (max of parallel tasks)
389
- let waveDuration = 0;
390
- const dependencies = new Set();
391
-
392
- for (const task of waveTasks) {
393
- const taskObj = graph.taskMap.get(task);
394
- const duration =
395
- taskObj?.duration || this.taskDurations[task] || this.taskDurations.default;
396
- waveDuration = Math.max(waveDuration, duration);
397
-
398
- // Collect dependencies from previous waves
399
- const deps = graph.inEdges.get(task) || new Set();
400
- for (const dep of deps) {
401
- if (!waveTasks.includes(dep)) {
402
- dependencies.add(dep);
403
- }
404
- }
405
- }
406
-
407
- waves.push({
408
- tasks: waveTasks,
409
- duration: waveDuration,
410
- dependsOn: Array.from(dependencies),
411
- });
412
-
413
- // Remove wave nodes and update in-degrees
414
- for (const node of completedInWave) {
415
- remaining.delete(node);
416
-
417
- const neighbors = graph.edges.get(node) || new Set();
418
- for (const neighbor of neighbors) {
419
- inDegree.set(neighbor, inDegree.get(neighbor) - 1);
420
- }
421
- }
422
- }
423
-
424
- return waves;
425
- }
426
-
427
- /**
428
- * Find the critical path through the graph
429
- * @param {Object} graph - Dependency graph
430
- * @param {Object[]} waves - Wave analysis result
431
- * @returns {string[]} Critical path tasks
432
- * @private
433
- */
434
- _findCriticalPath(graph, waves) {
435
- if (waves.length === 0) {
436
- return [];
437
- }
438
-
439
- // Build longest path using dynamic programming
440
- const distance = new Map();
441
- const predecessor = new Map();
442
-
443
- // Initialize distances
444
- for (const node of graph.nodes) {
445
- distance.set(node, 0);
446
- predecessor.set(node, null);
447
- }
448
-
449
- // Process nodes in topological order (wave order)
450
- for (const wave of waves) {
451
- for (const node of wave.tasks) {
452
- const taskObj = graph.taskMap.get(node);
453
- const duration =
454
- taskObj?.duration || this.taskDurations[node] || this.taskDurations.default;
455
-
456
- const neighbors = graph.edges.get(node) || new Set();
457
- for (const neighbor of neighbors) {
458
- const newDist = distance.get(node) + duration;
459
- if (newDist > distance.get(neighbor)) {
460
- distance.set(neighbor, newDist);
461
- predecessor.set(neighbor, node);
462
- }
463
- }
464
- }
465
- }
466
-
467
- // Find the end node with maximum distance
468
- let maxDist = -1;
469
- let endNode = null;
470
-
471
- for (const [node, dist] of distance) {
472
- const taskObj = graph.taskMap.get(node);
473
- const duration = taskObj?.duration || this.taskDurations[node] || this.taskDurations.default;
474
- const totalDist = dist + duration;
475
-
476
- if (totalDist > maxDist) {
477
- maxDist = totalDist;
478
- endNode = node;
479
- }
480
- }
481
-
482
- // Reconstruct critical path
483
- const criticalPath = [];
484
- let current = endNode;
485
-
486
- while (current !== null) {
487
- criticalPath.unshift(current);
488
- current = predecessor.get(current);
489
- }
490
-
491
- return criticalPath;
492
- }
493
-
494
- /**
495
- * Calculate total sequential execution time
496
- * @param {Object[]} tasks - Array of tasks
497
- * @returns {number} Total time in minutes
498
- * @private
499
- */
500
- _calculateSequentialTime(tasks) {
501
- return tasks.reduce((sum, task) => {
502
- const duration =
503
- task.duration ||
504
- this.taskDurations[task.id] ||
505
- this.taskDurations[task.name] ||
506
- this.taskDurations.default;
507
- return sum + duration;
508
- }, 0);
509
- }
510
-
511
- /**
512
- * Calculate total parallel execution time
513
- * @param {Object[]} waves - Wave analysis result
514
- * @returns {number} Total time in minutes
515
- * @private
516
- */
517
- _calculateParallelTime(waves) {
518
- return waves.reduce((sum, wave) => sum + wave.duration, 0);
519
- }
520
-
521
- /**
522
- * Calculate optimization gain percentage
523
- * @param {number} sequentialTime - Sequential execution time
524
- * @param {number} parallelTime - Parallel execution time
525
- * @returns {number} Percentage improvement
526
- * @private
527
- */
528
- _calculateOptimizationGain(sequentialTime, parallelTime) {
529
- if (sequentialTime === 0) return 0;
530
- const gain = ((sequentialTime - parallelTime) / sequentialTime) * 100;
531
- return Math.round(gain);
532
- }
533
-
534
- /**
535
- * Format duration in minutes to human-readable string
536
- * @param {number} minutes - Duration in minutes
537
- * @returns {string} Formatted duration
538
- * @private
539
- */
540
- _formatDuration(minutes) {
541
- if (minutes < 60) {
542
- return `${minutes}min`;
543
- }
544
- const hours = Math.floor(minutes / 60);
545
- const mins = minutes % 60;
546
- return mins > 0 ? `${hours}h ${mins}min` : `${hours}h`;
547
- }
548
-
549
- /**
550
- * Get wave context for current workflow state
551
- * @param {string} workflowId - Workflow identifier
552
- * @param {string} currentTask - Currently executing task
553
- * @returns {Object} Wave context including current position
554
- */
555
- getCurrentWave(workflowId, currentTask) {
556
- try {
557
- const analysis = this.analyzeWaves(workflowId);
558
-
559
- let currentWaveNumber = null;
560
- const totalWaves = analysis.waves.length;
561
- let currentWaveInfo = null;
562
- let nextWaveInfo = null;
563
-
564
- for (let i = 0; i < analysis.waves.length; i++) {
565
- const wave = analysis.waves[i];
566
- if (wave.tasks.includes(currentTask)) {
567
- currentWaveNumber = i + 1;
568
- currentWaveInfo = wave;
569
-
570
- if (i + 1 < analysis.waves.length) {
571
- nextWaveInfo = analysis.waves[i + 1];
572
- }
573
- break;
574
- }
575
- }
576
-
577
- return {
578
- workflowId,
579
- currentTask,
580
- currentWaveNumber,
581
- totalWaves,
582
- currentWave: currentWaveInfo,
583
- nextWave: nextWaveInfo,
584
- parallelTasks: currentWaveInfo?.tasks.filter((t) => t !== currentTask) || [],
585
- canParallelize: currentWaveInfo?.parallel || false,
586
- };
587
- } catch (error) {
588
- return {
589
- workflowId,
590
- currentTask,
591
- currentWaveNumber: null,
592
- totalWaves: 0,
593
- error: error.message,
594
- };
595
- }
596
- }
597
-
598
- /**
599
- * Format wave analysis for CLI output
600
- * @param {Object} analysis - Wave analysis result
601
- * @param {Object} options - Formatting options
602
- * @param {boolean} options.visual - Include ASCII visualization
603
- * @param {boolean} options.json - Return as JSON string
604
- * @returns {string} Formatted output
605
- */
606
- formatOutput(analysis, options = {}) {
607
- if (options.json) {
608
- return JSON.stringify(analysis, null, 2);
609
- }
610
-
611
- const lines = [];
612
-
613
- lines.push(`Wave Analysis: ${analysis.workflowId}`);
614
- lines.push('═'.repeat(40));
615
- lines.push('');
616
-
617
- if (options.visual) {
618
- for (const wave of analysis.waves) {
619
- const prefix = `Wave ${wave.waveNumber} `;
620
-
621
- if (wave.tasks.length === 1) {
622
- lines.push(`${prefix}──────── ${wave.tasks[0]} (${wave.estimatedDuration})`);
623
- } else {
624
- lines.push(`${prefix}──┬── ${wave.tasks[0]} (${wave.estimatedDuration})`);
625
- for (let i = 1; i < wave.tasks.length; i++) {
626
- const connector = i === wave.tasks.length - 1 ? '└' : '├';
627
- lines.push(` ${connector}── ${wave.tasks[i]}`);
628
- }
629
- }
630
-
631
- if (wave.waveNumber < analysis.waves.length) {
632
- lines.push(' │');
633
- }
634
- }
635
- } else {
636
- for (const wave of analysis.waves) {
637
- const parallelIndicator = wave.parallel ? '(parallel)' : '';
638
- lines.push(`Wave ${wave.waveNumber} ${parallelIndicator}:`);
639
- for (const task of wave.tasks) {
640
- lines.push(` └─ ${task}`);
641
- }
642
- lines.push('');
643
- }
644
- }
645
-
646
- lines.push('');
647
- lines.push(`Total Sequential: ${analysis.metrics?.sequentialTime || 'N/A'}`);
648
- lines.push(`Total Parallel: ${analysis.metrics?.parallelTime || 'N/A'}`);
649
- lines.push(`Optimization: ${analysis.optimizationGain} faster`);
650
- lines.push('');
651
- lines.push(`Critical Path: ${analysis.criticalPath.join(' → ')}`);
652
-
653
- return lines.join('\n');
654
- }
655
- }
656
-
657
- /**
658
- * Create a new WaveAnalyzer instance
659
- * @param {Object} options - Configuration options
660
- * @returns {WaveAnalyzer} New analyzer instance
661
- */
662
- function createWaveAnalyzer(options = {}) {
663
- return new WaveAnalyzer(options);
664
- }
665
-
666
- /**
667
- * Analyze waves for a workflow (convenience function)
668
- * @param {string} workflowId - Workflow identifier
669
- * @param {Object} options - Analysis options
670
- * @returns {Object} Wave analysis result
671
- */
672
- function analyzeWaves(workflowId, options = {}) {
673
- const analyzer = createWaveAnalyzer(options);
674
- return analyzer.analyzeWaves(workflowId, options);
675
- }
676
-
677
- module.exports = {
678
- WaveAnalyzer,
679
- CircularDependencyError,
680
- createWaveAnalyzer,
681
- analyzeWaves,
682
- DEFAULT_TASK_DURATIONS,
683
- };
684
-