@polymorphism-tech/morph-spec 4.3.2 → 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 (414) 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/nextjs-supabase/.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 +78 -31
  167. package/src/commands/project/update.js +9 -5
  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/archive/.gitkeep +0 -25
  235. package/stacks/blazor-azure/.morph/config/agents.json +0 -948
  236. package/stacks/blazor-azure/.morph/config/config.template.json +0 -122
  237. package/stacks/blazor-azure/.morph/features/.gitkeep +0 -25
  238. package/stacks/blazor-azure/.morph/hooks/pre-commit/tests-csharp.sh +0 -61
  239. package/stacks/blazor-azure/.morph/project/context/README.md +0 -17
  240. package/stacks/blazor-azure/.morph/project.md +0 -160
  241. package/stacks/blazor-azure/.morph/schemas/agent.schema.json +0 -296
  242. package/stacks/blazor-azure/.morph/schemas/tasks.schema.json +0 -220
  243. package/stacks/blazor-azure/.morph/specs/.gitkeep +0 -20
  244. package/stacks/blazor-azure/.morph/state.json +0 -18
  245. package/stacks/blazor-azure/.morph/test-infra/example.bicep +0 -59
  246. package/stacks/blazor-azure/CLAUDE.md +0 -155
  247. package/stacks/blazor-azure/README.md +0 -79
  248. package/stacks/nextjs-supabase/.claude/commands/morph-apply.md +0 -221
  249. package/stacks/nextjs-supabase/.claude/commands/morph-archive.md +0 -79
  250. package/stacks/nextjs-supabase/.claude/commands/morph-deploy.md +0 -529
  251. package/stacks/nextjs-supabase/.claude/commands/morph-preflight.md +0 -227
  252. package/stacks/nextjs-supabase/.claude/commands/morph-proposal.md +0 -122
  253. package/stacks/nextjs-supabase/.claude/commands/morph-status.md +0 -86
  254. package/stacks/nextjs-supabase/.claude/commands/morph-troubleshoot.md +0 -122
  255. package/stacks/nextjs-supabase/.morph/.morphversion +0 -5
  256. package/stacks/nextjs-supabase/.morph/config/config.json +0 -9
  257. package/stacks/nextjs-supabase/.morph/config/config.template.json +0 -92
  258. package/stacks/nextjs-supabase/.morph/hooks/pre-commit/tests-typescript.sh +0 -61
  259. package/stacks/nextjs-supabase/.morph/project/context/README.md +0 -17
  260. package/stacks/nextjs-supabase/.morph/project.md +0 -168
  261. package/stacks/nextjs-supabase/.morph/standards/ai-agents/blazor-ui.md +0 -364
  262. package/stacks/nextjs-supabase/.morph/standards/ai-agents/production.md +0 -415
  263. package/stacks/nextjs-supabase/.morph/standards/ai-agents/setup.md +0 -418
  264. package/stacks/nextjs-supabase/.morph/standards/ai-agents/team-orchestration.md +0 -479
  265. package/stacks/nextjs-supabase/.morph/standards/ai-agents/workflows.md +0 -354
  266. package/stacks/nextjs-supabase/.morph/standards/architecture/ddd/aggregates.md +0 -120
  267. package/stacks/nextjs-supabase/.morph/standards/architecture/ddd/entities.md +0 -99
  268. package/stacks/nextjs-supabase/.morph/standards/architecture/ddd/value-objects.md +0 -124
  269. package/stacks/nextjs-supabase/.morph/standards/backend/api/minimal-api.md +0 -494
  270. package/stacks/nextjs-supabase/.morph/standards/backend/api/rest.md +0 -492
  271. package/stacks/nextjs-supabase/.morph/standards/backend/api/validation.md +0 -88
  272. package/stacks/nextjs-supabase/.morph/standards/backend/authentication/passkeys.md +0 -428
  273. package/stacks/nextjs-supabase/.morph/standards/backend/database/ef-core.md +0 -199
  274. package/stacks/nextjs-supabase/.morph/standards/backend/database/migrations.md +0 -393
  275. package/stacks/nextjs-supabase/.morph/standards/backend/database/postgresql/database.md +0 -352
  276. package/stacks/nextjs-supabase/.morph/standards/backend/database/repository-patterns.md +0 -528
  277. package/stacks/nextjs-supabase/.morph/standards/backend/database/vector-search-rag.md +0 -541
  278. package/stacks/nextjs-supabase/.morph/standards/backend/dotnet/async.md +0 -366
  279. package/stacks/nextjs-supabase/.morph/standards/backend/dotnet/core.md +0 -117
  280. package/stacks/nextjs-supabase/.morph/standards/backend/dotnet/di.md +0 -439
  281. package/stacks/nextjs-supabase/.morph/standards/backend/dotnet/program-cs-checklist.md +0 -92
  282. package/stacks/nextjs-supabase/.morph/standards/backend/integrations/asaas/asaas-api.md +0 -216
  283. package/stacks/nextjs-supabase/.morph/standards/backend/integrations/clerk/clerk-auth.md +0 -290
  284. package/stacks/nextjs-supabase/.morph/standards/backend/integrations/hangfire/hangfire-jobs.md +0 -350
  285. package/stacks/nextjs-supabase/.morph/standards/backend/integrations/resend/resend-email.md +0 -385
  286. package/stacks/nextjs-supabase/.morph/standards/context/analytics.md +0 -96
  287. package/stacks/nextjs-supabase/.morph/standards/context/bundles.md +0 -110
  288. package/stacks/nextjs-supabase/.morph/standards/context/priming.md +0 -78
  289. package/stacks/nextjs-supabase/.morph/standards/core/architecture.md +0 -185
  290. package/stacks/nextjs-supabase/.morph/standards/core/coding.md +0 -214
  291. package/stacks/nextjs-supabase/.morph/standards/core/git-branching-strategy.md +0 -403
  292. package/stacks/nextjs-supabase/.morph/standards/core/git.md +0 -185
  293. package/stacks/nextjs-supabase/.morph/standards/core/testing.md +0 -295
  294. package/stacks/nextjs-supabase/.morph/standards/data/nosql/blob-storage.md +0 -102
  295. package/stacks/nextjs-supabase/.morph/standards/data/nosql/cache/redis.md +0 -97
  296. package/stacks/nextjs-supabase/.morph/standards/data/nosql/cosmos-db.md +0 -118
  297. package/stacks/nextjs-supabase/.morph/standards/data/vector-search/azure-ai-search.md +0 -121
  298. package/stacks/nextjs-supabase/.morph/standards/data/vector-search/rag-chunking.md +0 -104
  299. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/design-checklist.md +0 -222
  300. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/fluent-ui-setup.md +0 -595
  301. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/fluent-ui.md +0 -137
  302. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/html-conversion.md +0 -184
  303. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/lifecycle.md +0 -195
  304. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/pitfalls.md +0 -198
  305. package/stacks/nextjs-supabase/.morph/standards/frontend/blazor/state.md +0 -191
  306. package/stacks/nextjs-supabase/.morph/standards/frontend/design-system/animations.md +0 -151
  307. package/stacks/nextjs-supabase/.morph/standards/frontend/design-system/naming.md +0 -64
  308. package/stacks/nextjs-supabase/.morph/standards/frontend/nextjs/nextjs-patterns.md +0 -198
  309. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/azure.md +0 -624
  310. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -422
  311. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -516
  312. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/devops/local-development.md +0 -520
  313. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/services/functions.md +0 -486
  314. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/services/service-bus.md +0 -459
  315. package/stacks/nextjs-supabase/.morph/standards/infrastructure/azure/services/storage.md +0 -407
  316. package/stacks/nextjs-supabase/.morph/standards/infrastructure/docker/easypanel-deploy.md +0 -196
  317. package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/mcp-setup.md +0 -252
  318. package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/supabase-auth.md +0 -176
  319. package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/supabase-pgvector.md +0 -169
  320. package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/supabase-rls.md +0 -184
  321. package/stacks/nextjs-supabase/.morph/standards/infrastructure/supabase/supabase-storage.md +0 -153
  322. package/stacks/nextjs-supabase/.morph/standards/integration/api/graphql.md +0 -91
  323. package/stacks/nextjs-supabase/.morph/standards/integration/api/grpc.md +0 -114
  324. package/stacks/nextjs-supabase/.morph/standards/integration/api/rest-design.md +0 -95
  325. package/stacks/nextjs-supabase/.morph/standards/integration/event-driven/cqrs.md +0 -101
  326. package/stacks/nextjs-supabase/.morph/standards/integration/event-driven/event-sourcing.md +0 -124
  327. package/stacks/nextjs-supabase/.morph/standards/integration/event-driven/service-bus.md +0 -95
  328. package/stacks/nextjs-supabase/.morph/standards/observability/logging.md +0 -131
  329. package/stacks/nextjs-supabase/.morph/standards/observability/metrics.md +0 -121
  330. package/stacks/nextjs-supabase/.morph/standards/observability/monitoring.md +0 -114
  331. package/stacks/nextjs-supabase/.morph/standards/observability/tracing.md +0 -132
  332. package/stacks/nextjs-supabase/.morph/standards/workflows/parallel-execution.md +0 -112
  333. package/stacks/nextjs-supabase/.morph/standards/workflows/thread-management.md +0 -113
  334. package/stacks/nextjs-supabase/CLAUDE.md +0 -155
  335. package/stacks/nextjs-supabase/README.md +0 -103
  336. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-apply.md +0 -0
  337. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-archive.md +0 -0
  338. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-preflight.md +0 -0
  339. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-proposal.md +0 -0
  340. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-status.md +0 -0
  341. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-troubleshoot.md +0 -0
  342. /package/{stacks/blazor-azure/.morph → framework}/standards/ai-agents/blazor-ui.md +0 -0
  343. /package/{stacks/blazor-azure/.morph → framework}/standards/ai-agents/production.md +0 -0
  344. /package/{stacks/blazor-azure/.morph → framework}/standards/ai-agents/setup.md +0 -0
  345. /package/{stacks/blazor-azure/.morph → framework}/standards/ai-agents/team-orchestration.md +0 -0
  346. /package/{stacks/blazor-azure/.morph → framework}/standards/ai-agents/workflows.md +0 -0
  347. /package/{stacks/blazor-azure/.morph → framework}/standards/architecture/ddd/aggregates.md +0 -0
  348. /package/{stacks/blazor-azure/.morph → framework}/standards/architecture/ddd/entities.md +0 -0
  349. /package/{stacks/blazor-azure/.morph → framework}/standards/architecture/ddd/value-objects.md +0 -0
  350. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/api/minimal-api.md +0 -0
  351. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/api/rest.md +0 -0
  352. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/api/validation.md +0 -0
  353. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/authentication/passkeys.md +0 -0
  354. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/database/ef-core.md +0 -0
  355. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/database/migrations.md +0 -0
  356. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/database/postgresql/database.md +0 -0
  357. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/database/repository-patterns.md +0 -0
  358. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/database/vector-search-rag.md +0 -0
  359. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/dotnet/async.md +0 -0
  360. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/dotnet/core.md +0 -0
  361. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/dotnet/di.md +0 -0
  362. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/dotnet/program-cs-checklist.md +0 -0
  363. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/integrations/asaas/asaas-api.md +0 -0
  364. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/integrations/clerk/clerk-auth.md +0 -0
  365. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/integrations/hangfire/hangfire-jobs.md +0 -0
  366. /package/{stacks/blazor-azure/.morph → framework}/standards/backend/integrations/resend/resend-email.md +0 -0
  367. /package/{stacks/blazor-azure/.morph → framework}/standards/context/analytics.md +0 -0
  368. /package/{stacks/blazor-azure/.morph → framework}/standards/context/bundles.md +0 -0
  369. /package/{stacks/blazor-azure/.morph → framework}/standards/context/priming.md +0 -0
  370. /package/{stacks/blazor-azure/.morph → framework}/standards/core/architecture.md +0 -0
  371. /package/{stacks/blazor-azure/.morph → framework}/standards/core/coding.md +0 -0
  372. /package/{stacks/blazor-azure/.morph → framework}/standards/core/git-branching-strategy.md +0 -0
  373. /package/{stacks/blazor-azure/.morph → framework}/standards/core/git.md +0 -0
  374. /package/{stacks/blazor-azure/.morph → framework}/standards/core/testing.md +0 -0
  375. /package/{stacks/blazor-azure/.morph → framework}/standards/data/nosql/blob-storage.md +0 -0
  376. /package/{stacks/blazor-azure/.morph → framework}/standards/data/nosql/cache/redis.md +0 -0
  377. /package/{stacks/blazor-azure/.morph → framework}/standards/data/nosql/cosmos-db.md +0 -0
  378. /package/{stacks/blazor-azure/.morph → framework}/standards/data/vector-search/azure-ai-search.md +0 -0
  379. /package/{stacks/blazor-azure/.morph → framework}/standards/data/vector-search/rag-chunking.md +0 -0
  380. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/design-checklist.md +0 -0
  381. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/fluent-ui-setup.md +0 -0
  382. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/fluent-ui.md +0 -0
  383. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/html-conversion.md +0 -0
  384. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/lifecycle.md +0 -0
  385. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/pitfalls.md +0 -0
  386. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/blazor/state.md +0 -0
  387. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/design-system/animations.md +0 -0
  388. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/design-system/naming.md +0 -0
  389. /package/{stacks/blazor-azure/.morph → framework}/standards/frontend/nextjs/nextjs-patterns.md +0 -0
  390. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/azure.md +0 -0
  391. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -0
  392. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -0
  393. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/devops/local-development.md +0 -0
  394. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/services/functions.md +0 -0
  395. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/services/service-bus.md +0 -0
  396. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/azure/services/storage.md +0 -0
  397. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/docker/easypanel-deploy.md +0 -0
  398. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/supabase/mcp-setup.md +0 -0
  399. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/supabase/supabase-auth.md +0 -0
  400. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/supabase/supabase-pgvector.md +0 -0
  401. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/supabase/supabase-rls.md +0 -0
  402. /package/{stacks/blazor-azure/.morph → framework}/standards/infrastructure/supabase/supabase-storage.md +0 -0
  403. /package/{stacks/blazor-azure/.morph → framework}/standards/integration/api/graphql.md +0 -0
  404. /package/{stacks/blazor-azure/.morph → framework}/standards/integration/api/grpc.md +0 -0
  405. /package/{stacks/blazor-azure/.morph → framework}/standards/integration/api/rest-design.md +0 -0
  406. /package/{stacks/blazor-azure/.morph → framework}/standards/integration/event-driven/cqrs.md +0 -0
  407. /package/{stacks/blazor-azure/.morph → framework}/standards/integration/event-driven/event-sourcing.md +0 -0
  408. /package/{stacks/blazor-azure/.morph → framework}/standards/integration/event-driven/service-bus.md +0 -0
  409. /package/{stacks/blazor-azure/.morph → framework}/standards/observability/logging.md +0 -0
  410. /package/{stacks/blazor-azure/.morph → framework}/standards/observability/metrics.md +0 -0
  411. /package/{stacks/blazor-azure/.morph → framework}/standards/observability/monitoring.md +0 -0
  412. /package/{stacks/blazor-azure/.morph → framework}/standards/observability/tracing.md +0 -0
  413. /package/{stacks/blazor-azure/.morph → framework}/standards/workflows/parallel-execution.md +0 -0
  414. /package/{stacks/blazor-azure/.morph → framework}/standards/workflows/thread-management.md +0 -0
@@ -0,0 +1,154 @@
1
+ # .NET + Next.js Stack
2
+
3
+ > **Layer:** 2 | **Load:** on-keyword | **Keywords:** nextjs, next.js, react, api, frontend, spa, typescript
4
+
5
+ | Aspect | Technology |
6
+ |--------|------------|
7
+ | **Backend** | .NET 10 Web API / C# 14 |
8
+ | **Frontend** | Next.js 15+ / React 19 |
9
+ | **Database** | EF Core 10 + Azure SQL |
10
+ | **API** | REST + OpenAPI |
11
+ | **Hosting** | Azure Container Apps |
12
+
13
+ ## Project Structure
14
+
15
+ ```
16
+ /
17
+ ├── backend/
18
+ │ ├── src/{Api,Application,Domain,Infrastructure}/
19
+ │ ├── tests/
20
+ │ └── Backend.sln
21
+ ├── frontend/
22
+ │ ├── src/{app,components,lib,hooks}/
23
+ │ ├── package.json
24
+ │ └── next.config.js
25
+ ├── docker-compose.yml
26
+ └── infra/main.bicep
27
+ ```
28
+
29
+ ---
30
+
31
+ ## Backend (.NET Minimal API)
32
+
33
+ ```csharp
34
+ // Program.cs
35
+ var builder = WebApplication.CreateBuilder(args);
36
+ builder.Services.AddEndpointsApiExplorer();
37
+ builder.Services.AddSwaggerGen();
38
+ builder.Services.AddCors(o => o.AddPolicy("Frontend", p =>
39
+ p.WithOrigins(builder.Configuration["Frontend:Url"]!)
40
+ .AllowAnyHeader().AllowAnyMethod().AllowCredentials()));
41
+ builder.Services.AddDbContext<AppDbContext>(o => o.UseSqlServer(connString));
42
+
43
+ var app = builder.Build();
44
+ if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); }
45
+ app.UseCors("Frontend");
46
+ app.UseAuthentication();
47
+ app.UseAuthorization();
48
+ app.MapOrderEndpoints();
49
+ app.Run();
50
+ ```
51
+
52
+ ### Minimal API Endpoints
53
+
54
+ ```csharp
55
+ public static class OrderEndpoints
56
+ {
57
+ public static void MapOrderEndpoints(this WebApplication app)
58
+ {
59
+ var group = app.MapGroup("/api/orders").WithTags("Orders").RequireAuthorization();
60
+ group.MapGet("/", GetAll);
61
+ group.MapGet("/{id:int}", GetById);
62
+ group.MapPost("/", Create);
63
+ group.MapPut("/{id:int}", Update);
64
+ group.MapDelete("/{id:int}", Delete);
65
+ }
66
+ // Each handler: inject IService + params → return Results.Ok/NotFound/Created/NoContent
67
+ }
68
+ ```
69
+
70
+ ---
71
+
72
+ ## Frontend (Next.js)
73
+
74
+ ### API Client
75
+
76
+ ```typescript
77
+ const API_URL = process.env.NEXT_PUBLIC_API_URL!;
78
+
79
+ async function fetchApi<T>(endpoint: string, options?: RequestInit): Promise<T> {
80
+ const res = await fetch(`${API_URL}${endpoint}`, {
81
+ ...options,
82
+ headers: { 'Content-Type': 'application/json', ...options?.headers },
83
+ credentials: 'include',
84
+ });
85
+ if (!res.ok) throw new Error(`API error: ${res.status}`);
86
+ return res.json();
87
+ }
88
+
89
+ export const api = {
90
+ orders: {
91
+ getAll: (params?) => fetchApi<PaginatedResult<Order>>(`/api/orders?${new URLSearchParams(params)}`),
92
+ getById: (id: number) => fetchApi<Order>(`/api/orders/${id}`),
93
+ create: (data) => fetchApi<Order>('/api/orders', { method: 'POST', body: JSON.stringify(data) }),
94
+ },
95
+ };
96
+ ```
97
+
98
+ ### Types (generated from OpenAPI)
99
+
100
+ ```typescript
101
+ export interface Order { id: number; orderNumber: string; total: number; status: OrderStatus; }
102
+ export type OrderStatus = 'Pending' | 'Processing' | 'Completed' | 'Cancelled';
103
+ export interface PaginatedResult<T> { items: T[]; totalCount: number; page: number; totalPages: number; }
104
+ ```
105
+
106
+ ### Server Component (App Router)
107
+ ```tsx
108
+ export default async function OrdersPage() {
109
+ const orders = await api.orders.getAll();
110
+ return <OrderList initialOrders={orders} />;
111
+ }
112
+ ```
113
+
114
+ ### Client Component
115
+ ```tsx
116
+ 'use client';
117
+ // Use useState + api calls for client-side pagination/interaction
118
+ ```
119
+
120
+ ---
121
+
122
+ ## Docker Compose
123
+
124
+ ```yaml
125
+ services:
126
+ backend:
127
+ build: { context: ./backend }
128
+ ports: ["5000:8080"]
129
+ environment:
130
+ - ConnectionStrings__Default=Server=db;Database=App;User=sa;Password=Pass!;TrustServerCertificate=true
131
+ - Frontend__Url=http://localhost:3000
132
+ frontend:
133
+ build: { context: ./frontend }
134
+ ports: ["3000:3000"]
135
+ environment: [NEXT_PUBLIC_API_URL=http://localhost:5000]
136
+ db:
137
+ image: mcr.microsoft.com/mssql/server:2022-latest
138
+ environment: [ACCEPT_EULA=Y, SA_PASSWORD=YourStrong!Passw0rd]
139
+ ports: ["1433:1433"]
140
+ ```
141
+
142
+ ## Checklist
143
+ - [ ] Backend with Minimal APIs
144
+ - [ ] OpenAPI/Swagger configured
145
+ - [ ] CORS configured for frontend
146
+ - [ ] Frontend with App Router (Next.js 15+)
147
+ - [ ] API client typed
148
+ - [ ] Types generated from OpenAPI
149
+ - [ ] Docker Compose for dev
150
+ - [ ] Environment variables configured
151
+
152
+ ---
153
+
154
+ *MORPH-SPEC by Polymorphism Tech*
@@ -0,0 +1,191 @@
1
+ # UI/UX Designer
2
+
3
+ Especialista em design de interfaces, UX e componentes Blazor. Domina **Fluent UI Blazor** e **MudBlazor**.
4
+
5
+ > **FASE 1.5: UI/UX DESIGN** - Obrigatória para features com front-end.
6
+ > Gera wireframes, specs de componentes e fluxos ANTES do design técnico.
7
+ > **Ref:** `framework/standards/fluent-ui-blazor.md` para API details e armadilhas.
8
+
9
+ ## Triggers
10
+
11
+ Keywords: `blazor`, `component`, `page`, `ui`, `ux`, `design`, `layout`, `wizard`, `dashboard`, `form`, `chart`, `table`, `dialog`, `modal`, `tela`, `interface`, `formulário`
12
+
13
+ ---
14
+
15
+ ## Design Moderno (2025+)
16
+
17
+ ### Visual Trends
18
+ - **Glassmorphism**: `backdrop-filter: blur(10px)`, semi-transparent backgrounds
19
+ - **Gradients**: Purple (#667eea → #764ba2), Blue-Purple (#4facfe → #00f2fe)
20
+ - **Soft Shadows**: `box-shadow: 0 4px 6px rgba(0,0,0,0.1)`
21
+ - **Rounded Corners**: `border-radius: 12px-16px`
22
+ - **Micro-interactions**: Hover effects, transitions (transform, scale, opacity)
23
+
24
+ ### Component Patterns
25
+ - Cards with elevation + hover lift
26
+ - Skeleton loaders (not just spinners)
27
+ - Toast notifications (bottom-right, auto-dismiss)
28
+ - Empty states with illustration + CTA
29
+ - Dark mode support (always design for both)
30
+
31
+ ### Layout Principles
32
+ - Whitespace: 32px-48px container padding
33
+ - Grid: 12-column, gap 24px-32px
34
+ - Typography: xs:12, sm:14, base:16, lg:18, xl:20, 2xl:24
35
+ - Contrast: WCAG AA (4.5:1 text, 3:1 UI)
36
+
37
+ ### Design References
38
+ Linear (linear.app), Vercel (vercel.com), Stripe (stripe.com), Dribbble dashboards
39
+
40
+ ---
41
+
42
+ ## FASE 1.5 Workflow
43
+
44
+ ### Step 1: Collect User Input (ALWAYS ask first)
45
+
46
+ 1. Layout ideas or reference sites?
47
+ 2. Visual references (screenshots, mockups)?
48
+ 3. User flow expectations?
49
+ 4. Design system defined (colors, fonts, spacing)?
50
+ 5. Image examples to analyze?
51
+
52
+ If user provides screenshots → Read tool → extract patterns (layout, components, colors).
53
+ If HTML prototype exists → extract patterns automatically, skip wireframes, map HTML → Blazor.
54
+
55
+ ### Step 2: Generate Deliverables
56
+
57
+ | File | Content |
58
+ |------|---------|
59
+ | `ui-design-system.md` | Colors, typography, spacing |
60
+ | `ui-mockups.md` | ASCII wireframes + descriptions per screen |
61
+ | `ui-components.md` | Component specs (library-agnostic first, library choice in FASE 2) |
62
+ | `ui-flows.md` | User flow diagrams + edge cases |
63
+
64
+ **Important:** Generate specs AGNOSTIC of UI library. Use generic names ("primary button", "card", "table"). Library choice happens in FASE 2: DESIGN.
65
+
66
+ ### Step 3: Present for Approval
67
+
68
+ Show deliverable summary → **⛔ PAUSE** with 3 options (approve / adjust wireframes / add flows).
69
+
70
+ ---
71
+
72
+ ## Fluent UI vs MudBlazor Decision Matrix
73
+
74
+ | Criterion | Fluent UI Blazor | MudBlazor |
75
+ |-----------|------------------|-----------|
76
+ | AI-first projects | Ideal (native components) | Requires customization |
77
+ | Performance | ~200KB | ~500KB |
78
+ | Microsoft Stack | Perfect integration | Works well |
79
+ | Complex components | Limited | Very complete |
80
+ | Community | Smaller (newer) | Larger |
81
+ | Maturity | v4.0 (recent) | v6.x (stable) |
82
+
83
+ **Use Fluent UI if:** AI-first, Microsoft stack, modern M365 design, performance critical.
84
+ **Use MudBlazor if:** Complex dashboards, Material Design, need TreeView/advanced DataGrid, larger community.
85
+ **Hybrid:** Fluent UI (base) + MudBlazor (specific complex components).
86
+
87
+ ---
88
+
89
+ ## Fluent UI Quick Reference
90
+
91
+ > **Full details:** `framework/standards/fluent-ui-blazor.md`
92
+
93
+ ### Common Pitfalls
94
+
95
+ | Issue | Wrong | Correct |
96
+ |-------|-------|---------|
97
+ | Icon sizes | `Size16`, `Size14` | `Size20`, `Size24`, `Size28`, `Size32`, `Size48` |
98
+ | Icon namespace | `@using ...Icons` | `@using Icons = Microsoft.FluentUI.AspNetCore.Components.Icons` |
99
+ | Toast methods | `await ShowSuccessAsync()` | `ToastService.ShowSuccess()` (sync!) |
100
+ | Dialog show | `await _dialog.ShowAsync()` | `_dialog.Show()` (sync!) |
101
+ | Dialog close | `_dialog.Hide()` | `await _dialog.CloseAsync()` (async!) |
102
+ | Dialog init | `<FluentDialog>` | `<FluentDialog Hidden="true">` (must hide initially!) |
103
+
104
+ ### Key Components
105
+
106
+ | Component | Use Case |
107
+ |-----------|----------|
108
+ | `FluentCard` + `FluentStack` | Containers, dashboards |
109
+ | `FluentDataGrid` | Data tables with sorting |
110
+ | `FluentWizard` | Multi-step flows |
111
+ | `FluentDialog` | Modals, confirmations |
112
+ | `FluentMessageBar` | Chat, notifications |
113
+ | `FluentProgress` | Loading, streaming |
114
+ | `FluentTextField` | Text inputs |
115
+ | `FluentToast` | System feedback |
116
+
117
+ ---
118
+
119
+ ## MudBlazor Key Components
120
+
121
+ | Component | Advantage over Fluent |
122
+ |-----------|----------------------|
123
+ | `MudDataGrid` | Grouping, advanced filtering |
124
+ | `MudTreeView` | More complete hierarchies |
125
+ | `MudChart` | Native charts (Fluent has none) |
126
+ | `MudFileUpload` | More upload features |
127
+ | `MudAutocomplete` | Better performance |
128
+
129
+ ---
130
+
131
+ ## Design System Defaults
132
+
133
+ ```css
134
+ /* Colors */
135
+ --primary: #3b82f6; --secondary: #6b7280;
136
+ --success: #10b981; --warning: #f59e0b;
137
+ --danger: #ef4444; --info: #06b6d4;
138
+
139
+ /* Spacing (4px system) */
140
+ --space-1: 0.25rem; --space-2: 0.5rem; --space-4: 1rem;
141
+ --space-6: 1.5rem; --space-8: 2rem;
142
+ ```
143
+
144
+ ---
145
+
146
+ ## Generating Deliverables
147
+
148
+ ### ui-mockups.md Structure
149
+
150
+ Per screen: ASCII wireframe + description (purpose, components, interactions, states) + responsiveness (desktop/mobile).
151
+
152
+ ### ui-components.md Structure
153
+
154
+ Per component: Library, component name, main props, events, states (default/loading/error/empty), accessibility (ARIA, keyboard).
155
+
156
+ ### ui-flows.md Structure
157
+
158
+ Per flow: Trigger, steps, happy path, edge cases, ASCII flowchart diagram.
159
+
160
+ ---
161
+
162
+ ## Accessibility (A11y)
163
+
164
+ - Contrast: 4.5:1 text minimum (WCAG AA)
165
+ - Focus visible: Outline on focusable elements
166
+ - Labels: Every input with associated label
167
+ - ARIA: Roles and labels where needed
168
+ - Keyboard nav: Logical tab order
169
+
170
+ ---
171
+
172
+ ## Checklist
173
+
174
+ ### FASE 1.5 Deliverables
175
+ - [ ] `ui-mockups.md`: Wireframes for ALL screens + states (loading, error, empty) + responsiveness
176
+ - [ ] `ui-components.md`: Library justified + all components mapped with props/events/states
177
+ - [ ] `ui-flows.md`: Happy paths + edge cases + ASCII diagrams
178
+ - [ ] `decisions.md`: Updated with UI library ADR
179
+
180
+ ### UI Quality
181
+ - [ ] Visual hierarchy clear
182
+ - [ ] Consistent spacing (4px multiples)
183
+ - [ ] Responsive (mobile-first)
184
+ - [ ] States: hover, focus, disabled, error
185
+ - [ ] Loading states (skeleton/spinner)
186
+ - [ ] Empty states with CTA
187
+ - [ ] WCAG AA accessibility
188
+
189
+ ---
190
+
191
+ *MORPH-SPEC by Polymorphism Tech*
@@ -0,0 +1,142 @@
1
+ # Azure Architect
2
+
3
+ Especialista em infraestrutura Azure com foco em Infrastructure as Code (Bicep).
4
+
5
+ ## Responsabilidades
6
+
7
+ 1. **Desenhar infraestrutura Azure** para projetos
8
+ 2. **Criar templates Bicep** para provisionar recursos
9
+ 3. **Estimar custos** antes de aprovar recursos
10
+ 4. **Garantir zero portal** - tudo via código
11
+
12
+ ## Triggers
13
+
14
+ Ativado automaticamente em todo projeto MORPH-SPEC (Core Agent).
15
+
16
+ Keywords: `azure`, `infrastructure`, `bicep`, `deploy`, `container apps`, `sql`, `storage`, `provision`
17
+
18
+ ## Princípio: Zero Portal
19
+
20
+ > **NUNCA** criar recursos Azure manualmente no portal. Tudo via Bicep.
21
+
22
+ ## Estrutura IaC
23
+
24
+ ```
25
+ infra/
26
+ ├── main.bicep # Entry point
27
+ ├── parameters.dev.json # Ambiente dev
28
+ ├── parameters.prod.json # Ambiente prod
29
+ └── modules/
30
+ ├── container-app.bicep # Container Apps
31
+ ├── sql-database.bicep # Azure SQL
32
+ ├── storage.bicep # Storage Account
33
+ ├── key-vault.bicep # Key Vault
34
+ ├── app-insights.bicep # Monitoring
35
+ └── service-bus.bicep # Mensageria
36
+ ```
37
+
38
+ ## Template Bicep Base
39
+
40
+ ```bicep
41
+ // infra/main.bicep
42
+ targetScope = 'resourceGroup'
43
+
44
+ @description('Environment name')
45
+ param environment string = 'dev'
46
+
47
+ @description('Location for resources')
48
+ param location string = resourceGroup().location
49
+
50
+ @description('Application name')
51
+ param appName string
52
+
53
+ // Variables
54
+ var resourcePrefix = '${appName}-${environment}'
55
+
56
+ // Container App Environment
57
+ module containerAppEnv 'modules/container-app-env.bicep' = {
58
+ name: 'containerAppEnv'
59
+ params: {
60
+ name: '${resourcePrefix}-env'
61
+ location: location
62
+ }
63
+ }
64
+
65
+ // Container App
66
+ module containerApp 'modules/container-app.bicep' = {
67
+ name: 'containerApp'
68
+ params: {
69
+ name: resourcePrefix
70
+ location: location
71
+ environmentId: containerAppEnv.outputs.id
72
+ }
73
+ }
74
+ ```
75
+
76
+ ## Recursos Recomendados por Tier
77
+
78
+ ### Free Tier (Sem aprovação)
79
+
80
+ | Recurso | Config | Custo |
81
+ |---------|--------|-------|
82
+ | Azure SQL | Free 32GB | $0 |
83
+ | Container Apps | Scale to zero | ~$0 |
84
+ | Storage | LRS 5GB | ~$0 |
85
+ | App Insights | Free tier | $0 |
86
+
87
+ ### Basic Tier (Até $10/mês)
88
+
89
+ | Recurso | Config | Custo |
90
+ |---------|--------|-------|
91
+ | Azure SQL | Basic DTU | ~$5 |
92
+ | Service Bus | Basic | ~$0.05 |
93
+ | Key Vault | Standard | ~$0.03 |
94
+
95
+ ## Comandos de Deploy
96
+
97
+ ```powershell
98
+ # Criar resource group
99
+ az group create --name rg-{app}-{env} --location brazilsouth
100
+
101
+ # Deploy com Bicep
102
+ az deployment group create \
103
+ --resource-group rg-{app}-{env} \
104
+ --template-file infra/main.bicep \
105
+ --parameters @infra/parameters.{env}.json
106
+
107
+ # Validar antes de deploy
108
+ az deployment group what-if \
109
+ --resource-group rg-{app}-{env} \
110
+ --template-file infra/main.bicep \
111
+ --parameters @infra/parameters.{env}.json
112
+ ```
113
+
114
+ ## Quando usar SDK .NET vs Bicep
115
+
116
+ | Recurso | Abordagem | Motivo |
117
+ |---------|-----------|--------|
118
+ | SQL, Storage, Container Apps | Bicep | Infra estática, declarativa |
119
+ | Azure AI, Fabric | SDK .NET | Recursos dinâmicos, runtime |
120
+ | Secrets | Key Vault + Bicep | Segurança |
121
+
122
+ ## Documentação de Referência
123
+
124
+ - [Azure Bicep](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/)
125
+ - [Container Apps](https://learn.microsoft.com/en-us/azure/container-apps/)
126
+ - [Azure SQL](https://learn.microsoft.com/en-us/azure/azure-sql/)
127
+ - [Azure SDK for .NET](https://learn.microsoft.com/en-us/dotnet/azure/)
128
+ - [Pricing Calculator](https://azure.microsoft.com/en-us/pricing/calculator/)
129
+
130
+ ## Checklist de Infraestrutura
131
+
132
+ - [ ] Bicep válido (`az bicep build`)
133
+ - [ ] Parâmetros para dev e prod
134
+ - [ ] Custos estimados e documentados
135
+ - [ ] Secrets no Key Vault (não hardcoded)
136
+ - [ ] Logs configurados (App Insights)
137
+ - [ ] Scale-to-zero onde possível
138
+ - [ ] Naming convention consistente
139
+
140
+ ---
141
+
142
+ *MORPH-SPEC by Polymorphism Tech*