@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
@@ -0,0 +1,331 @@
1
+ # morph-spec Architecture
2
+
3
+ > System design reference for morph-spec v4.6.0
4
+
5
+ ---
6
+
7
+ ## Overview
8
+
9
+ morph-spec is a CLI tool that scaffolds a spec-driven development workflow on top of Claude Code. It installs a structured set of files into `.morph/` and `.claude/`, then lets the AI orchestrate feature development through well-defined phases with approval gates.
10
+
11
+ The framework has three main concerns:
12
+
13
+ 1. **State** — tracking features, phases, and outputs in `.morph/state.json`
14
+ 2. **Agents** — 37 specialized agents organized in 4 tiers, installed as native Claude Code subagents
15
+ 3. **Workflow** — 8 phases from proposal through implementation, enforced via hooks and guards
16
+
17
+ ---
18
+
19
+ ## Agent hierarchy
20
+
21
+ ```
22
+ Tier 1 — Orchestrators (3)
23
+ standards-architect always active — Chief Architect, enforces standards
24
+ ai-system-architect on-demand — multi-agent / AI system design
25
+ po-pm-advisor on-demand — requirements, business value
26
+
27
+ Tier 2 — Domain Leaders (3)
28
+ dotnet-senior always active — Backend Squad lead
29
+ infra-architect always active — Infrastructure Squad Leader (cloud-agnostic)
30
+ ui-designer on-demand — UI/UX Squad lead
31
+
32
+ Tier 3 — Specialists (27)
33
+ Backend (10) ef-modeler, event-architect, api-designer, nosql-cache-expert,
34
+ ddd-expert, hangfire-orchestrator, ms-agent-expert,
35
+ asaas-financial, clerk-auth, resend-email
36
+ Frontend (3) blazor-builder, nextjs-expert, css-specialist
37
+ Infrastructure (6) azure-architect, bicep-architect, devops-engineer,
38
+ container-specialist, observability-expert, azure-identity
39
+ Quality/Cross (8) testing-specialist, code-analyzer, troubleshooting-expert,
40
+ load-testing-expert, documentation-specialist,
41
+ migration-specialist, integration-specialist, data-modeler
42
+
43
+ Tier 4 — Validators (5)
44
+ security-expert SQL injection, XSS, hardcoded secrets
45
+ architecture-expert DbContext, async/await, DI order
46
+ packages-validator NuGet conflicts, .NET 10 compatibility
47
+ design-system-validator CSS palette, spacing, typography
48
+ blazor-concurrency-validator DbContext lifecycle, async void, JSInterop
49
+ ```
50
+
51
+ ### Agent installation
52
+
53
+ Tier 1–2 agents are installed to `.claude/agents/morph-{id}.md` with YAML frontmatter:
54
+
55
+ ```yaml
56
+ ---
57
+ name: morph-standards-architect
58
+ description: Chief Architect...
59
+ model: sonnet
60
+ ---
61
+ ```
62
+
63
+ Tier 3 domain agents are installed to `.claude/agents/morph-domain-{name}.md` with:
64
+
65
+ ```yaml
66
+ ---
67
+ model: sonnet
68
+ memory: project
69
+ maxTurns: 20
70
+ ---
71
+ ```
72
+
73
+ Both sets are updated by `morph-spec update` and `morph-spec update-agents`.
74
+
75
+ ### Agent detection
76
+
77
+ When a feature is created, `detect-agents` matches keywords in the feature description against `agents.json` keyword lists. Matched agents are stored in `state.json` under the feature's `activeAgents` array. The active agent set determines which standards are loaded and which validators run.
78
+
79
+ ---
80
+
81
+ ## Phase pipeline
82
+
83
+ ```
84
+ 0-proposal → 1-setup → [1.5-uiux] → 2-design → 3-clarify → 4-tasks → 5-implement → [6-sync]
85
+ ```
86
+
87
+ | Phase | ID | Optional | Approval gate | Output directory |
88
+ |-------|-----|----------|--------------|-----------------|
89
+ | Proposal | `proposal` | No | Yes | `0-proposal/` |
90
+ | Setup | `setup` | No | No | — |
91
+ | UI/UX | `uiux` | Yes | Yes | `2-ui/` |
92
+ | Design | `design` | No | Yes | `1-design/` |
93
+ | Clarify | `clarify` | No | No | `1-design/` (updates) |
94
+ | Tasks | `tasks` | No | Yes | `3-tasks/` |
95
+ | Implement | `implement` | No | No | `4-implement/` |
96
+ | Sync | `sync` | Yes | No | `.morph/context/` |
97
+
98
+ Phase transitions are controlled by the state machine in `src/lib/state/`. Advancing to a phase with an approval gate is blocked until the gate is explicitly passed. `protect-spec-files.js` (hook) guards spec/contracts from edits after the design gate is passed.
99
+
100
+ Canonical phase definitions live in `framework/phases.json`.
101
+
102
+ ---
103
+
104
+ ## File structure
105
+
106
+ ### Framework source (this repo)
107
+
108
+ ```
109
+ framework/
110
+ ├── agents.json # 37 agents definition (v3.1.0)
111
+ ├── phases.json # 8 phase definitions
112
+ ├── CLAUDE_runtime.md # copied to .claude/CLAUDE.md on init
113
+ ├── agents/ # tier 1-2 agent markdown files
114
+ ├── hooks/
115
+ │ ├── claude-code/ # 11 Claude Code hook scripts
116
+ │ │ └── shared/ # state-reader, phase-utils, hook-response, stdin-reader
117
+ │ └── git/ # pre-commit, commit-msg, pre-push
118
+ ├── rules/ # 5 rule files (copied to .claude/rules/)
119
+ ├── skills/
120
+ │ ├── README.md
121
+ │ ├── level-0-meta/ # 7 meta skills (brainstorming, code-review, etc.)
122
+ │ │ └── {skill}/
123
+ │ │ ├── SKILL.md # skill content
124
+ │ │ ├── scripts/ # optional helper scripts
125
+ │ │ └── references/ # optional reference materials
126
+ │ └── level-1-workflows/ # 8 workflow skills (phase-proposal, phase-design, etc.)
127
+ │ └── {skill}/
128
+ │ └── SKILL.md
129
+ ├── standards/ # 74 standards, 11 categories
130
+ │ ├── STANDARDS.json # registry (regenerate: node scripts/generate-standards-registry.js)
131
+ │ ├── core/
132
+ │ ├── backend/
133
+ │ ├── frontend/
134
+ │ ├── infrastructure/
135
+ │ └── integration/
136
+ ├── templates/ # Handlebars v2.0 code and IaC templates
137
+ │ ├── infrastructure/ # Bicep, Docker, GitHub Actions
138
+ │ └── ...
139
+ └── workflows/
140
+ └── configs/ # 10 workflow configs (express, spec-only, zero-touch, fusion, ...)
141
+ ```
142
+
143
+ ### Installed into a project (after init)
144
+
145
+ ```
146
+ .morph/
147
+ ├── config/config.json # editable project config
148
+ ├── framework/ # READ-ONLY copy from package
149
+ │ ├── agents.json
150
+ │ ├── standards/
151
+ │ └── templates/
152
+ ├── context/ # editable project context
153
+ │ ├── README.md # loaded at every SessionStart
154
+ │ └── standards.md
155
+ ├── features/{feature}/ # feature outputs
156
+ │ ├── 0-proposal/
157
+ │ ├── 1-design/
158
+ │ ├── 2-ui/
159
+ │ ├── 3-tasks/
160
+ │ └── 4-implement/
161
+ ├── checkpoints/
162
+ ├── logs/tool-failures.log
163
+ └── state.json # READ-ONLY
164
+
165
+ .claude/
166
+ ├── CLAUDE.md # runtime instructions
167
+ ├── commands/ # slash command .md files
168
+ ├── skills/ # flat install of framework/skills/
169
+ │ └── {skill-name}/
170
+ │ └── SKILL.md
171
+ ├── agents/ # native subagents
172
+ │ ├── morph-{id}.md # tier 1-2 (from framework/agents/)
173
+ │ └── morph-domain-{name}.md # tier 3 (from framework/skills/level-2-domains/)
174
+ ├── rules/ # path-scoped rules (from framework/rules/)
175
+ │ ├── morph-workflow.md # always active
176
+ │ ├── csharp-standards.md
177
+ │ ├── frontend-standards.md
178
+ │ ├── testing-standards.md
179
+ │ └── infrastructure-standards.md
180
+ └── settings.local.json # hooks, permissions.deny, env vars
181
+ ```
182
+
183
+ ---
184
+
185
+ ## Skills system
186
+
187
+ Skills are Markdown files that provide Claude Code with domain knowledge and procedures. They are invoked via the `Skill` tool inside Claude Code.
188
+
189
+ ### Directory structure
190
+
191
+ Each skill lives in its own directory under `framework/skills/{level}/{skill-name}/`:
192
+
193
+ ```
194
+ {skill-name}/
195
+ ├── SKILL.md # required — main content
196
+ ├── scripts/ # optional — helper scripts (.mjs)
197
+ └── references/ # optional — reference documents
198
+ ```
199
+
200
+ ### Levels
201
+
202
+ | Level | Directory | Count | Purpose |
203
+ |-------|-----------|-------|---------|
204
+ | 0 | `level-0-meta/` | 7 | Cross-cutting: brainstorming, code review, verification, tool usage |
205
+ | 1 | `level-1-workflows/` | 8 | Phase workflows: phase-proposal, phase-setup, phase-uiux, phase-design, phase-clarify, phase-tasks, phase-implement, phase-sync |
206
+
207
+ ### Installation
208
+
209
+ `installSkills()` in `src/utils/skills-installer.js` flattens all skills to `.claude/skills/{name}/SKILL.md`. Skills become available as `/{name}` slash commands in Claude Code.
210
+
211
+ ---
212
+
213
+ ## Hooks system
214
+
215
+ 11 Claude Code hooks are configured in `.claude/settings.local.json`. All hooks fail-open (catch + exit 0) to prevent blocking Claude Code on errors.
216
+
217
+ | Event | Hook | Function |
218
+ |-------|------|----------|
219
+ | `SessionStart` | `inject-morph-context.js` | Injects active feature `1-design/spec.md` (3000 char max) into context |
220
+ | `UserPromptSubmit` | `protect-spec-files.js` | Guards spec files after design gate approval |
221
+ | `PreToolUse` (Bash) | Prompt-type inline guard | Detects destructive shell patterns in Claude's reasoning |
222
+ | `PreToolUse` (Write/Edit) | `validate-feature-phase.js` | Validates write targets against current phase |
223
+ | `PostToolUse` (Write) | `track-output-creation.js` | Detects when feature output files are created; updates state directly via JSON I/O (no subprocess) |
224
+ | `PostToolUse` (any) | `checkpoint-trigger.js` | Triggers auto-checkpoint every 3 completed tasks |
225
+ | `PostToolUseFailure` | `handle-tool-failure.js` | Appends failure details to `.morph/logs/tool-failures.log` |
226
+ | `Stop` | `session-summary.js` | Writes session summary |
227
+ | `PreCompact` | `compact-context.js` | Preserves critical state before context compaction |
228
+ | `Notification` | `morph-notify.js` | Routes approval gate notifications |
229
+
230
+ Shared utilities live in `framework/hooks/claude-code/shared/`:
231
+ - `state-reader.js` — reads `.morph/state.json` without subprocess
232
+ - `phase-utils.js` — phase validation helpers
233
+ - `hook-response.js` — standardized hook response formatting
234
+ - `stdin-reader.js` — reads hook event data from stdin
235
+
236
+ Git hooks (`framework/hooks/git/`): `pre-commit`, `commit-msg` (Conventional Commits), `pre-push` (runs tests).
237
+
238
+ ### Protected files
239
+
240
+ `permissions.deny` in `settings.local.json` blocks direct edits:
241
+
242
+ ```json
243
+ "permissions": {
244
+ "deny": [
245
+ "Write(.morph/state.json)",
246
+ "Edit(.morph/state.json)",
247
+ "Write(.morph/framework/**)",
248
+ "Edit(.morph/framework/**)"
249
+ ]
250
+ }
251
+ ```
252
+
253
+ ---
254
+
255
+ ## State machine
256
+
257
+ `.morph/state.json` tracks the state of all features. It is managed exclusively by the CLI — never edited directly.
258
+
259
+ ```json
260
+ {
261
+ "version": "4.0.0",
262
+ "features": {
263
+ "my-feature": {
264
+ "phase": "design",
265
+ "status": "in_progress",
266
+ "activeAgents": ["dotnet-senior", "ef-modeler", "testing-specialist"],
267
+ "approvals": {
268
+ "proposal": true,
269
+ "design": false,
270
+ "tasks": false
271
+ }
272
+ }
273
+ }
274
+ }
275
+ ```
276
+
277
+ State auto-migrates from v3.0.0 to v4.0.0 on first CLI access.
278
+
279
+ Feature outputs (spec.md, contracts.cs, tasks.md, etc.) are tracked by scanning the filesystem at runtime — not stored in state. This keeps state lean and avoids the circular tracking bug of earlier versions.
280
+
281
+ ---
282
+
283
+ ## Standards registry
284
+
285
+ 74 standards across 11 categories are registered in `framework/standards/STANDARDS.json`. Each entry has an `id`, `name`, `path`, `scope`, `layer`, and `keywords`.
286
+
287
+ Regenerate the registry after adding standards:
288
+
289
+ ```bash
290
+ node scripts/generate-standards-registry.js
291
+ ```
292
+
293
+ Browse via CLI:
294
+
295
+ ```bash
296
+ morph-spec standards --list
297
+ morph-spec standards --list --category backend
298
+ morph-spec standards --search "async"
299
+ morph-spec standards --show csharp-naming
300
+ ```
301
+
302
+ ---
303
+
304
+ ## Workflow configs
305
+
306
+ `framework/workflows/configs/` contains 10 workflow configurations that customize how the phase pipeline runs:
307
+
308
+ | Config | Description |
309
+ |--------|-------------|
310
+ | `default` | Full pipeline with all phases |
311
+ | `express` | Condensed pipeline for small features |
312
+ | `spec-only` | Proposal through tasks, no implementation |
313
+ | `zero-touch` | Fully automated (maximum trust level) |
314
+ | `fusion` | Combines setup + design into single phase |
315
+ | ... | + 5 more |
316
+
317
+ Trust levels (`low`, `medium`, `high`, `maximum`) control how many approval gates are enforced automatically vs manually.
318
+
319
+ ---
320
+
321
+ ## CLI internals
322
+
323
+ - **Entry point:** `bin/morph-spec.js` — Commander.js, 110+ commands
324
+ - **Commands:** `src/commands/` — organized into subdirectories by domain
325
+ - **Libraries:** `src/lib/` — state, validators, templates, agents, detection
326
+ - **Templates engine:** Handlebars v2.0 with helpers (pascalCase, camelCase, snakeCase, pluralize)
327
+ - **Test suite:** `test/` — Node.js built-in test runner, 625+ tests
328
+
329
+ ---
330
+
331
+ *morph-spec v4.6.0 by Polymorphism Tech*
@@ -0,0 +1,221 @@
1
+ # morph-spec Cheat Sheet
2
+
3
+ ## Setup
4
+
5
+ ```bash
6
+ npm install -g @polymorphism-tech/morph-spec # install globally
7
+ morph-spec init # initialize project
8
+ morph-spec init --wizard # interactive wizard
9
+ morph-spec init --force # overwrite existing
10
+ morph-spec update # sync framework files
11
+ morph-spec doctor # health check
12
+ morph-spec --version
13
+ ```
14
+
15
+ ---
16
+
17
+ ## Phase workflow
18
+
19
+ ```
20
+ proposal → setup → [uiux] → design → clarify → tasks → implement → [sync]
21
+ ```
22
+
23
+ Phases in brackets are optional.
24
+
25
+ | Phase | Directory | Output files | Gate |
26
+ |-------|-----------|--------------|------|
27
+ | proposal | `0-proposal/` | `proposal.md` | ✅ Approval |
28
+ | setup | *(no output)* | context loaded | — |
29
+ | uiux *(optional)* | `2-ui/` | `design-system.md`, `mockups.md`, `components.md`, `flows.md` | ✅ Approval |
30
+ | design | `1-design/` | `spec.md`, `contracts.cs`, `decisions.md` | ✅ Approval |
31
+ | clarify | `1-design/` | spec updated | — |
32
+ | tasks | `3-tasks/` | `tasks.md` | ✅ Approval |
33
+ | implement | `4-implement/` | code + `recap.md` | — |
34
+ | sync *(optional)* | `.morph/context/` | standards updated | — |
35
+
36
+ ---
37
+
38
+ ## Slash commands (Claude Code)
39
+
40
+ | Command | Description |
41
+ |---------|-------------|
42
+ | `/morph-proposal {feature}` | Full spec pipeline — phases 0–4 with approval gates |
43
+ | `/morph-apply {feature}` | Implement approved feature — phase 5 |
44
+ | `/morph-status` | Project-wide feature status dashboard |
45
+ | `/morph-preflight` | Pre-implementation validation (7 checks) |
46
+
47
+ ---
48
+
49
+ ## CLI — project management
50
+
51
+ ```bash
52
+ morph-spec init [--wizard] [--force] [--skip-detection] [--skip-mcp]
53
+ morph-spec update [--wizard] [--templates] [--standards]
54
+ morph-spec doctor
55
+ morph-spec detect [--verbose]
56
+ morph-spec update-agents # refresh .claude/agents/
57
+ ```
58
+
59
+ ---
60
+
61
+ ## CLI — feature workflow
62
+
63
+ ```bash
64
+ morph-spec state list # all features
65
+ morph-spec state get {feature} [--json] # feature detail
66
+ morph-spec state show {feature} # phase + approval status
67
+ morph-spec state set {feature} {key} {value} # update property
68
+ morph-spec state checkpoint {feature} "note" # manual checkpoint
69
+ morph-spec phase advance {feature} # advance to next phase
70
+ morph-spec status {feature} [--json] [--verbose]
71
+ morph-spec diff {feature} # spec changes since snapshot
72
+ morph-spec diff-save {feature} # save snapshot
73
+ morph-spec rollback {feature} --to {phase} # revert to phase
74
+ morph-spec task done {feature} # mark task complete
75
+ morph-spec task start {feature} # start next task
76
+ morph-spec task next {feature} # preview next task
77
+ ```
78
+
79
+ ---
80
+
81
+ ## CLI — validation
82
+
83
+ ```bash
84
+ morph-spec validate # all validators
85
+ morph-spec validate architecture
86
+ morph-spec validate packages
87
+ morph-spec validate contrast [--wcag-aaa]
88
+ morph-spec validate-blazor [path]
89
+ morph-spec validate-blazor-state [path]
90
+ morph-spec analyze-blazor-concurrency [path]
91
+ morph-spec validate-css [path]
92
+ morph-spec validate-feature {feature} [--phase {phase}] [--json]
93
+ ```
94
+
95
+ ---
96
+
97
+ ## CLI — standards
98
+
99
+ ```bash
100
+ morph-spec standards --list
101
+ morph-spec standards --list --category {name} # categories: core, backend, frontend, infra, ...
102
+ morph-spec standards --search {query}
103
+ morph-spec standards --show {id}
104
+ morph-spec standards --json
105
+ ```
106
+
107
+ ---
108
+
109
+ ## CLI — utilities
110
+
111
+ ```bash
112
+ morph-spec cost {bicep-file} # Azure cost estimate
113
+ morph-spec cost {bicep-file} --verbose
114
+ morph-spec cost {bicep-file} --strict # exit 1 if over limit
115
+ morph-spec troubleshoot {keywords}
116
+ morph-spec troubleshoot --category {name}
117
+ morph-spec session-summary {feature}
118
+ ```
119
+
120
+ ---
121
+
122
+ ## State — mark-output
123
+
124
+ ```bash
125
+ morph-spec state mark-output {feature} proposal
126
+ morph-spec state mark-output {feature} spec
127
+ morph-spec state mark-output {feature} contracts
128
+ morph-spec state mark-output {feature} decisions
129
+ morph-spec state mark-output {feature} tasks
130
+ morph-spec state mark-output {feature} recap
131
+
132
+ # UI outputs (camelCase or kebab-case both work)
133
+ morph-spec state mark-output {feature} uiDesignSystem
134
+ morph-spec state mark-output {feature} uiMockups
135
+ morph-spec state mark-output {feature} uiComponents
136
+ morph-spec state mark-output {feature} uiFlows
137
+ ```
138
+
139
+ ---
140
+
141
+ ## State — agents
142
+
143
+ ```bash
144
+ morph-spec state add-agent {feature} {agent-id}
145
+ morph-spec state remove-agent {feature} {agent-id}
146
+ morph-spec detect-agents "{description}" # detect agents for request
147
+ morph-spec detect-agents --json "{description}" # with standards
148
+ morph-spec detect-agents --ids-only "{description}"
149
+ ```
150
+
151
+ ---
152
+
153
+ ## Checkpoints
154
+
155
+ ```bash
156
+ morph-spec checkpoint-save {feature}
157
+ morph-spec checkpoint-restore {feature}
158
+ morph-spec checkpoint-list {feature}
159
+ ```
160
+
161
+ ---
162
+
163
+ ## Directory structure
164
+
165
+ ```
166
+ .morph/
167
+ ├── config/
168
+ │ └── config.json # project config (editable)
169
+ ├── framework/ # READ-ONLY
170
+ │ ├── agents.json # 37 agents, 4 tiers
171
+ │ ├── standards/ # 74 standards across 11 categories
172
+ │ └── templates/ # code and IaC templates
173
+ ├── context/ # project context (editable)
174
+ │ ├── README.md
175
+ │ └── standards.md
176
+ ├── features/
177
+ │ └── {feature}/
178
+ │ ├── 0-proposal/proposal.md
179
+ │ ├── 1-design/spec.md, contracts.cs, decisions.md
180
+ │ ├── 2-ui/design-system.md, mockups.md, components.md, flows.md
181
+ │ ├── 3-tasks/tasks.md
182
+ │ └── 4-implement/recap.md
183
+ ├── checkpoints/
184
+ ├── logs/
185
+ └── state.json # READ-ONLY — CLI managed
186
+
187
+ .claude/
188
+ ├── commands/ # slash commands
189
+ ├── skills/ # framework skills (SKILL.md per dir)
190
+ ├── agents/ # native subagents (37)
191
+ │ ├── morph-{id}.md # tier 1-2 agents
192
+ │ └── morph-domain-{name}.md # tier 3 domain agents
193
+ ├── rules/ # path-scoped rules (5 files)
194
+ └── settings.local.json # hooks (11)
195
+ ```
196
+
197
+ ---
198
+
199
+ ## Protected files
200
+
201
+ These files are never edited directly. Use CLI commands or `morph-spec update` instead:
202
+
203
+ | Path | Protected by |
204
+ |------|-------------|
205
+ | `.morph/state.json` | `permissions.deny` |
206
+ | `.morph/framework/**` | `permissions.deny` |
207
+ | Approved spec/contracts | `protect-spec-files.js` hook |
208
+
209
+ ---
210
+
211
+ ## Links
212
+
213
+ - [QUICKSTART.md](QUICKSTART.md) — step-by-step guide
214
+ - [ARCHITECTURE.md](ARCHITECTURE.md) — system design
215
+ - [CHANGELOG.md](../CHANGELOG.md) — release history
216
+ - [npm](https://www.npmjs.com/package/@polymorphism-tech/morph-spec)
217
+ - support@polymorphism.com.br
218
+
219
+ ---
220
+
221
+ *morph-spec v4.6.0 by Polymorphism Tech*