@polymorphism-tech/morph-spec 4.5.0 → 4.7.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 (292) hide show
  1. package/CLAUDE.md +77 -56
  2. package/README.md +394 -700
  3. package/docs/ARCHITECTURE.md +331 -0
  4. package/docs/CHEATSHEET.md +221 -0
  5. package/docs/COMMAND-FLOWS.md +368 -0
  6. package/docs/QUICKSTART.md +212 -0
  7. package/docs/examples/order-management/contracts.cs +84 -0
  8. package/docs/examples/order-management/proposal.md +24 -0
  9. package/docs/examples/order-management/spec.md +162 -0
  10. package/docs/plans/2026-02-23-ddd-architecture-refactor.md +1153 -0
  11. package/docs/plans/2026-02-23-ddd-nextsteps.md +682 -0
  12. package/docs/plans/2026-02-23-infra-architect-refactor.md +437 -0
  13. package/docs/plans/2026-02-23-nextjs-code-review-design.md +156 -0
  14. package/docs/plans/2026-02-23-nextjs-code-review-impl.md +1254 -0
  15. package/docs/plans/2026-02-23-nextjs-standards-design.md +149 -0
  16. package/docs/plans/2026-02-23-nextjs-standards-impl.md +1846 -0
  17. package/framework/{skills/level-2-domains → agents}/README.md +14 -14
  18. package/framework/{skills/level-2-domains → agents}/ai-agents/ai-system-architect.md +1 -4
  19. package/framework/{skills/level-2-domains → agents}/architecture/po-pm-advisor.md +1 -2
  20. package/framework/{skills/level-2-domains → agents}/architecture/prompt-engineer.md +1 -2
  21. package/framework/{skills/level-2-domains → agents}/architecture/seo-growth-hacker.md +1 -2
  22. package/framework/{skills/level-2-domains → agents}/architecture/standards-architect.md +159 -162
  23. package/framework/agents/backend/api-designer.md +103 -0
  24. package/framework/{skills/level-2-domains → agents}/backend/dotnet-senior.md +1 -2
  25. package/framework/agents/backend/ef-modeler.md +119 -0
  26. package/framework/{skills/level-2-domains → agents}/backend/hangfire-orchestrator.md +1 -4
  27. package/framework/{skills/level-2-domains → agents}/backend/ms-agent-expert.md +1 -4
  28. package/framework/{skills/level-2-domains → agents}/frontend/blazor-builder.md +1 -4
  29. package/framework/agents/frontend/nextjs-expert.md +118 -0
  30. package/framework/{skills/level-2-domains → agents}/frontend/ui-ux-designer.md +1 -2
  31. package/framework/{skills/level-2-domains → agents}/infrastructure/azure-architect.md +147 -148
  32. package/framework/{skills/level-2-domains → agents}/infrastructure/azure-deploy-specialist.md +1 -2
  33. package/framework/{skills/level-2-domains → agents}/infrastructure/bicep-architect.md +1 -4
  34. package/framework/{skills/level-2-domains → agents}/infrastructure/container-specialist.md +1 -4
  35. package/framework/{skills/level-2-domains → agents}/infrastructure/devops-engineer.md +1 -4
  36. package/framework/agents/infrastructure/infra-architect.md +45 -0
  37. package/framework/{skills/level-2-domains → agents}/integrations/asaas-financial.md +1 -4
  38. package/framework/{skills/level-2-domains → agents}/integrations/azure-identity.md +1 -4
  39. package/framework/{skills/level-2-domains → agents}/integrations/clerk-auth.md +1 -4
  40. package/framework/{skills/level-2-domains → agents}/integrations/hangfire-integration.md +1 -2
  41. package/framework/{skills/level-2-domains → agents}/integrations/resend-email.md +1 -4
  42. package/framework/{skills/level-2-domains → agents}/quality/code-analyzer.md +1 -4
  43. package/framework/{skills/level-2-domains → agents}/quality/testing-specialist.md +1 -4
  44. package/framework/agents.json +1145 -278
  45. package/framework/hooks/claude-code/statusline.py +384 -85
  46. package/framework/hooks/shared/phase-utils.js +129 -129
  47. package/framework/rules/frontend-standards.md +0 -3
  48. package/framework/rules/nextjs-standards.md +17 -0
  49. package/framework/skills/README.md +66 -0
  50. package/framework/skills/level-0-meta/{brainstorming.md → brainstorming/SKILL.md} +3 -1
  51. package/framework/skills/level-0-meta/brainstorming/references/proposal-example.md +138 -0
  52. package/framework/skills/level-0-meta/{code-review.md → code-review/SKILL.md} +3 -2
  53. package/framework/skills/level-0-meta/code-review/references/review-example.md +164 -0
  54. package/framework/skills/level-0-meta/code-review/scripts/scan-csharp.mjs +121 -0
  55. package/framework/skills/level-0-meta/code-review-nextjs/SKILL.md +147 -0
  56. package/framework/skills/level-0-meta/code-review-nextjs/references/review-example-nextjs.md +254 -0
  57. package/framework/skills/level-0-meta/{morph-checklist.md → morph-checklist/SKILL.md} +2 -5
  58. package/framework/skills/{level-1-workflows/morph-replicate.md → level-0-meta/morph-replicate/SKILL.md} +6 -7
  59. package/framework/skills/level-0-meta/{simulation-checklist.md → simulation-checklist/SKILL.md} +3 -6
  60. package/framework/skills/level-0-meta/{tool-usage-guide.md → tool-usage-guide/SKILL.md} +4 -5
  61. package/framework/skills/level-0-meta/{verification-before-completion.md → verification-before-completion/SKILL.md} +3 -1
  62. package/framework/skills/level-0-meta/verification-before-completion/scripts/check-phase-outputs.mjs +110 -0
  63. package/framework/skills/level-1-workflows/{phase-clarify.md → phase-clarify/SKILL.md} +3 -3
  64. package/framework/skills/level-1-workflows/phase-clarify/references/clarifications-example.md +117 -0
  65. package/framework/skills/level-1-workflows/{phase-codebase-analysis.md → phase-codebase-analysis/SKILL.md} +2 -3
  66. package/framework/skills/level-1-workflows/{phase-design.md → phase-design/SKILL.md} +46 -182
  67. package/framework/skills/level-1-workflows/phase-design/references/spec-example.md +253 -0
  68. package/framework/skills/level-1-workflows/{phase-implement.md → phase-implement/SKILL.md} +3 -3
  69. package/framework/skills/level-1-workflows/phase-implement/references/recap-example.md +132 -0
  70. package/framework/skills/level-1-workflows/{phase-setup.md → phase-setup/SKILL.md} +2 -3
  71. package/framework/skills/level-1-workflows/{phase-tasks.md → phase-tasks/SKILL.md} +42 -3
  72. package/framework/skills/level-1-workflows/phase-tasks/references/tasks-example.md +231 -0
  73. package/framework/skills/level-1-workflows/phase-tasks/scripts/validate-tasks.mjs +112 -0
  74. package/framework/skills/level-1-workflows/{phase-uiux.md → phase-uiux/SKILL.md} +2 -3
  75. package/framework/standards/STANDARDS.json +121 -0
  76. package/framework/standards/architecture/ddd/bounded-contexts.md +105 -0
  77. package/framework/standards/architecture/ddd/complexity-levels.md +108 -0
  78. package/framework/standards/architecture/ddd/ubiquitous-language.md +58 -0
  79. package/framework/standards/frontend/nextjs/app-router.md +123 -0
  80. package/framework/standards/frontend/nextjs/components.md +132 -0
  81. package/framework/standards/frontend/nextjs/data-fetching.md +126 -0
  82. package/framework/standards/frontend/nextjs/forms.md +128 -0
  83. package/framework/standards/frontend/nextjs/naming-conventions.md +67 -0
  84. package/framework/standards/frontend/nextjs/project-structure.md +102 -0
  85. package/framework/standards/frontend/nextjs/state-management.md +72 -0
  86. package/framework/standards/frontend/nextjs/testing.md +111 -0
  87. package/framework/templates/REGISTRY.json +538 -142
  88. package/framework/templates/code/dotnet/contracts/contracts-level1.cs +69 -0
  89. package/framework/templates/code/dotnet/contracts/contracts-level2.cs +86 -0
  90. package/framework/templates/code/dotnet/contracts/contracts-level3.cs +41 -0
  91. package/framework/templates/docs/spec.md +49 -0
  92. package/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -0
  93. package/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -0
  94. package/framework/templates/frontend/nextjs/env.mjs.hbs +32 -0
  95. package/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -0
  96. package/framework/templates/frontend/nextjs/page.tsx.hbs +22 -0
  97. package/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -0
  98. package/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -0
  99. package/framework/templates/project-structure/dotnet-ddd.md +70 -0
  100. package/framework/workflows/docs/enforcement-pipeline.md +2 -1
  101. package/package.json +1 -1
  102. package/scripts/scan-nextjs.mjs +169 -0
  103. package/src/commands/project/doctor.js +52 -1
  104. package/src/commands/project/init.js +19 -65
  105. package/src/commands/project/update.js +7 -63
  106. package/src/lib/detectors/claude-config-detector.js +1 -3
  107. package/src/lib/standards/standards-context-injector.js +5 -0
  108. package/src/lib/validators/nextjs/index.js +6 -0
  109. package/src/lib/validators/nextjs/next-component-validator.js +181 -0
  110. package/src/lib/validators/validation-runner.js +5 -0
  111. package/src/utils/agents-installer.js +16 -4
  112. package/src/utils/skills-installer.js +59 -15
  113. package/.morph/.morphversion +0 -5
  114. package/.morph/analytics/threads-log.jsonl +0 -44
  115. package/.morph/config/config.json +0 -8
  116. package/.morph/context/README.md +0 -17
  117. package/.morph/framework/agents.json +0 -948
  118. package/.morph/framework/standards/STANDARDS.json +0 -812
  119. package/.morph/framework/standards/ai-agents/blazor-ui.md +0 -364
  120. package/.morph/framework/standards/ai-agents/production.md +0 -415
  121. package/.morph/framework/standards/ai-agents/setup.md +0 -418
  122. package/.morph/framework/standards/ai-agents/team-orchestration.md +0 -479
  123. package/.morph/framework/standards/ai-agents/workflows.md +0 -354
  124. package/.morph/framework/standards/architecture/ddd/aggregates.md +0 -120
  125. package/.morph/framework/standards/architecture/ddd/entities.md +0 -99
  126. package/.morph/framework/standards/architecture/ddd/value-objects.md +0 -124
  127. package/.morph/framework/standards/backend/api/minimal-api.md +0 -494
  128. package/.morph/framework/standards/backend/api/rest.md +0 -492
  129. package/.morph/framework/standards/backend/api/validation.md +0 -88
  130. package/.morph/framework/standards/backend/authentication/passkeys.md +0 -428
  131. package/.morph/framework/standards/backend/database/ef-core.md +0 -199
  132. package/.morph/framework/standards/backend/database/migrations.md +0 -393
  133. package/.morph/framework/standards/backend/database/postgresql/database.md +0 -352
  134. package/.morph/framework/standards/backend/database/repository-patterns.md +0 -528
  135. package/.morph/framework/standards/backend/database/vector-search-rag.md +0 -541
  136. package/.morph/framework/standards/backend/dotnet/async.md +0 -366
  137. package/.morph/framework/standards/backend/dotnet/core.md +0 -117
  138. package/.morph/framework/standards/backend/dotnet/di.md +0 -439
  139. package/.morph/framework/standards/backend/dotnet/program-cs-checklist.md +0 -92
  140. package/.morph/framework/standards/backend/integrations/asaas/asaas-api.md +0 -216
  141. package/.morph/framework/standards/backend/integrations/clerk/clerk-auth.md +0 -290
  142. package/.morph/framework/standards/backend/integrations/hangfire/hangfire-jobs.md +0 -350
  143. package/.morph/framework/standards/backend/integrations/resend/resend-email.md +0 -385
  144. package/.morph/framework/standards/context/analytics.md +0 -96
  145. package/.morph/framework/standards/context/bundles.md +0 -110
  146. package/.morph/framework/standards/context/priming.md +0 -78
  147. package/.morph/framework/standards/core/architecture.md +0 -185
  148. package/.morph/framework/standards/core/coding.md +0 -214
  149. package/.morph/framework/standards/core/git-branching-strategy.md +0 -403
  150. package/.morph/framework/standards/core/git.md +0 -185
  151. package/.morph/framework/standards/core/testing.md +0 -295
  152. package/.morph/framework/standards/data/nosql/blob-storage.md +0 -102
  153. package/.morph/framework/standards/data/nosql/cache/redis.md +0 -97
  154. package/.morph/framework/standards/data/nosql/cosmos-db.md +0 -118
  155. package/.morph/framework/standards/data/vector-search/azure-ai-search.md +0 -121
  156. package/.morph/framework/standards/data/vector-search/rag-chunking.md +0 -104
  157. package/.morph/framework/standards/frontend/blazor/design-checklist.md +0 -222
  158. package/.morph/framework/standards/frontend/blazor/fluent-ui-setup.md +0 -595
  159. package/.morph/framework/standards/frontend/blazor/fluent-ui.md +0 -137
  160. package/.morph/framework/standards/frontend/blazor/html-conversion.md +0 -184
  161. package/.morph/framework/standards/frontend/blazor/lifecycle.md +0 -195
  162. package/.morph/framework/standards/frontend/blazor/pitfalls.md +0 -198
  163. package/.morph/framework/standards/frontend/blazor/state.md +0 -191
  164. package/.morph/framework/standards/frontend/design-system/animations.md +0 -151
  165. package/.morph/framework/standards/frontend/design-system/naming.md +0 -64
  166. package/.morph/framework/standards/frontend/nextjs/nextjs-patterns.md +0 -198
  167. package/.morph/framework/standards/infrastructure/azure/azure.md +0 -624
  168. package/.morph/framework/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -422
  169. package/.morph/framework/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -516
  170. package/.morph/framework/standards/infrastructure/azure/devops/local-development.md +0 -520
  171. package/.morph/framework/standards/infrastructure/azure/services/functions.md +0 -486
  172. package/.morph/framework/standards/infrastructure/azure/services/service-bus.md +0 -459
  173. package/.morph/framework/standards/infrastructure/azure/services/storage.md +0 -407
  174. package/.morph/framework/standards/infrastructure/docker/easypanel-deploy.md +0 -196
  175. package/.morph/framework/standards/infrastructure/supabase/mcp-setup.md +0 -252
  176. package/.morph/framework/standards/infrastructure/supabase/supabase-auth.md +0 -176
  177. package/.morph/framework/standards/infrastructure/supabase/supabase-pgvector.md +0 -169
  178. package/.morph/framework/standards/infrastructure/supabase/supabase-rls.md +0 -184
  179. package/.morph/framework/standards/infrastructure/supabase/supabase-storage.md +0 -153
  180. package/.morph/framework/standards/integration/api/graphql.md +0 -91
  181. package/.morph/framework/standards/integration/api/grpc.md +0 -114
  182. package/.morph/framework/standards/integration/api/rest-design.md +0 -95
  183. package/.morph/framework/standards/integration/event-driven/cqrs.md +0 -101
  184. package/.morph/framework/standards/integration/event-driven/event-sourcing.md +0 -124
  185. package/.morph/framework/standards/integration/event-driven/service-bus.md +0 -95
  186. package/.morph/framework/standards/integration/mcp/mcp-tools.md +0 -384
  187. package/.morph/framework/standards/observability/logging.md +0 -131
  188. package/.morph/framework/standards/observability/metrics.md +0 -121
  189. package/.morph/framework/standards/observability/monitoring.md +0 -114
  190. package/.morph/framework/standards/observability/tracing.md +0 -132
  191. package/.morph/framework/standards/workflows/parallel-execution.md +0 -112
  192. package/.morph/framework/standards/workflows/thread-management.md +0 -113
  193. package/.morph/framework/templates/.idea/morph-templates.xml +0 -92
  194. package/.morph/framework/templates/.vscode/morph-templates.code-snippets +0 -186
  195. package/.morph/framework/templates/IDE-SNIPPETS.md +0 -266
  196. package/.morph/framework/templates/README.md +0 -814
  197. package/.morph/framework/templates/REGISTRY.json +0 -1492
  198. package/.morph/framework/templates/code/dotnet/backend/repository.cs +0 -141
  199. package/.morph/framework/templates/code/dotnet/backend/service.cs +0 -139
  200. package/.morph/framework/templates/code/dotnet/contracts/Commands.cs +0 -74
  201. package/.morph/framework/templates/code/dotnet/contracts/Entities.cs +0 -25
  202. package/.morph/framework/templates/code/dotnet/contracts/Queries.cs +0 -74
  203. package/.morph/framework/templates/code/dotnet/contracts/README.md +0 -74
  204. package/.morph/framework/templates/code/dotnet/contracts/api-contracts.cs +0 -173
  205. package/.morph/framework/templates/code/dotnet/contracts/contracts.cs +0 -217
  206. package/.morph/framework/templates/code/dotnet/contracts/contracts.cs.hbs +0 -172
  207. package/.morph/framework/templates/code/dotnet/database/migration.cs +0 -83
  208. package/.morph/framework/templates/code/dotnet/frontend/component.razor +0 -239
  209. package/.morph/framework/templates/code/dotnet/jobs/agent.cs +0 -163
  210. package/.morph/framework/templates/code/dotnet/jobs/job.cs +0 -171
  211. package/.morph/framework/templates/code/dotnet/test.cs +0 -239
  212. package/.morph/framework/templates/code/sql/rls-policy.sql +0 -57
  213. package/.morph/framework/templates/code/sql/supabase-migration.sql +0 -100
  214. package/.morph/framework/templates/code/sql/supabase-migration.template.sql +0 -113
  215. package/.morph/framework/templates/code/typescript/contracts.ts +0 -168
  216. package/.morph/framework/templates/context/CONTEXT-FEATURE.md +0 -276
  217. package/.morph/framework/templates/context/CONTEXT.md +0 -181
  218. package/.morph/framework/templates/docs/clarifications.md +0 -253
  219. package/.morph/framework/templates/docs/onboarding.md +0 -123
  220. package/.morph/framework/templates/docs/proposal.md +0 -182
  221. package/.morph/framework/templates/docs/schema-analysis.md +0 -119
  222. package/.morph/framework/templates/docs/spec.md +0 -149
  223. package/.morph/framework/templates/docs/ui-components.md +0 -124
  224. package/.morph/framework/templates/docs/ui-design-system.md +0 -76
  225. package/.morph/framework/templates/docs/ui-flows.md +0 -167
  226. package/.morph/framework/templates/docs/ui-mockups.md +0 -98
  227. package/.morph/framework/templates/examples/design-system-examples.md +0 -357
  228. package/.morph/framework/templates/examples/spec-examples.md +0 -90
  229. package/.morph/framework/templates/feature/decisions.md +0 -187
  230. package/.morph/framework/templates/feature/recap.md +0 -146
  231. package/.morph/framework/templates/feature/tasks.md +0 -199
  232. package/.morph/framework/templates/infrastructure/azure/Dockerfile.example +0 -82
  233. package/.morph/framework/templates/infrastructure/azure/README.md +0 -286
  234. package/.morph/framework/templates/infrastructure/azure/app-insights.bicep +0 -63
  235. package/.morph/framework/templates/infrastructure/azure/app-service.bicep +0 -164
  236. package/.morph/framework/templates/infrastructure/azure/container-app-env.bicep +0 -49
  237. package/.morph/framework/templates/infrastructure/azure/container-app.bicep +0 -156
  238. package/.morph/framework/templates/infrastructure/azure/deploy-checklist.md +0 -426
  239. package/.morph/framework/templates/infrastructure/azure/deploy.ps1 +0 -229
  240. package/.morph/framework/templates/infrastructure/azure/deploy.sh +0 -208
  241. package/.morph/framework/templates/infrastructure/azure/key-vault.bicep +0 -91
  242. package/.morph/framework/templates/infrastructure/azure/main.bicep +0 -189
  243. package/.morph/framework/templates/infrastructure/azure/parameters.dev.json +0 -29
  244. package/.morph/framework/templates/infrastructure/azure/parameters.prod.json +0 -29
  245. package/.morph/framework/templates/infrastructure/azure/parameters.staging.json +0 -29
  246. package/.morph/framework/templates/infrastructure/azure/sql-database.bicep +0 -103
  247. package/.morph/framework/templates/infrastructure/azure/storage.bicep +0 -106
  248. package/.morph/framework/templates/infrastructure/docker/Dockerfile.template +0 -58
  249. package/.morph/framework/templates/infrastructure/docker/docker-compose.template.yml +0 -67
  250. package/.morph/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +0 -38
  251. package/.morph/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +0 -48
  252. package/.morph/framework/templates/infrastructure/docker/easypanel.template.json +0 -54
  253. package/.morph/framework/templates/infrastructure/github/README.md +0 -593
  254. package/.morph/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +0 -22
  255. package/.morph/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +0 -45
  256. package/.morph/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +0 -27
  257. package/.morph/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +0 -61
  258. package/.morph/framework/templates/infrastructure/github/workflows/deploy-easypanel.yml.hbs +0 -31
  259. package/.morph/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +0 -59
  260. package/.morph/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +0 -39
  261. package/.morph/framework/templates/integrations/asaas-client.cs +0 -387
  262. package/.morph/framework/templates/integrations/asaas-webhook.cs +0 -351
  263. package/.morph/framework/templates/integrations/azure-identity-config.cs +0 -288
  264. package/.morph/framework/templates/integrations/clerk-config.cs +0 -258
  265. package/.morph/framework/templates/meta-prompts/fusion/fusion-agent.md +0 -76
  266. package/.morph/framework/templates/meta-prompts/fusion/fusion-aggregator.md +0 -100
  267. package/.morph/framework/templates/meta-prompts/hops/hop-retry.md +0 -78
  268. package/.morph/framework/templates/meta-prompts/hops/hop-validation.md +0 -97
  269. package/.morph/framework/templates/meta-prompts/hops/hop-wrapper.md +0 -36
  270. package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +0 -113
  271. package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +0 -80
  272. package/.morph/framework/templates/meta-prompts/squad-leaders/backend-squad.md +0 -90
  273. package/.morph/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +0 -126
  274. package/.morph/framework/templates/meta-prompts/squad-leaders/squad-leader.md +0 -43
  275. package/.morph/framework/templates/meta-prompts/validators/checkpoint-validator.md +0 -107
  276. package/.morph/framework/templates/meta-prompts/validators/pre-commit-validator.md +0 -95
  277. package/.morph/framework/templates/saas/subscription.cs +0 -347
  278. package/.morph/framework/templates/saas/tenant.cs +0 -338
  279. package/.morph/framework/templates/state.template.json +0 -17
  280. package/.morph/framework/templates/ui/FluentDesignTheme.cs +0 -149
  281. package/.morph/framework/templates/ui/MudTheme.cs +0 -281
  282. package/.morph/framework/templates/ui/design-system.css +0 -226
  283. package/.morph/logs/tool-failures.log +0 -51
  284. package/.morph/memory/pre-compact-2026-02-22T17-01-01-658Z.json +0 -16
  285. package/.morph/state.json +0 -48
  286. package/framework/skills/level-2-domains/backend/api-designer.md +0 -66
  287. package/framework/skills/level-2-domains/backend/ef-modeler.md +0 -65
  288. package/framework/skills/level-2-domains/frontend/nextjs-expert.md +0 -161
  289. package/framework/skills/level-3-technologies/README.md +0 -7
  290. package/framework/skills/level-4-patterns/README.md +0 -7
  291. package/framework/templates/code/dotnet/contracts/contracts.cs +0 -217
  292. package/framework/templates/code/dotnet/contracts/contracts.cs.hbs +0 -172
@@ -1,129 +1,129 @@
1
- // GENERATED by scripts/generate-refs.js — DO NOT EDIT manually
2
- // Source of truth: src/core/paths/output-schema.js
3
- // Regenerate with: node scripts/generate-refs.js
4
- /**
5
- * Shared phase utilities for Claude Code hooks.
6
- *
7
- * Maps phases to directories and output types.
8
- */
9
-
10
- /** Phase order */
11
- export const PHASE_ORDER = ["proposal","setup","uiux","design","clarify","tasks","implement","sync"];
12
-
13
- /** Map phase → allowed output subdirectory */
14
- export const PHASE_DIRS = {
15
- proposal: '0-proposal',
16
- setup: '0-proposal',
17
- uiux: '2-ui',
18
- design: '1-design',
19
- clarify: '1-design',
20
- tasks: '3-tasks',
21
- implement: '4-implement',
22
- sync: '4-implement',
23
- };
24
-
25
- /** Map output type (camelCase) → phase that produces it */
26
- export const OUTPUT_PHASE_MAP = {
27
- proposal: 'proposal',
28
- schemaAnalysis: 'design',
29
- spec: 'design',
30
- clarifications: 'clarify',
31
- contracts: 'design',
32
- tasks: 'tasks',
33
- uiDesignSystem: 'uiux',
34
- uiMockups: 'uiux',
35
- uiComponents: 'uiux',
36
- uiFlows: 'uiux',
37
- decisions: 'design',
38
- recap: 'implement',
39
- };
40
-
41
- /** Map filename → output type (camelCase) */
42
- export const FILENAME_TO_OUTPUT = {
43
- 'proposal.md': 'proposal',
44
- 'schema-analysis.md': 'schemaAnalysis',
45
- 'spec.md': 'spec',
46
- 'clarifications.md': 'clarifications',
47
- 'contracts.cs': 'contracts',
48
- 'tasks.md': 'tasks',
49
- 'design-system.md': 'uiDesignSystem',
50
- 'mockups.md': 'uiMockups',
51
- 'components.md': 'uiComponents',
52
- 'flows.md': 'uiFlows',
53
- 'decisions.md': 'decisions',
54
- 'recap.md': 'recap',
55
- };
56
-
57
- /** Protected spec files and the approval gate that locks them */
58
- export const PROTECTED_SPEC_FILES = {
59
- 'schema-analysis.md': 'design',
60
- 'spec.md': 'design',
61
- 'contracts.cs': 'design',
62
- 'tasks.md': 'tasks',
63
- 'design-system.md': 'uiux',
64
- 'mockups.md': 'uiux',
65
- 'components.md': 'uiux',
66
- 'flows.md': 'uiux',
67
- };
68
-
69
- /**
70
- * Extract feature name from a .morph/features/{feature}/... path
71
- * @param {string} filePath - File path to analyze
72
- * @returns {string|null} Feature name or null
73
- */
74
- export function extractFeatureName(filePath) {
75
- const normalized = filePath.replace(/\\/g, '/');
76
- const match = normalized.match(/\.morph\/features\/([^/]+)\//);
77
- return match ? match[1] : null;
78
- }
79
-
80
- /**
81
- * Extract phase subdirectory from a .morph/features/{feature}/{phaseDir}/... path
82
- * @param {string} filePath - File path to analyze
83
- * @returns {string|null} Phase directory (e.g., '0-proposal', '1-design') or null
84
- */
85
- export function extractPhaseDir(filePath) {
86
- const normalized = filePath.replace(/\\/g, '/');
87
- const match = normalized.match(/\.morph\/features\/[^/]+\/(\d+-[^/]+)\//);
88
- return match ? match[1] : null;
89
- }
90
-
91
- /**
92
- * Check if a file path is inside .morph/features/
93
- * @param {string} filePath
94
- * @returns {boolean}
95
- */
96
- export function isFeaturePath(filePath) {
97
- const normalized = filePath.replace(/\\/g, '/');
98
- return normalized.includes('.morph/features/');
99
- }
100
-
101
- /**
102
- * Check if a file path is inside .morph/framework/ (readonly)
103
- * @param {string} filePath
104
- * @returns {boolean}
105
- */
106
- export function isFrameworkPath(filePath) {
107
- const normalized = filePath.replace(/\\/g, '/');
108
- return normalized.includes('.morph/framework/');
109
- }
110
-
111
- /**
112
- * Check if a file path is state.json
113
- * @param {string} filePath
114
- * @returns {boolean}
115
- */
116
- export function isStatePath(filePath) {
117
- const normalized = filePath.replace(/\\/g, '/');
118
- return normalized.endsWith('.morph/state.json');
119
- }
120
-
121
- /**
122
- * Get the basename of a file path
123
- * @param {string} filePath
124
- * @returns {string}
125
- */
126
- export function getBasename(filePath) {
127
- const normalized = filePath.replace(/\\/g, '/');
128
- return normalized.split('/').pop();
129
- }
1
+ // GENERATED by scripts/generate-refs.js — DO NOT EDIT manually
2
+ // Source of truth: src/core/paths/output-schema.js
3
+ // Regenerate with: node scripts/generate-refs.js
4
+ /**
5
+ * Shared phase utilities for Claude Code hooks.
6
+ *
7
+ * Maps phases to directories and output types.
8
+ */
9
+
10
+ /** Phase order */
11
+ export const PHASE_ORDER = ["proposal","setup","uiux","design","clarify","tasks","implement","sync"];
12
+
13
+ /** Map phase → allowed output subdirectory */
14
+ export const PHASE_DIRS = {
15
+ proposal: '0-proposal',
16
+ setup: '0-proposal',
17
+ uiux: '2-ui',
18
+ design: '1-design',
19
+ clarify: '1-design',
20
+ tasks: '3-tasks',
21
+ implement: '4-implement',
22
+ sync: '4-implement',
23
+ };
24
+
25
+ /** Map output type (camelCase) → phase that produces it */
26
+ export const OUTPUT_PHASE_MAP = {
27
+ proposal: 'proposal',
28
+ schemaAnalysis: 'design',
29
+ spec: 'design',
30
+ clarifications: 'clarify',
31
+ contracts: 'design',
32
+ tasks: 'tasks',
33
+ uiDesignSystem: 'uiux',
34
+ uiMockups: 'uiux',
35
+ uiComponents: 'uiux',
36
+ uiFlows: 'uiux',
37
+ decisions: 'design',
38
+ recap: 'implement',
39
+ };
40
+
41
+ /** Map filename → output type (camelCase) */
42
+ export const FILENAME_TO_OUTPUT = {
43
+ 'proposal.md': 'proposal',
44
+ 'schema-analysis.md': 'schemaAnalysis',
45
+ 'spec.md': 'spec',
46
+ 'clarifications.md': 'clarifications',
47
+ 'contracts.cs': 'contracts',
48
+ 'tasks.md': 'tasks',
49
+ 'design-system.md': 'uiDesignSystem',
50
+ 'mockups.md': 'uiMockups',
51
+ 'components.md': 'uiComponents',
52
+ 'flows.md': 'uiFlows',
53
+ 'decisions.md': 'decisions',
54
+ 'recap.md': 'recap',
55
+ };
56
+
57
+ /** Protected spec files and the approval gate that locks them */
58
+ export const PROTECTED_SPEC_FILES = {
59
+ 'schema-analysis.md': 'design',
60
+ 'spec.md': 'design',
61
+ 'contracts.cs': 'design',
62
+ 'tasks.md': 'tasks',
63
+ 'design-system.md': 'uiux',
64
+ 'mockups.md': 'uiux',
65
+ 'components.md': 'uiux',
66
+ 'flows.md': 'uiux',
67
+ };
68
+
69
+ /**
70
+ * Extract feature name from a .morph/features/{feature}/... path
71
+ * @param {string} filePath - File path to analyze
72
+ * @returns {string|null} Feature name or null
73
+ */
74
+ export function extractFeatureName(filePath) {
75
+ const normalized = filePath.replace(/\\/g, '/');
76
+ const match = normalized.match(/\.morph\/features\/([^/]+)\//);
77
+ return match ? match[1] : null;
78
+ }
79
+
80
+ /**
81
+ * Extract phase subdirectory from a .morph/features/{feature}/{phaseDir}/... path
82
+ * @param {string} filePath - File path to analyze
83
+ * @returns {string|null} Phase directory (e.g., '0-proposal', '1-design') or null
84
+ */
85
+ export function extractPhaseDir(filePath) {
86
+ const normalized = filePath.replace(/\\/g, '/');
87
+ const match = normalized.match(/\.morph\/features\/[^/]+\/(\d+-[^/]+)\//);
88
+ return match ? match[1] : null;
89
+ }
90
+
91
+ /**
92
+ * Check if a file path is inside .morph/features/
93
+ * @param {string} filePath
94
+ * @returns {boolean}
95
+ */
96
+ export function isFeaturePath(filePath) {
97
+ const normalized = filePath.replace(/\\/g, '/');
98
+ return normalized.includes('.morph/features/');
99
+ }
100
+
101
+ /**
102
+ * Check if a file path is inside .morph/framework/ (readonly)
103
+ * @param {string} filePath
104
+ * @returns {boolean}
105
+ */
106
+ export function isFrameworkPath(filePath) {
107
+ const normalized = filePath.replace(/\\/g, '/');
108
+ return normalized.includes('.morph/framework/');
109
+ }
110
+
111
+ /**
112
+ * Check if a file path is state.json
113
+ * @param {string} filePath
114
+ * @returns {boolean}
115
+ */
116
+ export function isStatePath(filePath) {
117
+ const normalized = filePath.replace(/\\/g, '/');
118
+ return normalized.endsWith('.morph/state.json');
119
+ }
120
+
121
+ /**
122
+ * Get the basename of a file path
123
+ * @param {string} filePath
124
+ * @returns {string}
125
+ */
126
+ export function getBasename(filePath) {
127
+ const normalized = filePath.replace(/\\/g, '/');
128
+ return normalized.split('/').pop();
129
+ }
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  paths:
3
3
  - "**/*.razor"
4
- - "**/*.tsx"
5
- - "**/*.ts"
6
4
  - "**/*.css"
7
5
  - "**/*.scss"
8
6
  ---
@@ -10,5 +8,4 @@ paths:
10
8
  # Frontend Standards
11
9
 
12
10
  @.morph/framework/standards/frontend/blazor/design-checklist.md
13
- @.morph/framework/standards/frontend/nextjs/nextjs-patterns.md
14
11
  @.morph/framework/standards/frontend/design-system/naming.md
@@ -0,0 +1,17 @@
1
+ ---
2
+ paths:
3
+ - "**/*.tsx"
4
+ - "**/*.ts"
5
+ ---
6
+
7
+ # Next.js Standards
8
+
9
+ @.morph/framework/standards/frontend/nextjs/naming-conventions.md
10
+ @.morph/framework/standards/frontend/nextjs/project-structure.md
11
+ @.morph/framework/standards/frontend/nextjs/app-router.md
12
+ @.morph/framework/standards/frontend/nextjs/components.md
13
+ @.morph/framework/standards/frontend/nextjs/data-fetching.md
14
+ @.morph/framework/standards/frontend/nextjs/forms.md
15
+ @.morph/framework/standards/frontend/nextjs/state-management.md
16
+ @.morph/framework/standards/frontend/nextjs/testing.md
17
+ @.morph/framework/standards/frontend/nextjs/nextjs-patterns.md
@@ -0,0 +1,66 @@
1
+ # MORPH-SPEC Skills
2
+
3
+ Skills installed to `.claude/skills/` during `morph-spec init` (or `morph-spec update`).
4
+
5
+ Each skill is a directory: `{name}/SKILL.md` + optional `scripts/`, `references/`, `assets/`.
6
+
7
+ ---
8
+
9
+ ## level-0-meta — Utilities & Meta-Skills
10
+
11
+ | Skill | Description |
12
+ |-------|-------------|
13
+ | `tool-usage-guide` | Tool selection flowchart — which tool for which action |
14
+ | `morph-checklist` | Pre-session checklist for MORPH-SPEC projects |
15
+ | `simulation-checklist` | Checklist for AI simulation / prompt testing |
16
+ | `brainstorming` | Collaborative ideation → spec via dialogue |
17
+ | `verification-before-completion` | Gate check before marking any work done |
18
+ | `code-review` | .NET/C# review checklist (naming, arch, async, DI, DTOs) |
19
+ | `morph-replicate` | Convert HTML prototypes to Blazor components |
20
+
21
+ ### level-0-meta extras
22
+
23
+ | Skill | File | Purpose |
24
+ |-------|------|---------|
25
+ | `brainstorming` | `references/proposal-example.md` | Filled-in proposal.md example |
26
+ | `verification-before-completion` | `scripts/check-phase-outputs.mjs` | Validate required phase outputs exist |
27
+ | `code-review` | `references/review-example.md` | Filled-in review with finding format |
28
+ | `code-review` | `scripts/scan-csharp.mjs` | Scan .cs files for CRITICAL/HIGH violations |
29
+
30
+ ---
31
+
32
+ ## level-1-workflows — Phase Workflow Skills
33
+
34
+ Invoked internally by `/morph-proposal` and `/morph-apply`. Not user-invocable.
35
+
36
+ | Skill | Phase | Description |
37
+ |-------|-------|-------------|
38
+ | `phase-codebase-analysis` | 0 | Analyse existing codebase before design |
39
+ | `phase-setup` | 1 | Project scaffolding and initial setup |
40
+ | `phase-design` | 2 | Technical spec + contracts + decisions |
41
+ | `phase-uiux` | 3 | UI/UX design system + mockups + components |
42
+ | `phase-clarify` | 4 | Clarification questions → edge cases → spec update |
43
+ | `phase-tasks` | 5 | Break spec into ordered task list (tasks.md) |
44
+ | `phase-implement` | 6 | Implement tasks with TDD + checkpoints + recap |
45
+
46
+ ### level-1-workflows extras
47
+
48
+ | Skill | File | Purpose |
49
+ |-------|------|---------|
50
+ | `phase-design` | `references/spec-example.md` | Filled-in spec.md example |
51
+ | `phase-clarify` | `references/clarifications-example.md` | Filled-in clarifications Q&A |
52
+ | `phase-tasks` | `references/tasks-example.md` | Filled-in tasks.md with T### format |
53
+ | `phase-tasks` | `scripts/validate-tasks.mjs` | Validate tasks.md structure and IDs |
54
+ | `phase-implement` | `references/recap-example.md` | Filled-in recap.md example |
55
+
56
+ ---
57
+
58
+ ## Domain Agents
59
+
60
+ Domain specialist agents (`framework/agents/`) are installed separately as `.claude/agents/morph-domain-{name}.md` — they are subagents, not skills.
61
+
62
+ See `framework/agents/README.md` for the full list.
63
+
64
+ ---
65
+
66
+ *MORPH-SPEC by Polymorphism Tech*
@@ -1,11 +1,13 @@
1
1
  ---
2
2
  name: brainstorming
3
- description: Morph-spec-aware brainstorming for exploring feature approaches, generating proposals, and designing architecture. Use before any creative or implementation work.
3
+ description: Morph-spec-aware brainstorming that loads project context, explores multiple design approaches, asks clarifying questions, and produces proposal.md or decisions.md. Use before designing a feature, when facing architectural decisions with multiple valid approaches, or when a feature needs requirements exploration before committing to a direction.
4
4
  ---
5
5
 
6
6
  # Brainstorming — MORPH-SPEC Integrated
7
7
 
8
8
  > Explore context, ask questions, generate multiple approaches, and produce a design document before committing to implementation.
9
+ >
10
+ > **Example:** `references/proposal-example.md` — filled-in proposal.md showing expected quality.
9
11
 
10
12
  ## When to Use
11
13
 
@@ -0,0 +1,138 @@
1
+ # Feature Proposal: Photo Processing Pipeline
2
+
3
+ > Example of a well-structured proposal.md. This is a filled-in reference — not a template.
4
+
5
+ ## Metadata
6
+
7
+ | Field | Value |
8
+ |-------|-------|
9
+ | **Proposed** | 2025-01-15 |
10
+ | **Author** | Product Team |
11
+ | **Status** | Approved |
12
+ | **Priority** | High |
13
+ | **Stack** | blazor-azure |
14
+
15
+ ---
16
+
17
+ ## Overview
18
+
19
+ Users currently cannot upload photos for AI-based transformations because no upload infrastructure exists. This feature adds an end-to-end photo upload, processing, and delivery pipeline using Azure Blob Storage and Hangfire background jobs.
20
+
21
+ ---
22
+
23
+ ## Problem Statement
24
+
25
+ ### What is the problem?
26
+
27
+ Users cannot submit photos for AI transformation, blocking the core product value proposition. The system has no file upload capability, no background processing queue, and no way to notify users when processing completes.
28
+
29
+ ### Who is affected?
30
+
31
+ All end users who want to use the photo transformation feature — the primary user journey is completely unavailable.
32
+
33
+ ### What is the impact?
34
+
35
+ - User productivity loss: 100% of core use case unavailable
36
+ - Revenue impact: Feature is the primary paid tier differentiator
37
+ - User satisfaction: Can't demo product to prospects
38
+
39
+ ---
40
+
41
+ ## Proposed Solution
42
+
43
+ ### Overview
44
+
45
+ A multi-step pipeline: user uploads a photo via a Blazor form → the file is stored in Azure Blob Storage → a Hangfire background job is queued for AI processing → the user polls for completion → the processed photo is returned via a download link.
46
+
47
+ ### Key Features
48
+
49
+ 1. **Upload endpoint** — Validates file type/size, stores in Azure Blob
50
+ 2. **Background processing** — Hangfire job calls AI API, stores result in Blob
51
+ 3. **Status polling** — User sees real-time progress (Pending → Processing → Completed)
52
+
53
+ ### User Journey
54
+
55
+ ```
56
+ 1. User selects a photo file on the upload page
57
+ 2. System validates (max 10MB, .jpg/.png only) and shows preview
58
+ 3. User clicks "Upload" → system enqueues job, redirects to /processing/{jobId}
59
+ 4. User sees progress bar polling every 5 seconds
60
+ 5. On completion: "Download" button appears, user gets processed photo
61
+ ```
62
+
63
+ ---
64
+
65
+ ## Success Metrics
66
+
67
+ | Metric | Current | Target |
68
+ |--------|---------|--------|
69
+ | Upload success rate | N/A | >99% |
70
+ | Processing time (p95) | N/A | <120s |
71
+ | Error recovery rate | N/A | >95% (auto-retry) |
72
+
73
+ ---
74
+
75
+ ## Scope
76
+
77
+ ### In Scope
78
+
79
+ - Photo upload (Blazor form, Azure Blob Storage)
80
+ - Background processing via Hangfire
81
+ - Status polling page with progress indicator
82
+ - Download link for processed photo
83
+ - Basic error handling and retry logic
84
+
85
+ ### Out of Scope
86
+
87
+ - Batch uploads (multiple photos at once)
88
+ - Email notifications when processing completes
89
+ - Photo editing before upload (crop, resize)
90
+
91
+ ### Future Considerations
92
+
93
+ - Webhooks for external integrations
94
+ - Processing history and gallery view
95
+
96
+ ---
97
+
98
+ ## Risks & Concerns
99
+
100
+ | Risk | Likelihood | Impact | Mitigation |
101
+ |------|------------|--------|------------|
102
+ | AI API unavailable | Medium | High | Retry with exponential backoff, fallback error state |
103
+ | Large file upload timeout | Low | Medium | Chunked upload or presigned URL direct to Blob |
104
+ | Blob storage costs unexpectedly high | Low | Low | Set blob lifecycle policy (auto-delete after 30 days) |
105
+
106
+ ---
107
+
108
+ ## Estimated Effort
109
+
110
+ | Phase | Estimate |
111
+ |-------|----------|
112
+ | Design & Spec | 2h |
113
+ | Implementation | 6h |
114
+ | Testing | 2h |
115
+ | **Total** | **10h** |
116
+
117
+ ---
118
+
119
+ ## Questions & Clarifications
120
+
121
+ 1. Maximum file size: 10MB or higher for pro users?
122
+ 2. Should processed photos be kept indefinitely or expire after 30 days?
123
+ 3. Does the AI API support async webhooks or only polling?
124
+
125
+ ---
126
+
127
+ ## Next Steps
128
+
129
+ Once approved:
130
+ 1. Create detailed `spec.md` with technical design
131
+ 2. Define contracts in `contracts.cs`
132
+ 3. Record decisions in `decisions.md`
133
+ 4. Break down into `tasks.md`
134
+ 5. Begin implementation
135
+
136
+ ---
137
+
138
+ *MORPH-SPEC by Polymorphism Tech*
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  name: code-review
3
- description: >
4
- Structured code review checklist for MORPH-SPEC projects covering architecture, standards compliance, contracts, and quality gates. Use after implementation to validate work.
3
+ description: .NET/C# code review checklist covering naming conventions, architecture layer integrity, async patterns, logging, error handling, DI lifetimes, and DTO contracts. Use after implementing .NET code, before creating PRs, or when reviewing C# code for compliance with MORPH-SPEC standards.
5
4
  user-invocable: true
6
5
  allowed-tools: Read, Write, Edit, Bash, Glob, Grep
7
6
  ---
@@ -12,6 +11,8 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
12
11
  > **Ref:** `framework/standards/core/coding.md` for naming conventions and style.
13
12
  > **Ref:** `framework/standards/core/architecture.md` for layer rules and SOLID.
14
13
  > **Ref:** `framework/standards/backend/database/ef-core.md` for DbContext patterns and background ops.
14
+ > **Example:** `references/review-example.md` — filled-in review showing expected finding format and severity levels.
15
+ > **Script:** `scripts/scan-csharp.mjs` — automated scan for CRITICAL/HIGH violations before manual review.
15
16
 
16
17
  ---
17
18