@polymorphism-tech/morph-spec 3.2.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/README.md +1 -14
  2. package/bin/detect-agents.js +1 -1
  3. package/bin/morph-spec.js +403 -40
  4. package/bin/validate.js +5 -5
  5. package/docs/getting-started.md +0 -5
  6. package/docs/next-generation/AGENTS.md +521 -0
  7. package/docs/next-generation/ANALYSIS.md +555 -0
  8. package/docs/next-generation/ARCHITECTURE.md +436 -0
  9. package/docs/next-generation/CONTEXT-OPTIMIZATION.md +267 -0
  10. package/docs/next-generation/EXECUTION-FLOW.md +274 -0
  11. package/docs/next-generation/FEATURES.md +688 -0
  12. package/docs/next-generation/META-PROMPTS.md +235 -0
  13. package/docs/next-generation/MIGRATION-GUIDE.md +253 -0
  14. package/docs/next-generation/README.md +231 -0
  15. package/docs/next-generation/ROADMAP.md +801 -0
  16. package/docs/next-generation/THREAD-MANAGEMENT.md +240 -0
  17. package/docs/validation-checklist.md +0 -1
  18. package/package.json +5 -5
  19. package/src/commands/agents/agents-fuse.js +96 -0
  20. package/src/commands/agents/index.js +4 -0
  21. package/src/commands/agents/micro-agent.js +112 -0
  22. package/src/commands/{spawn-team.js → agents/spawn-team.js} +237 -172
  23. package/src/commands/agents/squad-template.js +146 -0
  24. package/src/commands/analytics/analytics.js +176 -0
  25. package/src/commands/context/context-prime.js +63 -0
  26. package/src/commands/context/core-four.js +54 -0
  27. package/src/commands/{create-story.js → feature/create-story.js} +357 -354
  28. package/src/commands/feature/index.js +6 -0
  29. package/src/commands/{shard-spec.js → feature/shard-spec.js} +2 -2
  30. package/src/commands/{sprint-status.js → feature/sprint-status.js} +1 -1
  31. package/src/commands/{generate-context.js → generation/generate-context.js} +40 -40
  32. package/src/commands/{generate.js → generation/generate.js} +4 -4
  33. package/src/commands/generation/index.js +5 -0
  34. package/src/commands/index.js +16 -0
  35. package/src/commands/{capture-pattern.js → learning/capture-pattern.js} +121 -121
  36. package/src/commands/learning/index.js +5 -0
  37. package/src/commands/mcp/mcp.js +102 -0
  38. package/src/commands/{detect-agents.js → project/detect-agents.js} +178 -178
  39. package/src/commands/project/detect-workflow.js +174 -0
  40. package/src/commands/{detect.js → project/detect.js} +104 -104
  41. package/src/commands/{doctor.js → project/doctor.js} +221 -4
  42. package/src/commands/project/index.js +10 -0
  43. package/src/commands/{init.js → project/init.js} +305 -295
  44. package/src/commands/{sync.js → project/sync.js} +167 -167
  45. package/src/commands/{update.js → project/update.js} +240 -240
  46. package/src/commands/{advance-phase.js → state/advance-phase.js} +101 -25
  47. package/src/commands/{approve.js → state/approve.js} +221 -221
  48. package/src/commands/state/index.js +8 -0
  49. package/src/commands/{rollback-phase.js → state/rollback-phase.js} +185 -185
  50. package/src/commands/{state.js → state/state.js} +334 -334
  51. package/src/commands/{validate-phase.js → state/validate-phase.js} +221 -221
  52. package/src/commands/tasks/index.js +4 -0
  53. package/src/commands/{task.js → tasks/task.js} +78 -78
  54. package/src/commands/templates/index.js +8 -0
  55. package/src/commands/templates/template-customize.js +101 -0
  56. package/src/commands/templates/template-list.js +128 -0
  57. package/src/commands/templates/template-render.js +174 -0
  58. package/src/commands/templates/template-show.js +131 -0
  59. package/src/commands/templates/template-validate.js +91 -0
  60. package/src/commands/threads/thread-template.js +103 -0
  61. package/src/commands/threads/threads.js +261 -0
  62. package/src/commands/trust/trust.js +205 -0
  63. package/src/commands/utils/index.js +7 -0
  64. package/src/commands/{session-summary.js → utils/session-summary.js} +291 -291
  65. package/src/commands/{troubleshoot.js → utils/troubleshoot.js} +222 -222
  66. package/src/commands/{analyze-blazor-concurrency.js → validation/analyze-blazor-concurrency.js} +193 -193
  67. package/src/commands/validation/index.js +8 -0
  68. package/src/commands/{lint-fluent.js → validation/lint-fluent.js} +352 -352
  69. package/src/commands/{validate-blazor-state.js → validation/validate-blazor-state.js} +210 -210
  70. package/src/commands/{validate-blazor.js → validation/validate-blazor.js} +156 -156
  71. package/src/commands/{validate-css.js → validation/validate-css.js} +84 -84
  72. package/src/core/index.js +10 -0
  73. package/src/{orchestrator.js → core/orchestrator.js} +8 -8
  74. package/src/core/registry/command-registry.js +302 -0
  75. package/src/core/registry/index.js +8 -0
  76. package/src/core/registry/validator-registry.js +204 -0
  77. package/src/core/state/index.js +8 -0
  78. package/src/{lib → core/state}/phase-state-machine.js +214 -214
  79. package/src/{lib → core/state}/state-manager.js +588 -534
  80. package/src/core/templates/index.js +9 -0
  81. package/src/core/templates/template-registry.js +335 -0
  82. package/src/core/templates/template-renderer.js +477 -0
  83. package/src/core/templates/template-validator.js +296 -0
  84. package/src/core/workflows/index.js +7 -0
  85. package/src/core/workflows/workflow-detector.js +452 -0
  86. package/src/lib/agents/micro-agent-factory.js +161 -0
  87. package/src/lib/{complexity-analyzer.js → analysis/complexity-analyzer.js} +441 -441
  88. package/src/lib/analysis/index.js +7 -0
  89. package/src/lib/analytics/analytics-engine.js +345 -0
  90. package/src/lib/{checkpoint-hooks.js → checkpoints/checkpoint-hooks.js} +35 -0
  91. package/src/lib/checkpoints/index.js +7 -0
  92. package/src/lib/context/context-bundler.js +240 -0
  93. package/src/lib/context/context-optimizer.js +212 -0
  94. package/src/lib/context/context-tracker.js +273 -0
  95. package/src/lib/context/core-four-tracker.js +201 -0
  96. package/src/lib/context/mcp-optimizer.js +200 -0
  97. package/src/lib/detectors/config-detector.js +223 -223
  98. package/src/lib/detectors/conversation-analyzer.js +163 -163
  99. package/src/lib/{design-system-detector.js → detectors/design-system-detector.js} +187 -187
  100. package/src/lib/detectors/index.js +87 -84
  101. package/src/lib/detectors/standards-generator.js +275 -275
  102. package/src/lib/detectors/structure-detector.js +245 -245
  103. package/src/lib/execution/fusion-executor.js +304 -0
  104. package/src/lib/execution/parallel-executor.js +270 -0
  105. package/src/lib/{context-generator.js → generators/context-generator.js} +526 -516
  106. package/src/lib/generators/index.js +10 -0
  107. package/src/lib/{metadata-extractor.js → generators/metadata-extractor.js} +387 -380
  108. package/src/lib/{recap-generator.js → generators/recap-generator.js} +205 -205
  109. package/src/lib/hooks/hook-executor.js +169 -0
  110. package/src/lib/hooks/stop-hook-executor.js +286 -0
  111. package/src/lib/hops/hop-composer.js +221 -0
  112. package/src/lib/learning/index.js +7 -0
  113. package/src/lib/orchestration/index.js +7 -0
  114. package/src/lib/{team-orchestrator.js → orchestration/team-orchestrator.js} +323 -323
  115. package/src/lib/stacks/index.js +7 -0
  116. package/src/lib/{stack-resolver.js → stacks/stack-resolver.js} +180 -148
  117. package/src/lib/standards/index.js +7 -0
  118. package/src/lib/{standards-context-injector.js → standards/standards-context-injector.js} +298 -288
  119. package/src/lib/threads/thread-coordinator.js +238 -0
  120. package/src/lib/threads/thread-manager.js +317 -0
  121. package/src/lib/tracking/artifact-trail.js +202 -0
  122. package/src/lib/troubleshooting/index.js +8 -0
  123. package/src/lib/{troubleshoot-grep.js → troubleshooting/troubleshoot-grep.js} +204 -204
  124. package/src/lib/{troubleshoot-index.js → troubleshooting/troubleshoot-index.js} +144 -144
  125. package/src/lib/trust/trust-manager.js +269 -0
  126. package/src/lib/validators/{architecture-validator.js → architecture/architecture-validator.js} +8 -8
  127. package/src/lib/validators/architecture/index.js +7 -0
  128. package/src/lib/{blazor-concurrency-analyzer.js → validators/blazor/blazor-concurrency-analyzer.js} +277 -288
  129. package/src/lib/{blazor-state-validator.js → validators/blazor/blazor-state-validator.js} +279 -291
  130. package/src/lib/{blazor-validator.js → validators/blazor/blazor-validator.js} +369 -374
  131. package/src/lib/validators/blazor/index.js +9 -0
  132. package/src/lib/validators/{content-validator.js → content/content-validator.js} +351 -351
  133. package/src/lib/validators/content/index.js +7 -0
  134. package/src/lib/validators/{contract-compliance-validator.js → contracts/contract-compliance-validator.js} +273 -273
  135. package/src/lib/validators/contracts/index.js +7 -0
  136. package/src/lib/{css-validator.js → validators/css/css-validator.js} +352 -352
  137. package/src/lib/validators/css/index.js +7 -0
  138. package/src/lib/validators/{design-system-validator.js → design-system/design-system-validator.js} +231 -231
  139. package/src/lib/validators/design-system/index.js +7 -0
  140. package/src/lib/validators/packages/index.js +7 -0
  141. package/src/lib/validators/shared/index.js +12 -0
  142. package/src/lib/validators/shared/issue-counter.js +18 -0
  143. package/src/lib/validators/shared/result-formatter.js +124 -0
  144. package/src/lib/{spec-validator.js → validators/spec-validator.js} +258 -258
  145. package/src/lib/validators/ui/index.js +7 -0
  146. package/src/lib/{validation-runner.js → validators/validation-runner.js} +286 -284
  147. package/src/ui/wizard-questions.js +0 -2
  148. package/src/utils/color-utils.js +70 -0
  149. package/src/utils/file-copier.js +188 -189
  150. package/src/utils/process-handler.js +97 -0
  151. package/stacks/blazor-azure/.morph/config/agents.json +948 -764
  152. package/stacks/blazor-azure/.morph/hooks/{pre-commit-tests.sh → pre-commit/tests-csharp.sh} +3 -2
  153. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/cd-prod.yml.hbs +41 -0
  154. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/cd-staging.yml.hbs +24 -0
  155. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/ci-build.yml.hbs +23 -0
  156. package/stacks/nextjs-supabase/.morph/config/agents.json +345 -345
  157. package/stacks/nextjs-supabase/.morph/hooks/pre-commit/tests-typescript.sh +61 -0
  158. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/cd-prod.yml.hbs +22 -0
  159. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/cd-staging.yml.hbs +22 -0
  160. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/ci-build.yml.hbs +35 -0
  161. package/stacks/nextjs-supabase/README.md +6 -15
  162. package/CLAUDE.md +0 -648
  163. package/bin/render-template.js +0 -349
  164. package/bin/semantic-detect-agents.js +0 -247
  165. package/bin/validate-agents-skills.js +0 -257
  166. package/bin/validate-agents.js +0 -70
  167. package/bin/validate-phase.js +0 -263
  168. package/docs/examples.md +0 -328
  169. package/docs/llm-interaction-config.md +0 -735
  170. package/scripts/reorganize-skills.cjs +0 -175
  171. package/scripts/validate-agents-structure.cjs +0 -52
  172. package/scripts/validate-skills.cjs +0 -180
  173. package/src/commands/deploy.js +0 -780
  174. package/src/commands/migrate-state.js +0 -158
  175. package/src/commands/upgrade.js +0 -346
  176. package/src/lib/continuous-validator.js +0 -421
  177. package/src/lib/decision-constraint-loader.js +0 -109
  178. package/src/lib/design-system-scaffolder.js +0 -299
  179. package/src/lib/hook-executor.js +0 -257
  180. package/src/lib/mockup-generator.js +0 -366
  181. package/src/lib/ui-detector.js +0 -350
  182. package/src/llm/schema-validator.js +0 -121
  183. package/src/sanitizer/.gitkeep +0 -0
  184. package/src/scanner/.gitkeep +0 -0
  185. package/src/types/index.js +0 -477
  186. package/src/ui/.gitkeep +0 -0
  187. package/src/writer/.gitkeep +0 -0
  188. package/stacks/blazor-azure/.azure/README.md +0 -293
  189. package/stacks/blazor-azure/.azure/docs/azure-devops-setup.md +0 -454
  190. package/stacks/blazor-azure/.azure/docs/branch-strategy.md +0 -398
  191. package/stacks/blazor-azure/.azure/docs/local-development.md +0 -515
  192. package/stacks/blazor-azure/.azure/pipelines/pipeline-variables.yml +0 -34
  193. package/stacks/blazor-azure/.azure/pipelines/prod-pipeline.yml +0 -319
  194. package/stacks/blazor-azure/.azure/pipelines/staging-pipeline.yml +0 -234
  195. package/stacks/blazor-azure/.azure/pipelines/templates/build-dotnet.yml +0 -75
  196. package/stacks/blazor-azure/.azure/pipelines/templates/deploy-app-service.yml +0 -94
  197. package/stacks/blazor-azure/.azure/pipelines/templates/deploy-container-app.yml +0 -120
  198. package/stacks/blazor-azure/.azure/pipelines/templates/infra-deploy.yml +0 -90
  199. package/stacks/blazor-azure/.claude/commands/morph-apply.md +0 -221
  200. package/stacks/blazor-azure/.claude/commands/morph-archive.md +0 -79
  201. package/stacks/blazor-azure/.claude/commands/morph-deploy.md +0 -529
  202. package/stacks/blazor-azure/.claude/commands/morph-infra.md +0 -209
  203. package/stacks/blazor-azure/.claude/commands/morph-preflight.md +0 -227
  204. package/stacks/blazor-azure/.claude/commands/morph-proposal.md +0 -122
  205. package/stacks/blazor-azure/.claude/commands/morph-status.md +0 -86
  206. package/stacks/blazor-azure/.claude/commands/morph-troubleshoot.md +0 -122
  207. package/stacks/blazor-azure/.claude/settings.local.json +0 -15
  208. package/stacks/blazor-azure/.claude/skills/level-0-meta/README.md +0 -7
  209. package/stacks/blazor-azure/.claude/skills/level-0-meta/code-review.md +0 -226
  210. package/stacks/blazor-azure/.claude/skills/level-0-meta/morph-checklist.md +0 -117
  211. package/stacks/blazor-azure/.claude/skills/level-0-meta/simulation-checklist.md +0 -77
  212. package/stacks/blazor-azure/.claude/skills/level-1-workflows/README.md +0 -7
  213. package/stacks/blazor-azure/.claude/skills/level-1-workflows/morph-replicate.md +0 -213
  214. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-clarify.md +0 -131
  215. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-design.md +0 -213
  216. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-setup.md +0 -106
  217. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-tasks.md +0 -164
  218. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-uiux.md +0 -169
  219. package/stacks/blazor-azure/.claude/skills/level-2-domains/README.md +0 -14
  220. package/stacks/blazor-azure/.claude/skills/level-2-domains/ai-agents/ai-system-architect.md +0 -192
  221. package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/po-pm-advisor.md +0 -197
  222. package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/prompt-engineer.md +0 -189
  223. package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/seo-growth-hacker.md +0 -320
  224. package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/standards-architect.md +0 -156
  225. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/dotnet-senior.md +0 -287
  226. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/ef-modeler.md +0 -113
  227. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/hangfire-orchestrator.md +0 -126
  228. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/ms-agent-expert.md +0 -109
  229. package/stacks/blazor-azure/.claude/skills/level-2-domains/frontend/blazor-builder.md +0 -210
  230. package/stacks/blazor-azure/.claude/skills/level-2-domains/frontend/nextjs-expert.md +0 -154
  231. package/stacks/blazor-azure/.claude/skills/level-2-domains/frontend/ui-ux-designer.md +0 -191
  232. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/azure-architect.md +0 -142
  233. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/azure-deploy-specialist.md +0 -699
  234. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/bicep-architect.md +0 -126
  235. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/container-specialist.md +0 -131
  236. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/devops-engineer.md +0 -119
  237. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/asaas-financial.md +0 -130
  238. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/azure-identity.md +0 -142
  239. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/clerk-auth.md +0 -108
  240. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/resend-email.md +0 -119
  241. package/stacks/blazor-azure/.claude/skills/level-2-domains/quality/code-analyzer.md +0 -235
  242. package/stacks/blazor-azure/.claude/skills/level-2-domains/quality/testing-specialist.md +0 -126
  243. package/stacks/blazor-azure/.claude/skills/level-3-technologies/README.md +0 -7
  244. package/stacks/blazor-azure/.claude/skills/level-4-patterns/README.md +0 -7
  245. package/stacks/blazor-azure/.morph/archive/.gitkeep +0 -25
  246. package/stacks/blazor-azure/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +0 -392
  247. package/stacks/blazor-azure/.morph/docs/workflows/design-impl.md +0 -37
  248. package/stacks/blazor-azure/.morph/docs/workflows/enforcement-pipeline.md +0 -668
  249. package/stacks/blazor-azure/.morph/docs/workflows/fast-track.md +0 -29
  250. package/stacks/blazor-azure/.morph/docs/workflows/full-morph.md +0 -76
  251. package/stacks/blazor-azure/.morph/docs/workflows/standard.md +0 -44
  252. package/stacks/blazor-azure/.morph/docs/workflows/ui-refresh.md +0 -39
  253. package/stacks/blazor-azure/.morph/examples/api-nextjs/README.md +0 -241
  254. package/stacks/blazor-azure/.morph/examples/api-nextjs/contracts.ts +0 -307
  255. package/stacks/blazor-azure/.morph/examples/api-nextjs/spec.md +0 -399
  256. package/stacks/blazor-azure/.morph/examples/api-nextjs/tasks.md +0 -168
  257. package/stacks/blazor-azure/.morph/examples/micro-saas/README.md +0 -125
  258. package/stacks/blazor-azure/.morph/examples/micro-saas/contracts.cs +0 -358
  259. package/stacks/blazor-azure/.morph/examples/micro-saas/decisions.md +0 -246
  260. package/stacks/blazor-azure/.morph/examples/micro-saas/spec.md +0 -236
  261. package/stacks/blazor-azure/.morph/examples/micro-saas/tasks.md +0 -150
  262. package/stacks/blazor-azure/.morph/examples/multi-agent/README.md +0 -309
  263. package/stacks/blazor-azure/.morph/examples/multi-agent/contracts.cs +0 -433
  264. package/stacks/blazor-azure/.morph/examples/multi-agent/spec.md +0 -479
  265. package/stacks/blazor-azure/.morph/examples/multi-agent/tasks.md +0 -185
  266. package/stacks/blazor-azure/.morph/examples/scheduled-reports/decisions.md +0 -158
  267. package/stacks/blazor-azure/.morph/examples/scheduled-reports/proposal.md +0 -95
  268. package/stacks/blazor-azure/.morph/examples/scheduled-reports/spec.md +0 -267
  269. package/stacks/blazor-azure/.morph/examples/state-v3.json +0 -188
  270. package/stacks/blazor-azure/.morph/features/.gitkeep +0 -25
  271. package/stacks/blazor-azure/.morph/hooks/README.md +0 -348
  272. package/stacks/blazor-azure/.morph/hooks/pre-commit-agents.sh +0 -24
  273. package/stacks/blazor-azure/.morph/hooks/pre-commit-all.sh +0 -48
  274. package/stacks/blazor-azure/.morph/hooks/pre-commit-specs.sh +0 -49
  275. package/stacks/blazor-azure/.morph/hooks/task-completed.js +0 -73
  276. package/stacks/blazor-azure/.morph/hooks/teammate-idle.js +0 -68
  277. package/stacks/blazor-azure/.morph/schemas/agent.schema.json +0 -296
  278. package/stacks/blazor-azure/.morph/schemas/tasks.schema.json +0 -220
  279. package/stacks/blazor-azure/.morph/specs/.gitkeep +0 -20
  280. package/stacks/blazor-azure/.morph/standards/agent-framework-blazor-ui.md +0 -359
  281. package/stacks/blazor-azure/.morph/standards/agent-framework-production.md +0 -410
  282. package/stacks/blazor-azure/.morph/standards/agent-framework-setup.md +0 -413
  283. package/stacks/blazor-azure/.morph/standards/agent-framework-workflows.md +0 -349
  284. package/stacks/blazor-azure/.morph/standards/agent-teams-workflow.md +0 -474
  285. package/stacks/blazor-azure/.morph/standards/architecture.md +0 -325
  286. package/stacks/blazor-azure/.morph/standards/azure.md +0 -605
  287. package/stacks/blazor-azure/.morph/standards/coding.md +0 -377
  288. package/stacks/blazor-azure/.morph/standards/dotnet10-migration.md +0 -520
  289. package/stacks/blazor-azure/.morph/standards/fluent-ui-setup.md +0 -590
  290. package/stacks/blazor-azure/.morph/standards/migration-guide.md +0 -514
  291. package/stacks/blazor-azure/.morph/standards/passkeys-auth.md +0 -423
  292. package/stacks/blazor-azure/.morph/standards/vector-search-rag.md +0 -536
  293. package/stacks/blazor-azure/.morph/templates/CONTEXT-FEATURE.md +0 -276
  294. package/stacks/blazor-azure/.morph/templates/CONTEXT.md +0 -170
  295. package/stacks/blazor-azure/.morph/templates/FluentDesignTheme.cs +0 -149
  296. package/stacks/blazor-azure/.morph/templates/MudTheme.cs +0 -281
  297. package/stacks/blazor-azure/.morph/templates/agent.cs +0 -163
  298. package/stacks/blazor-azure/.morph/templates/clarify-questions.md +0 -159
  299. package/stacks/blazor-azure/.morph/templates/component.razor +0 -239
  300. package/stacks/blazor-azure/.morph/templates/contracts/Commands.cs +0 -74
  301. package/stacks/blazor-azure/.morph/templates/contracts/Entities.cs +0 -25
  302. package/stacks/blazor-azure/.morph/templates/contracts/Queries.cs +0 -74
  303. package/stacks/blazor-azure/.morph/templates/contracts/README.md +0 -74
  304. package/stacks/blazor-azure/.morph/templates/contracts.cs +0 -217
  305. package/stacks/blazor-azure/.morph/templates/decisions.md +0 -123
  306. package/stacks/blazor-azure/.morph/templates/design-system.css +0 -226
  307. package/stacks/blazor-azure/.morph/templates/infra/.dockerignore.example +0 -89
  308. package/stacks/blazor-azure/.morph/templates/infra/Dockerfile.example +0 -82
  309. package/stacks/blazor-azure/.morph/templates/infra/README.md +0 -286
  310. package/stacks/blazor-azure/.morph/templates/infra/app-insights.bicep +0 -63
  311. package/stacks/blazor-azure/.morph/templates/infra/app-service.bicep +0 -164
  312. package/stacks/blazor-azure/.morph/templates/infra/azure-pipelines-deploy.yml +0 -480
  313. package/stacks/blazor-azure/.morph/templates/infra/container-app-env.bicep +0 -49
  314. package/stacks/blazor-azure/.morph/templates/infra/container-app.bicep +0 -156
  315. package/stacks/blazor-azure/.morph/templates/infra/deploy-checklist.md +0 -426
  316. package/stacks/blazor-azure/.morph/templates/infra/deploy.ps1 +0 -229
  317. package/stacks/blazor-azure/.morph/templates/infra/deploy.sh +0 -208
  318. package/stacks/blazor-azure/.morph/templates/infra/key-vault.bicep +0 -91
  319. package/stacks/blazor-azure/.morph/templates/infra/main.bicep +0 -189
  320. package/stacks/blazor-azure/.morph/templates/infra/parameters.dev.json +0 -29
  321. package/stacks/blazor-azure/.morph/templates/infra/parameters.prod.json +0 -29
  322. package/stacks/blazor-azure/.morph/templates/infra/parameters.staging.json +0 -29
  323. package/stacks/blazor-azure/.morph/templates/infra/sql-database.bicep +0 -103
  324. package/stacks/blazor-azure/.morph/templates/infra/storage.bicep +0 -106
  325. package/stacks/blazor-azure/.morph/templates/integrations/asaas-client.cs +0 -387
  326. package/stacks/blazor-azure/.morph/templates/integrations/asaas-webhook.cs +0 -351
  327. package/stacks/blazor-azure/.morph/templates/integrations/azure-identity-config.cs +0 -288
  328. package/stacks/blazor-azure/.morph/templates/integrations/clerk-config.cs +0 -258
  329. package/stacks/blazor-azure/.morph/templates/job.cs +0 -171
  330. package/stacks/blazor-azure/.morph/templates/migration.cs +0 -83
  331. package/stacks/blazor-azure/.morph/templates/proposal.md +0 -141
  332. package/stacks/blazor-azure/.morph/templates/recap.md +0 -94
  333. package/stacks/blazor-azure/.morph/templates/repository.cs +0 -141
  334. package/stacks/blazor-azure/.morph/templates/saas/subscription.cs +0 -347
  335. package/stacks/blazor-azure/.morph/templates/saas/tenant.cs +0 -338
  336. package/stacks/blazor-azure/.morph/templates/service.cs +0 -139
  337. package/stacks/blazor-azure/.morph/templates/simulation.md +0 -353
  338. package/stacks/blazor-azure/.morph/templates/spec.md +0 -149
  339. package/stacks/blazor-azure/.morph/templates/sprint-status.yaml +0 -68
  340. package/stacks/blazor-azure/.morph/templates/state.template.json +0 -222
  341. package/stacks/blazor-azure/.morph/templates/story.md +0 -143
  342. package/stacks/blazor-azure/.morph/templates/tasks.md +0 -257
  343. package/stacks/blazor-azure/.morph/templates/test.cs +0 -239
  344. package/stacks/blazor-azure/.morph/templates/ui-components.md +0 -362
  345. package/stacks/blazor-azure/.morph/templates/ui-design-system.md +0 -286
  346. package/stacks/blazor-azure/.morph/templates/ui-flows.md +0 -336
  347. package/stacks/blazor-azure/.morph/templates/ui-mockups.md +0 -133
  348. package/stacks/blazor-azure/.morph/test-infra/example.bicep +0 -59
  349. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/backend/dotnet-supabase.md +0 -244
  350. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/frontend/nextjs-supabase.md +0 -335
  351. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/infrastructure/easypanel-deployer.md +0 -189
  352. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/integrations/supabase-expert.md +0 -170
  353. package/stacks/nextjs-supabase/.morph/docs/easypanel-setup.md +0 -169
  354. package/stacks/nextjs-supabase/.morph/docs/supabase-mcp-setup.md +0 -247
  355. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/README.md +0 -697
  356. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/spec.md +0 -85
  357. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/tasks.md +0 -86
  358. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/README.md +0 -498
  359. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/decisions.md +0 -121
  360. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/spec.md +0 -138
  361. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/tasks.md +0 -162
  362. package/stacks/nextjs-supabase/.morph/standards/easypanel-deploy.md +0 -191
  363. package/stacks/nextjs-supabase/.morph/standards/nextjs-patterns.md +0 -193
  364. package/stacks/nextjs-supabase/.morph/standards/supabase-auth.md +0 -171
  365. package/stacks/nextjs-supabase/.morph/standards/supabase-pgvector.md +0 -164
  366. package/stacks/nextjs-supabase/.morph/standards/supabase-rls.md +0 -179
  367. package/stacks/nextjs-supabase/.morph/standards/supabase-storage.md +0 -148
  368. package/stacks/nextjs-supabase/.morph/templates/contracts.cs +0 -173
  369. package/stacks/nextjs-supabase/.morph/templates/contracts.ts +0 -168
  370. package/stacks/nextjs-supabase/.morph/templates/decisions.md +0 -115
  371. package/stacks/nextjs-supabase/.morph/templates/dockerfile-api.dockerfile +0 -38
  372. package/stacks/nextjs-supabase/.morph/templates/dockerfile-web.dockerfile +0 -48
  373. package/stacks/nextjs-supabase/.morph/templates/proposal.md +0 -145
  374. package/stacks/nextjs-supabase/.morph/templates/recap.md +0 -134
  375. package/stacks/nextjs-supabase/.morph/templates/rls-policy.sql +0 -57
  376. package/stacks/nextjs-supabase/.morph/templates/spec.md +0 -231
  377. package/stacks/nextjs-supabase/.morph/templates/supabase-migration.sql +0 -100
  378. package/stacks/nextjs-supabase/.morph/templates/tasks.md +0 -257
  379. /package/src/commands/{search-patterns.js → learning/search-patterns.js} +0 -0
  380. /package/src/{lib → core/templates}/template-data-sources.js +0 -0
  381. /package/src/lib/{design-system-generator.js → generators/design-system-generator.js} +0 -0
  382. /package/src/lib/{learning-system.js → learning/learning-system.js} +0 -0
  383. /package/src/lib/validators/{package-validator.js → packages/package-validator.js} +0 -0
  384. /package/src/lib/validators/{ui-contrast-validator.js → ui/ui-contrast-validator.js} +0 -0
  385. /package/{src/generator → stacks/blazor-azure/.morph/templates}/.gitkeep +0 -0
  386. /package/{src/llm → stacks/nextjs-supabase/.morph/templates}/.gitkeep +0 -0
@@ -1,226 +0,0 @@
1
- # Code Review Checklist
2
-
3
- > Comprehensive checklist for .NET code review: naming, architecture, clean code, duplication, and runtime patterns.
4
- > **Ref:** `framework/standards/coding.md` for naming conventions and style.
5
- > **Ref:** `framework/standards/architecture.md` for layer rules and SOLID.
6
- > **Ref:** `framework/standards/blazor-efcore.md` for DbContext patterns and background ops.
7
-
8
- ---
9
-
10
- ## Naming & Style (ref: coding.md)
11
-
12
- - [ ] `[CRITICAL]` Constants use PascalCase (`MaxRetryCount`, NOT `MAX_RETRY_COUNT`)
13
- - [ ] `[CRITICAL]` No Hungarian notation (`strName`, `iCount`, `btnSubmit`)
14
- - [ ] `[HIGH]` Private fields use `_camelCase` prefix
15
- - [ ] `[HIGH]` Async methods have `Async` suffix
16
- - [ ] `[HIGH]` Interfaces prefixed with `I`
17
- - [ ] `[MEDIUM]` No abbreviations in public APIs (`repository` not `repo`)
18
- - [ ] `[MEDIUM]` All classes `sealed` unless designed for inheritance
19
- - [ ] `[MEDIUM]` File-scoped namespaces used
20
-
21
- ---
22
-
23
- ## Architecture Review (ref: architecture.md)
24
-
25
- ### Layer Integrity
26
- - [ ] `[CRITICAL]` Domain has zero references to Infrastructure or Web
27
- - [ ] `[CRITICAL]` No circular dependencies between projects
28
- - [ ] `[HIGH]` Application does NOT reference Web project
29
- - [ ] `[HIGH]` Infrastructure details don't leak into Application DTOs
30
-
31
- ### Responsibility & Organization
32
- - [ ] `[HIGH]` No class > 300 lines (SRP violation)
33
- - [ ] `[HIGH]` Controllers/pages are thin (< 50 lines logic)
34
- - [ ] `[MEDIUM]` One class per file, file name = class name
35
- - [ ] `[MEDIUM]` Files in correct project/folder per architecture.md
36
- - [ ] `[LOW]` No "God classes" (10+ constructor dependencies)
37
-
38
- ### Dependencies
39
- - [ ] `[HIGH]` External services accessed through interfaces
40
- - [ ] `[HIGH]` No hardcoded connection strings, URLs, or secrets
41
- - [ ] `[MEDIUM]` Configuration via Options pattern (`IOptions<T>`)
42
- - [ ] `[LOW]` No over-abstraction (interface with 1 impl never mocked)
43
-
44
- ---
45
-
46
- ## Clean Code Review
47
-
48
- ### Method Quality
49
- - [ ] `[HIGH]` No methods > 30 lines (extract sub-methods)
50
- - [ ] `[HIGH]` No methods with > 4 parameters (use request object)
51
- - [ ] `[MEDIUM]` No nested conditionals > 3 levels (use early return)
52
- - [ ] `[MEDIUM]` No complex conditionals (> 3 conditions — extract to named method)
53
-
54
- ### Magic Values
55
- - [ ] `[HIGH]` No magic strings in comparisons (use enum or constant)
56
- - [ ] `[HIGH]` No magic numbers (extract to PascalCase constant)
57
- - [ ] `[MEDIUM]` No hardcoded URLs, file paths, or config values
58
-
59
- ### Dead Code
60
- - [ ] `[MEDIUM]` No unused private methods
61
- - [ ] `[MEDIUM]` No unused parameters
62
- - [ ] `[LOW]` No commented-out code blocks (> 3 lines)
63
- - [ ] `[LOW]` No empty or near-empty files
64
-
65
- ---
66
-
67
- ## Duplication Review
68
-
69
- - [ ] `[HIGH]` No exact/near-exact duplicate methods across classes
70
- - [ ] `[HIGH]` No duplicate model definitions (same properties in different classes)
71
- - [ ] `[MEDIUM]` No thin wrappers that only delegate without adding value
72
- - [ ] `[MEDIUM]` No mirrored interface methods (extract base interface)
73
- - [ ] `[MEDIUM]` No duplicate enums across projects (centralize in Domain)
74
- - [ ] `[LOW]` No passthrough service methods (controller -> service with zero logic)
75
-
76
- ---
77
-
78
- ## Async & Cancellation
79
-
80
- - [ ] `[CRITICAL]` CancellationToken propagated through entire call chain
81
- - [ ] `[CRITICAL]` No `.Result` or `.Wait()` (deadlock risk in Blazor Server)
82
- - [ ] `[HIGH]` No `async void` (except event handlers)
83
- - [ ] `[HIGH]` Timeout configured for external operations
84
- - [ ] `[MEDIUM]` `ConfigureAwait(false)` only in library code
85
-
86
- ---
87
-
88
- ## Logging
89
-
90
- - [ ] `[HIGH]` Logs at critical points (entry, exit, errors)
91
- - [ ] `[HIGH]` No `$""` string interpolation in log methods (use message templates)
92
- - [ ] `[HIGH]` No sensitive data logged (passwords, tokens, PII)
93
- - [ ] `[MEDIUM]` Logs include correlation IDs (OrderId, UserId)
94
- - [ ] `[MEDIUM]` Appropriate log level (Information, Warning, Error)
95
-
96
- ---
97
-
98
- ## Error Handling
99
-
100
- - [ ] `[CRITICAL]` No empty catch blocks
101
- - [ ] `[HIGH]` Specific exceptions (not generic `catch (Exception)` without re-throw)
102
- - [ ] `[HIGH]` Inner exception preserved on re-throw
103
- - [ ] `[HIGH]` Result pattern for expected business errors, exceptions for infrastructure
104
- - [ ] `[MEDIUM]` Consistent error handling pattern across all services
105
-
106
- ---
107
-
108
- ## DI
109
-
110
- - [ ] `[HIGH]` Constructor injection with interfaces (not concrete types)
111
- - [ ] `[HIGH]` Correct lifetime (Scoped for DbContext, Singleton for factories)
112
- - [ ] `[MEDIUM]` No service locator pattern (`IServiceProvider.GetService<T>()` in business code)
113
-
114
- ---
115
-
116
- ## Services
117
-
118
- ### State Validation
119
- - [ ] `[HIGH]` Validates INVALID states (not valid ones) for future extensibility
120
- - [ ] `[HIGH]` Error states handled explicitly
121
-
122
- ```csharp
123
- // Correct: validate INVALID states
124
- if (order.Status >= OrderStatus.Completed || order.Status == OrderStatus.Failed)
125
- throw new InvalidOperationException("Cannot process completed or failed order");
126
- ```
127
-
128
- ### Transactions
129
- - [ ] `[HIGH]` Multiple operations wrapped in transaction
130
- - [ ] `[HIGH]` Rollback on error
131
-
132
- ```csharp
133
- await using var transaction = await _context.Database.BeginTransactionAsync(ct);
134
- try
135
- {
136
- await _repository.AddAsync(order, ct);
137
- await _paymentService.ChargeAsync(order.Id, ct);
138
- await transaction.CommitAsync(ct);
139
- }
140
- catch { await transaction.RollbackAsync(ct); throw; }
141
- ```
142
-
143
- ---
144
-
145
- ## Background Operations
146
-
147
- ### DbContext Safety
148
- - [ ] `[CRITICAL]` Uses `IDbContextFactory` (not scoped DbContext)
149
- - [ ] `[CRITICAL]` Repository created via Factory with `await using`
150
- - [ ] `[HIGH]` No `Task.Delay` as race condition workaround
151
-
152
- ```csharp
153
- // Correct pattern
154
- _ = Task.Run(async () =>
155
- {
156
- try
157
- {
158
- await using var repo = _repoFactory.CreateScoped();
159
- var order = await repo.GetByIdAsync(orderId);
160
- // ...
161
- }
162
- catch (Exception ex) { _logger.LogError(ex, "Failed {OrderId}", orderId); }
163
- });
164
- ```
165
-
166
- ### Hangfire Jobs
167
- - [ ] `[HIGH]` `[AutomaticRetry]` configured
168
- - [ ] `[HIGH]` Job is idempotent (safe to run multiple times)
169
- - [ ] `[MEDIUM]` CancellationToken used
170
- - [ ] `[MEDIUM]` No HTTP request state dependency
171
-
172
- ### Resilience
173
- - [ ] `[MEDIUM]` Retry policy for transient operations
174
- - [ ] `[MEDIUM]` State persisted before long operation
175
- - [ ] `[MEDIUM]` Idempotency guaranteed for retries
176
-
177
- ---
178
-
179
- ## DTOs / Contracts
180
-
181
- ### Naming
182
- - [ ] `[HIGH]` Descriptive property names (not "Data", "Value", "Info")
183
- - [ ] `[HIGH]` Correct suffix: `Request` (input), `Response` (output), `Dto` (generic), `Command`/`Query` (CQRS)
184
-
185
- ### Types
186
- - [ ] `[MEDIUM]` `Stream` for large files, `byte[]` for small in-memory data
187
- - [ ] `[MEDIUM]` `DateTimeOffset` for timestamps, `DateTime` for local dates
188
- - [ ] `[MEDIUM]` Nullable `?` only where truly optional
189
-
190
- ### Structure
191
- - [ ] `[MEDIUM]` Records for immutable DTOs, classes with `init` for mutable entities
192
- - [ ] `[MEDIUM]` Response DTOs have all properties needed by UI
193
- - [ ] `[MEDIUM]` Enums have explicit values with logical ordering (errors at 100+)
194
-
195
- ```csharp
196
- public enum OrderStatus
197
- {
198
- Created = 0, PendingPayment = 1, Processing = 2, Completed = 3, // Normal flow
199
- Failed = 100, Cancelled = 101, Refunded = 102 // Error states
200
- }
201
- ```
202
-
203
- ### Service Interfaces
204
- - [ ] `[HIGH]` Async methods with `Async` suffix
205
- - [ ] `[HIGH]` CancellationToken as last parameter
206
- - [ ] `[MEDIUM]` `Task<Result<T>>` for expected business errors
207
-
208
- ---
209
-
210
- ## Quick Pre-Merge Checklist
211
-
212
- ```
213
- [ ] Naming follows coding.md (PascalCase constants, _camelCase fields, sealed classes)
214
- [ ] CancellationToken propagated on all async methods
215
- [ ] Structured logging at critical points (message templates, not $"")
216
- [ ] No empty catch blocks, Result pattern for business errors
217
- [ ] Background ops use IDbContextFactory + await using
218
- [ ] No duplicate code, no magic values, no methods > 30 lines
219
- [ ] Architecture layers respected (Domain has zero external refs)
220
- [ ] DTOs have descriptive names + correct types
221
- ```
222
-
223
- ---
224
-
225
- *Consolidated from: code-review-services.md + code-review-background.md + code-review-contracts.md + architecture/clean-code/duplication analysis.*
226
- *MORPH-SPEC by Polymorphism Tech*
@@ -1,117 +0,0 @@
1
- # Skill: /morph-checklist
2
-
3
- > **Layer:** 2 | **Load:** on-keyword | **Keywords:** checklist, deploy, security, seo, performance, accessibility, lgpd, legal
4
-
5
- Types: `deploy`, `security`, `seo`, `performance`, `accessibility`, `legal-brazil`, `simulation` (see [simulation-checklist.md](simulation-checklist.md))
6
-
7
- ---
8
-
9
- ## Deploy
10
-
11
- ### Pre-Deploy
12
- - [ ] `dotnet build --configuration Release` passes
13
- - [ ] `dotnet test` passes
14
- - [ ] Migrations applied (`dotnet ef database update`)
15
- - [ ] Env vars configured (connection strings, API keys, feature flags)
16
-
17
- ### Infrastructure
18
- - [ ] Bicep/IaC updated (`az deployment group what-if`)
19
- - [ ] SSL/HTTPS configured
20
- - [ ] DNS pointing correctly
21
- - [ ] Health checks configured
22
-
23
- ### Security & Monitoring
24
- - [ ] Secrets in Key Vault (not in code)
25
- - [ ] Managed Identity configured
26
- - [ ] CORS configured
27
- - [ ] Rate limiting enabled
28
- - [ ] Application Insights + alerts configured
29
-
30
- ### Post-Deploy
31
- - [ ] Smoke tests executed
32
- - [ ] Rollback plan documented
33
-
34
- ---
35
-
36
- ## Security
37
-
38
- ### Auth & Authorization
39
- - [ ] Passwords hashed (bcrypt/Argon2), MFA available
40
- - [ ] JWT with short expiration + refresh tokens
41
- - [ ] RBAC + resource-based authorization
42
- - [ ] Ownership verification (user sees only their data)
43
-
44
- ### Input & Headers
45
- - [ ] Server-side validation (never trust client)
46
- - [ ] HTML sanitized (XSS), parametrized queries (SQLi)
47
- - [ ] File upload validation (type, size, content)
48
- - [ ] Security headers: `X-Content-Type-Options: nosniff`, `X-Frame-Options: DENY`, `CSP: default-src 'self'`
49
-
50
- ### Data
51
- - [ ] PII encrypted at rest, masked in logs
52
- - [ ] Card data never stored (use tokenization)
53
- - [ ] `dotnet list package --vulnerable` clean
54
-
55
- ---
56
-
57
- ## SEO
58
-
59
- - [ ] `<title>` + `<meta description>` (150-160 chars)
60
- - [ ] `<link rel="canonical">` + `robots.txt` + `sitemap.xml`
61
- - [ ] Open Graph tags (og:title, og:description, og:image)
62
- - [ ] URLs friendly, heading hierarchy (H1>H2>H3)
63
- - [ ] Images optimized (WebP, lazy loading, alt text)
64
- - [ ] Core Web Vitals: LCP < 2.5s, FID < 100ms, CLS < 0.1
65
-
66
- ---
67
-
68
- ## Performance
69
-
70
- ### Backend
71
- - [ ] `.AsNoTracking()` for reads, no N+1, projections (`.Select()`)
72
- - [ ] Indexes on search columns
73
- - [ ] Response/distributed caching with invalidation
74
- - [ ] All I/O operations are async (no `.Result` / `.Wait()`)
75
-
76
- ### Frontend (Blazor)
77
- - [ ] Lazy loading, virtualization for large lists
78
- - [ ] Debounce search inputs
79
- - [ ] `@key` in loops, `ShouldRender()` for perf
80
-
81
- ### Infrastructure
82
- - [ ] CDN for static assets, gzip/brotli compression
83
- - [ ] Connection pooling, scale-to-zero
84
-
85
- ---
86
-
87
- ## Accessibility (WCAG 2.1)
88
-
89
- - [ ] Alt text on images, captions on videos
90
- - [ ] Contrast >= 4.5:1 (AA), color not sole indicator
91
- - [ ] Keyboard navigation works, focus visible
92
- - [ ] Skip links, `<html lang="pt-BR">`
93
- - [ ] Labels on all inputs, clear error messages
94
- - [ ] Valid HTML, ARIA used correctly
95
-
96
- ---
97
-
98
- ## Legal Brazil (LGPD)
99
-
100
- ### Documentation
101
- - [ ] Privacy policy (data collected, purpose, legal basis, DPO contact)
102
- - [ ] Terms of use (service description, responsibilities, forum)
103
-
104
- ### Consent & Rights
105
- - [ ] Cookie banner with granular options
106
- - [ ] Explicit consent for marketing, revocation option
107
- - [ ] Data access, correction, deletion, portability
108
-
109
- ### Technical
110
- - [ ] Data minimization, defined retention periods
111
- - [ ] Anonymization/pseudonymization where possible
112
- - [ ] Access logs for personal data
113
- - [ ] Incident response plan (ANPD notification in 72h)
114
-
115
- ---
116
-
117
- *MORPH-SPEC Checklist Skill*
@@ -1,77 +0,0 @@
1
- # Skill: /morph-checklist simulation
2
-
3
- > **Layer:** 2 | **Load:** on-keyword | **Keywords:** simulation, mock, fake, external service, sandbox
4
-
5
- Checklist for simulating external services (AI, payment, email APIs).
6
-
7
- ## Pre-Implementation
8
-
9
- ### 1. Map All Dependencies
10
-
11
- - [ ] List ALL interfaces in the flow (`grep -r "I{ServiceName}" src/ --include="*.cs" -l`)
12
- - [ ] Identify **transitive dependencies** (e.g., `ArtGenerationService` → `IReplicateClient` + `IImageDownloader`)
13
- - [ ] Document dependency trace: services to mock, transitive deps, required lifetimes
14
-
15
- ### 2. Verify Lifetimes
16
-
17
- | State | Lifetime | Example |
18
- |-------|----------|---------|
19
- | Stateful (Dictionary, List) | **Singleton** | `FakeReplicateClient` with prediction store |
20
- | Stateless | **Scoped** | `FakeEmailClient` that only logs |
21
-
22
- ```csharp
23
- // ❌ Stateful + Scoped = loses state between requests
24
- services.AddScoped<IReplicateClient, FakeReplicateClient>();
25
- // ✅ Stateful + Singleton
26
- services.AddSingleton<IReplicateClient, FakeReplicateClient>();
27
- ```
28
-
29
- ### 3. Read Complete Interfaces
30
-
31
- - [ ] Check full signatures — don't miss optional parameters (`attachments`, `CancellationToken`)
32
- - [ ] For AI mocks: verify current prompts, model in use, response format
33
- - [ ] For email mocks: check for attachments/inline images, log simulated sends
34
- - [ ] For payment mocks: implement state transitions (PENDING → CONFIRMED → REFUNDED), simulate webhooks
35
-
36
- ## Configuration Template
37
-
38
- ```json
39
- // appsettings.Development.json
40
- { "Simulation": { "Enabled": true, "ImageDelayMs": 500, "PlaceholderImageUrl": "https://picsum.photos/1024/1024" } }
41
- ```
42
-
43
- ```csharp
44
- if (configuration.GetValue<bool>("Simulation:Enabled"))
45
- services.AddSimulationClients(configuration); // Stateful→Singleton, Stateless→Scoped
46
- else
47
- services.AddProductionClients(configuration);
48
- ```
49
-
50
- ## Post-Implementation
51
-
52
- - [ ] Validate DI: `dotnet build && dotnet run` + health check
53
- - [ ] Test full flow end-to-end (not just unit tests)
54
- - [ ] Verify simulation logs — confirm mocks are being called
55
-
56
- ## Common Errors
57
-
58
- | Error | Cause | Fix |
59
- |-------|-------|-----|
60
- | Mock loses state between requests | Scoped lifetime for stateful service | Change to Singleton |
61
- | `Unable to resolve service` at runtime | Transitive dependency not registered | Map ALL dependencies |
62
- | Incorrect method signature | Didn't read full interface | Check optional params |
63
- | Mock returns wrong data | Prompts/model changed | Read current prompts |
64
- | Works in test, fails at runtime | Test doesn't cover full DI | Test with `dotnet run` |
65
-
66
- ## Checklist
67
-
68
- - [ ] All interfaces mapped (including transitive)
69
- - [ ] Lifetimes correct (stateful=Singleton, stateless=Scoped)
70
- - [ ] Complete interface signatures implemented
71
- - [ ] Simulation toggle via config
72
- - [ ] End-to-end flow tested in simulation mode
73
- - [ ] No real API calls in simulation mode
74
-
75
- ---
76
-
77
- *MORPH-SPEC Simulation Checklist*
@@ -1,7 +0,0 @@
1
- # Level 1: Workflows
2
-
3
- Phase orchestration and workflow management.
4
-
5
- **Purpose:** Skills that implement MORPH workflow phases (FASE 0-6).
6
-
7
- **Examples:** phase-setup, phase-design, phase-uiux
@@ -1,213 +0,0 @@
1
- # Skill: /morph-replicate
2
-
3
- > Workflow simplificado para replicar prototipos HTML em Blazor.
4
- > Use quando tiver um prototipo HTML pronto e precisar converter para codigo Blazor funcional.
5
-
6
- ## Comando
7
-
8
- ```bash
9
- /morph-replicate {feature-name} {prototype-path}
10
- ```
11
-
12
- **Exemplo:**
13
- ```bash
14
- /morph-replicate ui-redesign prototipo/
15
- ```
16
-
17
- ---
18
-
19
- ## Workflow Simplificado
20
-
21
- ### FASE 1: ANALISE DO PROTOTIPO
22
-
23
- 1. **Ler todos os arquivos HTML em `{prototype-path}/`**
24
- ```bash
25
- # Encontrar todos os arquivos HTML
26
- glob: {prototype-path}/**/*.html
27
- glob: {prototype-path}/**/code.html # Pattern comum de prototipos
28
- ```
29
-
30
- 2. **Extrair padroes de cada arquivo:**
31
- - Layout (grid, flexbox, estrutura)
32
- - Componentes (cards, buttons, forms, modals)
33
- - Cores (extrair de inline styles e CSS)
34
- - Fontes (font-family, sizes)
35
- - Espacamentos (padding, margin, gap)
36
- - Classes CSS usadas
37
-
38
- 3. **Gerar mapeamento HTML → Blazor:**
39
-
40
- | HTML Pattern | Blazor Equivalente |
41
- |--------------|-------------------|
42
- | `<button class="btn-primary">` | `<FluentButton Appearance="Appearance.Accent">` |
43
- | `<div class="card">` | `<FluentCard>` ou HTML customizado |
44
- | `<input type="text">` | `<FluentTextField>` |
45
- | `<div class="modal">` | Modal customizado (se design especifico) |
46
-
47
- 4. **Gerar lista de classes CSS a criar:**
48
- ```markdown
49
- ## Classes CSS Necessarias
50
-
51
- - [ ] .page-layout
52
- - [ ] .home-hero
53
- - [ ] .card-premium
54
- - [ ] .checkout-form
55
- - [ ] .modal-overlay
56
- - [ ] .animate-slideInUp
57
- ```
58
-
59
- **PAUSA:** Aprovar mapeamento e lista de CSS
60
-
61
- ---
62
-
63
- ### FASE 2: TASKS (Lista de Telas)
64
-
65
- Gerar lista de telas para implementar na ordem correta:
66
-
67
- ```markdown
68
- ## Tasks de Implementacao
69
-
70
- ### T001: Setup Design System
71
- - Criar/atualizar wwwroot/css/design-system.css
72
- - Adicionar todas as classes CSS listadas
73
- - Validar com `morph-spec validate-css`
74
-
75
- ### T002: {Nome da Tela 1}
76
- - Ler: {prototype-path}/{tela1}.html
77
- - Criar/Atualizar: Pages/{Tela1}.razor
78
- - Componentes: FluentCard, FluentButton, etc.
79
- - CSS: .home-hero, .card-premium
80
-
81
- ### T003: {Nome da Tela 2}
82
- - Ler: {prototype-path}/{tela2}.html
83
- - Criar/Atualizar: Pages/{Tela2}.razor
84
- - ...
85
-
86
- ### TXXX: Validacao Final
87
- - Build completo
88
- - `morph-spec validate-css`
89
- - Testar responsividade
90
- ```
91
-
92
- **PAUSA:** Aprovar lista de tasks
93
-
94
- ---
95
-
96
- ### FASE 3: IMPLEMENT (Por Tela)
97
-
98
- Para cada tela, seguir este fluxo:
99
-
100
- 1. **Ler HTML do prototipo**
101
- ```
102
- Read: {prototype-path}/{tela}.html
103
- ```
104
-
105
- 2. **Ler arquivo .razor atual** (se existir)
106
- ```
107
- Read: Pages/{Tela}.razor
108
- ```
109
-
110
- 3. **Reescrever .razor usando Fluent UI/MudBlazor**
111
- - Manter estrutura de layout do prototipo
112
- - Substituir elementos HTML por componentes Blazor
113
- - Aplicar classes CSS do design-system
114
-
115
- 4. **Adicionar CSS ao design-system.css**
116
- - Se classe nova foi usada no .razor
117
- - Seguir padrao de nomenclatura (prefixo por pagina)
118
-
119
- 5. **Build para validar**
120
- ```bash
121
- dotnet build
122
- ```
123
-
124
- 6. **Validar CSS**
125
- ```bash
126
- morph-spec validate-css src/MyApp.Web
127
- ```
128
-
129
- ---
130
-
131
- ## Outputs
132
-
133
- Este workflow gera apenas:
134
-
135
- | Arquivo | Descricao |
136
- |---------|-----------|
137
- | `.razor` files | Paginas convertidas |
138
- | `design-system.css` | CSS atualizado |
139
- | `recap.md` | Resumo da implementacao (ao final) |
140
-
141
- **NAO gera:** proposal.md, spec.md, contracts.cs, tasks.json
142
-
143
- ---
144
-
145
- ## Exemplo de Execucao
146
-
147
- ```markdown
148
- /morph-replicate checkout-redesign prototipo/checkout/
149
-
150
- 📁 Analisando prototipo em prototipo/checkout/...
151
-
152
- **Arquivos encontrados:**
153
- - step1-cart.html
154
- - step2-payment.html
155
- - step3-confirmation.html
156
-
157
- **Padroes extraidos:**
158
-
159
- Cores:
160
- - Primary: #FF6B35
161
- - Secondary: #2D3047
162
- - Background: #FAFAFA
163
-
164
- Classes CSS a criar:
165
- - [ ] .checkout-layout
166
- - [ ] .checkout-steps
167
- - [ ] .checkout-form
168
- - [ ] .checkout-summary
169
- - [ ] .payment-options
170
- - [ ] .confirmation-message
171
-
172
- Mapeamento HTML → Blazor:
173
- - form.checkout-form → EditForm + FluentTextField
174
- - div.payment-card → FluentCard
175
- - button.btn-pay → FluentButton Accent
176
-
177
- ---
178
-
179
- ⛔ **PAUSA OBRIGATORIA**
180
-
181
- **Proximos passos:**
182
- 1. ✅ Aprovar e gerar tasks de implementacao
183
- 2. 🔄 Ajustar mapeamento
184
- 3. 📋 Ver mais detalhes dos componentes
185
- ```
186
-
187
- ---
188
-
189
- ## Quando Usar
190
-
191
- - ✅ Prototipo HTML pronto (Figma export, hand-coded, etc.)
192
- - ✅ Design ja aprovado pelo cliente
193
- - ✅ Apenas conversao visual (sem logica de negocio nova)
194
- - ✅ Codigo Blazor existente para atualizar
195
-
196
- ## Quando NAO Usar
197
-
198
- - ❌ Feature nova com logica complexa (use FULL MORPH)
199
- - ❌ Infraestrutura Azure necessaria (use FULL MORPH)
200
- - ❌ Sem prototipo definido (use STANDARD ou FULL MORPH)
201
-
202
- ---
203
-
204
- ## Referencias
205
-
206
- - [HTML to Blazor Guide](../../../../framework/standards/html-to-blazor.md)
207
- - [CSS Naming Convention](../../../../framework/standards/css-naming.md)
208
- - [CSS Animations](../../../../framework/standards/css-animations.md)
209
- - [Fluent UI Blazor](../../../../framework/standards/fluent-ui-blazor.md)
210
-
211
- ---
212
-
213
- *MORPH-SPEC v2.2.0 by Polymorphism Tech*