@polymorphism-tech/morph-spec 3.1.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 (333) hide show
  1. package/CLAUDE.md +882 -3
  2. package/README.md +79 -18
  3. package/bin/detect-agents.js +1 -1
  4. package/bin/morph-spec.js +163 -26
  5. package/bin/task-manager.cjs +101 -7
  6. package/bin/validate.js +1 -1
  7. package/docs/cli-auto-detection.md +219 -0
  8. package/docs/getting-started.md +0 -5
  9. package/docs/llm-interaction-config.md +735 -0
  10. package/docs/troubleshooting.md +269 -0
  11. package/docs/v3.0/AGENTS.md +521 -0
  12. package/docs/v3.0/ANALYSIS.md +555 -0
  13. package/docs/v3.0/ARCHITECTURE.md +436 -0
  14. package/docs/v3.0/EXECUTION-FLOW.md +1304 -0
  15. package/docs/v3.0/FEATURES.md +688 -0
  16. package/docs/v3.0/README.md +231 -0
  17. package/docs/v3.0/ROADMAP.md +801 -0
  18. package/docs/validation-checklist.md +0 -1
  19. package/package.json +5 -1
  20. package/src/commands/agents/index.js +4 -0
  21. package/src/commands/agents/spawn-team.js +172 -0
  22. package/src/commands/{create-story.js → feature/create-story.js} +357 -354
  23. package/src/commands/feature/index.js +6 -0
  24. package/src/commands/{shard-spec.js → feature/shard-spec.js} +2 -2
  25. package/src/commands/{sprint-status.js → feature/sprint-status.js} +1 -1
  26. package/src/commands/{generate-context.js → generation/generate-context.js} +40 -40
  27. package/src/commands/{generate.js → generation/generate.js} +130 -3
  28. package/src/commands/generation/index.js +5 -0
  29. package/src/commands/index.js +16 -0
  30. package/src/commands/learning/capture-pattern.js +121 -0
  31. package/src/commands/learning/index.js +5 -0
  32. package/src/commands/learning/search-patterns.js +126 -0
  33. package/src/commands/{detect-agents.js → project/detect-agents.js} +178 -178
  34. package/src/commands/project/detect-workflow.js +174 -0
  35. package/src/commands/{detect.js → project/detect.js} +104 -104
  36. package/src/commands/{doctor.js → project/doctor.js} +356 -356
  37. package/src/commands/project/index.js +10 -0
  38. package/src/commands/{init.js → project/init.js} +305 -258
  39. package/src/commands/{sync.js → project/sync.js} +167 -167
  40. package/src/commands/{update.js → project/update.js} +240 -204
  41. package/src/commands/{advance-phase.js → state/advance-phase.js} +416 -266
  42. package/src/commands/state/approve.js +221 -0
  43. package/src/commands/state/index.js +8 -0
  44. package/src/commands/{rollback-phase.js → state/rollback-phase.js} +185 -185
  45. package/src/commands/{state.js → state/state.js} +334 -334
  46. package/src/commands/{validate-phase.js → state/validate-phase.js} +221 -221
  47. package/src/commands/tasks/index.js +4 -0
  48. package/src/commands/{task.js → tasks/task.js} +78 -78
  49. package/src/commands/templates/index.js +8 -0
  50. package/src/commands/templates/template-customize.js +101 -0
  51. package/src/commands/templates/template-list.js +128 -0
  52. package/src/commands/templates/template-render.js +95 -0
  53. package/src/commands/templates/template-show.js +131 -0
  54. package/src/commands/templates/template-validate.js +91 -0
  55. package/src/commands/utils/index.js +7 -0
  56. package/src/commands/utils/migrate-state.js +158 -0
  57. package/src/commands/{session-summary.js → utils/session-summary.js} +291 -291
  58. package/src/commands/{troubleshoot.js → utils/troubleshoot.js} +222 -222
  59. package/src/commands/utils/upgrade.js +346 -0
  60. package/src/commands/{analyze-blazor-concurrency.js → validation/analyze-blazor-concurrency.js} +193 -193
  61. package/src/commands/validation/index.js +8 -0
  62. package/src/commands/{lint-fluent.js → validation/lint-fluent.js} +352 -352
  63. package/src/commands/{validate-blazor-state.js → validation/validate-blazor-state.js} +210 -210
  64. package/src/commands/{validate-blazor.js → validation/validate-blazor.js} +156 -156
  65. package/src/commands/{validate-css.js → validation/validate-css.js} +84 -84
  66. package/src/core/index.js +10 -0
  67. package/src/core/registry/command-registry.js +302 -0
  68. package/src/core/registry/index.js +8 -0
  69. package/src/core/registry/validator-registry.js +204 -0
  70. package/src/core/state/index.js +8 -0
  71. package/src/core/state/phase-state-machine.js +214 -0
  72. package/src/{lib → core/state}/state-manager.js +572 -414
  73. package/src/core/templates/index.js +9 -0
  74. package/src/core/templates/template-data-sources.js +325 -0
  75. package/src/core/templates/template-registry.js +335 -0
  76. package/src/core/templates/template-renderer.js +477 -0
  77. package/src/core/templates/template-validator.js +296 -0
  78. package/src/core/workflows/index.js +7 -0
  79. package/src/core/workflows/workflow-detector.js +354 -0
  80. package/src/generator/config-generator.js +206 -0
  81. package/src/generator/templates/config.json.template +40 -0
  82. package/src/generator/templates/project.md.template +67 -0
  83. package/src/lib/{complexity-analyzer.js → analysis/complexity-analyzer.js} +441 -441
  84. package/src/lib/analysis/index.js +7 -0
  85. package/src/lib/checkpoints/checkpoint-hooks.js +258 -0
  86. package/src/lib/checkpoints/index.js +7 -0
  87. package/src/lib/detectors/config-detector.js +223 -223
  88. package/src/lib/detectors/conversation-analyzer.js +163 -163
  89. package/src/lib/{design-system-detector.js → detectors/design-system-detector.js} +187 -187
  90. package/src/lib/detectors/index.js +87 -84
  91. package/src/lib/detectors/standards-generator.js +275 -275
  92. package/src/lib/detectors/structure-detector.js +245 -245
  93. package/src/lib/{context-generator.js → generators/context-generator.js} +526 -516
  94. package/src/lib/generators/index.js +10 -0
  95. package/src/lib/generators/metadata-extractor.js +387 -0
  96. package/src/lib/{recap-generator.js → generators/recap-generator.js} +205 -205
  97. package/src/lib/learning/index.js +7 -0
  98. package/src/lib/orchestration/index.js +7 -0
  99. package/src/lib/{team-orchestrator.js → orchestration/team-orchestrator.js} +323 -323
  100. package/src/lib/stacks/index.js +7 -0
  101. package/src/lib/{stack-resolver.js → stacks/stack-resolver.js} +180 -148
  102. package/src/lib/standards/index.js +7 -0
  103. package/src/lib/{standards-context-injector.js → standards/standards-context-injector.js} +298 -288
  104. package/src/lib/troubleshooting/index.js +8 -0
  105. package/src/lib/{troubleshoot-grep.js → troubleshooting/troubleshoot-grep.js} +204 -204
  106. package/src/lib/{troubleshoot-index.js → troubleshooting/troubleshoot-index.js} +144 -144
  107. package/src/lib/validators/architecture/architecture-validator.js +387 -0
  108. package/src/lib/validators/architecture/index.js +7 -0
  109. package/src/lib/validators/architecture-validator.js +40 -367
  110. package/src/lib/{blazor-concurrency-analyzer.js → validators/blazor/blazor-concurrency-analyzer.js} +277 -288
  111. package/src/lib/{blazor-state-validator.js → validators/blazor/blazor-state-validator.js} +279 -291
  112. package/src/lib/{blazor-validator.js → validators/blazor/blazor-validator.js} +369 -374
  113. package/src/lib/validators/blazor/index.js +9 -0
  114. package/src/lib/validators/content/content-validator.js +351 -0
  115. package/src/lib/validators/content/index.js +7 -0
  116. package/src/lib/validators/content-validator.js +164 -0
  117. package/src/lib/validators/{contract-compliance-validator.js → contracts/contract-compliance-validator.js} +273 -273
  118. package/src/lib/validators/contracts/index.js +7 -0
  119. package/src/lib/{css-validator.js → validators/css/css-validator.js} +352 -352
  120. package/src/lib/validators/css/index.js +7 -0
  121. package/src/lib/validators/{design-system-validator.js → design-system/design-system-validator.js} +231 -231
  122. package/src/lib/validators/design-system/index.js +7 -0
  123. package/src/lib/validators/package-validator.js +41 -340
  124. package/src/lib/validators/packages/index.js +7 -0
  125. package/src/lib/validators/packages/package-validator.js +360 -0
  126. package/src/lib/validators/shared/index.js +12 -0
  127. package/src/lib/validators/shared/issue-counter.js +18 -0
  128. package/src/lib/validators/shared/result-formatter.js +124 -0
  129. package/src/lib/{spec-validator.js → validators/spec-validator.js} +258 -258
  130. package/src/lib/validators/ui/index.js +7 -0
  131. package/src/lib/validators/ui/ui-contrast-validator.js +422 -0
  132. package/src/lib/validators/ui-contrast-validator.js +31 -409
  133. package/src/lib/{validation-runner.js → validators/validation-runner.js} +286 -284
  134. package/src/llm/analyzer.js +215 -0
  135. package/src/llm/environment-detector.js +43 -0
  136. package/src/llm/few-shot-examples.js +216 -0
  137. package/src/llm/project-config-schema.json +188 -0
  138. package/src/llm/prompt-builder.js +96 -0
  139. package/src/orchestrator.js +206 -0
  140. package/src/sanitizer/context-sanitizer.js +221 -0
  141. package/src/sanitizer/patterns.js +163 -0
  142. package/src/scanner/project-scanner.js +242 -0
  143. package/src/ui/diff-display.js +91 -0
  144. package/src/ui/interactive-wizard.js +96 -0
  145. package/src/ui/user-review.js +211 -0
  146. package/src/ui/wizard-questions.js +188 -0
  147. package/src/utils/color-utils.js +70 -0
  148. package/src/utils/file-copier.js +188 -189
  149. package/src/utils/process-handler.js +97 -0
  150. package/src/writer/file-writer.js +86 -0
  151. package/stacks/blazor-azure/.claude/skills/level-2-domains/ai-agents/ai-system-architect.md +3 -3
  152. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/api-designer.md +59 -0
  153. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/dotnet-senior.md +45 -255
  154. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/ef-modeler.md +33 -88
  155. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/ms-agent-expert.md +25 -89
  156. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/hangfire-orchestrator.md +64 -0
  157. package/stacks/blazor-azure/.morph/config/agents.json +879 -764
  158. package/stacks/blazor-azure/.morph/hooks/{pre-commit-tests.sh → pre-commit/tests-csharp.sh} +3 -2
  159. package/stacks/blazor-azure/.morph/templates/.gitkeep +0 -0
  160. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/cd-prod.yml.hbs +41 -0
  161. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/cd-staging.yml.hbs +24 -0
  162. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/ci-build.yml.hbs +23 -0
  163. package/stacks/nextjs-supabase/.claude/commands/morph-apply.md +221 -0
  164. package/stacks/nextjs-supabase/.claude/commands/morph-archive.md +79 -0
  165. package/stacks/nextjs-supabase/.claude/commands/morph-deploy.md +529 -0
  166. package/stacks/nextjs-supabase/.claude/commands/morph-infra.md +209 -0
  167. package/stacks/nextjs-supabase/.claude/commands/morph-preflight.md +227 -0
  168. package/stacks/nextjs-supabase/.claude/commands/morph-proposal.md +122 -0
  169. package/stacks/nextjs-supabase/.claude/commands/morph-status.md +86 -0
  170. package/stacks/nextjs-supabase/.claude/commands/morph-troubleshoot.md +122 -0
  171. package/stacks/nextjs-supabase/.claude/settings.local.json +6 -0
  172. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/integrations/supabase-expert.md +30 -150
  173. package/stacks/nextjs-supabase/.morph/config/agents.json +345 -345
  174. package/stacks/nextjs-supabase/.morph/hooks/pre-commit/tests-typescript.sh +61 -0
  175. package/stacks/nextjs-supabase/.morph/templates/.gitkeep +0 -0
  176. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/cd-prod.yml.hbs +22 -0
  177. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/cd-staging.yml.hbs +22 -0
  178. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/ci-build.yml.hbs +35 -0
  179. package/stacks/nextjs-supabase/README.md +6 -15
  180. package/bin/render-template.js +0 -303
  181. package/bin/semantic-detect-agents.js +0 -247
  182. package/bin/validate-agents-skills.js +0 -257
  183. package/bin/validate-agents.js +0 -70
  184. package/bin/validate-phase.js +0 -263
  185. package/docs/examples.md +0 -328
  186. package/scripts/reorganize-skills.cjs +0 -175
  187. package/scripts/validate-agents-structure.cjs +0 -52
  188. package/scripts/validate-skills.cjs +0 -180
  189. package/src/commands/deploy.js +0 -780
  190. package/src/lib/continuous-validator.js +0 -421
  191. package/src/lib/decision-constraint-loader.js +0 -109
  192. package/src/lib/design-system-scaffolder.js +0 -299
  193. package/src/lib/hook-executor.js +0 -257
  194. package/src/lib/mockup-generator.js +0 -366
  195. package/src/lib/ui-detector.js +0 -350
  196. package/stacks/blazor-azure/.azure/README.md +0 -293
  197. package/stacks/blazor-azure/.azure/docs/azure-devops-setup.md +0 -454
  198. package/stacks/blazor-azure/.azure/docs/branch-strategy.md +0 -398
  199. package/stacks/blazor-azure/.azure/docs/local-development.md +0 -515
  200. package/stacks/blazor-azure/.azure/pipelines/pipeline-variables.yml +0 -34
  201. package/stacks/blazor-azure/.azure/pipelines/prod-pipeline.yml +0 -319
  202. package/stacks/blazor-azure/.azure/pipelines/staging-pipeline.yml +0 -234
  203. package/stacks/blazor-azure/.azure/pipelines/templates/build-dotnet.yml +0 -75
  204. package/stacks/blazor-azure/.azure/pipelines/templates/deploy-app-service.yml +0 -94
  205. package/stacks/blazor-azure/.azure/pipelines/templates/deploy-container-app.yml +0 -120
  206. package/stacks/blazor-azure/.azure/pipelines/templates/infra-deploy.yml +0 -90
  207. package/stacks/blazor-azure/.claude/settings.local.json +0 -15
  208. package/stacks/blazor-azure/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +0 -392
  209. package/stacks/blazor-azure/.morph/docs/workflows/design-impl.md +0 -37
  210. package/stacks/blazor-azure/.morph/docs/workflows/enforcement-pipeline.md +0 -668
  211. package/stacks/blazor-azure/.morph/docs/workflows/fast-track.md +0 -29
  212. package/stacks/blazor-azure/.morph/docs/workflows/full-morph.md +0 -76
  213. package/stacks/blazor-azure/.morph/docs/workflows/standard.md +0 -44
  214. package/stacks/blazor-azure/.morph/docs/workflows/ui-refresh.md +0 -39
  215. package/stacks/blazor-azure/.morph/examples/api-nextjs/README.md +0 -241
  216. package/stacks/blazor-azure/.morph/examples/api-nextjs/contracts.ts +0 -307
  217. package/stacks/blazor-azure/.morph/examples/api-nextjs/spec.md +0 -399
  218. package/stacks/blazor-azure/.morph/examples/api-nextjs/tasks.md +0 -168
  219. package/stacks/blazor-azure/.morph/examples/micro-saas/README.md +0 -125
  220. package/stacks/blazor-azure/.morph/examples/micro-saas/contracts.cs +0 -358
  221. package/stacks/blazor-azure/.morph/examples/micro-saas/decisions.md +0 -246
  222. package/stacks/blazor-azure/.morph/examples/micro-saas/spec.md +0 -236
  223. package/stacks/blazor-azure/.morph/examples/micro-saas/tasks.md +0 -150
  224. package/stacks/blazor-azure/.morph/examples/multi-agent/README.md +0 -309
  225. package/stacks/blazor-azure/.morph/examples/multi-agent/contracts.cs +0 -433
  226. package/stacks/blazor-azure/.morph/examples/multi-agent/spec.md +0 -479
  227. package/stacks/blazor-azure/.morph/examples/multi-agent/tasks.md +0 -185
  228. package/stacks/blazor-azure/.morph/examples/scheduled-reports/decisions.md +0 -158
  229. package/stacks/blazor-azure/.morph/examples/scheduled-reports/proposal.md +0 -95
  230. package/stacks/blazor-azure/.morph/examples/scheduled-reports/spec.md +0 -267
  231. package/stacks/blazor-azure/.morph/examples/state-v3.json +0 -188
  232. package/stacks/blazor-azure/.morph/hooks/README.md +0 -348
  233. package/stacks/blazor-azure/.morph/hooks/pre-commit-agents.sh +0 -24
  234. package/stacks/blazor-azure/.morph/hooks/pre-commit-all.sh +0 -48
  235. package/stacks/blazor-azure/.morph/hooks/pre-commit-specs.sh +0 -49
  236. package/stacks/blazor-azure/.morph/hooks/task-completed.js +0 -73
  237. package/stacks/blazor-azure/.morph/hooks/teammate-idle.js +0 -68
  238. package/stacks/blazor-azure/.morph/standards/agent-framework-blazor-ui.md +0 -359
  239. package/stacks/blazor-azure/.morph/standards/agent-framework-production.md +0 -410
  240. package/stacks/blazor-azure/.morph/standards/agent-framework-setup.md +0 -413
  241. package/stacks/blazor-azure/.morph/standards/agent-framework-workflows.md +0 -349
  242. package/stacks/blazor-azure/.morph/standards/agent-teams-workflow.md +0 -474
  243. package/stacks/blazor-azure/.morph/standards/architecture.md +0 -325
  244. package/stacks/blazor-azure/.morph/standards/azure.md +0 -605
  245. package/stacks/blazor-azure/.morph/standards/coding.md +0 -377
  246. package/stacks/blazor-azure/.morph/standards/dotnet10-migration.md +0 -520
  247. package/stacks/blazor-azure/.morph/standards/fluent-ui-setup.md +0 -590
  248. package/stacks/blazor-azure/.morph/standards/migration-guide.md +0 -514
  249. package/stacks/blazor-azure/.morph/standards/passkeys-auth.md +0 -423
  250. package/stacks/blazor-azure/.morph/standards/vector-search-rag.md +0 -536
  251. package/stacks/blazor-azure/.morph/templates/CONTEXT-FEATURE.md +0 -276
  252. package/stacks/blazor-azure/.morph/templates/CONTEXT.md +0 -170
  253. package/stacks/blazor-azure/.morph/templates/FluentDesignTheme.cs +0 -149
  254. package/stacks/blazor-azure/.morph/templates/MudTheme.cs +0 -281
  255. package/stacks/blazor-azure/.morph/templates/agent.cs +0 -163
  256. package/stacks/blazor-azure/.morph/templates/clarify-questions.md +0 -159
  257. package/stacks/blazor-azure/.morph/templates/component.razor +0 -239
  258. package/stacks/blazor-azure/.morph/templates/contracts/Commands.cs +0 -74
  259. package/stacks/blazor-azure/.morph/templates/contracts/Entities.cs +0 -25
  260. package/stacks/blazor-azure/.morph/templates/contracts/Queries.cs +0 -74
  261. package/stacks/blazor-azure/.morph/templates/contracts/README.md +0 -74
  262. package/stacks/blazor-azure/.morph/templates/contracts.cs +0 -217
  263. package/stacks/blazor-azure/.morph/templates/decisions.md +0 -123
  264. package/stacks/blazor-azure/.morph/templates/design-system.css +0 -226
  265. package/stacks/blazor-azure/.morph/templates/infra/.dockerignore.example +0 -89
  266. package/stacks/blazor-azure/.morph/templates/infra/Dockerfile.example +0 -82
  267. package/stacks/blazor-azure/.morph/templates/infra/README.md +0 -286
  268. package/stacks/blazor-azure/.morph/templates/infra/app-insights.bicep +0 -63
  269. package/stacks/blazor-azure/.morph/templates/infra/app-service.bicep +0 -164
  270. package/stacks/blazor-azure/.morph/templates/infra/azure-pipelines-deploy.yml +0 -480
  271. package/stacks/blazor-azure/.morph/templates/infra/container-app-env.bicep +0 -49
  272. package/stacks/blazor-azure/.morph/templates/infra/container-app.bicep +0 -156
  273. package/stacks/blazor-azure/.morph/templates/infra/deploy-checklist.md +0 -426
  274. package/stacks/blazor-azure/.morph/templates/infra/deploy.ps1 +0 -229
  275. package/stacks/blazor-azure/.morph/templates/infra/deploy.sh +0 -208
  276. package/stacks/blazor-azure/.morph/templates/infra/key-vault.bicep +0 -91
  277. package/stacks/blazor-azure/.morph/templates/infra/main.bicep +0 -189
  278. package/stacks/blazor-azure/.morph/templates/infra/parameters.dev.json +0 -29
  279. package/stacks/blazor-azure/.morph/templates/infra/parameters.prod.json +0 -29
  280. package/stacks/blazor-azure/.morph/templates/infra/parameters.staging.json +0 -29
  281. package/stacks/blazor-azure/.morph/templates/infra/sql-database.bicep +0 -103
  282. package/stacks/blazor-azure/.morph/templates/infra/storage.bicep +0 -106
  283. package/stacks/blazor-azure/.morph/templates/integrations/asaas-client.cs +0 -387
  284. package/stacks/blazor-azure/.morph/templates/integrations/asaas-webhook.cs +0 -351
  285. package/stacks/blazor-azure/.morph/templates/integrations/azure-identity-config.cs +0 -288
  286. package/stacks/blazor-azure/.morph/templates/integrations/clerk-config.cs +0 -258
  287. package/stacks/blazor-azure/.morph/templates/job.cs +0 -171
  288. package/stacks/blazor-azure/.morph/templates/migration.cs +0 -83
  289. package/stacks/blazor-azure/.morph/templates/proposal.md +0 -141
  290. package/stacks/blazor-azure/.morph/templates/recap.md +0 -94
  291. package/stacks/blazor-azure/.morph/templates/repository.cs +0 -141
  292. package/stacks/blazor-azure/.morph/templates/saas/subscription.cs +0 -347
  293. package/stacks/blazor-azure/.morph/templates/saas/tenant.cs +0 -338
  294. package/stacks/blazor-azure/.morph/templates/service.cs +0 -139
  295. package/stacks/blazor-azure/.morph/templates/simulation.md +0 -353
  296. package/stacks/blazor-azure/.morph/templates/spec.md +0 -149
  297. package/stacks/blazor-azure/.morph/templates/sprint-status.yaml +0 -68
  298. package/stacks/blazor-azure/.morph/templates/state.template.json +0 -222
  299. package/stacks/blazor-azure/.morph/templates/story.md +0 -143
  300. package/stacks/blazor-azure/.morph/templates/tasks.md +0 -257
  301. package/stacks/blazor-azure/.morph/templates/test.cs +0 -239
  302. package/stacks/blazor-azure/.morph/templates/ui-components.md +0 -362
  303. package/stacks/blazor-azure/.morph/templates/ui-design-system.md +0 -286
  304. package/stacks/blazor-azure/.morph/templates/ui-flows.md +0 -336
  305. package/stacks/blazor-azure/.morph/templates/ui-mockups.md +0 -133
  306. package/stacks/nextjs-supabase/.morph/docs/easypanel-setup.md +0 -169
  307. package/stacks/nextjs-supabase/.morph/docs/supabase-mcp-setup.md +0 -247
  308. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/README.md +0 -697
  309. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/spec.md +0 -85
  310. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/tasks.md +0 -86
  311. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/README.md +0 -498
  312. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/decisions.md +0 -121
  313. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/spec.md +0 -138
  314. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/tasks.md +0 -162
  315. package/stacks/nextjs-supabase/.morph/standards/easypanel-deploy.md +0 -191
  316. package/stacks/nextjs-supabase/.morph/standards/nextjs-patterns.md +0 -193
  317. package/stacks/nextjs-supabase/.morph/standards/supabase-auth.md +0 -171
  318. package/stacks/nextjs-supabase/.morph/standards/supabase-pgvector.md +0 -164
  319. package/stacks/nextjs-supabase/.morph/standards/supabase-rls.md +0 -179
  320. package/stacks/nextjs-supabase/.morph/standards/supabase-storage.md +0 -148
  321. package/stacks/nextjs-supabase/.morph/templates/contracts.cs +0 -173
  322. package/stacks/nextjs-supabase/.morph/templates/contracts.ts +0 -168
  323. package/stacks/nextjs-supabase/.morph/templates/decisions.md +0 -115
  324. package/stacks/nextjs-supabase/.morph/templates/dockerfile-api.dockerfile +0 -38
  325. package/stacks/nextjs-supabase/.morph/templates/dockerfile-web.dockerfile +0 -48
  326. package/stacks/nextjs-supabase/.morph/templates/proposal.md +0 -145
  327. package/stacks/nextjs-supabase/.morph/templates/recap.md +0 -134
  328. package/stacks/nextjs-supabase/.morph/templates/rls-policy.sql +0 -57
  329. package/stacks/nextjs-supabase/.morph/templates/spec.md +0 -231
  330. package/stacks/nextjs-supabase/.morph/templates/supabase-migration.sql +0 -100
  331. package/stacks/nextjs-supabase/.morph/templates/tasks.md +0 -257
  332. /package/src/lib/{design-system-generator.js → generators/design-system-generator.js} +0 -0
  333. /package/src/lib/{learning-system.js → learning/learning-system.js} +0 -0
@@ -1,133 +0,0 @@
1
- # UI Mockups - {{FEATURE_NAME_TITLE}}
2
-
3
- > Wireframes ASCII e descrições de cada tela/componente da feature.
4
- > Este arquivo documenta VISUALMENTE como o usuário interagirá com o sistema.
5
- > Generated: {{DATE}}
6
-
7
- ---
8
-
9
- ## Tela 1: {Nome da Tela}
10
-
11
- ### Wireframe
12
-
13
- ```
14
- ┌─────────────────────────────────────────────────────────┐
15
- │ [{≡}] {Título da Página} [🔔] [👤] [⚙] │
16
- ├─────────────────────────────────────────────────────────┤
17
- │ │
18
- │ {Desenhe o wireframe ASCII aqui} │
19
- │ │
20
- │ Dicas: │
21
- │ - Use ┌─┐└┘├┤ para bordas │
22
- │ - Use │ para separadores verticais │
23
- │ - Use ─ para separadores horizontais │
24
- │ - Use [...] para botões │
25
- │ - Use [{x}] para checkboxes/toggles │
26
- │ - Use emojis para ícones (🔍 📊 ⚙ 👤 etc) │
27
- │ │
28
- └─────────────────────────────────────────────────────────┘
29
- ```
30
-
31
- ### Descrição
32
-
33
- - **Propósito**: {O que o usuário pode fazer nesta tela? Qual problema resolve?}
34
- - **Componentes Principais**:
35
- - {Componente 1}: {Descrição breve}
36
- - {Componente 2}: {Descrição breve}
37
- - {Componente 3}: {Descrição breve}
38
- - **Interações**:
39
- - **Click em {elemento}**: {O que acontece}
40
- - **Hover em {elemento}**: {Feedback visual}
41
- - **Submit form**: {Ação realizada}
42
- - **Estados**:
43
- - **Default**: {Aparência inicial}
44
- - **Loading**: {Como mostra carregamento? Skeleton? Spinner?}
45
- - **Error**: {Como mostra erros? Toast? Message bar?}
46
- - **Empty**: {Mensagem quando não há dados? CTA para criar?}
47
- - **Success**: {Feedback de sucesso?}
48
-
49
- ### Responsividade
50
-
51
- - **Desktop (> 1024px)**: {Descrição do layout desktop}
52
- - **Tablet (768px - 1024px)**: {Mudanças no layout}
53
- - **Mobile (< 768px)**: {Layout mobile - stack vertical? Menu hamburger?}
54
-
55
- ### Navegação
56
-
57
- - **De**: {Tela/componente anterior}
58
- - **Para**: {Próximas telas possíveis}
59
- - **Ações**:
60
- - [{Botão}]: Navega para {tela}
61
- - [{Link}]: Abre {modal/página}
62
-
63
- ### Acessibilidade
64
-
65
- - **Foco inicial**: {Onde o cursor deve iniciar?}
66
- - **Tab order**: {Ordem lógica de navegação}
67
- - **Screen reader**: {Principais ARIA labels}
68
-
69
- ---
70
-
71
- ## Tela 2: {Nome da Próxima Tela}
72
-
73
- {Repita a estrutura acima para cada tela}
74
-
75
- ---
76
-
77
- ## Componentes Reutilizáveis
78
-
79
- ### {Nome do Componente}
80
-
81
- **Wireframe:**
82
- ```
83
- {ASCII art do componente isolado}
84
- ```
85
-
86
- **Uso:**
87
- - Aparece em: {Lista de telas onde este componente aparece}
88
- - Variantes: {Diferentes versões/estados do componente}
89
- - Props: {Parâmetros que o componente recebe}
90
-
91
- ---
92
-
93
- ## Fluxo de Navegação (Overview)
94
-
95
- ```
96
- [Tela Inicial]
97
-
98
- ├─[Ação 1]──▶ [Tela A]
99
- │ │
100
- │ └─[Voltar]──▶ [Tela Inicial]
101
-
102
- ├─[Ação 2]──▶ [Tela B]
103
- │ │
104
- │ ├─[Próximo]──▶ [Tela C]
105
- │ │
106
- │ └─[Cancelar]──▶ [Tela Inicial]
107
-
108
- └─[Ação 3]──▶ [Tela D]
109
- ```
110
-
111
- ---
112
-
113
- ## Notas de Design
114
-
115
- ### Paleta de Cores
116
- - **Primária**: {Cor principal da interface}
117
- - **Secundária**: {Cor para ações secundárias}
118
- - **Sucesso**: {Verde para feedback positivo}
119
- - **Erro**: {Vermelho para erros}
120
- - **Warning**: {Amarelo para alertas}
121
-
122
- ### Tipografia
123
- - **Títulos**: {Font, tamanho}
124
- - **Corpo**: {Font, tamanho}
125
- - **Labels**: {Font, tamanho}
126
-
127
- ### Espaçamento
128
- - **Padding padrão**: {16px, 24px, etc}
129
- - **Gap entre elementos**: {8px, 12px, etc}
130
-
131
- ---
132
-
133
- *Template MORPH-SPEC v2.1.0 by Polymorphism Tech*
@@ -1,169 +0,0 @@
1
- # EasyPanel Setup Guide
2
-
3
- > Deploy .NET API + Next.js to VPS via EasyPanel
4
-
5
- ## Prerequisites
6
-
7
- - VPS with EasyPanel installed (Ubuntu 22.04+ recommended)
8
- - GitHub repository with Dockerfiles
9
- - Domain name (optional, EasyPanel provides subdomains)
10
-
11
- ## 1. GitHub Integration
12
-
13
- ### Create Personal Access Token (PAT)
14
-
15
- 1. GitHub > Settings > Developer Settings > Personal Access Tokens > Fine-grained
16
- 2. Repository access: select your repo
17
- 3. Permissions: Contents (read), Metadata (read)
18
- 4. Copy token for EasyPanel
19
-
20
- ### Connect in EasyPanel
21
-
22
- 1. EasyPanel Dashboard > Settings > Git
23
- 2. Add GitHub provider with PAT
24
- 3. Test connection
25
-
26
- ## 2. Create Project
27
-
28
- ```
29
- EasyPanel Dashboard > Projects > Create Project
30
- Name: my-saas-app
31
- ```
32
-
33
- ## 3. Configure Services
34
-
35
- ### API Service (.NET)
36
-
37
- | Setting | Value |
38
- |---------|-------|
39
- | Type | App |
40
- | Source | GitHub |
41
- | Repository | your-org/your-repo |
42
- | Branch | main |
43
- | Build Path | . |
44
- | Dockerfile | Dockerfile.api |
45
- | Port | 8080 |
46
-
47
- ### Web Service (Next.js)
48
-
49
- | Setting | Value |
50
- |---------|-------|
51
- | Type | App |
52
- | Source | GitHub |
53
- | Repository | your-org/your-repo |
54
- | Branch | main |
55
- | Build Path | . |
56
- | Dockerfile | Dockerfile.web |
57
- | Port | 3000 |
58
-
59
- ## 4. Environment Variables
60
-
61
- ### API (.NET)
62
-
63
- ```
64
- ASPNETCORE_ENVIRONMENT=Production
65
- SUPABASE_URL=https://xxx.supabase.co
66
- SUPABASE_SERVICE_ROLE_KEY=eyJ...
67
- SUPABASE_JWT_SECRET=your-jwt-secret
68
- ASPNETCORE_URLS=http://+:8080
69
- ```
70
-
71
- ### Web (Next.js)
72
-
73
- ```
74
- NODE_ENV=production
75
- NEXT_PUBLIC_SUPABASE_URL=https://xxx.supabase.co
76
- NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
77
- NEXT_PUBLIC_API_URL=https://api.yourdomain.com
78
- ```
79
-
80
- CRITICAL: Never commit secrets. Use EasyPanel env vars panel only.
81
-
82
- ## 5. Domain + SSL
83
-
84
- ### Custom Domain
85
-
86
- 1. Service > Domains > Add Domain
87
- 2. Enter: `api.yourdomain.com` (for API) or `app.yourdomain.com` (for web)
88
- 3. DNS: Add A record pointing to VPS IP
89
- 4. SSL: Enable "Let's Encrypt" (auto-renews)
90
-
91
- ### EasyPanel Subdomain (free)
92
-
93
- Format: `service-project.server.easypanel.host`
94
- SSL included automatically.
95
-
96
- ## 6. Auto-Deploy
97
-
98
- ### GitHub Webhook
99
-
100
- 1. Service > Settings > Enable "Auto Deploy"
101
- 2. EasyPanel generates webhook URL
102
- 3. GitHub repo > Settings > Webhooks > Add webhook
103
- 4. Payload URL: (from EasyPanel)
104
- 5. Content type: application/json
105
- 6. Events: Push events only
106
- 7. Branch filter: main
107
-
108
- Pushes to `main` now trigger automatic builds.
109
-
110
- ## 7. Health Checks
111
-
112
- ### API Health Check
113
-
114
- ```
115
- Path: /health
116
- Port: 8080
117
- Interval: 30s
118
- Timeout: 5s
119
- Retries: 3
120
- ```
121
-
122
- .NET endpoint:
123
- ```csharp
124
- app.MapGet("/health", () => Results.Ok(new { status = "healthy" }));
125
- ```
126
-
127
- ### Web Health Check
128
-
129
- ```
130
- Path: /api/health
131
- Port: 3000
132
- Interval: 30s
133
- ```
134
-
135
- Next.js route handler:
136
- ```typescript
137
- // app/api/health/route.ts
138
- export function GET() {
139
- return Response.json({ status: 'healthy' });
140
- }
141
- ```
142
-
143
- ## 8. Monitoring
144
-
145
- ### Logs
146
-
147
- EasyPanel Dashboard > Service > Logs (real-time streaming)
148
-
149
- ### Resource Usage
150
-
151
- EasyPanel Dashboard > Service > Metrics (CPU, Memory, Network)
152
-
153
- ### Recommended VPS Sizing
154
-
155
- | Workload | RAM | CPU | Storage |
156
- |----------|-----|-----|---------|
157
- | Dev/MVP | 2GB | 1 vCPU | 40GB |
158
- | Small prod | 4GB | 2 vCPU | 80GB |
159
- | Medium prod | 8GB | 4 vCPU | 160GB |
160
-
161
- ## Troubleshooting
162
-
163
- | Issue | Solution |
164
- |-------|----------|
165
- | Build fails | Check Dockerfile paths, ensure multi-stage layers correct |
166
- | Port conflict | Verify service ports don't overlap |
167
- | SSL not working | Wait 5 min for Let's Encrypt propagation, check DNS |
168
- | Auto-deploy not triggering | Verify webhook URL and branch filter |
169
- | Container OOM | Increase VPS RAM or optimize app memory usage |
@@ -1,247 +0,0 @@
1
- # Supabase MCP Server Setup Guide
2
-
3
- > Direct database management from Claude Code via Model Context Protocol
4
-
5
- ## What It Provides
6
-
7
- The Supabase MCP Server lets Claude Code interact directly with your Supabase project's database. This enables:
8
-
9
- - Running SQL queries and viewing results
10
- - Creating and managing database migrations
11
- - Inspecting table schemas, indexes, and RLS policies
12
- - Managing Supabase Auth, Storage, and Edge Functions
13
- - Schema diffing and migration generation
14
-
15
- ## CRITICAL WARNING
16
-
17
- ```
18
- ==========================================================
19
- NEVER connect to a PRODUCTION Supabase project via MCP.
20
-
21
- MCP provides direct database access. A single bad query
22
- can DROP tables, DELETE data, or DISABLE RLS.
23
-
24
- ONLY connect to:
25
- - Local Supabase (supabase start)
26
- - Development/staging projects
27
- - Disposable test projects
28
- ==========================================================
29
- ```
30
-
31
- ## Setup
32
-
33
- ### 1. Get Your Supabase Connection Details
34
-
35
- From your Supabase Dashboard > Project Settings > API:
36
- - **Project URL**: `https://xxxxxxxxxxxx.supabase.co`
37
- - **Service Role Key**: `eyJhbGc...` (Settings > API > service_role key)
38
-
39
- For local Supabase (`supabase start`):
40
- - **Project URL**: `http://127.0.0.1:54321`
41
- - **Service Role Key**: Output from `supabase status`
42
-
43
- ### 2. Configure Claude Desktop / Claude Code
44
-
45
- Add the Supabase MCP server to your configuration.
46
-
47
- **Claude Desktop** (`claude_desktop_config.json`):
48
-
49
- ```json
50
- {
51
- "mcpServers": {
52
- "supabase": {
53
- "command": "npx",
54
- "args": [
55
- "-y",
56
- "@supabase/mcp-server-supabase@latest",
57
- "--supabase-url",
58
- "https://xxxxxxxxxxxx.supabase.co",
59
- "--supabase-service-role-key",
60
- "eyJhbGc...",
61
- "--read-only"
62
- ]
63
- }
64
- }
65
- }
66
- ```
67
-
68
- **Claude Code** (`.claude/settings.local.json`):
69
-
70
- ```json
71
- {
72
- "mcpServers": {
73
- "supabase": {
74
- "command": "npx",
75
- "args": [
76
- "-y",
77
- "@supabase/mcp-server-supabase@latest",
78
- "--supabase-url",
79
- "https://xxxxxxxxxxxx.supabase.co",
80
- "--supabase-service-role-key",
81
- "eyJhbGc...",
82
- "--read-only"
83
- ]
84
- }
85
- }
86
- }
87
- ```
88
-
89
- ### 3. Default: Read-Only Mode
90
-
91
- The `--read-only` flag is included by default. In this mode:
92
-
93
- | Operation | Allowed |
94
- |-----------|---------|
95
- | SELECT queries | Yes |
96
- | DESCRIBE / schema inspection | Yes |
97
- | LIST tables, policies, indexes | Yes |
98
- | INSERT / UPDATE / DELETE | No |
99
- | CREATE / ALTER / DROP | No |
100
- | Migration creation | No |
101
-
102
- To enable write access (development only), remove `--read-only`:
103
-
104
- ```json
105
- {
106
- "mcpServers": {
107
- "supabase": {
108
- "command": "npx",
109
- "args": [
110
- "-y",
111
- "@supabase/mcp-server-supabase@latest",
112
- "--supabase-url",
113
- "http://127.0.0.1:54321",
114
- "--supabase-service-role-key",
115
- "your-local-service-role-key"
116
- ]
117
- }
118
- }
119
- }
120
- ```
121
-
122
- Write mode should ONLY be used with local Supabase or disposable dev projects.
123
-
124
- ## Available Tool Groups
125
-
126
- The Supabase MCP Server exposes these tool groups:
127
-
128
- ### Database Tools
129
-
130
- | Tool | Description |
131
- |------|-------------|
132
- | `list_tables` | List all tables in the project |
133
- | `list_extensions` | List installed PostgreSQL extensions |
134
- | `list_migrations` | List applied migrations |
135
- | `apply_migration` | Apply a new SQL migration |
136
- | `execute_sql` | Run arbitrary SQL (read-only by default) |
137
- | `get_migration_status` | Check pending vs applied migrations |
138
-
139
- ### Auth Tools
140
-
141
- | Tool | Description |
142
- |------|-------------|
143
- | `get_auth_config` | View auth provider configuration |
144
- | `list_auth_users` | List authenticated users |
145
-
146
- ### Storage Tools
147
-
148
- | Tool | Description |
149
- |------|-------------|
150
- | `list_storage_buckets` | List storage buckets |
151
- | `get_storage_config` | View storage configuration |
152
-
153
- ### Project Tools
154
-
155
- | Tool | Description |
156
- |------|-------------|
157
- | `get_project_config` | View project settings |
158
- | `get_project_api_keys` | View API keys |
159
-
160
- ## Usage for Migrations and Schema Management
161
-
162
- ### Inspecting Current Schema
163
-
164
- Ask Claude Code to use the MCP tools:
165
-
166
- ```
167
- "Show me all tables and their RLS policies"
168
- "What indexes exist on the documents table?"
169
- "List all migrations applied so far"
170
- ```
171
-
172
- ### Creating Migrations
173
-
174
- With write mode enabled on a local/dev project:
175
-
176
- ```
177
- "Create a migration to add a 'tags' column to the documents table"
178
- "Add an RLS policy so only tenant admins can delete documents"
179
- "Enable the pgvector extension and create the embedding column"
180
- ```
181
-
182
- The MCP server will generate and apply SQL migrations through Supabase's migration system.
183
-
184
- ### Schema Diffing
185
-
186
- ```
187
- "Compare the current schema against the migration files"
188
- "Show me what would change if I apply the pending migration"
189
- ```
190
-
191
- ## Usage with MORPH-SPEC Workflow
192
-
193
- During MORPH-SPEC phases, the MCP server is useful for:
194
-
195
- | Phase | MCP Usage |
196
- |-------|-----------|
197
- | **Phase 2 (Design)** | Inspect existing schema to inform spec |
198
- | **Phase 4 (Tasks)** | Verify migration dependencies |
199
- | **Phase 5 (Implement)** | Apply migrations, verify RLS policies, test queries |
200
-
201
- ### Example Workflow
202
-
203
- ```
204
- 1. Design phase: "List current tables and extensions"
205
- 2. Write migration SQL in supabase/migrations/
206
- 3. Apply via MCP: "Apply migration 003_add_search_logs.sql"
207
- 4. Verify: "Show RLS policies on search_logs table"
208
- 5. Test: "Run SELECT * FROM search_logs LIMIT 5"
209
- ```
210
-
211
- ## Security Best Practices
212
-
213
- 1. **Always use `--read-only` unless actively running migrations**
214
- 2. **Never store service_role keys in version control** -- use environment variables or a secrets manager
215
- 3. **Use local Supabase for development** (`supabase start`) instead of cloud projects
216
- 4. **Rotate keys if accidentally exposed** -- Supabase Dashboard > Settings > API > Regenerate
217
- 5. **Restrict MCP to development machines only** -- never configure on CI/CD or shared servers
218
- 6. **Review SQL before applying** -- the MCP server executes SQL with service_role privileges, bypassing all RLS
219
-
220
- ### Environment Variable Alternative
221
-
222
- Instead of hardcoding keys in the config file:
223
-
224
- ```json
225
- {
226
- "mcpServers": {
227
- "supabase": {
228
- "command": "npx",
229
- "args": [
230
- "-y",
231
- "@supabase/mcp-server-supabase@latest",
232
- "--read-only"
233
- ],
234
- "env": {
235
- "SUPABASE_URL": "${SUPABASE_URL}",
236
- "SUPABASE_SERVICE_ROLE_KEY": "${SUPABASE_SERVICE_ROLE_KEY}"
237
- }
238
- }
239
- }
240
- }
241
- ```
242
-
243
- Set the environment variables in your shell profile or `.env` file (never committed).
244
-
245
- ---
246
-
247
- *MORPH-SPEC by Polymorphism Tech*