@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
@@ -1,121 +0,0 @@
1
- # Data Standard: Azure AI Search (Vector Search)
2
-
3
- ## Overview
4
- Azure AI Search provides vector and hybrid search for RAG (Retrieval-Augmented Generation) patterns.
5
-
6
- ## Index Design
7
- ```csharp
8
- // Define index with vector field
9
- var index = new SearchIndex("documents-index")
10
- {
11
- Fields =
12
- [
13
- new SimpleField("id", SearchFieldDataType.String) { IsKey = true },
14
- new SearchableField("content") { AnalyzerName = "pt.microsoft" },
15
- new SearchableField("title") { AnalyzerName = "pt.microsoft" },
16
- new SimpleField("sourceUrl", SearchFieldDataType.String) { IsFilterable = true },
17
- new SimpleField("category", SearchFieldDataType.String) { IsFilterable = true, IsFacetable = true },
18
- new VectorSearchField("contentVector", dimensions: 1536, vectorSearchProfileName: "hnsw-profile")
19
- ],
20
- VectorSearch = new VectorSearch
21
- {
22
- Profiles = { new VectorSearchProfile("hnsw-profile", "hnsw-config") },
23
- Algorithms = { new HnswAlgorithmConfiguration("hnsw-config") }
24
- }
25
- };
26
- await indexClient.CreateOrUpdateIndexAsync(index);
27
- ```
28
-
29
- ## Embedding Generation
30
- ```csharp
31
- public class EmbeddingService : IEmbeddingService
32
- {
33
- private readonly OpenAIClient _client;
34
- private const string EmbeddingModel = "text-embedding-ada-002"; // 1536 dimensions
35
-
36
- public async Task<float[]> GenerateEmbeddingAsync(string text)
37
- {
38
- // Truncate to model limit
39
- var truncated = text.Length > 8192 ? text[..8192] : text;
40
-
41
- var response = await _client.GetEmbeddingsAsync(
42
- new EmbeddingsOptions(EmbeddingModel, [truncated]));
43
-
44
- return response.Value.Data[0].Embedding.ToArray();
45
- }
46
-
47
- public async Task<IReadOnlyList<float[]>> GenerateBatchEmbeddingsAsync(IReadOnlyList<string> texts)
48
- {
49
- var response = await _client.GetEmbeddingsAsync(
50
- new EmbeddingsOptions(EmbeddingModel, texts));
51
- return response.Value.Data.Select(d => d.Embedding.ToArray()).ToList();
52
- }
53
- }
54
- ```
55
-
56
- ## Document Indexing
57
- ```csharp
58
- public class DocumentIndexer
59
- {
60
- public async Task IndexDocumentAsync(Document doc)
61
- {
62
- var embedding = await _embeddingService.GenerateEmbeddingAsync(doc.Content);
63
-
64
- var searchDoc = new SearchDocument
65
- {
66
- ["id"] = doc.Id.ToString(),
67
- ["content"] = doc.Content,
68
- ["title"] = doc.Title,
69
- ["sourceUrl"] = doc.SourceUrl,
70
- ["category"] = doc.Category,
71
- ["contentVector"] = embedding
72
- };
73
-
74
- await _searchClient.MergeOrUploadDocumentsAsync([searchDoc]);
75
- }
76
- }
77
- ```
78
-
79
- ## Hybrid Search (Vector + Keyword)
80
- ```csharp
81
- public async Task<IReadOnlyList<SearchResult>> SearchAsync(string query, string? category = null)
82
- {
83
- var queryEmbedding = await _embeddingService.GenerateEmbeddingAsync(query);
84
-
85
- var options = new SearchOptions
86
- {
87
- Filter = category != null ? $"category eq '{category}'" : null,
88
- Size = 10,
89
- VectorSearch = new VectorSearchOptions
90
- {
91
- Queries =
92
- {
93
- new VectorizedQuery(queryEmbedding)
94
- {
95
- Fields = { "contentVector" },
96
- KNearestNeighborsCount = 50
97
- }
98
- }
99
- },
100
- QueryType = SearchQueryType.Semantic,
101
- SemanticSearch = new SemanticSearchOptions
102
- {
103
- SemanticConfigurationName = "my-semantic-config",
104
- QueryCaption = new QueryCaption(QueryCaptionType.Extractive)
105
- }
106
- };
107
-
108
- var response = await _searchClient.SearchAsync<SearchDocument>(query, options);
109
- return await response.Value.GetResultsAsync().Select(r => new SearchResult(
110
- r.Document["id"].ToString()!,
111
- r.Document["content"].ToString()!,
112
- r.Score ?? 0
113
- )).ToListAsync();
114
- }
115
- ```
116
-
117
- ## Cost Optimization
118
- - Index only necessary fields (cost per GB/month)
119
- - Use semantic ranking sparingly (higher cost per query)
120
- - Cache frequent query embeddings (embeddings are stable for same text)
121
- - Batch indexing for large document sets (avoid per-document API calls)
@@ -1,104 +0,0 @@
1
- # Data Standard: RAG Chunking Strategies
2
-
3
- ## Overview
4
- Chunking splits documents into segments for embedding. Chunk quality directly impacts RAG answer quality.
5
-
6
- ## Chunking Strategies
7
-
8
- ### 1. Fixed-Size (Baseline)
9
- ```csharp
10
- public IEnumerable<Chunk> FixedSizeChunk(string text, int size = 512, int overlap = 50)
11
- {
12
- for (int i = 0; i < text.Length; i += size - overlap)
13
- {
14
- yield return new Chunk
15
- {
16
- Content = text[i..Math.Min(i + size, text.Length)],
17
- StartIndex = i,
18
- EndIndex = Math.Min(i + size, text.Length)
19
- };
20
- }
21
- }
22
- ```
23
-
24
- ### 2. Sentence-Aware (Recommended for prose)
25
- ```csharp
26
- public IEnumerable<Chunk> SentenceChunk(string text, int maxTokens = 256)
27
- {
28
- var sentences = SplitSentences(text);
29
- var current = new StringBuilder();
30
- var tokenCount = 0;
31
-
32
- foreach (var sentence in sentences)
33
- {
34
- var sentenceTokens = EstimateTokens(sentence);
35
- if (tokenCount + sentenceTokens > maxTokens && current.Length > 0)
36
- {
37
- yield return new Chunk { Content = current.ToString().Trim() };
38
- current.Clear();
39
- tokenCount = 0;
40
- }
41
- current.Append(sentence).Append(' ');
42
- tokenCount += sentenceTokens;
43
- }
44
-
45
- if (current.Length > 0)
46
- yield return new Chunk { Content = current.ToString().Trim() };
47
- }
48
- ```
49
-
50
- ### 3. Semantic (Best quality, higher cost)
51
- Split at semantic boundaries (paragraphs, headers, sections) rather than character count.
52
-
53
- ```csharp
54
- public IEnumerable<Chunk> SemanticChunk(string markdown)
55
- {
56
- // Split at markdown headers
57
- var sections = Regex.Split(markdown, @"(?=^#{1,3} )", RegexOptions.Multiline);
58
- foreach (var section in sections.Where(s => s.Trim().Length > 0))
59
- yield return new Chunk { Content = section.Trim() };
60
- }
61
- ```
62
-
63
- ## Token Estimation
64
- ```csharp
65
- // Rough estimate: 1 token ≈ 4 characters (English), ≈ 3 characters (Portuguese)
66
- private static int EstimateTokens(string text) => text.Length / 4;
67
-
68
- // More accurate: use tiktoken (if available)
69
- // var encoder = TiktokenSharp.TikToken.EncodingForModel("gpt-4");
70
- // return encoder.Encode(text).Count;
71
- ```
72
-
73
- ## Chunk Metadata
74
- Always store metadata with chunks for filtering and citation:
75
- ```csharp
76
- public record Chunk
77
- {
78
- public string Content { get; init; } = "";
79
- public string DocumentId { get; init; } = "";
80
- public string DocumentTitle { get; init; } = "";
81
- public string SourceUrl { get; init; } = "";
82
- public int ChunkIndex { get; init; }
83
- public int StartCharIndex { get; init; }
84
- public string Section { get; init; } = ""; // H1/H2 header this belongs to
85
- public DateTime IndexedAt { get; init; } = DateTime.UtcNow;
86
- }
87
- ```
88
-
89
- ## Strategy Selection Guide
90
- | Document Type | Strategy | Chunk Size |
91
- |---------------|----------|------------|
92
- | Legal documents | Sentence-aware | 256 tokens |
93
- | Technical docs | Semantic (headers) | Variable |
94
- | Q&A pairs | Keep as-is | Whole Q+A |
95
- | Code files | Function-boundary | Whole function |
96
- | News articles | Paragraph | 512 tokens |
97
-
98
- ## Quality Checklist
99
- - [ ] Chunks overlap by 10-20% to avoid cutting context at boundaries
100
- - [ ] Minimum chunk size: 50 tokens (avoid noisy small chunks)
101
- - [ ] Maximum chunk size: 512 tokens for ada-002 (8192 token model limit)
102
- - [ ] Metadata preserved and searchable
103
- - [ ] Source URL included for citation
104
- - [ ] Re-index when document changes (detect via content hash)
@@ -1,222 +0,0 @@
1
- # Blazor Design Phase Checklist
2
-
3
- > **Scope:** blazor-azure
4
- > **Layer:** 2 (on keyword)
5
- > **Keywords:** blazor, design, checklist, phase, architecture
6
- > **Load When:** design phase for blazor features
7
-
8
- Use this checklist during FASE 2 (DESIGN) for features involving Blazor Server
9
-
10
- ---
11
-
12
- ## 1. State and Session Management
13
-
14
- ### State Persistence
15
-
16
- - [ ] **How will critical state be persisted?**
17
- - [ ] Database (recommended for important data)
18
- - [ ] Distributed cache (Redis, SQL Distributed Cache)
19
- - [ ] Cookie (only for identification, not data)
20
- - [ ] LocalStorage via JS Interop (only for non-critical preferences)
21
-
22
- - [ ] **SessionState has `LoadFrom(entity)` method?**
23
- - Allows reloading state from persisted source
24
- - See [state.md](./state.md)
25
-
26
- - [ ] **`IsLoaded` property exists to avoid unnecessary reloads?**
27
-
28
- - [ ] **SessionId middleware is configured?**
29
- - HttpOnly cookie with session identifier
30
- - Injected into HttpContext.Items for component access
31
-
32
- ### Page Validation
33
-
34
- - [ ] **All pages in flow reload state in `OnInitializedAsync`?**
35
- ```csharp
36
- if (!Session.IsLoaded)
37
- {
38
- var entity = await Repository.GetBySessionIdAsync(sessionId);
39
- Session.LoadFrom(entity);
40
- }
41
- ```
42
-
43
- - [ ] **What happens if user accesses middle page directly?**
44
- - Redirect to start?
45
- - Load partial state?
46
- - Show friendly error?
47
-
48
- ---
49
-
50
- ## 2. EF Core Concurrency
51
-
52
- ### Background Operations
53
-
54
- - [ ] **Will any service be called via `Task.Run`?**
55
- - If YES: Use `IDbContextFactory<T>`
56
- - See [ef-core.md](../../backend/database/ef-core.md)
57
-
58
- - [ ] **Will any service be called in background job (Hangfire, Timer)?**
59
- - If YES: Use `IDbContextFactory<T>` or Repository Factory pattern
60
-
61
- - [ ] **Will multiple operations happen concurrently in same component?**
62
- - If YES: Each operation needs isolated DbContext
63
-
64
- ---
65
-
66
- ## 3. File Upload
67
-
68
- - [ ] **Will feature handle file uploads?**
69
- - [ ] Max file size defined?
70
- - [ ] Allowed file types/extensions specified?
71
- - [ ] Files read once and bytes stored?
72
- - [ ] Upload progress indicator planned?
73
-
74
- - [ ] **Where will files be stored?**
75
- - [ ] Azure Blob Storage (recommended)
76
- - [ ] Local file system (not scalable)
77
- - [ ] Database as byte[] (only for small files < 1MB)
78
-
79
- ---
80
-
81
- ## 4. JavaScript Interop
82
-
83
- - [ ] **Will feature use JavaScript?**
84
- - [ ] JS calls in `OnAfterRenderAsync`, not `OnInitializedAsync`?
85
- - [ ] `firstRender` check to prevent duplicate calls?
86
- - [ ] JS file location planned (wwwroot/js/)?
87
-
88
- - [ ] **Will feature need external JS libraries?**
89
- - [ ] Library loaded via CDN or npm?
90
- - [ ] Initialization strategy planned?
91
-
92
- ---
93
-
94
- ## 5. Navigation and Routing
95
-
96
- - [ ] **How many pages in the feature?**
97
- - Single page?
98
- - Multi-page flow?
99
- - Modal/dialog-based?
100
-
101
- - [ ] **Will users need to navigate back/forward?**
102
- - [ ] State persisted before navigation?
103
- - [ ] Browser back button handled correctly?
104
-
105
- - [ ] **Are there deep links?**
106
- - [ ] Each page can load state from URL/DB?
107
- - [ ] Invalid state handled gracefully?
108
-
109
- ---
110
-
111
- ## 6. Real-time Updates
112
-
113
- - [ ] **Will feature need real-time updates?**
114
- - SignalR circuit is already available
115
- - Update strategy planned?
116
-
117
- - [ ] **Will updates come from background jobs?**
118
- - [ ] Notification mechanism planned?
119
- - [ ] UI refresh strategy defined?
120
-
121
- ---
122
-
123
- ## 7. Performance
124
-
125
- - [ ] **Expected data volume?**
126
- - Pagination needed for lists > 100 items?
127
- - Lazy loading for large datasets?
128
-
129
- - [ ] **Heavy computations planned?**
130
- - [ ] Run in background (Task.Run with factory)?
131
- - [ ] Cache results?
132
-
133
- - [ ] **Large components/forms?**
134
- - [ ] Split into smaller components?
135
- - [ ] Lazy rendering planned?
136
-
137
- ---
138
-
139
- ## 8. Error Handling
140
-
141
- - [ ] **What errors might occur?**
142
- - Database errors?
143
- - Network errors?
144
- - Validation errors?
145
- - Permission errors?
146
-
147
- - [ ] **Error display strategy?**
148
- - [ ] Toast notifications?
149
- - [ ] Inline validation messages?
150
- - [ ] Error page redirect?
151
-
152
- - [ ] **Retry strategy for transient errors?**
153
-
154
- ---
155
-
156
- ## 9. Security
157
-
158
- - [ ] **Authentication required?**
159
- - [ ] `[Authorize]` attribute on pages?
160
- - [ ] Login redirect configured?
161
-
162
- - [ ] **Authorization rules?**
163
- - Role-based?
164
- - Policy-based?
165
- - Resource-based?
166
-
167
- - [ ] **Input validation?**
168
- - [ ] Client-side (Blazor validation)?
169
- - [ ] Server-side (service layer)?
170
- - [ ] Both?
171
-
172
- - [ ] **Sensitive data?**
173
- - [ ] Not stored in SessionState?
174
- - [ ] Not logged?
175
- - [ ] Encrypted in database?
176
-
177
- ---
178
-
179
- ## 10. UI/UX
180
-
181
- - [ ] **Loading states?**
182
- - Spinners for async operations?
183
- - Skeleton loaders for data?
184
- - Disabled buttons during saves?
185
-
186
- - [ ] **Success feedback?**
187
- - Toast messages?
188
- - Inline success indicators?
189
- - Redirect to confirmation page?
190
-
191
- - [ ] **Responsive design?**
192
- - Mobile layout planned?
193
- - Breakpoints defined?
194
-
195
- ---
196
-
197
- ## Quick Design Decisions
198
-
199
- Before implementing, answer these:
200
-
201
- | Question | Answer Required |
202
- |----------|----------------|
203
- | **State:** Where is critical state stored? | Database / Cache / Cookie |
204
- | **Files:** Where are uploads stored? | Azure Blob / Database / FileSystem |
205
- | **Navigation:** Single page or multi-page? | Single / Multi / Modal |
206
- | **JS:** Is JavaScript needed? | Yes / No |
207
- | **Auth:** Authentication required? | Yes / No |
208
- | **Background:** Any background operations? | Yes (use factory) / No |
209
- | **Real-time:** Real-time updates needed? | Yes / No |
210
-
211
- ---
212
-
213
- ## Related Standards
214
-
215
- - [state.md](./state.md) - Session state patterns
216
- - [lifecycle.md](./lifecycle.md) - Component lifecycle
217
- - [pitfalls.md](./pitfalls.md) - Common mistakes
218
- - [ef-core.md](../../backend/database/ef-core.md) - DbContext concurrency
219
-
220
- ---
221
-
222
- *MORPH-SPEC by Polymorphism Tech*