@polymorphism-tech/morph-spec 3.2.0 → 4.2.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 (319) hide show
  1. package/CLAUDE.md +352 -7
  2. package/README.md +1 -14
  3. package/bin/detect-agents.js +1 -1
  4. package/bin/morph-spec.js +122 -34
  5. package/bin/validate.js +1 -1
  6. package/docs/getting-started.md +0 -5
  7. package/docs/v3.0/AGENTS.md +521 -0
  8. package/docs/v3.0/ANALYSIS.md +555 -0
  9. package/docs/v3.0/ARCHITECTURE.md +436 -0
  10. package/docs/v3.0/EXECUTION-FLOW.md +1304 -0
  11. package/docs/v3.0/FEATURES.md +688 -0
  12. package/docs/v3.0/README.md +231 -0
  13. package/docs/v3.0/ROADMAP.md +801 -0
  14. package/docs/validation-checklist.md +0 -1
  15. package/package.json +1 -1
  16. package/src/commands/agents/index.js +4 -0
  17. package/src/commands/{spawn-team.js → agents/spawn-team.js} +172 -172
  18. package/src/commands/{create-story.js → feature/create-story.js} +357 -354
  19. package/src/commands/feature/index.js +6 -0
  20. package/src/commands/{shard-spec.js → feature/shard-spec.js} +2 -2
  21. package/src/commands/{sprint-status.js → feature/sprint-status.js} +1 -1
  22. package/src/commands/{generate-context.js → generation/generate-context.js} +40 -40
  23. package/src/commands/{generate.js → generation/generate.js} +4 -4
  24. package/src/commands/generation/index.js +5 -0
  25. package/src/commands/index.js +16 -0
  26. package/src/commands/{capture-pattern.js → learning/capture-pattern.js} +121 -121
  27. package/src/commands/learning/index.js +5 -0
  28. package/src/commands/{detect-agents.js → project/detect-agents.js} +178 -178
  29. package/src/commands/project/detect-workflow.js +174 -0
  30. package/src/commands/{detect.js → project/detect.js} +104 -104
  31. package/src/commands/{doctor.js → project/doctor.js} +356 -356
  32. package/src/commands/project/index.js +10 -0
  33. package/src/commands/{init.js → project/init.js} +305 -295
  34. package/src/commands/{sync.js → project/sync.js} +167 -167
  35. package/src/commands/{update.js → project/update.js} +240 -240
  36. package/src/commands/{advance-phase.js → state/advance-phase.js} +416 -357
  37. package/src/commands/{approve.js → state/approve.js} +221 -221
  38. package/src/commands/state/index.js +8 -0
  39. package/src/commands/{rollback-phase.js → state/rollback-phase.js} +185 -185
  40. package/src/commands/{state.js → state/state.js} +334 -334
  41. package/src/commands/{validate-phase.js → state/validate-phase.js} +221 -221
  42. package/src/commands/tasks/index.js +4 -0
  43. package/src/commands/{task.js → tasks/task.js} +78 -78
  44. package/src/commands/templates/index.js +8 -0
  45. package/src/commands/templates/template-customize.js +101 -0
  46. package/src/commands/templates/template-list.js +128 -0
  47. package/src/commands/templates/template-render.js +95 -0
  48. package/src/commands/templates/template-show.js +131 -0
  49. package/src/commands/templates/template-validate.js +91 -0
  50. package/src/commands/utils/index.js +7 -0
  51. package/src/commands/{session-summary.js → utils/session-summary.js} +291 -291
  52. package/src/commands/{troubleshoot.js → utils/troubleshoot.js} +222 -222
  53. package/src/commands/{analyze-blazor-concurrency.js → validation/analyze-blazor-concurrency.js} +193 -193
  54. package/src/commands/validation/index.js +8 -0
  55. package/src/commands/{lint-fluent.js → validation/lint-fluent.js} +352 -352
  56. package/src/commands/{validate-blazor-state.js → validation/validate-blazor-state.js} +210 -210
  57. package/src/commands/{validate-blazor.js → validation/validate-blazor.js} +156 -156
  58. package/src/commands/{validate-css.js → validation/validate-css.js} +84 -84
  59. package/src/core/index.js +10 -0
  60. package/src/core/registry/command-registry.js +302 -0
  61. package/src/core/registry/index.js +8 -0
  62. package/src/core/registry/validator-registry.js +204 -0
  63. package/src/core/state/index.js +8 -0
  64. package/src/{lib → core/state}/phase-state-machine.js +214 -214
  65. package/src/{lib → core/state}/state-manager.js +572 -534
  66. package/src/core/templates/index.js +9 -0
  67. package/src/core/templates/template-registry.js +335 -0
  68. package/src/core/templates/template-renderer.js +477 -0
  69. package/src/core/templates/template-validator.js +296 -0
  70. package/src/core/workflows/index.js +7 -0
  71. package/src/core/workflows/workflow-detector.js +354 -0
  72. package/src/lib/{complexity-analyzer.js → analysis/complexity-analyzer.js} +441 -441
  73. package/src/lib/analysis/index.js +7 -0
  74. package/src/lib/{checkpoint-hooks.js → checkpoints/checkpoint-hooks.js} +258 -258
  75. package/src/lib/checkpoints/index.js +7 -0
  76. package/src/lib/detectors/config-detector.js +223 -223
  77. package/src/lib/detectors/conversation-analyzer.js +163 -163
  78. package/src/lib/{design-system-detector.js → detectors/design-system-detector.js} +187 -187
  79. package/src/lib/detectors/index.js +87 -84
  80. package/src/lib/detectors/standards-generator.js +275 -275
  81. package/src/lib/detectors/structure-detector.js +245 -245
  82. package/src/lib/{context-generator.js → generators/context-generator.js} +526 -516
  83. package/src/lib/generators/index.js +10 -0
  84. package/src/lib/{metadata-extractor.js → generators/metadata-extractor.js} +387 -380
  85. package/src/lib/{recap-generator.js → generators/recap-generator.js} +205 -205
  86. package/src/lib/learning/index.js +7 -0
  87. package/src/lib/orchestration/index.js +7 -0
  88. package/src/lib/{team-orchestrator.js → orchestration/team-orchestrator.js} +323 -323
  89. package/src/lib/stacks/index.js +7 -0
  90. package/src/lib/{stack-resolver.js → stacks/stack-resolver.js} +180 -148
  91. package/src/lib/standards/index.js +7 -0
  92. package/src/lib/{standards-context-injector.js → standards/standards-context-injector.js} +298 -288
  93. package/src/lib/troubleshooting/index.js +8 -0
  94. package/src/lib/{troubleshoot-grep.js → troubleshooting/troubleshoot-grep.js} +204 -204
  95. package/src/lib/{troubleshoot-index.js → troubleshooting/troubleshoot-index.js} +144 -144
  96. package/src/lib/validators/architecture/architecture-validator.js +387 -0
  97. package/src/lib/validators/architecture/index.js +7 -0
  98. package/src/lib/validators/architecture-validator.js +40 -367
  99. package/src/lib/{blazor-concurrency-analyzer.js → validators/blazor/blazor-concurrency-analyzer.js} +277 -288
  100. package/src/lib/{blazor-state-validator.js → validators/blazor/blazor-state-validator.js} +279 -291
  101. package/src/lib/{blazor-validator.js → validators/blazor/blazor-validator.js} +369 -374
  102. package/src/lib/validators/blazor/index.js +9 -0
  103. package/src/lib/validators/content/content-validator.js +351 -0
  104. package/src/lib/validators/content/index.js +7 -0
  105. package/src/lib/validators/content-validator.js +164 -351
  106. package/src/lib/validators/{contract-compliance-validator.js → contracts/contract-compliance-validator.js} +273 -273
  107. package/src/lib/validators/contracts/index.js +7 -0
  108. package/src/lib/{css-validator.js → validators/css/css-validator.js} +352 -352
  109. package/src/lib/validators/css/index.js +7 -0
  110. package/src/lib/validators/{design-system-validator.js → design-system/design-system-validator.js} +231 -231
  111. package/src/lib/validators/design-system/index.js +7 -0
  112. package/src/lib/validators/package-validator.js +41 -340
  113. package/src/lib/validators/packages/index.js +7 -0
  114. package/src/lib/validators/packages/package-validator.js +360 -0
  115. package/src/lib/validators/shared/index.js +12 -0
  116. package/src/lib/validators/shared/issue-counter.js +18 -0
  117. package/src/lib/validators/shared/result-formatter.js +124 -0
  118. package/src/lib/{spec-validator.js → validators/spec-validator.js} +258 -258
  119. package/src/lib/validators/ui/index.js +7 -0
  120. package/src/lib/validators/ui/ui-contrast-validator.js +422 -0
  121. package/src/lib/validators/ui-contrast-validator.js +31 -409
  122. package/src/lib/{validation-runner.js → validators/validation-runner.js} +286 -284
  123. package/src/ui/wizard-questions.js +0 -2
  124. package/src/utils/color-utils.js +70 -0
  125. package/src/utils/file-copier.js +188 -189
  126. package/src/utils/process-handler.js +97 -0
  127. package/stacks/blazor-azure/.claude/skills/level-2-domains/ai-agents/ai-system-architect.md +3 -3
  128. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/api-designer.md +59 -0
  129. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/dotnet-senior.md +45 -255
  130. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/ef-modeler.md +33 -88
  131. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/ms-agent-expert.md +25 -89
  132. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/hangfire-orchestrator.md +64 -0
  133. package/stacks/blazor-azure/.morph/config/agents.json +879 -764
  134. package/stacks/blazor-azure/.morph/hooks/{pre-commit-tests.sh → pre-commit/tests-csharp.sh} +3 -2
  135. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/cd-prod.yml.hbs +41 -0
  136. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/cd-staging.yml.hbs +24 -0
  137. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/ci-build.yml.hbs +23 -0
  138. package/stacks/nextjs-supabase/.claude/commands/morph-apply.md +221 -0
  139. package/stacks/nextjs-supabase/.claude/commands/morph-archive.md +79 -0
  140. package/stacks/nextjs-supabase/.claude/commands/morph-deploy.md +529 -0
  141. package/stacks/nextjs-supabase/.claude/commands/morph-infra.md +209 -0
  142. package/stacks/nextjs-supabase/.claude/commands/morph-preflight.md +227 -0
  143. package/stacks/nextjs-supabase/.claude/commands/morph-proposal.md +122 -0
  144. package/stacks/nextjs-supabase/.claude/commands/morph-status.md +86 -0
  145. package/stacks/nextjs-supabase/.claude/commands/morph-troubleshoot.md +122 -0
  146. package/stacks/nextjs-supabase/.claude/settings.local.json +6 -0
  147. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/integrations/supabase-expert.md +30 -150
  148. package/stacks/nextjs-supabase/.morph/config/agents.json +345 -345
  149. package/stacks/nextjs-supabase/.morph/hooks/pre-commit/tests-typescript.sh +61 -0
  150. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/cd-prod.yml.hbs +22 -0
  151. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/cd-staging.yml.hbs +22 -0
  152. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/ci-build.yml.hbs +35 -0
  153. package/stacks/nextjs-supabase/README.md +6 -15
  154. package/bin/render-template.js +0 -349
  155. package/bin/semantic-detect-agents.js +0 -247
  156. package/bin/validate-agents-skills.js +0 -257
  157. package/bin/validate-agents.js +0 -70
  158. package/bin/validate-phase.js +0 -263
  159. package/docs/examples.md +0 -328
  160. package/scripts/reorganize-skills.cjs +0 -175
  161. package/scripts/validate-agents-structure.cjs +0 -52
  162. package/scripts/validate-skills.cjs +0 -180
  163. package/src/commands/deploy.js +0 -780
  164. package/src/lib/continuous-validator.js +0 -421
  165. package/src/lib/decision-constraint-loader.js +0 -109
  166. package/src/lib/design-system-scaffolder.js +0 -299
  167. package/src/lib/hook-executor.js +0 -257
  168. package/src/lib/mockup-generator.js +0 -366
  169. package/src/lib/ui-detector.js +0 -350
  170. package/src/llm/schema-validator.js +0 -121
  171. package/src/sanitizer/.gitkeep +0 -0
  172. package/src/scanner/.gitkeep +0 -0
  173. package/src/types/index.js +0 -477
  174. package/src/ui/.gitkeep +0 -0
  175. package/src/writer/.gitkeep +0 -0
  176. package/stacks/blazor-azure/.azure/README.md +0 -293
  177. package/stacks/blazor-azure/.azure/docs/azure-devops-setup.md +0 -454
  178. package/stacks/blazor-azure/.azure/docs/branch-strategy.md +0 -398
  179. package/stacks/blazor-azure/.azure/docs/local-development.md +0 -515
  180. package/stacks/blazor-azure/.azure/pipelines/pipeline-variables.yml +0 -34
  181. package/stacks/blazor-azure/.azure/pipelines/prod-pipeline.yml +0 -319
  182. package/stacks/blazor-azure/.azure/pipelines/staging-pipeline.yml +0 -234
  183. package/stacks/blazor-azure/.azure/pipelines/templates/build-dotnet.yml +0 -75
  184. package/stacks/blazor-azure/.azure/pipelines/templates/deploy-app-service.yml +0 -94
  185. package/stacks/blazor-azure/.azure/pipelines/templates/deploy-container-app.yml +0 -120
  186. package/stacks/blazor-azure/.azure/pipelines/templates/infra-deploy.yml +0 -90
  187. package/stacks/blazor-azure/.claude/settings.local.json +0 -15
  188. package/stacks/blazor-azure/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +0 -392
  189. package/stacks/blazor-azure/.morph/docs/workflows/design-impl.md +0 -37
  190. package/stacks/blazor-azure/.morph/docs/workflows/enforcement-pipeline.md +0 -668
  191. package/stacks/blazor-azure/.morph/docs/workflows/fast-track.md +0 -29
  192. package/stacks/blazor-azure/.morph/docs/workflows/full-morph.md +0 -76
  193. package/stacks/blazor-azure/.morph/docs/workflows/standard.md +0 -44
  194. package/stacks/blazor-azure/.morph/docs/workflows/ui-refresh.md +0 -39
  195. package/stacks/blazor-azure/.morph/examples/api-nextjs/README.md +0 -241
  196. package/stacks/blazor-azure/.morph/examples/api-nextjs/contracts.ts +0 -307
  197. package/stacks/blazor-azure/.morph/examples/api-nextjs/spec.md +0 -399
  198. package/stacks/blazor-azure/.morph/examples/api-nextjs/tasks.md +0 -168
  199. package/stacks/blazor-azure/.morph/examples/micro-saas/README.md +0 -125
  200. package/stacks/blazor-azure/.morph/examples/micro-saas/contracts.cs +0 -358
  201. package/stacks/blazor-azure/.morph/examples/micro-saas/decisions.md +0 -246
  202. package/stacks/blazor-azure/.morph/examples/micro-saas/spec.md +0 -236
  203. package/stacks/blazor-azure/.morph/examples/micro-saas/tasks.md +0 -150
  204. package/stacks/blazor-azure/.morph/examples/multi-agent/README.md +0 -309
  205. package/stacks/blazor-azure/.morph/examples/multi-agent/contracts.cs +0 -433
  206. package/stacks/blazor-azure/.morph/examples/multi-agent/spec.md +0 -479
  207. package/stacks/blazor-azure/.morph/examples/multi-agent/tasks.md +0 -185
  208. package/stacks/blazor-azure/.morph/examples/scheduled-reports/decisions.md +0 -158
  209. package/stacks/blazor-azure/.morph/examples/scheduled-reports/proposal.md +0 -95
  210. package/stacks/blazor-azure/.morph/examples/scheduled-reports/spec.md +0 -267
  211. package/stacks/blazor-azure/.morph/examples/state-v3.json +0 -188
  212. package/stacks/blazor-azure/.morph/hooks/README.md +0 -348
  213. package/stacks/blazor-azure/.morph/hooks/pre-commit-agents.sh +0 -24
  214. package/stacks/blazor-azure/.morph/hooks/pre-commit-all.sh +0 -48
  215. package/stacks/blazor-azure/.morph/hooks/pre-commit-specs.sh +0 -49
  216. package/stacks/blazor-azure/.morph/hooks/task-completed.js +0 -73
  217. package/stacks/blazor-azure/.morph/hooks/teammate-idle.js +0 -68
  218. package/stacks/blazor-azure/.morph/standards/agent-framework-blazor-ui.md +0 -359
  219. package/stacks/blazor-azure/.morph/standards/agent-framework-production.md +0 -410
  220. package/stacks/blazor-azure/.morph/standards/agent-framework-setup.md +0 -413
  221. package/stacks/blazor-azure/.morph/standards/agent-framework-workflows.md +0 -349
  222. package/stacks/blazor-azure/.morph/standards/agent-teams-workflow.md +0 -474
  223. package/stacks/blazor-azure/.morph/standards/architecture.md +0 -325
  224. package/stacks/blazor-azure/.morph/standards/azure.md +0 -605
  225. package/stacks/blazor-azure/.morph/standards/coding.md +0 -377
  226. package/stacks/blazor-azure/.morph/standards/dotnet10-migration.md +0 -520
  227. package/stacks/blazor-azure/.morph/standards/fluent-ui-setup.md +0 -590
  228. package/stacks/blazor-azure/.morph/standards/migration-guide.md +0 -514
  229. package/stacks/blazor-azure/.morph/standards/passkeys-auth.md +0 -423
  230. package/stacks/blazor-azure/.morph/standards/vector-search-rag.md +0 -536
  231. package/stacks/blazor-azure/.morph/templates/CONTEXT-FEATURE.md +0 -276
  232. package/stacks/blazor-azure/.morph/templates/CONTEXT.md +0 -170
  233. package/stacks/blazor-azure/.morph/templates/FluentDesignTheme.cs +0 -149
  234. package/stacks/blazor-azure/.morph/templates/MudTheme.cs +0 -281
  235. package/stacks/blazor-azure/.morph/templates/agent.cs +0 -163
  236. package/stacks/blazor-azure/.morph/templates/clarify-questions.md +0 -159
  237. package/stacks/blazor-azure/.morph/templates/component.razor +0 -239
  238. package/stacks/blazor-azure/.morph/templates/contracts/Commands.cs +0 -74
  239. package/stacks/blazor-azure/.morph/templates/contracts/Entities.cs +0 -25
  240. package/stacks/blazor-azure/.morph/templates/contracts/Queries.cs +0 -74
  241. package/stacks/blazor-azure/.morph/templates/contracts/README.md +0 -74
  242. package/stacks/blazor-azure/.morph/templates/contracts.cs +0 -217
  243. package/stacks/blazor-azure/.morph/templates/decisions.md +0 -123
  244. package/stacks/blazor-azure/.morph/templates/design-system.css +0 -226
  245. package/stacks/blazor-azure/.morph/templates/infra/.dockerignore.example +0 -89
  246. package/stacks/blazor-azure/.morph/templates/infra/Dockerfile.example +0 -82
  247. package/stacks/blazor-azure/.morph/templates/infra/README.md +0 -286
  248. package/stacks/blazor-azure/.morph/templates/infra/app-insights.bicep +0 -63
  249. package/stacks/blazor-azure/.morph/templates/infra/app-service.bicep +0 -164
  250. package/stacks/blazor-azure/.morph/templates/infra/azure-pipelines-deploy.yml +0 -480
  251. package/stacks/blazor-azure/.morph/templates/infra/container-app-env.bicep +0 -49
  252. package/stacks/blazor-azure/.morph/templates/infra/container-app.bicep +0 -156
  253. package/stacks/blazor-azure/.morph/templates/infra/deploy-checklist.md +0 -426
  254. package/stacks/blazor-azure/.morph/templates/infra/deploy.ps1 +0 -229
  255. package/stacks/blazor-azure/.morph/templates/infra/deploy.sh +0 -208
  256. package/stacks/blazor-azure/.morph/templates/infra/key-vault.bicep +0 -91
  257. package/stacks/blazor-azure/.morph/templates/infra/main.bicep +0 -189
  258. package/stacks/blazor-azure/.morph/templates/infra/parameters.dev.json +0 -29
  259. package/stacks/blazor-azure/.morph/templates/infra/parameters.prod.json +0 -29
  260. package/stacks/blazor-azure/.morph/templates/infra/parameters.staging.json +0 -29
  261. package/stacks/blazor-azure/.morph/templates/infra/sql-database.bicep +0 -103
  262. package/stacks/blazor-azure/.morph/templates/infra/storage.bicep +0 -106
  263. package/stacks/blazor-azure/.morph/templates/integrations/asaas-client.cs +0 -387
  264. package/stacks/blazor-azure/.morph/templates/integrations/asaas-webhook.cs +0 -351
  265. package/stacks/blazor-azure/.morph/templates/integrations/azure-identity-config.cs +0 -288
  266. package/stacks/blazor-azure/.morph/templates/integrations/clerk-config.cs +0 -258
  267. package/stacks/blazor-azure/.morph/templates/job.cs +0 -171
  268. package/stacks/blazor-azure/.morph/templates/migration.cs +0 -83
  269. package/stacks/blazor-azure/.morph/templates/proposal.md +0 -141
  270. package/stacks/blazor-azure/.morph/templates/recap.md +0 -94
  271. package/stacks/blazor-azure/.morph/templates/repository.cs +0 -141
  272. package/stacks/blazor-azure/.morph/templates/saas/subscription.cs +0 -347
  273. package/stacks/blazor-azure/.morph/templates/saas/tenant.cs +0 -338
  274. package/stacks/blazor-azure/.morph/templates/service.cs +0 -139
  275. package/stacks/blazor-azure/.morph/templates/simulation.md +0 -353
  276. package/stacks/blazor-azure/.morph/templates/spec.md +0 -149
  277. package/stacks/blazor-azure/.morph/templates/sprint-status.yaml +0 -68
  278. package/stacks/blazor-azure/.morph/templates/state.template.json +0 -222
  279. package/stacks/blazor-azure/.morph/templates/story.md +0 -143
  280. package/stacks/blazor-azure/.morph/templates/tasks.md +0 -257
  281. package/stacks/blazor-azure/.morph/templates/test.cs +0 -239
  282. package/stacks/blazor-azure/.morph/templates/ui-components.md +0 -362
  283. package/stacks/blazor-azure/.morph/templates/ui-design-system.md +0 -286
  284. package/stacks/blazor-azure/.morph/templates/ui-flows.md +0 -336
  285. package/stacks/blazor-azure/.morph/templates/ui-mockups.md +0 -133
  286. package/stacks/nextjs-supabase/.morph/docs/easypanel-setup.md +0 -169
  287. package/stacks/nextjs-supabase/.morph/docs/supabase-mcp-setup.md +0 -247
  288. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/README.md +0 -697
  289. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/spec.md +0 -85
  290. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/tasks.md +0 -86
  291. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/README.md +0 -498
  292. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/decisions.md +0 -121
  293. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/spec.md +0 -138
  294. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/tasks.md +0 -162
  295. package/stacks/nextjs-supabase/.morph/standards/easypanel-deploy.md +0 -191
  296. package/stacks/nextjs-supabase/.morph/standards/nextjs-patterns.md +0 -193
  297. package/stacks/nextjs-supabase/.morph/standards/supabase-auth.md +0 -171
  298. package/stacks/nextjs-supabase/.morph/standards/supabase-pgvector.md +0 -164
  299. package/stacks/nextjs-supabase/.morph/standards/supabase-rls.md +0 -179
  300. package/stacks/nextjs-supabase/.morph/standards/supabase-storage.md +0 -148
  301. package/stacks/nextjs-supabase/.morph/templates/contracts.cs +0 -173
  302. package/stacks/nextjs-supabase/.morph/templates/contracts.ts +0 -168
  303. package/stacks/nextjs-supabase/.morph/templates/decisions.md +0 -115
  304. package/stacks/nextjs-supabase/.morph/templates/dockerfile-api.dockerfile +0 -38
  305. package/stacks/nextjs-supabase/.morph/templates/dockerfile-web.dockerfile +0 -48
  306. package/stacks/nextjs-supabase/.morph/templates/proposal.md +0 -145
  307. package/stacks/nextjs-supabase/.morph/templates/recap.md +0 -134
  308. package/stacks/nextjs-supabase/.morph/templates/rls-policy.sql +0 -57
  309. package/stacks/nextjs-supabase/.morph/templates/spec.md +0 -231
  310. package/stacks/nextjs-supabase/.morph/templates/supabase-migration.sql +0 -100
  311. package/stacks/nextjs-supabase/.morph/templates/tasks.md +0 -257
  312. /package/src/commands/{search-patterns.js → learning/search-patterns.js} +0 -0
  313. /package/src/commands/{migrate-state.js → utils/migrate-state.js} +0 -0
  314. /package/src/commands/{upgrade.js → utils/upgrade.js} +0 -0
  315. /package/src/{lib → core/templates}/template-data-sources.js +0 -0
  316. /package/src/lib/{design-system-generator.js → generators/design-system-generator.js} +0 -0
  317. /package/src/lib/{learning-system.js → learning/learning-system.js} +0 -0
  318. /package/{src/generator → stacks/blazor-azure/.morph/templates}/.gitkeep +0 -0
  319. /package/{src/llm → stacks/nextjs-supabase/.morph/templates}/.gitkeep +0 -0
package/CLAUDE.md CHANGED
@@ -52,6 +52,173 @@ cp stacks/{stack}/CLAUDE.md seu-projeto/CLAUDE.md
52
52
 
53
53
  ---
54
54
 
55
+ ## WORKFLOW DETECTION SYSTEM (Detecção Automática de Complexidade)
56
+
57
+ O framework agora detecta **AUTOMATICAMENTE** o workflow apropriado baseado na análise do pedido do usuário.
58
+
59
+ ### 5 Tipos de Workflow
60
+
61
+ | Workflow | Complexidade | Arquivos | Linhas | Keywords Exemplo |
62
+ |----------|--------------|----------|--------|------------------|
63
+ | **fast-track** | Trivial | ≤3 | ≤50 | bug, fix, corrigir, css, typo |
64
+ | **standard** | Média | 3-10 | 50-500 | paginação, filtro, refactor, export |
65
+ | **full-morph** | Alta | >10 | >500 | sistema, autenticação, integração, cqrs |
66
+ | **design-impl** | N/A | N/A | N/A | prototype, figma, html para, replicar |
67
+ | **ui-refresh** | N/A | N/A | N/A | redesign, modernizar, aesthetic, bonito |
68
+
69
+ ### Como Funciona
70
+
71
+ **1. Quando Criar Feature:**
72
+
73
+ ```bash
74
+ # Detecção automática
75
+ npx morph-spec feature create user-pagination \
76
+ --request "add pagination to users table"
77
+
78
+ # Output:
79
+ 🔍 Analyzing request...
80
+ ✓ Detected workflow: standard (85% confidence)
81
+ Matched keyword: "paginação"
82
+ Estimated: 5 files, ~200 lines
83
+
84
+ 📋 Created feature: user-pagination
85
+ Phase: proposal
86
+ Workflow: standard
87
+ ```
88
+
89
+ **2. Análise Manual (Opcional):**
90
+
91
+ ```bash
92
+ npx morph-spec detect-workflow "implement complete authentication system"
93
+
94
+ # Output:
95
+ Detected Workflow: full-morph (92% confidence)
96
+
97
+ Criteria Match:
98
+ ✓ Keywords: "authentication", "complete", "system"
99
+ ✓ Estimated: 15 files, ~800 lines
100
+ ✓ Infrastructure: detected
101
+
102
+ Phases to Run:
103
+ 1. CONTEXT
104
+ 2. PROPOSAL - ⏸️ Pause for approval
105
+ 3. SETUP
106
+ 4. UI/UX - ⏸️ Pause for approval
107
+ 5. DESIGN - ⏸️ Pause for approval
108
+ 6. CLARIFY
109
+ 7. TASKS - ⏸️ Pause for approval
110
+ 8. IMPLEMENT
111
+ 9. SYNC - ⏸️ Pause for approval
112
+
113
+ Phases Skipped: None (all mandatory for full-morph)
114
+
115
+ Alternative Workflows:
116
+ - standard (15%): If scope reduced to basic login only
117
+ ```
118
+
119
+ ### Workflow Behaviors
120
+
121
+ #### fast-track (Trivial)
122
+ - **Objetivo:** Correções rápidas, ajustes CSS, edge cases
123
+ - **Fases:** Quick Analysis (proposal+setup+design combinados) → Implement
124
+ - **Fases Puladas:** UIUX, CLARIFY, TASKS, SYNC
125
+ - **Outputs:** Apenas commit message (sem .md files)
126
+ - **Exemplo:** "fix typo in login button"
127
+
128
+ #### standard (Média Complexidade)
129
+ - **Objetivo:** Features simples, refatorações, otimizações
130
+ - **Fases:** PROPOSAL (simplificado) → DESIGN (conciso) → TASKS (se >5 tasks) → IMPLEMENT
131
+ - **Fases Puladas:** SETUP (contexto já carregado), UIUX (sem frontend significativo), CLARIFY (spec claro), SYNC (decisões táticas)
132
+ - **Outputs:** proposal.md, spec.md, recap.md (minimal)
133
+ - **Exemplo:** "add pagination to users table"
134
+
135
+ #### full-morph (Alta Complexidade)
136
+ - **Objetivo:** Sistemas completos, arquitetura, integrações
137
+ - **Fases:** TODAS (9 fases obrigatórias)
138
+ - **Fases Puladas:** Nenhuma
139
+ - **Outputs:** Completo (proposal, ui-*, spec, contracts, tasks, decisions, recap)
140
+ - **Exemplo:** "implement complete authentication system with OAuth"
141
+
142
+ #### design-impl (Prototipo → Código)
143
+ - **Objetivo:** Converter HTML, Figma, mockups para código funcional
144
+ - **Fases:** ANÁLISE DO PROTÓTIPO → TASKS (lista de telas) → IMPLEMENT (por tela)
145
+ - **Fases Puladas:** PROPOSAL, DESIGN técnico, CLARIFY, SYNC
146
+ - **Outputs:** recap.md, .razor code, CSS
147
+ - **Exemplo:** "convert HTML prototype to Blazor components"
148
+
149
+ #### ui-refresh (Redesign Visual)
150
+ - **Objetivo:** Mudanças apenas visuais, sem lógica de negócio
151
+ - **Fases:** ANÁLISE VISUAL → DESIGN SYSTEM (simplificado) → IMPLEMENT (por página)
152
+ - **Fases Puladas:** SETUP completo, CONTRACTS, TASKS detalhadas, INFRA, CLARIFY, SYNC
153
+ - **Outputs:** design-refresh-checklist.md, CSS, .razor pages, recap.md
154
+ - **Exemplo:** "redesign dashboard to look more modern"
155
+
156
+ ### Algoritmo de Detecção
157
+
158
+ O sistema usa 4 fatores ponderados:
159
+
160
+ 1. **Keywords (40%):** Matching de palavras-chave (PT + EN)
161
+ 2. **Complexity (30%):** Estimativa de arquivos/linhas/componentes
162
+ 3. **Priority (20%):** Workflows específicos > genéricos
163
+ 4. **Context (10%):** Condições especiais (has prototype? existing pages?)
164
+
165
+ **Penalties:**
166
+ - -50% para workflows sem keyword match (exceto full-morph)
167
+
168
+ **Boosts:**
169
+ - +20% para workflows com 3+ keywords matched
170
+
171
+ ### Override Manual
172
+
173
+ ```bash
174
+ # Forçar workflow específico
175
+ npx morph-spec state set user-auth workflow full-morph
176
+
177
+ # Re-detectar após mudanças no pedido
178
+ npx morph-spec state detect-workflow user-auth \
179
+ "implement basic login only (no OAuth)"
180
+
181
+ # Output:
182
+ 🔄 Re-analyzing request...
183
+ ✓ New workflow: standard (78% confidence)
184
+ Previous: full-morph
185
+ Reason: Scope reduced - no OAuth, no registration
186
+ ```
187
+
188
+ ### Configurações de Workflow
189
+
190
+ Workflows são definidos em `framework/workflows/configs/*.json`:
191
+
192
+ ```json
193
+ {
194
+ "id": "standard",
195
+ "criteria": {
196
+ "minFiles": 3,
197
+ "maxFiles": 10,
198
+ "minLines": 50,
199
+ "maxLines": 500
200
+ },
201
+ "keywords": ["paginação", "pagination", "filtro", "filter"],
202
+ "phases": {
203
+ "run": ["proposal", "design", "tasks", "implement"],
204
+ "skip": ["setup", "uiux", "clarify", "sync"]
205
+ },
206
+ "priority": 2
207
+ }
208
+ ```
209
+
210
+ ### Documentação Completa
211
+
212
+ Veja `framework/workflows/` para:
213
+ - **docs/STORY-DRIVEN-DEVELOPMENT.md:** Filosofia do sistema
214
+ - **docs/{workflow}.md:** Detalhes de cada workflow (5 arquivos)
215
+ - **configs/{workflow}.json:** Configurações executáveis (5 arquivos)
216
+ - **README.md:** Guia completo do sistema de workflows
217
+
218
+ **REGRA CRÍTICA:** Confie na detecção automática. Override manual apenas se houver contexto que o sistema não detectou (ex: "parece grande mas já temos 80% do código pronto").
219
+
220
+ ---
221
+
55
222
  ## APPROVAL GATES (Portões de Aprovação)
56
223
 
57
224
  O sistema agora rastreia aprovações explícitas para cada fase crítica em `state.json`.
@@ -214,6 +381,103 @@ Fix these issues before proceeding.
214
381
 
215
382
  ---
216
383
 
384
+ ## CLAUDE CODE HOOKS (Validação em Hooks)
385
+
386
+ O framework integra com o sistema de hooks do Claude Code para validação automática em eventos Git e Agent Teams.
387
+
388
+ ### Arquitetura de Hooks
389
+
390
+ **Universal (framework/hooks/):** Hooks compartilhados por todas as stacks
391
+ - **pre-commit/**: `agents.sh`, `specs.sh`, `orchestrator.sh`
392
+ - **commit-msg/**: `conventional-commits.sh` (Conventional Commits format)
393
+ - **pre-push/**: `run-tests.sh` (executa test suite completo)
394
+ - **agent-teams/**: `teammate-idle.js`, `task-completed.js`, `phase-advanced.js`
395
+
396
+ **Stack-Specific (stacks/{stack}/.morph/hooks/):** Hooks específicos de cada stack
397
+ - **pre-commit/**: `tests-csharp.sh` (blazor-azure), `tests-typescript.sh` (nextjs-supabase)
398
+
399
+ ### Instalação de Git Hooks
400
+
401
+ ```bash
402
+ # No diretório .git/hooks do projeto
403
+ cd .git/hooks
404
+
405
+ # Pre-commit (valida agents.json, spec.md, executa testes)
406
+ ln -sf ../../framework/hooks/pre-commit/orchestrator.sh pre-commit
407
+ chmod +x pre-commit
408
+
409
+ # Commit-msg (valida formato Conventional Commits)
410
+ ln -sf ../../framework/hooks/commit-msg/conventional-commits.sh commit-msg
411
+ chmod +x commit-msg
412
+
413
+ # Pre-push (executa suite de testes antes de push)
414
+ ln -sf ../../framework/hooks/pre-push/run-tests.sh pre-push
415
+ chmod +x pre-push
416
+ ```
417
+
418
+ ### Configuração de Agent Teams Hooks
419
+
420
+ Adicione em `.claude/settings.local.json`:
421
+
422
+ ```json
423
+ {
424
+ "hooks": {
425
+ "TeammateIdle": "node framework/hooks/agent-teams/teammate-idle.js {feature}",
426
+ "TaskCompleted": "node framework/hooks/agent-teams/task-completed.js {feature} {taskId}",
427
+ "PhaseAdvanced": "node framework/hooks/agent-teams/phase-advanced.js {feature} {fromPhase} {toPhase}"
428
+ }
429
+ }
430
+ ```
431
+
432
+ ### Validators com Hook Behavior
433
+
434
+ 5 validators tier-4 configurados em `agents.json` com `hook_behavior`:
435
+
436
+ | Validator | Hook Triggers | Valida | Bloqueia? |
437
+ |-----------|---------------|--------|-----------|
438
+ | **security-expert** | TeammateIdle, TaskCompleted | SQL injection, XSS, Secrets | ✅ Sim |
439
+ | **architecture-expert** | TeammateIdle, TaskCompleted | DbContext injection, async/await, DI order | ✅ Sim |
440
+ | **packages-validator** | TaskCompleted | NuGet conflicts, .NET 10 compatibility | ✅ Sim |
441
+ | **design-system-validator** | TeammateIdle | CSS palette, spacing, typography | ⚠️ Warning |
442
+ | **blazor-concurrency-validator** | TaskCompleted | DbContext lifecycle, async void, JSInterop | ✅ Sim |
443
+
444
+ ### Como Funciona
445
+
446
+ **Git Hooks:**
447
+ ```
448
+ git commit → pre-commit hook → orchestrator.sh
449
+ ├─ Executa framework/hooks/pre-commit/*.sh (universal)
450
+ └─ Executa .morph/hooks/pre-commit/*.sh (stack-specific)
451
+
452
+ commit-msg hook → valida formato Conventional Commits
453
+
454
+ git push → pre-push hook → executa test suite
455
+ ```
456
+
457
+ **Agent Teams Hooks:**
458
+ ```
459
+ Teammate idle → TeammateIdle hook
460
+ ├─ Carrega agents.json
461
+ ├─ Filtra validators com hook_triggers: ["TeammateIdle"]
462
+ ├─ Executa validators via hook-executor.js
463
+ └─ Bloqueia se errors > 0 e blocks_on_fail: true
464
+ ```
465
+
466
+ ### Bypass (Não Recomendado)
467
+
468
+ ```bash
469
+ # Pular hooks Git
470
+ git commit --no-verify
471
+ git push --no-verify
472
+
473
+ # Pular validação de task
474
+ npx morph-spec task done feature-name task-id --skip-validation
475
+ ```
476
+
477
+ **IMPORTANTE:** Veja `framework/hooks/README.md` para documentação completa de hooks.
478
+
479
+ ---
480
+
217
481
  ## AGENT INVOCATION PATTERNS (Spawning de Agentes)
218
482
 
219
483
  Use **Task tool** para spawnar subagentes quando apropriado.
@@ -399,11 +663,9 @@ Para features grandes, use `metadata.json` para acesso rápido (reduz uso de tok
399
663
  # 1. Antes de trabalhar na feature, leia metadata.json
400
664
  cat .morph/project/outputs/user-auth/metadata.json
401
665
 
402
- # 2. Metadata auto-atualizado após cada task
666
+ # 2. Metadata é auto-atualizado após cada task
403
667
  # (Configurado em llm-interaction.json: "updateFrequency": "on_task_done")
404
-
405
- # 3. Ou gere manualmente
406
- npx morph-spec generate metadata user-auth
668
+ # NOTA: Não há comando manual para gerar metadata - sempre auto-gerado
407
669
  ```
408
670
 
409
671
  ### Configuração
@@ -625,14 +887,97 @@ morph-spec-framework/
625
887
 
626
888
  ## TEMPLATES
627
889
 
628
- > SEMPRE use `bin/render-template.js` para renderizar. NUNCA preencha placeholders manualmente.
890
+ > **Template System v2.0** - Organizado por tecnologia, reutilizável entre stacks, powered by Handlebars
891
+
892
+ ### Overview
893
+
894
+ Templates estão em `framework/templates/` organizados por **tecnologia** (não por stack):
895
+ - `code/dotnet/` - Templates .NET (service, repository, component, etc.)
896
+ - `code/typescript/` - Templates TypeScript (contracts, etc.)
897
+ - `code/sql/` - Templates SQL (Supabase migrations, RLS policies)
898
+ - `infrastructure/azure/` - Bicep templates para Azure
899
+ - `infrastructure/docker/` - Dockerfiles e Docker Compose
900
+ - `integrations/` - Integrações (Asaas, Clerk, Azure Identity)
901
+ - `ui/` - Design systems (CSS, Fluent/Mud themes)
902
+ - `saas/` - Multi-tenant patterns
903
+
904
+ **Por quê tecnologia?** Permite reutilizar templates entre stacks (ex: service.cs funciona para blazor-azure E nextjs-supabase).
905
+
906
+ ### CLI Commands
907
+
908
+ ```bash
909
+ # Listar todos os templates
910
+ morph-spec template list
911
+
912
+ # Filtrar por categoria/tecnologia
913
+ morph-spec template list --category code
914
+ morph-spec template list --phase implement
915
+
916
+ # Ver detalhes de um template
917
+ morph-spec template show dotnet-backend-service --preview
918
+
919
+ # Renderizar template (usando Handlebars)
920
+ morph-spec template render dotnet-backend-service UserService.cs '{
921
+ "FEATURE_NAME": "user-auth",
922
+ "NAMESPACE": "MyApp.Services"
923
+ }'
924
+
925
+ # Customizar template (criar override stack-specific)
926
+ morph-spec template customize dotnet-backend-service --stack blazor-azure
927
+ ```
928
+
929
+ ### Handlebars Helpers (v2.0)
930
+
931
+ **✅ USE (novo):**
932
+
933
+ | Helper | Input | Output | Uso |
934
+ |--------|-------|--------|-----|
935
+ | `{{pascalCase str}}` | `user-auth` | `UserAuth` | Classes |
936
+ | `{{camelCase str}}` | `user-auth` | `userAuth` | Variables |
937
+ | `{{snakeCase str}}` | `user-auth` | `user_auth` | SQL |
938
+ | `{{titleCase str}}` | `user-auth` | `User Auth` | Titles |
939
+ | `{{pluralize str}}` | `user` | `users` | Collections |
940
+
941
+ **❌ DEPRECADO (v1.0):**
942
+
943
+ | Placeholder | Status | Use Instead |
944
+ |-------------|--------|-------------|
945
+ | `{{FEATURE_NAME_PASCAL}}` | ❌ Deprecated | `{{pascalCase FEATURE_NAME}}` |
946
+ | `{{FEATURE_NAME_CAMEL}}` | ❌ Deprecated | `{{camelCase FEATURE_NAME}}` |
947
+ | `{{FEATURE_NAME_SNAKE}}` | ❌ Deprecated | `{{snakeCase FEATURE_NAME}}` |
948
+
949
+ ### Variáveis Padrão (auto-injetadas)
629
950
 
630
951
  | Placeholder | Exemplo |
631
952
  |-------------|---------|
632
953
  | `{{FEATURE_NAME}}` | `scheduled-reports` |
633
- | `{{FEATURE_NAME_PASCAL}}` | `ScheduledReports` |
634
954
  | `{{STACK}}` | `Blazor` ou `NextjsSupabase` |
635
- | `{{DATE}}`, `{{AUTHOR}}`, `{{NAMESPACE}}` | Auto from config.json |
955
+ | `{{DATE}}` | `2026-02-17` |
956
+ | `{{YEAR}}` | `2026` |
957
+ | `{{TIMESTAMP}}` | `2026-02-17T19:38:00Z` |
958
+ | `{{NAMESPACE}}` | Auto from config.json |
959
+ | `{{AUTHOR}}` | Auto from config.json |
960
+
961
+ ### Stack Overrides
962
+
963
+ Templates são resolvidos com fallback automático:
964
+ 1. `stacks/{stack}/.morph/templates/` (override stack-specific)
965
+ 2. `.morph/templates/` (override project-local)
966
+ 3. `framework/templates/` (fallback padrão)
967
+
968
+ Para customizar um template:
969
+ ```bash
970
+ morph-spec template customize dotnet-backend-service --stack blazor-azure
971
+ # Edite: stacks/blazor-azure/.morph/templates/code/dotnet/backend/service.cs
972
+ ```
973
+
974
+ ### Documentação Completa
975
+
976
+ Veja `framework/templates/README.md` para:
977
+ - Estrutura completa de diretórios
978
+ - Todos os helpers Handlebars disponíveis
979
+ - Como criar novos templates
980
+ - Migração v1 → v2
636
981
 
637
982
  ---
638
983
 
package/README.md CHANGED
@@ -488,18 +488,6 @@ MORPH-SPEC possui **30 agentes** organizados em 4 tiers hierárquicos com squads
488
488
 
489
489
  ---
490
490
 
491
- ## Exemplos
492
-
493
- | Exemplo | Descrição |
494
- |---------|-----------|
495
- | [micro-saas](stacks/blazor-azure/.morph/examples/micro-saas/) | SaaS completo com Blazor + Asaas billing |
496
- | [api-nextjs](stacks/blazor-azure/.morph/examples/api-nextjs/) | .NET API + Next.js frontend |
497
- | [multi-agent](stacks/blazor-azure/.morph/examples/multi-agent/) | Sistema multi-agente com Microsoft Agent Framework |
498
-
499
- Cada exemplo inclui: `README.md`, `spec.md`, `contracts.cs`, `tasks.md`, `decisions.md`
500
-
501
- ---
502
-
503
491
  ## Estrutura do Projeto
504
492
 
505
493
  Após a instalação, seu projeto terá:
@@ -523,7 +511,6 @@ seu-projeto/
523
511
  │ │ ├── infra/
524
512
  │ │ ├── integrations/
525
513
  │ │ └── saas/
526
- │ ├── examples/ # Exemplos completos
527
514
  │ ├── features/ # Features em desenvolvimento
528
515
  │ └── archive/ # Features concluídas
529
516
  └── .claude/
@@ -703,7 +690,7 @@ Todo código gerado usando MORPH-SPEC é **100% seu** para usar como quiser, inc
703
690
 
704
691
  - [npm Package](https://www.npmjs.com/package/@polymorphism-tech/morph-spec)
705
692
  - [Documentação](docs/)
706
- - [Exemplos](stacks/blazor-azure/.morph/examples/)
693
+ - [Wiki (Base de Conhecimento)](.wiki/) - 33 artigos sobre .NET, Azure, IA, SaaS e Claude Code
707
694
  - [Polymorphism Tech](https://polymorphism.com.br)
708
695
 
709
696
  ---
@@ -15,7 +15,7 @@
15
15
  import { readFileSync } from 'fs';
16
16
  import { join, dirname } from 'path';
17
17
  import { fileURLToPath } from 'url';
18
- import { resolveAgentsConfigPath } from '../src/lib/stack-resolver.js';
18
+ import { resolveAgentsConfigPath } from '../src/lib/stacks/stack-resolver.js';
19
19
 
20
20
  const __dirname = dirname(fileURLToPath(import.meta.url));
21
21
  const frameworkRoot = join(__dirname, '..');
package/bin/morph-spec.js CHANGED
@@ -1,44 +1,70 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
 
3
3
  import { program } from 'commander';
4
4
  import chalk from 'chalk';
5
5
  import { fileURLToPath } from 'url';
6
6
  import { dirname, join } from 'path';
7
7
  import { readFileSync } from 'fs';
8
- import { setGlobalStack } from '../src/lib/stack-resolver.js';
9
-
10
- import { initCommand } from '../src/commands/init.js';
11
- import { updateCommand } from '../src/commands/update.js';
12
- import { doctorCommand } from '../src/commands/doctor.js';
13
- import { detectCommand } from '../src/commands/detect.js';
14
- import { detectAgentsCommand } from '../src/commands/detect-agents.js';
15
- import { syncCommand } from '../src/commands/sync.js';
16
- import { createStoryCommand } from '../src/commands/create-story.js';
17
- import { shardSpecCommand } from '../src/commands/shard-spec.js';
18
- import { sprintStatusCommand } from '../src/commands/sprint-status.js';
19
- import { stateCommand } from '../src/commands/state.js';
20
- import { taskDoneCommand, taskStartCommand, taskNextCommand } from '../src/commands/task.js';
21
- import { generateDesignSystemCommand } from '../src/commands/generate.js';
22
- import { generateContextCommand } from '../src/commands/generate-context.js';
8
+ import { setGlobalStack } from '../src/lib/stacks/stack-resolver.js';
9
+
10
+ // Project commands
11
+ import { initCommand } from '../src/commands/project/init.js';
12
+ import { updateCommand } from '../src/commands/project/update.js';
13
+ import { doctorCommand } from '../src/commands/project/doctor.js';
14
+ import { detectCommand } from '../src/commands/project/detect.js';
15
+ import { detectAgentsCommand } from '../src/commands/project/detect-agents.js';
16
+ import { detectWorkflowCommand } from '../src/commands/project/detect-workflow.js';
17
+ import { syncCommand } from '../src/commands/project/sync.js';
18
+
19
+ // Feature commands
20
+ import { createStoryCommand } from '../src/commands/feature/create-story.js';
21
+ import { shardSpecCommand } from '../src/commands/feature/shard-spec.js';
22
+ import { sprintStatusCommand } from '../src/commands/feature/sprint-status.js';
23
+
24
+ // State commands
25
+ import { stateCommand } from '../src/commands/state/state.js';
26
+ import { validatePhaseCommand } from '../src/commands/state/validate-phase.js';
27
+ import { rollbackPhaseCommand } from '../src/commands/state/rollback-phase.js';
28
+ import { advancePhaseCommand } from '../src/commands/state/advance-phase.js';
29
+ import { approveCommand, rejectCommand, approvalStatusCommand } from '../src/commands/state/approve.js';
30
+
31
+ // Task commands
32
+ import { taskDoneCommand, taskStartCommand, taskNextCommand } from '../src/commands/tasks/task.js';
33
+
34
+ // Generation commands
35
+ import { generateDesignSystemCommand, generateMetadataCommand } from '../src/commands/generation/generate.js';
36
+ import { generateContextCommand } from '../src/commands/generation/generate-context.js';
37
+
38
+ // Validation commands
23
39
  import { validateCommand } from './validate.js';
24
- import { validateBlazorCommand } from '../src/commands/validate-blazor.js';
25
- import { lintFluentCommand } from '../src/commands/lint-fluent.js';
26
- import { analyzeBlazorConcurrencyCommand } from '../src/commands/analyze-blazor-concurrency.js';
27
- import { validateBlazorStateCommand } from '../src/commands/validate-blazor-state.js';
28
- import { validateCssCommand } from '../src/commands/validate-css.js';
29
- import { LearningSystem } from '../src/lib/learning-system.js';
30
- import troubleshootCommand from '../src/commands/troubleshoot.js';
31
- import { validatePhaseCommand } from '../src/commands/validate-phase.js';
32
- import { sessionSummaryCommand } from '../src/commands/session-summary.js';
33
- import { rollbackPhaseCommand } from '../src/commands/rollback-phase.js';
34
- import { advancePhaseCommand } from '../src/commands/advance-phase.js';
35
- import { approveCommand, rejectCommand, approvalStatusCommand } from '../src/commands/approve.js';
36
- import { spawnTeamCommand } from '../src/commands/spawn-team.js';
37
- import capturePatternProgram from '../src/commands/capture-pattern.js';
38
- import searchPatternsProgram from '../src/commands/search-patterns.js';
39
- import { generateMetadataCommand } from '../src/commands/generate.js';
40
- import migrateStateProgram from '../src/commands/migrate-state.js';
41
- import upgradeProgram from '../src/commands/upgrade.js';
40
+ import { validateBlazorCommand } from '../src/commands/validation/validate-blazor.js';
41
+ import { lintFluentCommand } from '../src/commands/validation/lint-fluent.js';
42
+ import { analyzeBlazorConcurrencyCommand } from '../src/commands/validation/analyze-blazor-concurrency.js';
43
+ import { validateBlazorStateCommand } from '../src/commands/validation/validate-blazor-state.js';
44
+ import { validateCssCommand } from '../src/commands/validation/validate-css.js';
45
+
46
+ // Template commands
47
+ import { templateListCommand } from '../src/commands/templates/template-list.js';
48
+ import { templateShowCommand } from '../src/commands/templates/template-show.js';
49
+ import { templateRenderCommand } from '../src/commands/templates/template-render.js';
50
+ import { templateCustomizeCommand } from '../src/commands/templates/template-customize.js';
51
+ import { templateValidateCommand } from '../src/commands/templates/template-validate.js';
52
+
53
+ // Agent commands
54
+ import { spawnTeamCommand } from '../src/commands/agents/spawn-team.js';
55
+
56
+ // Learning commands
57
+ import capturePatternProgram from '../src/commands/learning/capture-pattern.js';
58
+ import searchPatternsProgram from '../src/commands/learning/search-patterns.js';
59
+
60
+ // Utility commands
61
+ import troubleshootCommand from '../src/commands/utils/troubleshoot.js';
62
+ import { sessionSummaryCommand } from '../src/commands/utils/session-summary.js';
63
+ import migrateStateProgram from '../src/commands/utils/migrate-state.js';
64
+ import upgradeProgram from '../src/commands/utils/upgrade.js';
65
+
66
+ // Libraries
67
+ import { LearningSystem } from '../src/lib/learning/learning-system.js';
42
68
 
43
69
  const __dirname = dirname(fileURLToPath(import.meta.url));
44
70
  const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf8'));
@@ -97,6 +123,14 @@ program
97
123
  .option('-i, --ids-only', 'Output only agent IDs (one per line)')
98
124
  .action(detectAgentsCommand);
99
125
 
126
+ program
127
+ .command('detect-workflow <input...>')
128
+ .description('Detect appropriate workflow for a feature request')
129
+ .option('-v, --verbose', 'Show detailed detection reasoning')
130
+ .option('-j, --json', 'Output as JSON')
131
+ .option('-p, --project-path <path>', 'Project path (default: current directory)')
132
+ .action(detectWorkflowCommand);
133
+
100
134
  program
101
135
  .command('sync')
102
136
  .description('Sync standards from feature decisions')
@@ -335,6 +369,60 @@ learnCommand
335
369
  console.log(chalk.green('\n✅ Knowledge base reset\n'));
336
370
  });
337
371
 
372
+ // Template management commands
373
+ const templateCommand = program
374
+ .command('template')
375
+ .description('Template management (list | show | render | customize | validate)');
376
+
377
+ templateCommand
378
+ .command('list')
379
+ .description('List all available templates')
380
+ .option('--category <category>', 'Filter by category (documentation, code, infrastructure, context, examples)')
381
+ .option('--phase <phase>', 'Filter by phase (proposal, design, implement, etc.)')
382
+ .option('--stack <stack>', 'Filter by stack (blazor-azure, nextjs-supabase)')
383
+ .option('--required', 'Show only required templates')
384
+ .action(templateListCommand);
385
+
386
+ templateCommand
387
+ .command('show <template-id>')
388
+ .description('Show detailed information about a template')
389
+ .option('--show-path', 'Show resolved template file path')
390
+ .option('--preview', 'Show first 20 lines of template content')
391
+ .option('--stack <stack>', 'Stack for path resolution (default: blazor-azure)')
392
+ .option('--project-path <path>', 'Project path (default: current directory)')
393
+ .action(templateShowCommand);
394
+
395
+ templateCommand
396
+ .command('render <template-id> <output-path> <variables-json>')
397
+ .description('Render a template with variables')
398
+ .option('--dry-run', 'Preview without writing file')
399
+ .option('--stack <stack>', 'Stack for template resolution (default: blazor-azure)')
400
+ .option('--project-path <path>', 'Project path (default: current directory)')
401
+ .option('-v, --verbose', 'Show detailed output')
402
+ .action(templateRenderCommand);
403
+
404
+ templateCommand
405
+ .command('customize <template-id>')
406
+ .description('Copy framework template to project for customization')
407
+ .option('--stack <stack>', 'Target stack (default: blazor-azure)')
408
+ .option('--local', 'Copy to project .morph/templates/ instead of stack')
409
+ .option('--force', 'Overwrite existing customized template')
410
+ .option('--project-path <path>', 'Project path (default: current directory)')
411
+ .option('-v, --verbose', 'Show detailed output')
412
+ .action(templateCustomizeCommand);
413
+
414
+ templateCommand
415
+ .command('validate [template-id]')
416
+ .description('Validate template(s) for correct Handlebars syntax')
417
+ .option('--category <category>', 'Validate templates in specific category')
418
+ .option('--technology <technology>', 'Validate templates for specific technology')
419
+ .option('--include-deprecated', 'Include deprecated templates')
420
+ .option('--show-valid', 'Show valid templates in output')
421
+ .option('--strict', 'Exit with error on warnings')
422
+ .option('--project-path <path>', 'Project path (default: current directory)')
423
+ .option('-v, --verbose', 'Show detailed validation information')
424
+ .action(templateValidateCommand);
425
+
338
426
  // Troubleshooting command
339
427
  program
340
428
  .command('troubleshoot <keywords...>')
package/bin/validate.js CHANGED
@@ -20,7 +20,7 @@ import chalk from 'chalk';
20
20
  import { validatePackages } from '../src/lib/validators/package-validator.js';
21
21
  import { validateArchitecture } from '../src/lib/validators/architecture-validator.js';
22
22
  import { validateContrast } from '../src/lib/validators/ui-contrast-validator.js';
23
- import { LearningSystem } from '../src/lib/learning-system.js';
23
+ import { LearningSystem } from '../src/lib/learning/learning-system.js';
24
24
 
25
25
  const VALIDATORS = {
26
26
  packages: {
@@ -97,11 +97,6 @@ seu-projeto/
97
97
  │ │ ├── subscription.cs # Modelo de assinaturas
98
98
  │ │ └── tenant.cs # Multi-tenancy
99
99
  │ │
100
- │ ├── examples/ # Exemplos completos
101
- │ │ ├── micro-saas/ # Blazor + Asaas billing
102
- │ │ ├── api-nextjs/ # .NET API + Next.js
103
- │ │ └── multi-agent/ # Semantic Kernel agents
104
- │ │
105
100
  │ ├── specs/ # Specs ativas
106
101
  │ ├── features/ # Features em desenvolvimento
107
102
  │ └── archive/ # Features concluídas