@polymorphism-tech/morph-spec 4.3.3 → 4.3.4

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 (401) hide show
  1. package/.morph/analytics/threads-log.jsonl +9 -0
  2. package/{stacks/blazor-azure/.morph → .morph}/config/config.json +9 -9
  3. package/.morph/state.json +48 -0
  4. package/bin/detect-agents.js +1 -2
  5. package/bin/morph-spec.js +2 -15
  6. package/{stacks/blazor-azure/.morph/config → framework}/agents.json +948 -948
  7. package/{stacks/nextjs-supabase/.claude → framework}/commands/morph-infra.md +1 -1
  8. package/framework/hooks/README.md +282 -0
  9. package/framework/hooks/agent-stop/validate-and-continue.js +96 -0
  10. package/framework/hooks/agent-stop/validate-checkpoints.js +101 -0
  11. package/framework/hooks/agent-stop/validate-tests.js +109 -0
  12. package/framework/hooks/agent-teams/dispatch.js +67 -0
  13. package/framework/hooks/agent-teams/phase-advanced.js +80 -0
  14. package/framework/hooks/agent-teams/task-completed.js +76 -0
  15. package/framework/hooks/agent-teams/teammate-idle.js +70 -0
  16. package/framework/hooks/commit-msg/conventional-commits.sh +33 -0
  17. package/framework/hooks/pre-commit/agents.sh +25 -0
  18. package/framework/hooks/pre-commit/orchestrator.sh +64 -0
  19. package/framework/hooks/pre-commit/specs.sh +50 -0
  20. package/framework/hooks/pre-push/run-tests.sh +44 -0
  21. package/framework/index/troubleshooting-index.json +184 -0
  22. package/framework/memory/patterns-learned.md +766 -0
  23. package/framework/skills/level-0-meta/README.md +7 -0
  24. package/framework/skills/level-0-meta/code-review.md +226 -0
  25. package/framework/skills/level-0-meta/morph-checklist.md +117 -0
  26. package/framework/skills/level-0-meta/simulation-checklist.md +77 -0
  27. package/framework/skills/level-1-workflows/README.md +7 -0
  28. package/framework/skills/level-1-workflows/morph-replicate.md +213 -0
  29. package/framework/skills/level-1-workflows/phase-clarify.md +131 -0
  30. package/framework/skills/level-1-workflows/phase-design.md +213 -0
  31. package/framework/skills/level-1-workflows/phase-setup.md +106 -0
  32. package/framework/skills/level-1-workflows/phase-tasks.md +164 -0
  33. package/framework/skills/level-1-workflows/phase-uiux.md +169 -0
  34. package/framework/skills/level-2-domains/README.md +14 -0
  35. package/framework/skills/level-2-domains/ai-agents/ai-system-architect.md +192 -0
  36. package/framework/skills/level-2-domains/architecture/po-pm-advisor.md +197 -0
  37. package/framework/skills/level-2-domains/architecture/prompt-engineer.md +189 -0
  38. package/framework/skills/level-2-domains/architecture/seo-growth-hacker.md +320 -0
  39. package/framework/skills/level-2-domains/architecture/standards-architect.md +156 -0
  40. package/framework/skills/level-2-domains/backend/api-designer.md +59 -0
  41. package/framework/skills/level-2-domains/backend/dotnet-senior.md +77 -0
  42. package/framework/skills/level-2-domains/backend/ef-modeler.md +58 -0
  43. package/framework/skills/level-2-domains/backend/hangfire-orchestrator.md +126 -0
  44. package/framework/skills/level-2-domains/backend/ms-agent-expert.md +45 -0
  45. package/framework/skills/level-2-domains/frontend/blazor-builder.md +210 -0
  46. package/framework/skills/level-2-domains/frontend/nextjs-expert.md +154 -0
  47. package/framework/skills/level-2-domains/frontend/ui-ux-designer.md +191 -0
  48. package/framework/skills/level-2-domains/infrastructure/azure-architect.md +142 -0
  49. package/framework/skills/level-2-domains/infrastructure/azure-deploy-specialist.md +699 -0
  50. package/framework/skills/level-2-domains/infrastructure/bicep-architect.md +126 -0
  51. package/framework/skills/level-2-domains/infrastructure/container-specialist.md +131 -0
  52. package/framework/skills/level-2-domains/infrastructure/devops-engineer.md +119 -0
  53. package/framework/skills/level-2-domains/integrations/asaas-financial.md +130 -0
  54. package/framework/skills/level-2-domains/integrations/azure-identity.md +142 -0
  55. package/framework/skills/level-2-domains/integrations/clerk-auth.md +108 -0
  56. package/framework/skills/level-2-domains/integrations/hangfire-orchestrator.md +64 -0
  57. package/framework/skills/level-2-domains/integrations/resend-email.md +119 -0
  58. package/framework/skills/level-2-domains/quality/code-analyzer.md +235 -0
  59. package/framework/skills/level-2-domains/quality/testing-specialist.md +126 -0
  60. package/framework/skills/level-3-technologies/README.md +7 -0
  61. package/framework/skills/level-4-patterns/README.md +7 -0
  62. package/framework/squad-templates/backend-only.json +34 -0
  63. package/framework/squad-templates/frontend-only.json +34 -0
  64. package/framework/squad-templates/full-stack.json +52 -0
  65. package/framework/templates/.idea/morph-templates.xml +92 -0
  66. package/framework/templates/.vscode/morph-templates.code-snippets +186 -0
  67. package/framework/templates/IDE-SNIPPETS.md +266 -0
  68. package/framework/templates/README.md +814 -0
  69. package/framework/templates/REGISTRY.json +1677 -0
  70. package/framework/templates/code/dotnet/backend/repository.cs +141 -0
  71. package/framework/templates/code/dotnet/backend/service.cs +139 -0
  72. package/framework/templates/code/dotnet/contracts/Commands.cs +74 -0
  73. package/framework/templates/code/dotnet/contracts/Entities.cs +25 -0
  74. package/framework/templates/code/dotnet/contracts/Queries.cs +74 -0
  75. package/framework/templates/code/dotnet/contracts/README.md +74 -0
  76. package/framework/templates/code/dotnet/contracts/api-contracts.cs +173 -0
  77. package/framework/templates/code/dotnet/contracts/contracts.cs +217 -0
  78. package/framework/templates/code/dotnet/database/migration.cs +83 -0
  79. package/framework/templates/code/dotnet/frontend/component.razor +239 -0
  80. package/framework/templates/code/dotnet/jobs/agent.cs +163 -0
  81. package/framework/templates/code/dotnet/jobs/job.cs +171 -0
  82. package/framework/templates/code/dotnet/test.cs +239 -0
  83. package/framework/templates/code/sql/rls-policy.sql +57 -0
  84. package/framework/templates/code/sql/supabase-migration.sql +100 -0
  85. package/framework/templates/code/sql/supabase-migration.template.sql +113 -0
  86. package/framework/templates/code/typescript/contracts.ts +168 -0
  87. package/framework/templates/context/CONTEXT-FEATURE.md +276 -0
  88. package/framework/templates/context/CONTEXT.md +181 -0
  89. package/framework/templates/docs/proposal.md +182 -0
  90. package/framework/templates/docs/spec.md +149 -0
  91. package/framework/templates/examples/design-system-examples.md +357 -0
  92. package/framework/templates/examples/spec-examples.md +90 -0
  93. package/framework/templates/feature/decisions.md +187 -0
  94. package/framework/templates/feature/recap.md +146 -0
  95. package/framework/templates/feature/tasks.md +199 -0
  96. package/framework/templates/infrastructure/azure/Dockerfile.example +82 -0
  97. package/framework/templates/infrastructure/azure/README.md +286 -0
  98. package/framework/templates/infrastructure/azure/app-insights.bicep +63 -0
  99. package/framework/templates/infrastructure/azure/app-service.bicep +164 -0
  100. package/framework/templates/infrastructure/azure/container-app-env.bicep +49 -0
  101. package/framework/templates/infrastructure/azure/container-app.bicep +156 -0
  102. package/framework/templates/infrastructure/azure/deploy-checklist.md +426 -0
  103. package/framework/templates/infrastructure/azure/deploy.ps1 +229 -0
  104. package/framework/templates/infrastructure/azure/deploy.sh +208 -0
  105. package/framework/templates/infrastructure/azure/key-vault.bicep +91 -0
  106. package/framework/templates/infrastructure/azure/main.bicep +189 -0
  107. package/framework/templates/infrastructure/azure/parameters.dev.json +29 -0
  108. package/framework/templates/infrastructure/azure/parameters.prod.json +29 -0
  109. package/framework/templates/infrastructure/azure/parameters.staging.json +29 -0
  110. package/framework/templates/infrastructure/azure/sql-database.bicep +103 -0
  111. package/framework/templates/infrastructure/azure/storage.bicep +106 -0
  112. package/framework/templates/infrastructure/docker/Dockerfile.template +58 -0
  113. package/framework/templates/infrastructure/docker/docker-compose.template.yml +67 -0
  114. package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -0
  115. package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -0
  116. package/framework/templates/infrastructure/docker/easypanel.template.json +54 -0
  117. package/framework/templates/infrastructure/github/README.md +593 -0
  118. package/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +22 -0
  119. package/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +45 -0
  120. package/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +27 -0
  121. package/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +61 -0
  122. package/framework/templates/infrastructure/github/workflows/deploy-easypanel.yml.hbs +31 -0
  123. package/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +59 -0
  124. package/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +39 -0
  125. package/framework/templates/integrations/asaas-client.cs +387 -0
  126. package/framework/templates/integrations/asaas-webhook.cs +351 -0
  127. package/framework/templates/integrations/azure-identity-config.cs +288 -0
  128. package/framework/templates/integrations/clerk-config.cs +258 -0
  129. package/framework/templates/meta-prompts/fusion/fusion-agent.md +76 -0
  130. package/framework/templates/meta-prompts/fusion/fusion-aggregator.md +100 -0
  131. package/framework/templates/meta-prompts/hops/hop-retry.md +78 -0
  132. package/framework/templates/meta-prompts/hops/hop-validation.md +97 -0
  133. package/framework/templates/meta-prompts/hops/hop-wrapper.md +36 -0
  134. package/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +113 -0
  135. package/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +80 -0
  136. package/framework/templates/meta-prompts/squad-leaders/backend-squad.md +90 -0
  137. package/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +126 -0
  138. package/framework/templates/meta-prompts/squad-leaders/squad-leader.md +43 -0
  139. package/framework/templates/meta-prompts/validators/checkpoint-validator.md +107 -0
  140. package/framework/templates/meta-prompts/validators/pre-commit-validator.md +95 -0
  141. package/framework/templates/saas/subscription.cs +347 -0
  142. package/framework/templates/saas/tenant.cs +338 -0
  143. package/framework/templates/state.template.json +17 -0
  144. package/framework/templates/ui/FluentDesignTheme.cs +149 -0
  145. package/framework/templates/ui/MudTheme.cs +281 -0
  146. package/framework/templates/ui/design-system.css +226 -0
  147. package/framework/workflows/README.md +1041 -0
  148. package/framework/workflows/configs/design-impl.json +49 -0
  149. package/framework/workflows/configs/fast-track.json +42 -0
  150. package/framework/workflows/configs/full-morph.json +79 -0
  151. package/framework/workflows/configs/fusion.json +39 -0
  152. package/framework/workflows/configs/long-running.json +33 -0
  153. package/framework/workflows/configs/standard.json +60 -0
  154. package/framework/workflows/configs/ui-refresh.json +49 -0
  155. package/framework/workflows/configs/zero-touch.json +75 -0
  156. package/framework/workflows/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -0
  157. package/framework/workflows/docs/design-impl.md +37 -0
  158. package/framework/workflows/docs/enforcement-pipeline.md +668 -0
  159. package/framework/workflows/docs/fast-track.md +29 -0
  160. package/framework/workflows/docs/full-morph.md +76 -0
  161. package/framework/workflows/docs/standard.md +44 -0
  162. package/framework/workflows/docs/ui-refresh.md +39 -0
  163. package/package.json +3 -3
  164. package/src/commands/feature/create-story.js +11 -7
  165. package/src/commands/project/detect-agents.js +1 -2
  166. package/src/commands/project/init.js +69 -32
  167. package/src/commands/project/update.js +2 -2
  168. package/src/commands/templates/template-customize.js +3 -17
  169. package/src/commands/templates/template-list.js +1 -15
  170. package/src/commands/templates/template-render.js +2 -3
  171. package/src/commands/templates/template-show.js +3 -5
  172. package/src/core/templates/template-registry.js +9 -23
  173. package/src/lib/detectors/structure-detector.js +3 -3
  174. package/src/lib/generators/context-generator.js +18 -6
  175. package/src/lib/hooks/hook-executor.js +0 -2
  176. package/src/lib/orchestration/team-orchestrator.js +1 -2
  177. package/src/lib/standards/standards-context-injector.js +3 -4
  178. package/src/lib/troubleshooting/troubleshoot-grep.js +3 -9
  179. package/src/lib/validators/validation-runner.js +1 -2
  180. package/src/utils/file-copier.js +1 -2
  181. package/docs/README.md +0 -144
  182. package/docs/api/fonts/Montserrat/Montserrat-Bold.eot +0 -0
  183. package/docs/api/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
  184. package/docs/api/fonts/Montserrat/Montserrat-Bold.woff +0 -0
  185. package/docs/api/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
  186. package/docs/api/fonts/Montserrat/Montserrat-Regular.eot +0 -0
  187. package/docs/api/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
  188. package/docs/api/fonts/Montserrat/Montserrat-Regular.woff +0 -0
  189. package/docs/api/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
  190. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  191. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -978
  192. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  193. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  194. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
  195. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  196. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -1049
  197. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  198. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  199. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
  200. package/docs/api/scripts/collapse.js +0 -39
  201. package/docs/api/scripts/commonNav.js +0 -28
  202. package/docs/api/scripts/linenumber.js +0 -25
  203. package/docs/api/scripts/nav.js +0 -12
  204. package/docs/api/scripts/polyfill.js +0 -4
  205. package/docs/api/scripts/prettify/Apache-License-2.0.txt +0 -202
  206. package/docs/api/scripts/prettify/lang-css.js +0 -2
  207. package/docs/api/scripts/prettify/prettify.js +0 -28
  208. package/docs/api/scripts/search.js +0 -99
  209. package/docs/api/styles/jsdoc.css +0 -776
  210. package/docs/api/styles/prettify.css +0 -80
  211. package/docs/cli-auto-detection.md +0 -219
  212. package/docs/getting-started.md +0 -296
  213. package/docs/installation.md +0 -361
  214. package/docs/next-generation/AGENTS.md +0 -521
  215. package/docs/next-generation/ANALYSIS.md +0 -555
  216. package/docs/next-generation/ARCHITECTURE.md +0 -436
  217. package/docs/next-generation/CONTEXT-OPTIMIZATION.md +0 -267
  218. package/docs/next-generation/EXECUTION-FLOW.md +0 -274
  219. package/docs/next-generation/FEATURES.md +0 -688
  220. package/docs/next-generation/META-PROMPTS.md +0 -235
  221. package/docs/next-generation/MIGRATION-GUIDE.md +0 -253
  222. package/docs/next-generation/README.md +0 -231
  223. package/docs/next-generation/ROADMAP.md +0 -801
  224. package/docs/next-generation/THREAD-MANAGEMENT.md +0 -240
  225. package/docs/templates.md +0 -418
  226. package/docs/troubleshooting.md +0 -269
  227. package/docs/validation-checklist.md +0 -264
  228. package/scripts/postinstall.js +0 -132
  229. package/src/lib/stacks/index.js +0 -7
  230. package/src/lib/stacks/stack-resolver.js +0 -180
  231. package/stacks/blazor-azure/.claude/commands/morph-deploy.md +0 -529
  232. package/stacks/blazor-azure/.claude/commands/morph-infra.md +0 -209
  233. package/stacks/blazor-azure/.morph/.morphversion +0 -5
  234. package/stacks/blazor-azure/.morph/project/context/README.md +0 -17
  235. package/stacks/blazor-azure/CLAUDE.md +0 -155
  236. package/stacks/blazor-azure/README.md +0 -79
  237. package/stacks/nextjs-supabase/.claude/commands/morph-apply.md +0 -221
  238. package/stacks/nextjs-supabase/.claude/commands/morph-archive.md +0 -79
  239. package/stacks/nextjs-supabase/.claude/commands/morph-deploy.md +0 -529
  240. package/stacks/nextjs-supabase/.claude/commands/morph-preflight.md +0 -227
  241. package/stacks/nextjs-supabase/.claude/commands/morph-proposal.md +0 -122
  242. package/stacks/nextjs-supabase/.claude/commands/morph-status.md +0 -86
  243. package/stacks/nextjs-supabase/.claude/commands/morph-troubleshoot.md +0 -122
  244. package/stacks/nextjs-supabase/.morph/.morphversion +0 -5
  245. package/stacks/nextjs-supabase/.morph/config/agents.json +0 -345
  246. package/stacks/nextjs-supabase/.morph/config/config.json +0 -9
  247. package/stacks/nextjs-supabase/.morph/project/context/README.md +0 -17
  248. package/stacks/nextjs-supabase/.morph/standards/ai-agents/blazor-ui.md +0 -364
  249. package/stacks/nextjs-supabase/.morph/standards/ai-agents/production.md +0 -415
  250. package/stacks/nextjs-supabase/.morph/standards/ai-agents/setup.md +0 -418
  251. package/stacks/nextjs-supabase/.morph/standards/ai-agents/team-orchestration.md +0 -479
  252. package/stacks/nextjs-supabase/.morph/standards/ai-agents/workflows.md +0 -354
  253. package/stacks/nextjs-supabase/.morph/standards/architecture/ddd/aggregates.md +0 -120
  254. package/stacks/nextjs-supabase/.morph/standards/architecture/ddd/entities.md +0 -99
  255. package/stacks/nextjs-supabase/.morph/standards/architecture/ddd/value-objects.md +0 -124
  256. package/stacks/nextjs-supabase/.morph/standards/backend/api/minimal-api.md +0 -494
  257. package/stacks/nextjs-supabase/.morph/standards/backend/api/rest.md +0 -492
  258. package/stacks/nextjs-supabase/.morph/standards/backend/api/validation.md +0 -88
  259. package/stacks/nextjs-supabase/.morph/standards/backend/authentication/passkeys.md +0 -428
  260. package/stacks/nextjs-supabase/.morph/standards/backend/database/ef-core.md +0 -199
  261. package/stacks/nextjs-supabase/.morph/standards/backend/database/migrations.md +0 -393
  262. package/stacks/nextjs-supabase/.morph/standards/backend/database/postgresql/database.md +0 -352
  263. package/stacks/nextjs-supabase/.morph/standards/backend/database/repository-patterns.md +0 -528
  264. package/stacks/nextjs-supabase/.morph/standards/backend/database/vector-search-rag.md +0 -541
  265. package/stacks/nextjs-supabase/.morph/standards/backend/dotnet/async.md +0 -366
  266. package/stacks/nextjs-supabase/.morph/standards/backend/dotnet/core.md +0 -117
  267. package/stacks/nextjs-supabase/.morph/standards/backend/dotnet/di.md +0 -439
  268. package/stacks/nextjs-supabase/.morph/standards/backend/dotnet/program-cs-checklist.md +0 -92
  269. package/stacks/nextjs-supabase/.morph/standards/backend/integrations/asaas/asaas-api.md +0 -216
  270. package/stacks/nextjs-supabase/.morph/standards/backend/integrations/clerk/clerk-auth.md +0 -290
  271. package/stacks/nextjs-supabase/.morph/standards/backend/integrations/hangfire/hangfire-jobs.md +0 -350
  272. package/stacks/nextjs-supabase/.morph/standards/backend/integrations/resend/resend-email.md +0 -385
  273. package/stacks/nextjs-supabase/.morph/standards/context/analytics.md +0 -96
  274. package/stacks/nextjs-supabase/.morph/standards/context/bundles.md +0 -110
  275. package/stacks/nextjs-supabase/.morph/standards/context/priming.md +0 -78
  276. package/stacks/nextjs-supabase/.morph/standards/core/architecture.md +0 -185
  277. package/stacks/nextjs-supabase/.morph/standards/core/coding.md +0 -214
  278. package/stacks/nextjs-supabase/.morph/standards/core/git-branching-strategy.md +0 -403
  279. package/stacks/nextjs-supabase/.morph/standards/core/git.md +0 -185
  280. package/stacks/nextjs-supabase/.morph/standards/core/testing.md +0 -295
  281. package/stacks/nextjs-supabase/.morph/standards/data/nosql/blob-storage.md +0 -102
  282. package/stacks/nextjs-supabase/.morph/standards/data/nosql/cache/redis.md +0 -97
  283. package/stacks/nextjs-supabase/.morph/standards/data/nosql/cosmos-db.md +0 -118
  284. package/stacks/nextjs-supabase/.morph/standards/data/vector-search/azure-ai-search.md +0 -121
  285. package/stacks/nextjs-supabase/.morph/standards/data/vector-search/rag-chunking.md +0 -104
  286. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/design-checklist.md +0 -222
  287. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/fluent-ui-setup.md +0 -595
  288. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/fluent-ui.md +0 -137
  289. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/html-conversion.md +0 -184
  290. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/lifecycle.md +0 -195
  291. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/pitfalls.md +0 -198
  292. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/state.md +0 -191
  293. package/stacks/nextjs-supabase/.morph/standards/frontend/design-system/animations.md +0 -151
  294. package/stacks/nextjs-supabase/.morph/standards/frontend/design-system/naming.md +0 -64
  295. package/stacks/nextjs-supabase/.morph/standards/frontend/nextjs/nextjs-patterns.md +0 -198
  296. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/azure.md +0 -624
  297. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -422
  298. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -516
  299. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/devops/local-development.md +0 -520
  300. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/services/functions.md +0 -486
  301. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/services/service-bus.md +0 -459
  302. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/services/storage.md +0 -407
  303. package/stacks/nextjs-supabase/.morph/standards/infrastructure/docker/easypanel-deploy.md +0 -196
  304. package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/mcp-setup.md +0 -252
  305. package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/supabase-auth.md +0 -176
  306. package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/supabase-pgvector.md +0 -169
  307. package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/supabase-rls.md +0 -184
  308. package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/supabase-storage.md +0 -153
  309. package/stacks/nextjs-supabase/.morph/standards/integration/api/graphql.md +0 -91
  310. package/stacks/nextjs-supabase/.morph/standards/integration/api/grpc.md +0 -114
  311. package/stacks/nextjs-supabase/.morph/standards/integration/api/rest-design.md +0 -95
  312. package/stacks/nextjs-supabase/.morph/standards/integration/event-driven/cqrs.md +0 -101
  313. package/stacks/nextjs-supabase/.morph/standards/integration/event-driven/event-sourcing.md +0 -124
  314. package/stacks/nextjs-supabase/.morph/standards/integration/event-driven/service-bus.md +0 -95
  315. package/stacks/nextjs-supabase/.morph/standards/observability/logging.md +0 -131
  316. package/stacks/nextjs-supabase/.morph/standards/observability/metrics.md +0 -121
  317. package/stacks/nextjs-supabase/.morph/standards/observability/monitoring.md +0 -114
  318. package/stacks/nextjs-supabase/.morph/standards/observability/tracing.md +0 -132
  319. package/stacks/nextjs-supabase/.morph/standards/workflows/parallel-execution.md +0 -112
  320. package/stacks/nextjs-supabase/.morph/standards/workflows/thread-management.md +0 -113
  321. package/stacks/nextjs-supabase/CLAUDE.md +0 -155
  322. package/stacks/nextjs-supabase/README.md +0 -103
  323. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-apply.md +0 -0
  324. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-archive.md +0 -0
  325. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-preflight.md +0 -0
  326. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-proposal.md +0 -0
  327. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-status.md +0 -0
  328. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-troubleshoot.md +0 -0
  329. /package/{stacks/blazor-azure/.morph → framework}/standards/ai-agents/blazor-ui.md +0 -0
  330. /package/{stacks/blazor-azure/.morph → framework}/standards/ai-agents/production.md +0 -0
  331. /package/{stacks/blazor-azure/.morph → framework}/standards/ai-agents/setup.md +0 -0
  332. /package/{stacks/blazor-azure/.morph → framework}/standards/ai-agents/team-orchestration.md +0 -0
  333. /package/{stacks/blazor-azure/.morph → framework}/standards/ai-agents/workflows.md +0 -0
  334. /package/{stacks/blazor-azure/.morph → framework}/standards/architecture/ddd/aggregates.md +0 -0
  335. /package/{stacks/blazor-azure/.morph → framework}/standards/architecture/ddd/entities.md +0 -0
  336. /package/{stacks/blazor-azure/.morph → framework}/standards/architecture/ddd/value-objects.md +0 -0
  337. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/api/minimal-api.md +0 -0
  338. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/api/rest.md +0 -0
  339. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/api/validation.md +0 -0
  340. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/authentication/passkeys.md +0 -0
  341. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/database/ef-core.md +0 -0
  342. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/database/migrations.md +0 -0
  343. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/database/postgresql/database.md +0 -0
  344. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/database/repository-patterns.md +0 -0
  345. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/database/vector-search-rag.md +0 -0
  346. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/dotnet/async.md +0 -0
  347. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/dotnet/core.md +0 -0
  348. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/dotnet/di.md +0 -0
  349. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/dotnet/program-cs-checklist.md +0 -0
  350. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/integrations/asaas/asaas-api.md +0 -0
  351. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/integrations/clerk/clerk-auth.md +0 -0
  352. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/integrations/hangfire/hangfire-jobs.md +0 -0
  353. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/integrations/resend/resend-email.md +0 -0
  354. /package/{stacks/blazor-azure/.morph → framework}/standards/context/analytics.md +0 -0
  355. /package/{stacks/blazor-azure/.morph → framework}/standards/context/bundles.md +0 -0
  356. /package/{stacks/blazor-azure/.morph → framework}/standards/context/priming.md +0 -0
  357. /package/{stacks/blazor-azure/.morph → framework}/standards/core/architecture.md +0 -0
  358. /package/{stacks/blazor-azure/.morph → framework}/standards/core/coding.md +0 -0
  359. /package/{stacks/blazor-azure/.morph → framework}/standards/core/git-branching-strategy.md +0 -0
  360. /package/{stacks/blazor-azure/.morph → framework}/standards/core/git.md +0 -0
  361. /package/{stacks/blazor-azure/.morph → framework}/standards/core/testing.md +0 -0
  362. /package/{stacks/blazor-azure/.morph → framework}/standards/data/nosql/blob-storage.md +0 -0
  363. /package/{stacks/blazor-azure/.morph → framework}/standards/data/nosql/cache/redis.md +0 -0
  364. /package/{stacks/blazor-azure/.morph → framework}/standards/data/nosql/cosmos-db.md +0 -0
  365. /package/{stacks/blazor-azure/.morph → framework}/standards/data/vector-search/azure-ai-search.md +0 -0
  366. /package/{stacks/blazor-azure/.morph → framework}/standards/data/vector-search/rag-chunking.md +0 -0
  367. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/design-checklist.md +0 -0
  368. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/fluent-ui-setup.md +0 -0
  369. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/fluent-ui.md +0 -0
  370. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/html-conversion.md +0 -0
  371. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/lifecycle.md +0 -0
  372. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/pitfalls.md +0 -0
  373. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/state.md +0 -0
  374. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/design-system/animations.md +0 -0
  375. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/design-system/naming.md +0 -0
  376. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/nextjs/nextjs-patterns.md +0 -0
  377. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/azure.md +0 -0
  378. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -0
  379. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -0
  380. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/devops/local-development.md +0 -0
  381. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/services/functions.md +0 -0
  382. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/services/service-bus.md +0 -0
  383. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/services/storage.md +0 -0
  384. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/docker/easypanel-deploy.md +0 -0
  385. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/supabase/mcp-setup.md +0 -0
  386. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/supabase/supabase-auth.md +0 -0
  387. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/supabase/supabase-pgvector.md +0 -0
  388. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/supabase/supabase-rls.md +0 -0
  389. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/supabase/supabase-storage.md +0 -0
  390. /package/{stacks/blazor-azure/.morph → framework}/standards/integration/api/graphql.md +0 -0
  391. /package/{stacks/blazor-azure/.morph → framework}/standards/integration/api/grpc.md +0 -0
  392. /package/{stacks/blazor-azure/.morph → framework}/standards/integration/api/rest-design.md +0 -0
  393. /package/{stacks/blazor-azure/.morph → framework}/standards/integration/event-driven/cqrs.md +0 -0
  394. /package/{stacks/blazor-azure/.morph → framework}/standards/integration/event-driven/event-sourcing.md +0 -0
  395. /package/{stacks/blazor-azure/.morph → framework}/standards/integration/event-driven/service-bus.md +0 -0
  396. /package/{stacks/blazor-azure/.morph → framework}/standards/observability/logging.md +0 -0
  397. /package/{stacks/blazor-azure/.morph → framework}/standards/observability/metrics.md +0 -0
  398. /package/{stacks/blazor-azure/.morph → framework}/standards/observability/monitoring.md +0 -0
  399. /package/{stacks/blazor-azure/.morph → framework}/standards/observability/tracing.md +0 -0
  400. /package/{stacks/blazor-azure/.morph → framework}/standards/workflows/parallel-execution.md +0 -0
  401. /package/{stacks/blazor-azure/.morph → framework}/standards/workflows/thread-management.md +0 -0
@@ -0,0 +1,34 @@
1
+ {
2
+ "id": "backend-only",
3
+ "name": "Backend Squad",
4
+ "description": "Backend-focused squad: API + data + domain logic",
5
+ "parallel": true,
6
+ "coordination": "dotnet-senior",
7
+ "waitForAll": true,
8
+ "agents": [
9
+ {
10
+ "id": "dotnet-senior",
11
+ "role": "Backend Squad Leader",
12
+ "domain": "backend",
13
+ "standards": ["coding.md", "architecture.md", "dotnet10-compatibility.md"]
14
+ },
15
+ {
16
+ "id": "ef-modeler",
17
+ "role": "Database/EF Core Layer",
18
+ "domain": "backend",
19
+ "standards": ["coding.md", "ef-core.md"]
20
+ },
21
+ {
22
+ "id": "api-designer",
23
+ "role": "REST Endpoints + DTOs",
24
+ "domain": "backend",
25
+ "standards": ["coding.md", "integration/api/rest-design.md"]
26
+ }
27
+ ],
28
+ "deliverables": {
29
+ "dotnet-senior": "Application services, business logic, command/query handlers",
30
+ "ef-modeler": "Entity models, DbContext, migrations",
31
+ "api-designer": "Controllers, DTOs, Swagger docs"
32
+ },
33
+ "estimatedParallelGain": "2-3x throughput vs sequential"
34
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "id": "frontend-only",
3
+ "name": "Frontend Squad",
4
+ "description": "Frontend-focused squad: Blazor components + CSS + UX",
5
+ "parallel": true,
6
+ "coordination": "ui-designer",
7
+ "waitForAll": true,
8
+ "agents": [
9
+ {
10
+ "id": "ui-designer",
11
+ "role": "UI Design Lead",
12
+ "domain": "frontend",
13
+ "standards": ["css-architecture.md", "css-design-system.md"]
14
+ },
15
+ {
16
+ "id": "blazor-builder",
17
+ "role": "Blazor Component Developer",
18
+ "domain": "frontend",
19
+ "standards": ["coding.md", "blazor-components.md", "blazor-state.md"]
20
+ },
21
+ {
22
+ "id": "css-specialist",
23
+ "role": "CSS/Design System Specialist",
24
+ "domain": "frontend",
25
+ "standards": ["css-architecture.md", "css-design-system.md"]
26
+ }
27
+ ],
28
+ "deliverables": {
29
+ "ui-designer": "Design system tokens, component specs, mockup annotations",
30
+ "blazor-builder": ".razor components, code-behind, state management",
31
+ "css-specialist": "CSS modules, design system implementation, responsive layout"
32
+ },
33
+ "estimatedParallelGain": "2x throughput vs sequential"
34
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "id": "full-stack",
3
+ "name": "Full Stack Squad",
4
+ "description": "Full-stack feature squad: backend API + Blazor frontend + Azure infra",
5
+ "parallel": true,
6
+ "coordination": "thread-orchestrator",
7
+ "waitForAll": true,
8
+ "agents": [
9
+ {
10
+ "id": "dotnet-senior",
11
+ "role": "Backend Squad Leader",
12
+ "domain": "backend",
13
+ "standards": ["coding.md", "architecture.md", "dotnet10-compatibility.md"]
14
+ },
15
+ {
16
+ "id": "blazor-builder",
17
+ "role": "Frontend Developer",
18
+ "domain": "frontend",
19
+ "standards": ["coding.md", "blazor-components.md", "blazor-state.md"]
20
+ },
21
+ {
22
+ "id": "bicep-architect",
23
+ "role": "Infrastructure Engineer",
24
+ "domain": "infrastructure",
25
+ "standards": ["azure.md", "bicep.md"]
26
+ },
27
+ {
28
+ "id": "thread-orchestrator",
29
+ "role": "Parallel Coordinator",
30
+ "domain": "developer-experience",
31
+ "standards": []
32
+ },
33
+ {
34
+ "id": "context-optimizer",
35
+ "role": "Context Manager",
36
+ "domain": "developer-experience",
37
+ "standards": []
38
+ },
39
+ {
40
+ "id": "observability-expert",
41
+ "role": "Observability Specialist",
42
+ "domain": "observability",
43
+ "standards": ["observability/monitoring.md", "observability/logging.md"]
44
+ }
45
+ ],
46
+ "deliverables": {
47
+ "backend": "Services, controllers, DTOs, EF Core entities",
48
+ "frontend": "Blazor components, pages, CSS",
49
+ "infrastructure": "Bicep templates, deployment scripts"
50
+ },
51
+ "estimatedParallelGain": "3-5x throughput vs sequential"
52
+ }
@@ -0,0 +1,92 @@
1
+ <templateSet group="MORPH Templates">
2
+ <template name="morph-pascal" value="{{pascalCase $FEATURE_NAME$}}" description="Convert to PascalCase (UserAuth)" toReformat="false" toShortenFQNames="true">
3
+ <variable name="FEATURE_NAME" expression="" defaultValue="&quot;FEATURE_NAME&quot;" alwaysStopAt="true" />
4
+ <context>
5
+ <option name="OTHER" value="true" />
6
+ </context>
7
+ </template>
8
+
9
+ <template name="morph-camel" value="{{camelCase $FEATURE_NAME$}}" description="Convert to camelCase (userAuth)" toReformat="false" toShortenFQNames="true">
10
+ <variable name="FEATURE_NAME" expression="" defaultValue="&quot;FEATURE_NAME&quot;" alwaysStopAt="true" />
11
+ <context>
12
+ <option name="OTHER" value="true" />
13
+ </context>
14
+ </template>
15
+
16
+ <template name="morph-snake" value="{{snakeCase $FEATURE_NAME$}}" description="Convert to snake_case (user_auth)" toReformat="false" toShortenFQNames="true">
17
+ <variable name="FEATURE_NAME" expression="" defaultValue="&quot;FEATURE_NAME&quot;" alwaysStopAt="true" />
18
+ <context>
19
+ <option name="OTHER" value="true" />
20
+ </context>
21
+ </template>
22
+
23
+ <template name="morph-title" value="{{titleCase $FEATURE_NAME$}}" description="Convert to Title Case (User Auth)" toReformat="false" toShortenFQNames="true">
24
+ <variable name="FEATURE_NAME" expression="" defaultValue="&quot;FEATURE_NAME&quot;" alwaysStopAt="true" />
25
+ <context>
26
+ <option name="OTHER" value="true" />
27
+ </context>
28
+ </template>
29
+
30
+ <template name="morph-kebab" value="{{kebabCase $FEATURE_NAME$}}" description="Convert to kebab-case (user-auth)" toReformat="false" toShortenFQNames="true">
31
+ <variable name="FEATURE_NAME" expression="" defaultValue="&quot;FEATURE_NAME&quot;" alwaysStopAt="true" />
32
+ <context>
33
+ <option name="OTHER" value="true" />
34
+ </context>
35
+ </template>
36
+
37
+ <template name="morph-if" value="{{#if $CONDITION$}}&#10; $END$&#10;{{/if}}" description="Handlebars if block" toReformat="false" toShortenFQNames="true">
38
+ <variable name="CONDITION" expression="" defaultValue="&quot;condition&quot;" alwaysStopAt="true" />
39
+ <context>
40
+ <option name="OTHER" value="true" />
41
+ </context>
42
+ </template>
43
+
44
+ <template name="morph-if-else" value="{{#if $CONDITION$}}&#10; $TRUE_BRANCH$&#10;{{else}}&#10; $FALSE_BRANCH$&#10;{{/if}}" description="Handlebars if-else block" toReformat="false" toShortenFQNames="true">
45
+ <variable name="CONDITION" expression="" defaultValue="&quot;condition&quot;" alwaysStopAt="true" />
46
+ <variable name="TRUE_BRANCH" expression="" defaultValue="&quot;&quot;" alwaysStopAt="true" />
47
+ <variable name="FALSE_BRANCH" expression="" defaultValue="&quot;&quot;" alwaysStopAt="true" />
48
+ <context>
49
+ <option name="OTHER" value="true" />
50
+ </context>
51
+ </template>
52
+
53
+ <template name="morph-each" value="{{#each $ITEMS$}}&#10; {{this.$PROPERTY$}}&#10;{{/each}}" description="Handlebars each loop" toReformat="false" toShortenFQNames="true">
54
+ <variable name="ITEMS" expression="" defaultValue="&quot;items&quot;" alwaysStopAt="true" />
55
+ <variable name="PROPERTY" expression="" defaultValue="&quot;name&quot;" alwaysStopAt="true" />
56
+ <context>
57
+ <option name="OTHER" value="true" />
58
+ </context>
59
+ </template>
60
+
61
+ <template name="morph-service" value="namespace {{NAMESPACE}}.Application.Features.{{pascalCase FEATURE_NAME}}.Services;&#10;&#10;public class {{pascalCase FEATURE_NAME}}Service(&#10; I{{pascalCase FEATURE_NAME}}Repository repository,&#10; ILogger&lt;{{pascalCase FEATURE_NAME}}Service&gt; logger) : I{{pascalCase FEATURE_NAME}}Service&#10;{&#10; public async Task&lt;{{pascalCase FEATURE_NAME}}Dto?&gt; GetByIdAsync(int id, CancellationToken cancellationToken = default)&#10; {&#10; $END$&#10; }&#10;}" description="MORPH .NET Service class template" toReformat="false" toShortenFQNames="true">
62
+ <context>
63
+ <option name="C_SHARP" value="true" />
64
+ </context>
65
+ </template>
66
+
67
+ <template name="morph-repository" value="public class {{pascalCase FEATURE_NAME}}Repository(AppDbContext context) : I{{pascalCase FEATURE_NAME}}Repository&#10;{&#10; private readonly DbSet&lt;{{pascalCase FEATURE_NAME}}&gt; _dbSet = context.Set&lt;{{pascalCase FEATURE_NAME}}&gt;();&#10;&#10; public async Task&lt;{{pascalCase FEATURE_NAME}}?&gt; GetByIdAsync(int id, CancellationToken cancellationToken = default)&#10; {&#10; $END$&#10; }&#10;}" description="MORPH .NET Repository class template" toReformat="false" toShortenFQNames="true">
68
+ <context>
69
+ <option name="C_SHARP" value="true" />
70
+ </context>
71
+ </template>
72
+
73
+ <template name="morph-component" value="@page &quot;/{{kebabCase FEATURE_NAME}}&quot;&#10;@inject I{{pascalCase FEATURE_NAME}}Service {{pascalCase FEATURE_NAME}}Service&#10;@inject ILogger&lt;{{pascalCase FEATURE_NAME}}Page&gt; Logger&#10;&#10;&lt;PageTitle&gt;{{pascalCase FEATURE_NAME}}&lt;/PageTitle&gt;&#10;&#10;&lt;div class=&quot;container-fluid&quot;&gt;&#10; $END$&#10;&lt;/div&gt;&#10;&#10;@code {&#10;&#10;}" description="MORPH Blazor component template" toReformat="false" toShortenFQNames="true">
74
+ <context>
75
+ <option name="HTML" value="true" />
76
+ </context>
77
+ </template>
78
+
79
+ <template name="morph-migration" value="public partial class Add{{pascalCase FEATURE_NAME}} : Migration&#10;{&#10; protected override void Up(MigrationBuilder migrationBuilder)&#10; {&#10; migrationBuilder.CreateTable(&#10; name: &quot;{{pascalCase FEATURE_NAME}}s&quot;,&#10; columns: table =&gt; new&#10; {&#10; Id = table.Column&lt;int&gt;(type: &quot;int&quot;, nullable: false)&#10; .Annotation(&quot;SqlServer:Identity&quot;, &quot;1, 1&quot;),&#10; $END$&#10; },&#10; constraints: table =&gt;&#10; {&#10; table.PrimaryKey(&quot;PK_{{pascalCase FEATURE_NAME}}s&quot;, x =&gt; x.Id);&#10; });&#10; }&#10;&#10; protected override void Down(MigrationBuilder migrationBuilder)&#10; {&#10; migrationBuilder.DropTable(name: &quot;{{pascalCase FEATURE_NAME}}s&quot;);&#10; }&#10;}" description="MORPH EF Core migration template" toReformat="false" toShortenFQNames="true">
80
+ <context>
81
+ <option name="C_SHARP" value="true" />
82
+ </context>
83
+ </template>
84
+
85
+ <template name="morph-ts-contract" value="export interface {{pascalCase FEATURE_NAME}} {&#10; id: number;&#10; $FIELD1$&#10;}&#10;&#10;export interface Create{{pascalCase FEATURE_NAME}}Request {&#10; $FIELD2$&#10;}&#10;&#10;export interface Update{{pascalCase FEATURE_NAME}}Request {&#10; $END$&#10;}" description="MORPH TypeScript contract template" toReformat="false" toShortenFQNames="true">
86
+ <variable name="FIELD1" expression="" defaultValue="&quot;&quot;" alwaysStopAt="true" />
87
+ <variable name="FIELD2" expression="" defaultValue="&quot;&quot;" alwaysStopAt="true" />
88
+ <context>
89
+ <option name="TypeScript" value="true" />
90
+ </context>
91
+ </template>
92
+ </templateSet>
@@ -0,0 +1,186 @@
1
+ {
2
+ "MORPH Template - PascalCase": {
3
+ "prefix": "morph-pascal",
4
+ "body": ["{{pascalCase ${1:FEATURE_NAME}}}"],
5
+ "description": "Convert to PascalCase (UserAuth)"
6
+ },
7
+ "MORPH Template - camelCase": {
8
+ "prefix": "morph-camel",
9
+ "body": ["{{camelCase ${1:FEATURE_NAME}}}"],
10
+ "description": "Convert to camelCase (userAuth)"
11
+ },
12
+ "MORPH Template - snake_case": {
13
+ "prefix": "morph-snake",
14
+ "body": ["{{snakeCase ${1:FEATURE_NAME}}}"],
15
+ "description": "Convert to snake_case (user_auth)"
16
+ },
17
+ "MORPH Template - Title Case": {
18
+ "prefix": "morph-title",
19
+ "body": ["{{titleCase ${1:FEATURE_NAME}}}"],
20
+ "description": "Convert to Title Case (User Auth)"
21
+ },
22
+ "MORPH Template - kebab-case": {
23
+ "prefix": "morph-kebab",
24
+ "body": ["{{kebabCase ${1:FEATURE_NAME}}}"],
25
+ "description": "Convert to kebab-case (user-auth)"
26
+ },
27
+ "MORPH Template - UPPER_SNAKE_CASE": {
28
+ "prefix": "morph-upper-snake",
29
+ "body": ["{{upperSnakeCase ${1:FEATURE_NAME}}}"],
30
+ "description": "Convert to UPPER_SNAKE_CASE (USER_AUTH)"
31
+ },
32
+ "MORPH Template - Conditional If": {
33
+ "prefix": "morph-if",
34
+ "body": [
35
+ "{{#if ${1:condition}}}",
36
+ " $2",
37
+ "{{/if}}"
38
+ ],
39
+ "description": "Handlebars if block"
40
+ },
41
+ "MORPH Template - Conditional If-Else": {
42
+ "prefix": "morph-if-else",
43
+ "body": [
44
+ "{{#if ${1:condition}}}",
45
+ " $2",
46
+ "{{else}}",
47
+ " $3",
48
+ "{{/if}}"
49
+ ],
50
+ "description": "Handlebars if-else block"
51
+ },
52
+ "MORPH Template - Each Loop": {
53
+ "prefix": "morph-each",
54
+ "body": [
55
+ "{{#each ${1:items}}}",
56
+ " {{this.$2}}",
57
+ "{{/each}}"
58
+ ],
59
+ "description": "Handlebars each loop"
60
+ },
61
+ "MORPH Template - Unless": {
62
+ "prefix": "morph-unless",
63
+ "body": [
64
+ "{{#unless ${1:condition}}}",
65
+ " $2",
66
+ "{{/unless}}"
67
+ ],
68
+ "description": "Handlebars unless block"
69
+ },
70
+ "MORPH Template - .NET Service Class": {
71
+ "prefix": "morph-service",
72
+ "body": [
73
+ "namespace {{NAMESPACE}}.Application.Features.{{pascalCase FEATURE_NAME}}.Services;",
74
+ "",
75
+ "public class {{pascalCase FEATURE_NAME}}Service(",
76
+ " I{{pascalCase FEATURE_NAME}}Repository repository,",
77
+ " ILogger<{{pascalCase FEATURE_NAME}}Service> logger) : I{{pascalCase FEATURE_NAME}}Service",
78
+ "{",
79
+ " public async Task<{{pascalCase FEATURE_NAME}}Dto?> GetByIdAsync(int id, CancellationToken cancellationToken = default)",
80
+ " {",
81
+ " $1",
82
+ " }",
83
+ "}"
84
+ ],
85
+ "description": "MORPH .NET Service class template"
86
+ },
87
+ "MORPH Template - .NET Repository Class": {
88
+ "prefix": "morph-repository",
89
+ "body": [
90
+ "public class {{pascalCase FEATURE_NAME}}Repository(AppDbContext context) : I{{pascalCase FEATURE_NAME}}Repository",
91
+ "{",
92
+ " private readonly DbSet<{{pascalCase FEATURE_NAME}}> _dbSet = context.Set<{{pascalCase FEATURE_NAME}}>();",
93
+ "",
94
+ " public async Task<{{pascalCase FEATURE_NAME}}?> GetByIdAsync(int id, CancellationToken cancellationToken = default)",
95
+ " {",
96
+ " $1",
97
+ " }",
98
+ "}"
99
+ ],
100
+ "description": "MORPH .NET Repository class template"
101
+ },
102
+ "MORPH Template - Blazor Component": {
103
+ "prefix": "morph-component",
104
+ "body": [
105
+ "@page \"/{{kebabCase FEATURE_NAME}}\"",
106
+ "@inject I{{pascalCase FEATURE_NAME}}Service {{pascalCase FEATURE_NAME}}Service",
107
+ "@inject ILogger<{{pascalCase FEATURE_NAME}}Page> Logger",
108
+ "",
109
+ "<PageTitle>{{pascalCase FEATURE_NAME}}</PageTitle>",
110
+ "",
111
+ "<div class=\"container-fluid\">",
112
+ " $1",
113
+ "</div>",
114
+ "",
115
+ "@code {",
116
+ " $2",
117
+ "}"
118
+ ],
119
+ "description": "MORPH Blazor component template"
120
+ },
121
+ "MORPH Template - EF Core Migration": {
122
+ "prefix": "morph-migration",
123
+ "body": [
124
+ "public partial class Add{{pascalCase FEATURE_NAME}} : Migration",
125
+ "{",
126
+ " protected override void Up(MigrationBuilder migrationBuilder)",
127
+ " {",
128
+ " migrationBuilder.CreateTable(",
129
+ " name: \"{{pascalCase FEATURE_NAME}}s\",",
130
+ " columns: table => new",
131
+ " {",
132
+ " Id = table.Column<int>(type: \"int\", nullable: false)",
133
+ " .Annotation(\"SqlServer:Identity\", \"1, 1\"),",
134
+ " $1",
135
+ " },",
136
+ " constraints: table =>",
137
+ " {",
138
+ " table.PrimaryKey(\"PK_{{pascalCase FEATURE_NAME}}s\", x => x.Id);",
139
+ " });",
140
+ " }",
141
+ "",
142
+ " protected override void Down(MigrationBuilder migrationBuilder)",
143
+ " {",
144
+ " migrationBuilder.DropTable(name: \"{{pascalCase FEATURE_NAME}}s\");",
145
+ " }",
146
+ "}"
147
+ ],
148
+ "description": "MORPH EF Core migration template"
149
+ },
150
+ "MORPH Template - Hangfire Job": {
151
+ "prefix": "morph-job",
152
+ "body": [
153
+ "public class {{pascalCase FEATURE_NAME}}ProcessorJob(",
154
+ " I{{pascalCase FEATURE_NAME}}Service service,",
155
+ " ILogger<{{pascalCase FEATURE_NAME}}ProcessorJob> logger) : I{{pascalCase FEATURE_NAME}}ProcessorJob",
156
+ "{",
157
+ " [AutomaticRetry(Attempts = 3, DelaysInSeconds = new[] { 60, 300, 900 })]",
158
+ " [Queue(\"default\")]",
159
+ " [JobDisplayName(\"{{pascalCase FEATURE_NAME}} Processing - ID: {0}\")]",
160
+ " public async Task ExecuteAsync(int id, CancellationToken cancellationToken)",
161
+ " {",
162
+ " $1",
163
+ " }",
164
+ "}"
165
+ ],
166
+ "description": "MORPH Hangfire job template"
167
+ },
168
+ "MORPH Template - TypeScript Contract": {
169
+ "prefix": "morph-ts-contract",
170
+ "body": [
171
+ "export interface {{pascalCase FEATURE_NAME}} {",
172
+ " id: number;",
173
+ " $1",
174
+ "}",
175
+ "",
176
+ "export interface Create{{pascalCase FEATURE_NAME}}Request {",
177
+ " $2",
178
+ "}",
179
+ "",
180
+ "export interface Update{{pascalCase FEATURE_NAME}}Request {",
181
+ " $3",
182
+ "}"
183
+ ],
184
+ "description": "MORPH TypeScript contract template"
185
+ }
186
+ }
@@ -0,0 +1,266 @@
1
+ # IDE Snippets for MORPH Templates
2
+
3
+ > Boost your productivity with IDE snippets for Handlebars template syntax
4
+
5
+ ---
6
+
7
+ ## 📦 Installation
8
+
9
+ ### VS Code
10
+
11
+ **Option 1: Project Snippets (Recommended)**
12
+
13
+ Snippets are already configured in `framework/templates/.vscode/morph-templates.code-snippets`.
14
+
15
+ To use them:
16
+ 1. Open your project in VS Code
17
+ 2. Snippets auto-activate when editing template files
18
+ 3. Type a prefix (e.g., `morph-pascal`) and press `Tab`
19
+
20
+ **Option 2: Global Snippets**
21
+
22
+ To use snippets across all projects:
23
+ 1. Open VS Code
24
+ 2. Go to `File > Preferences > Configure User Snippets`
25
+ 3. Select `New Global Snippets file...`
26
+ 4. Name it `morph-templates.code-snippets`
27
+ 5. Copy content from `framework/templates/.vscode/morph-templates.code-snippets`
28
+
29
+ ---
30
+
31
+ ### JetBrains IDEs (Rider, WebStorm, IntelliJ IDEA)
32
+
33
+ **Installation:**
34
+
35
+ 1. Open your IDE
36
+ 2. Go to `File > Settings > Editor > Live Templates`
37
+ 3. Click the `⚙️` gear icon → `Import Settings...`
38
+ 4. Select `framework/templates/.idea/morph-templates.xml`
39
+ 5. Click `OK` to import
40
+
41
+ **Activation:**
42
+
43
+ Snippets will be available in the "MORPH Templates" group. Type the prefix and press `Tab`.
44
+
45
+ ---
46
+
47
+ ## 🎯 Available Snippets
48
+
49
+ ### Handlebars Helpers (Case Transformations)
50
+
51
+ | Prefix | Output | Example Result |
52
+ |--------|--------|----------------|
53
+ | `morph-pascal` | `{{pascalCase FEATURE_NAME}}` | `UserAuthentication` |
54
+ | `morph-camel` | `{{camelCase FEATURE_NAME}}` | `userAuthentication` |
55
+ | `morph-snake` | `{{snakeCase FEATURE_NAME}}` | `user_authentication` |
56
+ | `morph-title` | `{{titleCase FEATURE_NAME}}` | `User Authentication` |
57
+ | `morph-kebab` | `{{kebabCase FEATURE_NAME}}` | `user-authentication` |
58
+ | `morph-upper-snake` | `{{upperSnakeCase FEATURE_NAME}}` | `USER_AUTHENTICATION` |
59
+
60
+ ### Handlebars Control Flow
61
+
62
+ | Prefix | Description | Example |
63
+ |--------|-------------|---------|
64
+ | `morph-if` | If block | `{{#if condition}}...{{/if}}` |
65
+ | `morph-if-else` | If-else block | `{{#if condition}}...{{else}}...{{/if}}` |
66
+ | `morph-each` | Loop over array | `{{#each items}}{{this.name}}{{/each}}` |
67
+ | `morph-unless` | Unless block | `{{#unless condition}}...{{/unless}}` |
68
+
69
+ ### .NET Templates
70
+
71
+ | Prefix | Template | File Extension |
72
+ |--------|----------|----------------|
73
+ | `morph-service` | Service class (business logic) | `.cs` |
74
+ | `morph-repository` | Repository class (data access) | `.cs` |
75
+ | `morph-component` | Blazor component | `.razor` |
76
+ | `morph-migration` | EF Core migration | `.cs` |
77
+ | `morph-job` | Hangfire background job | `.cs` |
78
+
79
+ ### TypeScript Templates
80
+
81
+ | Prefix | Template | File Extension |
82
+ |--------|----------|----------------|
83
+ | `morph-ts-contract` | TypeScript interfaces (DTOs) | `.ts` |
84
+
85
+ ---
86
+
87
+ ## 🚀 Usage Examples
88
+
89
+ ### Example 1: Creating a Service Template
90
+
91
+ **Steps:**
92
+ 1. Create new file: `UserService.cs`
93
+ 2. Type `morph-service` → Press `Tab`
94
+ 3. Result:
95
+ ```csharp
96
+ namespace {{NAMESPACE}}.Application.Features.{{pascalCase FEATURE_NAME}}.Services;
97
+
98
+ public class {{pascalCase FEATURE_NAME}}Service(
99
+ I{{pascalCase FEATURE_NAME}}Repository repository,
100
+ ILogger<{{pascalCase FEATURE_NAME}}Service> logger) : I{{pascalCase FEATURE_NAME}}Service
101
+ {
102
+ public async Task<{{pascalCase FEATURE_NAME}}Dto?> GetByIdAsync(int id, CancellationToken cancellationToken = default)
103
+ {
104
+ // Cursor here
105
+ }
106
+ }
107
+ ```
108
+
109
+ ### Example 2: Using Case Helpers
110
+
111
+ **Scenario:** Convert `user-authentication` to different cases
112
+
113
+ ```handlebars
114
+ // Type: morph-pascal → Tab
115
+ {{pascalCase FEATURE_NAME}} // Output: UserAuthentication
116
+
117
+ // Type: morph-camel → Tab
118
+ {{camelCase FEATURE_NAME}} // Output: userAuthentication
119
+
120
+ // Type: morph-snake → Tab
121
+ {{snakeCase FEATURE_NAME}} // Output: user_authentication
122
+ ```
123
+
124
+ ### Example 3: Conditional Rendering
125
+
126
+ **Scenario:** Show different content based on stack
127
+
128
+ ```handlebars
129
+ // Type: morph-if-else → Tab
130
+ {{#if (eq STACK "Blazor")}}
131
+ // Blazor-specific code
132
+ {{else}}
133
+ // Generic code
134
+ {{/if}}
135
+ ```
136
+
137
+ ### Example 4: Looping Over Items
138
+
139
+ **Scenario:** Generate multiple DTOs
140
+
141
+ ```handlebars
142
+ // Type: morph-each → Tab
143
+ {{#each entities}}
144
+ public class {{pascalCase this.name}}Dto
145
+ {
146
+ // Properties
147
+ }
148
+ {{/each}}
149
+ ```
150
+
151
+ ---
152
+
153
+ ## 📝 Customizing Snippets
154
+
155
+ ### VS Code
156
+
157
+ Edit `framework/templates/.vscode/morph-templates.code-snippets`:
158
+
159
+ ```json
160
+ {
161
+ "MORPH Template - Custom": {
162
+ "prefix": "morph-custom",
163
+ "body": [
164
+ "// Your custom template",
165
+ "$1"
166
+ ],
167
+ "description": "Your description"
168
+ }
169
+ }
170
+ ```
171
+
172
+ ### JetBrains IDEs
173
+
174
+ 1. Go to `File > Settings > Editor > Live Templates`
175
+ 2. Select "MORPH Templates" group
176
+ 3. Click `+` → `Live Template`
177
+ 4. Set abbreviation (prefix), description, and template text
178
+
179
+ ---
180
+
181
+ ## 🎨 Snippet Scopes
182
+
183
+ | Snippet | VS Code Scope | JetBrains Scope |
184
+ |---------|---------------|-----------------|
185
+ | Handlebars helpers | All files | All files |
186
+ | .NET templates | `.cs`, `.razor` | C#, HTML |
187
+ | TypeScript templates | `.ts`, `.tsx` | TypeScript |
188
+
189
+ ---
190
+
191
+ ## 💡 Best Practices
192
+
193
+ **1. Use Helpers Over Pre-computed Variables**
194
+
195
+ ```handlebars
196
+ ✅ GOOD: {{pascalCase FEATURE_NAME}}Service
197
+ ❌ BAD: {{FEATURE_NAME_PASCAL}}Service // Deprecated
198
+ ```
199
+
200
+ **2. Chain Helpers for Complex Transformations**
201
+
202
+ ```handlebars
203
+ // Pluralize a PascalCase name
204
+ {{pascalCase (pluralize FEATURE_NAME)}} // Users, Orders, etc.
205
+ ```
206
+
207
+ **3. Use Conditional Blocks for Stack-Specific Code**
208
+
209
+ ```handlebars
210
+ {{#if (eq STACK "Blazor")}}
211
+ @inject NavigationManager Navigation
212
+ {{/if}}
213
+ {{#if (eq STACK "Nextjs")}}
214
+ import { useRouter } from 'next/navigation';
215
+ {{/if}}
216
+ ```
217
+
218
+ **4. Extract Common Patterns to Snippets**
219
+
220
+ If you find yourself typing the same template code repeatedly, create a custom snippet!
221
+
222
+ ---
223
+
224
+ ## 🔧 Troubleshooting
225
+
226
+ ### Snippets Not Showing Up (VS Code)
227
+
228
+ **Solution:**
229
+ 1. Check file extension matches snippet scope (e.g., `.cs` for C# snippets)
230
+ 2. Reload VS Code: `Ctrl+Shift+P` → `Developer: Reload Window`
231
+ 3. Verify snippet file location: `framework/templates/.vscode/morph-templates.code-snippets`
232
+
233
+ ### Snippets Not Showing Up (JetBrains)
234
+
235
+ **Solution:**
236
+ 1. Verify import: `File > Settings > Editor > Live Templates` → Check "MORPH Templates" group exists
237
+ 2. Check snippet scope: Click snippet → Verify "Applicable in" contexts
238
+ 3. Restart IDE
239
+
240
+ ### Tab Not Expanding Snippet
241
+
242
+ **Solution:**
243
+ - **VS Code:** Ensure `editor.tabCompletion` is enabled in settings
244
+ - **JetBrains:** Ensure `Tab` is set as expansion key in `Settings > Editor > Live Templates`
245
+
246
+ ---
247
+
248
+ ## 📚 Related Documentation
249
+
250
+ - [Template System README](framework/templates/README.md) - Complete template system documentation
251
+ - [Handlebars Helpers](framework/templates/README.md#handlebars-helpers) - Full list of available helpers
252
+ - [CLI Template Commands](CLAUDE.md#templates) - Command-line template management
253
+
254
+ ---
255
+
256
+ ## 🎁 Contributing Custom Snippets
257
+
258
+ Have a useful snippet? Share it!
259
+
260
+ 1. Add snippet to appropriate file (`.vscode/` or `.idea/`)
261
+ 2. Document it in this README (add row to tables)
262
+ 3. Submit PR with description of use case
263
+
264
+ ---
265
+
266
+ *MORPH-SPEC Template Snippets by Polymorphism Tech*