@polymorphism-tech/morph-spec 4.6.0 → 4.7.1

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 (239) hide show
  1. package/README.md +414 -700
  2. package/docs/ARCHITECTURE.md +331 -0
  3. package/docs/CHEATSHEET.md +221 -0
  4. package/docs/COMMAND-FLOWS.md +368 -0
  5. package/docs/QUICKSTART.md +212 -0
  6. package/docs/examples/order-management/contracts.cs +84 -0
  7. package/docs/examples/order-management/proposal.md +24 -0
  8. package/docs/examples/order-management/spec.md +162 -0
  9. package/docs/plans/2026-02-23-ddd-architecture-refactor.md +1153 -0
  10. package/docs/plans/2026-02-23-ddd-nextsteps.md +682 -0
  11. package/docs/plans/2026-02-23-infra-architect-refactor.md +437 -0
  12. package/docs/plans/2026-02-23-nextjs-code-review-design.md +156 -0
  13. package/docs/plans/2026-02-23-nextjs-code-review-impl.md +1254 -0
  14. package/docs/plans/2026-02-23-nextjs-standards-design.md +149 -0
  15. package/docs/plans/2026-02-23-nextjs-standards-impl.md +1846 -0
  16. package/framework/agents/README.md +14 -14
  17. package/framework/agents/architecture/standards-architect.md +159 -159
  18. package/framework/agents/frontend/nextjs-expert.md +87 -127
  19. package/framework/agents/infrastructure/azure-architect.md +147 -147
  20. package/framework/agents/infrastructure/infra-architect.md +45 -0
  21. package/framework/agents.json +1145 -278
  22. package/framework/rules/frontend-standards.md +0 -3
  23. package/framework/rules/nextjs-standards.md +17 -0
  24. package/framework/skills/level-0-meta/code-review-nextjs/SKILL.md +147 -0
  25. package/framework/skills/level-0-meta/code-review-nextjs/references/review-example-nextjs.md +254 -0
  26. package/framework/skills/level-0-meta/tool-usage-guide/SKILL.md +3 -3
  27. package/framework/skills/level-1-workflows/phase-design/SKILL.md +45 -9
  28. package/framework/skills/level-1-workflows/phase-tasks/SKILL.md +38 -0
  29. package/framework/standards/STANDARDS.json +121 -0
  30. package/framework/standards/architecture/ddd/bounded-contexts.md +105 -0
  31. package/framework/standards/architecture/ddd/complexity-levels.md +108 -0
  32. package/framework/standards/architecture/ddd/ubiquitous-language.md +58 -0
  33. package/framework/standards/frontend/nextjs/app-router.md +123 -0
  34. package/framework/standards/frontend/nextjs/components.md +132 -0
  35. package/framework/standards/frontend/nextjs/data-fetching.md +126 -0
  36. package/framework/standards/frontend/nextjs/forms.md +128 -0
  37. package/framework/standards/frontend/nextjs/naming-conventions.md +67 -0
  38. package/framework/standards/frontend/nextjs/project-structure.md +102 -0
  39. package/framework/standards/frontend/nextjs/state-management.md +72 -0
  40. package/framework/standards/frontend/nextjs/testing.md +111 -0
  41. package/framework/templates/REGISTRY.json +538 -142
  42. package/framework/templates/code/dotnet/contracts/contracts-level1.cs +69 -0
  43. package/framework/templates/code/dotnet/contracts/contracts-level2.cs +86 -0
  44. package/framework/templates/code/dotnet/contracts/contracts-level3.cs +41 -0
  45. package/framework/templates/docs/spec.md +49 -0
  46. package/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -0
  47. package/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -0
  48. package/framework/templates/frontend/nextjs/env.mjs.hbs +32 -0
  49. package/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -0
  50. package/framework/templates/frontend/nextjs/page.tsx.hbs +22 -0
  51. package/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -0
  52. package/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -0
  53. package/framework/templates/project-structure/dotnet-ddd.md +70 -0
  54. package/framework/workflows/docs/enforcement-pipeline.md +2 -1
  55. package/package.json +1 -1
  56. package/scripts/scan-nextjs.mjs +169 -0
  57. package/src/commands/project/doctor.js +52 -1
  58. package/src/commands/project/init.js +15 -1
  59. package/src/commands/project/update.js +6 -1
  60. package/src/lib/standards/standards-context-injector.js +5 -0
  61. package/src/lib/validators/nextjs/index.js +6 -0
  62. package/src/lib/validators/nextjs/next-component-validator.js +181 -0
  63. package/src/lib/validators/validation-runner.js +5 -0
  64. package/src/utils/agents-installer.js +14 -2
  65. package/.morph/.morphversion +0 -5
  66. package/.morph/analytics/threads-log.jsonl +0 -6
  67. package/.morph/config/config.json +0 -8
  68. package/.morph/framework/agents.json +0 -948
  69. package/.morph/framework/standards/STANDARDS.json +0 -812
  70. package/.morph/framework/standards/ai-agents/blazor-ui.md +0 -364
  71. package/.morph/framework/standards/ai-agents/production.md +0 -415
  72. package/.morph/framework/standards/ai-agents/setup.md +0 -418
  73. package/.morph/framework/standards/ai-agents/team-orchestration.md +0 -479
  74. package/.morph/framework/standards/ai-agents/workflows.md +0 -354
  75. package/.morph/framework/standards/architecture/ddd/aggregates.md +0 -120
  76. package/.morph/framework/standards/architecture/ddd/entities.md +0 -99
  77. package/.morph/framework/standards/architecture/ddd/value-objects.md +0 -124
  78. package/.morph/framework/standards/backend/api/minimal-api.md +0 -494
  79. package/.morph/framework/standards/backend/api/rest.md +0 -492
  80. package/.morph/framework/standards/backend/api/validation.md +0 -88
  81. package/.morph/framework/standards/backend/authentication/passkeys.md +0 -428
  82. package/.morph/framework/standards/backend/database/ef-core.md +0 -199
  83. package/.morph/framework/standards/backend/database/migrations.md +0 -393
  84. package/.morph/framework/standards/backend/database/postgresql/database.md +0 -352
  85. package/.morph/framework/standards/backend/database/repository-patterns.md +0 -528
  86. package/.morph/framework/standards/backend/database/vector-search-rag.md +0 -541
  87. package/.morph/framework/standards/backend/dotnet/async.md +0 -366
  88. package/.morph/framework/standards/backend/dotnet/core.md +0 -117
  89. package/.morph/framework/standards/backend/dotnet/di.md +0 -439
  90. package/.morph/framework/standards/backend/dotnet/program-cs-checklist.md +0 -92
  91. package/.morph/framework/standards/backend/integrations/asaas/asaas-api.md +0 -216
  92. package/.morph/framework/standards/backend/integrations/clerk/clerk-auth.md +0 -290
  93. package/.morph/framework/standards/backend/integrations/hangfire/hangfire-jobs.md +0 -350
  94. package/.morph/framework/standards/backend/integrations/resend/resend-email.md +0 -385
  95. package/.morph/framework/standards/context/analytics.md +0 -96
  96. package/.morph/framework/standards/context/bundles.md +0 -110
  97. package/.morph/framework/standards/context/priming.md +0 -78
  98. package/.morph/framework/standards/core/architecture.md +0 -185
  99. package/.morph/framework/standards/core/coding.md +0 -214
  100. package/.morph/framework/standards/core/git-branching-strategy.md +0 -403
  101. package/.morph/framework/standards/core/git.md +0 -185
  102. package/.morph/framework/standards/core/testing.md +0 -295
  103. package/.morph/framework/standards/data/nosql/blob-storage.md +0 -102
  104. package/.morph/framework/standards/data/nosql/cache/redis.md +0 -97
  105. package/.morph/framework/standards/data/nosql/cosmos-db.md +0 -118
  106. package/.morph/framework/standards/data/vector-search/azure-ai-search.md +0 -121
  107. package/.morph/framework/standards/data/vector-search/rag-chunking.md +0 -104
  108. package/.morph/framework/standards/frontend/blazor/design-checklist.md +0 -222
  109. package/.morph/framework/standards/frontend/blazor/fluent-ui-setup.md +0 -595
  110. package/.morph/framework/standards/frontend/blazor/fluent-ui.md +0 -137
  111. package/.morph/framework/standards/frontend/blazor/html-conversion.md +0 -184
  112. package/.morph/framework/standards/frontend/blazor/lifecycle.md +0 -195
  113. package/.morph/framework/standards/frontend/blazor/pitfalls.md +0 -198
  114. package/.morph/framework/standards/frontend/blazor/state.md +0 -191
  115. package/.morph/framework/standards/frontend/design-system/animations.md +0 -151
  116. package/.morph/framework/standards/frontend/design-system/naming.md +0 -64
  117. package/.morph/framework/standards/frontend/nextjs/nextjs-patterns.md +0 -215
  118. package/.morph/framework/standards/infrastructure/azure/azure.md +0 -624
  119. package/.morph/framework/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -422
  120. package/.morph/framework/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -516
  121. package/.morph/framework/standards/infrastructure/azure/devops/local-development.md +0 -520
  122. package/.morph/framework/standards/infrastructure/azure/services/functions.md +0 -486
  123. package/.morph/framework/standards/infrastructure/azure/services/service-bus.md +0 -459
  124. package/.morph/framework/standards/infrastructure/azure/services/storage.md +0 -407
  125. package/.morph/framework/standards/infrastructure/docker/easypanel-deploy.md +0 -196
  126. package/.morph/framework/standards/infrastructure/supabase/mcp-setup.md +0 -252
  127. package/.morph/framework/standards/infrastructure/supabase/supabase-auth.md +0 -176
  128. package/.morph/framework/standards/infrastructure/supabase/supabase-pgvector.md +0 -169
  129. package/.morph/framework/standards/infrastructure/supabase/supabase-rls.md +0 -184
  130. package/.morph/framework/standards/infrastructure/supabase/supabase-storage.md +0 -153
  131. package/.morph/framework/standards/integration/api/graphql.md +0 -91
  132. package/.morph/framework/standards/integration/api/grpc.md +0 -114
  133. package/.morph/framework/standards/integration/api/rest-design.md +0 -95
  134. package/.morph/framework/standards/integration/event-driven/cqrs.md +0 -101
  135. package/.morph/framework/standards/integration/event-driven/event-sourcing.md +0 -124
  136. package/.morph/framework/standards/integration/event-driven/service-bus.md +0 -95
  137. package/.morph/framework/standards/integration/mcp/mcp-tools.md +0 -384
  138. package/.morph/framework/standards/observability/logging.md +0 -131
  139. package/.morph/framework/standards/observability/metrics.md +0 -121
  140. package/.morph/framework/standards/observability/monitoring.md +0 -114
  141. package/.morph/framework/standards/observability/tracing.md +0 -132
  142. package/.morph/framework/standards/workflows/parallel-execution.md +0 -112
  143. package/.morph/framework/standards/workflows/thread-management.md +0 -113
  144. package/.morph/framework/templates/.idea/morph-templates.xml +0 -92
  145. package/.morph/framework/templates/.vscode/morph-templates.code-snippets +0 -186
  146. package/.morph/framework/templates/IDE-SNIPPETS.md +0 -266
  147. package/.morph/framework/templates/README.md +0 -814
  148. package/.morph/framework/templates/REGISTRY.json +0 -1492
  149. package/.morph/framework/templates/code/dotnet/backend/repository.cs +0 -141
  150. package/.morph/framework/templates/code/dotnet/backend/service.cs +0 -139
  151. package/.morph/framework/templates/code/dotnet/contracts/Commands.cs +0 -74
  152. package/.morph/framework/templates/code/dotnet/contracts/Entities.cs +0 -25
  153. package/.morph/framework/templates/code/dotnet/contracts/Queries.cs +0 -74
  154. package/.morph/framework/templates/code/dotnet/contracts/README.md +0 -74
  155. package/.morph/framework/templates/code/dotnet/contracts/api-contracts.cs +0 -173
  156. package/.morph/framework/templates/code/dotnet/contracts/contracts.cs +0 -217
  157. package/.morph/framework/templates/code/dotnet/contracts/contracts.cs.hbs +0 -172
  158. package/.morph/framework/templates/code/dotnet/database/migration.cs +0 -83
  159. package/.morph/framework/templates/code/dotnet/frontend/component.razor +0 -239
  160. package/.morph/framework/templates/code/dotnet/jobs/agent.cs +0 -163
  161. package/.morph/framework/templates/code/dotnet/jobs/job.cs +0 -171
  162. package/.morph/framework/templates/code/dotnet/test.cs +0 -239
  163. package/.morph/framework/templates/code/sql/rls-policy.sql +0 -57
  164. package/.morph/framework/templates/code/sql/supabase-migration.sql +0 -100
  165. package/.morph/framework/templates/code/sql/supabase-migration.template.sql +0 -113
  166. package/.morph/framework/templates/code/typescript/contracts.ts +0 -168
  167. package/.morph/framework/templates/context/CONTEXT-FEATURE.md +0 -276
  168. package/.morph/framework/templates/context/CONTEXT.md +0 -181
  169. package/.morph/framework/templates/docs/clarifications.md +0 -253
  170. package/.morph/framework/templates/docs/onboarding.md +0 -123
  171. package/.morph/framework/templates/docs/proposal.md +0 -182
  172. package/.morph/framework/templates/docs/schema-analysis.md +0 -119
  173. package/.morph/framework/templates/docs/spec.md +0 -149
  174. package/.morph/framework/templates/docs/ui-components.md +0 -124
  175. package/.morph/framework/templates/docs/ui-design-system.md +0 -76
  176. package/.morph/framework/templates/docs/ui-flows.md +0 -167
  177. package/.morph/framework/templates/docs/ui-mockups.md +0 -98
  178. package/.morph/framework/templates/docs/user-stories.md +0 -34
  179. package/.morph/framework/templates/examples/design-system-examples.md +0 -357
  180. package/.morph/framework/templates/examples/spec-examples.md +0 -90
  181. package/.morph/framework/templates/feature/decisions.md +0 -187
  182. package/.morph/framework/templates/feature/recap.md +0 -146
  183. package/.morph/framework/templates/feature/tasks.md +0 -199
  184. package/.morph/framework/templates/infrastructure/azure/Dockerfile.example +0 -82
  185. package/.morph/framework/templates/infrastructure/azure/README.md +0 -286
  186. package/.morph/framework/templates/infrastructure/azure/app-insights.bicep +0 -63
  187. package/.morph/framework/templates/infrastructure/azure/app-service.bicep +0 -164
  188. package/.morph/framework/templates/infrastructure/azure/container-app-env.bicep +0 -49
  189. package/.morph/framework/templates/infrastructure/azure/container-app.bicep +0 -156
  190. package/.morph/framework/templates/infrastructure/azure/deploy-checklist.md +0 -426
  191. package/.morph/framework/templates/infrastructure/azure/deploy.ps1 +0 -229
  192. package/.morph/framework/templates/infrastructure/azure/deploy.sh +0 -208
  193. package/.morph/framework/templates/infrastructure/azure/key-vault.bicep +0 -91
  194. package/.morph/framework/templates/infrastructure/azure/main.bicep +0 -189
  195. package/.morph/framework/templates/infrastructure/azure/parameters.dev.json +0 -29
  196. package/.morph/framework/templates/infrastructure/azure/parameters.prod.json +0 -29
  197. package/.morph/framework/templates/infrastructure/azure/parameters.staging.json +0 -29
  198. package/.morph/framework/templates/infrastructure/azure/sql-database.bicep +0 -103
  199. package/.morph/framework/templates/infrastructure/azure/storage.bicep +0 -106
  200. package/.morph/framework/templates/infrastructure/docker/Dockerfile.template +0 -58
  201. package/.morph/framework/templates/infrastructure/docker/docker-compose.template.yml +0 -67
  202. package/.morph/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +0 -38
  203. package/.morph/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +0 -48
  204. package/.morph/framework/templates/infrastructure/docker/easypanel.template.json +0 -54
  205. package/.morph/framework/templates/infrastructure/github/README.md +0 -593
  206. package/.morph/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +0 -22
  207. package/.morph/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +0 -45
  208. package/.morph/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +0 -27
  209. package/.morph/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +0 -61
  210. package/.morph/framework/templates/infrastructure/github/workflows/deploy-easypanel.yml.hbs +0 -31
  211. package/.morph/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +0 -59
  212. package/.morph/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +0 -39
  213. package/.morph/framework/templates/integrations/asaas-client.cs +0 -387
  214. package/.morph/framework/templates/integrations/asaas-webhook.cs +0 -351
  215. package/.morph/framework/templates/integrations/azure-identity-config.cs +0 -288
  216. package/.morph/framework/templates/integrations/clerk-config.cs +0 -258
  217. package/.morph/framework/templates/meta-prompts/fusion/fusion-agent.md +0 -76
  218. package/.morph/framework/templates/meta-prompts/fusion/fusion-aggregator.md +0 -100
  219. package/.morph/framework/templates/meta-prompts/hops/hop-retry.md +0 -78
  220. package/.morph/framework/templates/meta-prompts/hops/hop-validation.md +0 -97
  221. package/.morph/framework/templates/meta-prompts/hops/hop-wrapper.md +0 -36
  222. package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +0 -113
  223. package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +0 -80
  224. package/.morph/framework/templates/meta-prompts/squad-leaders/backend-squad.md +0 -90
  225. package/.morph/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +0 -126
  226. package/.morph/framework/templates/meta-prompts/squad-leaders/squad-leader.md +0 -43
  227. package/.morph/framework/templates/meta-prompts/validators/checkpoint-validator.md +0 -107
  228. package/.morph/framework/templates/meta-prompts/validators/pre-commit-validator.md +0 -95
  229. package/.morph/framework/templates/saas/subscription.cs +0 -347
  230. package/.morph/framework/templates/saas/tenant.cs +0 -338
  231. package/.morph/framework/templates/state.template.json +0 -17
  232. package/.morph/framework/templates/ui/FluentDesignTheme.cs +0 -149
  233. package/.morph/framework/templates/ui/MudTheme.cs +0 -281
  234. package/.morph/framework/templates/ui/design-system.css +0 -226
  235. package/.morph/logs/tool-failures.log +0 -7
  236. package/.morph/memory/pre-compact-2026-02-23T15-43-03-521Z.json +0 -16
  237. package/.morph/state.json +0 -48
  238. package/framework/templates/code/dotnet/contracts/contracts.cs +0 -217
  239. package/framework/templates/code/dotnet/contracts/contracts.cs.hbs +0 -172
@@ -1,123 +0,0 @@
1
- # Onboarding Guide — {{PROJECT_NAME}}
2
-
3
- > Generated by MORPH-SPEC on {{DATE}}
4
-
5
- ---
6
-
7
- ## Project Overview
8
-
9
- - **Project:** {{PROJECT_NAME}}
10
- - **Stack:** {{STACK}}
11
- - **Architecture:** {{ARCHITECTURE}}
12
-
13
- ---
14
-
15
- ## Active Agents
16
-
17
- The following agents are configured for this project:
18
-
19
- {{AGENTS_LIST}}
20
-
21
- ---
22
-
23
- ## Available MCPs & Plugins
24
-
25
- {{AVAILABLE_MCPS}}
26
-
27
- ---
28
-
29
- ## Standards
30
-
31
- The following standards are enforced in this project:
32
-
33
- {{STANDARDS_SUMMARY}}
34
-
35
- Standards are located in:
36
- - `.morph/framework/standards/` — Framework standards (universal)
37
- - `.morph/context/` — Project-specific overrides
38
-
39
- ---
40
-
41
- ## Configured Workflow
42
-
43
- {{WORKFLOW_SUMMARY}}
44
-
45
- ### Available Workflows
46
-
47
- | Workflow | Description | Phases |
48
- |----------|-------------|--------|
49
- | fast-track | Simple, well-defined features | 0→1→2→4→5 |
50
- | standard | Most features | 0→1→(1.5)→2→3→4→5 |
51
- | full-morph | Complex features with sync | 0→1→1.5→2→3→4→5→6 |
52
- | design-impl | Pre-planned work | 2→4→5 |
53
- | ui-refresh | Visual redesigns | 1.5→2→5 |
54
-
55
- ---
56
-
57
- ## Key Commands
58
-
59
- ```bash
60
- # Start a feature
61
- # Just ask Claude Code to implement something
62
-
63
- # Check feature progress
64
- morph-spec status <feature>
65
-
66
- # Validate feature outputs
67
- morph-spec validate-feature <feature>
68
-
69
- # Manage tasks
70
- morph-spec task next <feature>
71
- morph-spec task start <feature> <task-id>
72
- morph-spec task done <feature> <task-id>
73
-
74
- # Save/restore checkpoints
75
- morph-spec checkpoint-save <feature>
76
- morph-spec checkpoint-list <feature>
77
-
78
- # View changes since last snapshot
79
- morph-spec diff <feature>
80
-
81
- # Health check
82
- morph-spec doctor
83
- ```
84
-
85
- ---
86
-
87
- ## Project Structure
88
-
89
- ```
90
- {{PROJECT_NAME}}/
91
- ├── CLAUDE.md # Claude Code instructions
92
- ├── .morph/
93
- │ ├── config/
94
- │ │ └── config.json # Project configuration
95
- │ ├── framework/
96
- │ │ ├── agents.json # Agent definitions
97
- │ │ ├── standards/ # Framework standards
98
- │ │ └── templates/ # Output templates
99
- │ ├── context/ # Project context & overrides
100
- │ └── features/{feature}/ # Feature outputs
101
- │ ├── 0-proposal/
102
- │ ├── 1-design/
103
- │ ├── 2-ui/
104
- │ ├── 3-tasks/
105
- │ └── 4-implement/
106
- └── .claude/
107
- ├── commands/ # Slash commands
108
- ├── skills/ # Workflow skills
109
- └── settings.local.json # Hooks & permissions
110
- ```
111
-
112
- ---
113
-
114
- ## Getting Started
115
-
116
- 1. **Ask Claude Code** to implement a feature
117
- 2. **Follow the phases** — the framework guides you automatically
118
- 3. **Approve at pauses** — design and task breakdowns need your approval
119
- 4. **Check progress** with `morph-spec status <feature>`
120
-
121
- ---
122
-
123
- *Generated by MORPH-SPEC v{{VERSION}} — Polymorphism Tech*
@@ -1,182 +0,0 @@
1
- # Feature Proposal: {{titleCase FEATURE_NAME}}
2
-
3
- > Proposal for a new feature. This document describes WHAT and WHY.
4
- > For technical details, see `spec.md`.
5
-
6
- ## Metadata
7
-
8
- | Field | Value |
9
- |-------|-------|
10
- | **Proposed** | {{DATE}} |
11
- | **Author** | {{AUTHOR}} |
12
- | **Status** | Draft / Under Review / Approved / Rejected |
13
- | **Priority** | High / Medium / Low |
14
- {{#if STACK}}| **Stack** | {{STACK}} |{{/if}}
15
-
16
- ---
17
-
18
- ## Overview
19
-
20
- {Brief 2-3 sentence summary of the feature}
21
-
22
- ---
23
-
24
- ## Problem Statement
25
-
26
- ### What is the problem?
27
-
28
- {Describe the problem this feature solves. Be specific.}
29
-
30
- ### Who is affected?
31
-
32
- {Who suffers from this problem? End users? Developers? Operations?}
33
-
34
- ### What is the impact?
35
-
36
- {What is the impact of NOT solving this problem?}
37
- - User productivity loss: {X}
38
- - Revenue/Cost impact: {X}
39
- - User satisfaction: {X}
40
-
41
- ---
42
-
43
- ## Proposed Solution
44
-
45
- ### Overview
46
-
47
- {Describe the proposed solution in 2-3 paragraphs}
48
-
49
- ### Key Features
50
-
51
- 1. **{Feature 1}** - {brief description}
52
- 2. **{Feature 2}** - {brief description}
53
- 3. **{Feature 3}** - {brief description}
54
-
55
- {{#if (eq STACK "nextjs-supabase")}}
56
- ### Technical Approach
57
-
58
- | Layer | Technology | Role |
59
- |-------|-----------|------|
60
- | **Database** | Supabase (PostgreSQL + RLS) | {tables, policies, storage} |
61
- | **Backend API** | .NET 10 Minimal API | {endpoints, business logic} |
62
- | **Frontend** | Next.js 15 (App Router) | {pages, components, auth} |
63
- | **Infra** | EasyPanel + Docker | {deployment, SSL} |
64
- {{/if}}
65
-
66
- ### User Journey
67
-
68
- ```
69
- 1. User {initial action}
70
- 2. System {response}
71
- 3. User {next action}
72
- 4. System {final result}
73
- ```
74
-
75
- ---
76
-
77
- {{#if (eq STACK "nextjs-supabase")}}
78
- ## Cost Estimate
79
-
80
- | Resource | Provider | Monthly Cost | Notes |
81
- |----------|----------|-------------|-------|
82
- | Supabase | Free / Pro | $0 - $25 | {DB, Auth, Storage, Realtime} |
83
- | VPS (EasyPanel) | {provider} | ${X} | {API + Web containers} |
84
- | External APIs | {provider} | ${X} | {if applicable} |
85
- | **Total** | | **${X}/month** | |
86
-
87
- ---
88
-
89
- {{/if}}
90
- ## Success Metrics
91
-
92
- How will we know this feature is successful?
93
-
94
- | Metric | Current | Target |
95
- |--------|---------|--------|
96
- | {Metric 1} | {X} | {Y} |
97
- | {Metric 2} | {X} | {Y} |
98
-
99
- ---
100
-
101
- ## Scope
102
-
103
- ### In Scope
104
-
105
- - {Item 1 that is included}
106
- - {Item 2 that is included}
107
- - {Item 3 that is included}
108
-
109
- ### Out of Scope
110
-
111
- - {Item 1 that is NOT included}
112
- - {Item 2 that is NOT included}
113
-
114
- ### Future Considerations
115
-
116
- - {Item that could be added later}
117
-
118
- ---
119
-
120
- ## Risks & Concerns
121
-
122
- | Risk | Likelihood | Impact | Mitigation |
123
- |------|------------|--------|------------|
124
- | {Risk 1} | High/Med/Low | High/Med/Low | {mitigation strategy} |
125
- | {Risk 2} | High/Med/Low | High/Med/Low | {mitigation strategy} |
126
-
127
- ---
128
-
129
- ## Dependencies
130
-
131
- - [ ] {Dependency 1} - {status}
132
- - [ ] {Dependency 2} - {status}
133
-
134
- ---
135
-
136
- ## Estimated Effort
137
-
138
- | Phase | Estimate |
139
- |-------|----------|
140
- | Design & Spec | {X}h |
141
- {{#if (eq STACK "nextjs-supabase")}}| Database & Migrations | {X}h |
142
- | Backend API | {X}h |
143
- | Frontend | {X}h |
144
- {{else}}| Implementation | {X}h |
145
- {{/if}}| Testing | {X}h |
146
- | **Total** | **{X}h** |
147
-
148
- ---
149
-
150
- ## Questions & Clarifications
151
-
152
- 1. {Question 1 that needs answering}
153
- 2. {Question 2 that needs answering}
154
-
155
- ---
156
-
157
- {{#if (eq STACK "blazor-azure")}}
158
- ## Approval
159
-
160
- | Role | Name | Decision | Date |
161
- |------|------|----------|------|
162
- | Product Owner | | Pending | |
163
- | Tech Lead | | Pending | |
164
-
165
- ---
166
-
167
- {{/if}}
168
- ## Next Steps
169
-
170
- Once approved:
171
- 1. Create detailed `spec.md` with technical design
172
- {{#if (eq STACK "nextjs-supabase")}}2. Define contracts (`contracts.cs` + `contracts.ts`)
173
- 3. Record decisions in `decisions.md`
174
- 4. Break down into `tasks.md`
175
- 5. Begin implementation
176
- {{else}}2. Break down into `tasks.md`
177
- 3. Begin implementation
178
- {{/if}}
179
-
180
- ---
181
-
182
- *Created with MORPH Framework*
@@ -1,119 +0,0 @@
1
- # Schema Analysis - {{FEATURE_NAME_TITLE}}
2
-
3
- **Feature**: {{FEATURE_NAME}}
4
- **Date**: {{DATE}}
5
- **Method**: {{#if method}}{{method}}{{else}}Manual Code Analysis{{/if}}
6
- **Analyzed By**: {{AUTHOR}}
7
-
8
- ---
9
-
10
- ## Summary
11
-
12
- **Tables Analyzed**: {{#if tableCount}}{{tableCount}}{{else}}0{{/if}}
13
- **Code Files Scanned**: {{#if fileCount}}{{fileCount}}{{else}}0{{/if}}
14
- **MCP Tools Used**: {{#if mcpUsed}}{{mcpUsed}}{{else}}No (manual analysis){{/if}}
15
-
16
- ---
17
-
18
- ## Tables Analyzed
19
-
20
- {{#each tables}}
21
- ### Table: {{this.name}}
22
-
23
- **Source:**
24
- {{#if this.mcpSource}}- MCP: {{this.mcpSource}}{{/if}}
25
- {{#if this.codeSource}}- Code: {{this.codeSource}}{{/if}}
26
-
27
- **Columns:**
28
- | Column Name | Type | Nullable | Default | Notes |
29
- |------------|------|----------|---------|-------|
30
- {{#each this.columns}}
31
- | {{this.name}} | {{this.type}} | {{#if this.nullable}}YES{{else}}NO{{/if}} | {{#if this.default}}{{this.default}}{{else}}-{{/if}} | {{#if this.notes}}{{this.notes}}{{else}}-{{/if}} |
32
- {{/each}}
33
-
34
- **Relationships:**
35
- {{#each this.relationships}}
36
- - {{this.description}}
37
- {{/each}}
38
-
39
- **Indexes:**
40
- {{#each this.indexes}}
41
- - {{this.description}}
42
- {{/each}}
43
-
44
- ---
45
- {{/each}}
46
-
47
- ## ⚠️ CRITICAL FINDINGS
48
-
49
- ### Field Name Mismatches (MUST FIX)
50
-
51
- {{#if fieldMismatches}}
52
- {{#each fieldMismatches}}
53
- - ❌ {{this.description}}
54
- {{/each}}
55
- {{else}}
56
- ✅ No field name mismatches found
57
- {{/if}}
58
-
59
- ### Type Mismatches
60
-
61
- {{#if typeMismatches}}
62
- {{#each typeMismatches}}
63
- - ⚠️ {{this.description}}
64
- {{/each}}
65
- {{else}}
66
- ✅ No type mismatches found
67
- {{/if}}
68
-
69
- ### Relationship Corrections
70
-
71
- {{#if relationshipIssues}}
72
- {{#each relationshipIssues}}
73
- - ⚠️ {{this.description}}
74
- {{/each}}
75
- {{else}}
76
- ✅ All relationships correctly identified
77
- {{/if}}
78
-
79
- ---
80
-
81
- ## Recommendations for contracts.cs
82
-
83
- Based on real schema analysis:
84
-
85
- \`\`\`csharp
86
- {{#each dtoRecommendations}}
87
- // {{this.tableName}} → {{this.dtoName}}
88
- public record {{this.dtoName}}(
89
- {{#each this.fields}}
90
- {{this.type}} {{this.name}}{{#if this.nullable}}?{{/if}}{{#unless @last}},{{/unless}} // {{#if this.comment}}{{this.comment}}{{/if}}
91
- {{/each}}
92
- );
93
-
94
- {{/each}}
95
- \`\`\`
96
-
97
- ---
98
-
99
- ## Analysis Notes
100
-
101
- {{#if notes}}
102
- {{notes}}
103
- {{else}}
104
- _No additional notes._
105
- {{/if}}
106
-
107
- ---
108
-
109
- ## Next Steps
110
-
111
- - [ ] Verify schema analysis with stakeholders
112
- - [ ] Generate `contracts.cs` using real field names
113
- - [ ] Update `spec.md` data model section with findings
114
- - [ ] Document any schema migrations needed in `decisions.md`
115
-
116
- ---
117
-
118
- *Generated by MORPH-SPEC v{{FRAMEWORK_VERSION}}*
119
- *Schema analysis helps prevent DTO field name mismatches and ensures contracts match real database schema*
@@ -1,149 +0,0 @@
1
- # Feature Specification: {{titleCase FEATURE_NAME}}
2
-
3
- | Field | Value |
4
- |-------|-------|
5
- | **ID** | {{FEATURE_NAME}} |
6
- | **Status** | Draft / In Review / Approved / In Progress / Done |
7
- | **Created** | {{DATE}} |
8
- | **Stack** | {{STACK}} |
9
- | **Complexity** | Low / Medium / High |
10
- | **Estimated Cost** | $X/month |
11
- | **Agents** | Core: All / Specialists: {list} |
12
-
13
- ---
14
-
15
- ## Overview
16
-
17
- **Problem:** {What problem this feature solves}
18
-
19
- **Solution:** {High-level solution}
20
-
21
- **Success Criteria:**
22
- - [ ] {Criterion 1}
23
- - [ ] {Criterion 2}
24
-
25
- ---
26
-
27
- ## Requirements
28
-
29
- **Functional:** FR1: {desc} | FR2: {desc} | FR3: {desc}
30
-
31
- **Non-Functional:** NFR1: Performance - {target} | NFR2: Reliability - {target}
32
-
33
- ---
34
-
35
- ## User Stories
36
-
37
- ### US001: {Title}
38
- **As** {user type} **I want** {feature} **so that** {benefit}
39
-
40
- **Acceptance Criteria:** 1. {criterion} 2. {criterion}
41
-
42
- **Edge Cases:** {edge case}: {handling}
43
-
44
- ---
45
-
46
- ## Technical Design
47
-
48
- ### Stack
49
- | Component | Technology |
50
- |-----------|------------|
51
- | Frontend | {Blazor Server / Next.js} |
52
- | Backend | .NET 10 / C# 14 |
53
- | Database | {Azure SQL / Cosmos DB} |
54
-
55
- ### Data Model
56
-
57
- #### {EntityName}
58
- | Column | Type | Constraints |
59
- |--------|------|-------------|
60
- | Id | Guid | PK |
61
- | {Property} | {Type} | {Constraints} |
62
- | CreatedAt | datetime2 | Default: GETUTCDATE() |
63
-
64
- ### Contracts
65
-
66
- > **Ref:** `framework/standards/backend/database/ef-core.md` for background operations
67
-
68
- ```csharp
69
- public interface I{{pascalCase FEATURE_NAME}}Service
70
- {
71
- Task<{{pascalCase FEATURE_NAME}}Dto> GetByIdAsync(int id);
72
- Task<{{pascalCase FEATURE_NAME}}Dto> CreateAsync(Create{{pascalCase FEATURE_NAME}}Request request);
73
- }
74
- ```
75
-
76
- **Contracts Workflow:** Generate `contracts.cs` FIRST → validate names → reference in spec → approve with user.
77
-
78
- **Validation Checklist:**
79
- - [ ] Property names are descriptive (not generic "Data", "Value")
80
- - [ ] Records use correct types (Stream vs byte[], Guid vs string)
81
- - [ ] Response DTOs have all properties needed for UI
82
- - [ ] Request DTOs have implicit validations (required, nullable)
83
-
84
- ---
85
-
86
- ## UI/UX Design (if front-end)
87
-
88
- ### Wireframes
89
- ```
90
- {ASCII wireframe per screen - include states: loading, error, empty}
91
- ```
92
-
93
- ### User Flow
94
- 1. {Step} → {System response}
95
-
96
- ---
97
-
98
- ## Flows
99
-
100
- ### {Flow Name}
101
- **Trigger:** {what starts this flow}
102
- 1. {Actor} {action} → {system response}
103
- 2. If {condition}: Path A / Else: Path B
104
- **End State:** {final state}
105
-
106
- ---
107
-
108
- ## Cost Estimate
109
-
110
- | Resource | SKU | Monthly Cost | Justification |
111
- |----------|-----|--------------|---------------|
112
- | {Resource} | {SKU} | ${X} | {Why} |
113
- | **Total** | | **${X}/month** | |
114
-
115
- ---
116
-
117
- ## ADRs (Architectural Decision Records)
118
-
119
- ### ADR-001: {Decision Title}
120
- **Status:** Proposed / Accepted
121
- **Context:** {Why decide now}
122
- **Decision:** {What we chose}
123
- **Alternatives:** 1. {Alt} (pros/cons) 2. {Alt} (pros/cons)
124
- **Trade-offs:** {key trade-offs}
125
-
126
- ---
127
-
128
- ## Security
129
-
130
- | Action | Required Policy |
131
- |--------|-----------------|
132
- | View | CanView{Feature} |
133
- | Create | CanManage{Feature} |
134
-
135
- ## Risks
136
-
137
- | Risk | Impact | Mitigation |
138
- |------|--------|------------|
139
- | {Risk} | {H/M/L} | {Mitigation} |
140
-
141
- ## Out of Scope
142
- - {Item}
143
-
144
- ## Definition of Done
145
- - [ ] Code implemented
146
- - [ ] Tests >80% coverage
147
- - [ ] Code review approved
148
- - [ ] Deploy to staging
149
- - [ ] Recap.md generated
@@ -1,124 +0,0 @@
1
- # UI Components: {{titleCase FEATURE_NAME}}
2
-
3
- | Field | Value |
4
- |-------|-------|
5
- | **Feature** | {{FEATURE_NAME}} |
6
- | **Created** | {{DATE}} |
7
- | **Stack** | {{STACK}} |
8
-
9
- ---
10
-
11
- {{#if (eq STACK "blazor-azure")}}
12
- ## Component Library: FluentUI Blazor / MudBlazor
13
-
14
- **NuGet Package:**
15
- ```xml
16
- <PackageReference Include="Microsoft.FluentUI.AspNetCore.Components" Version="4.x.x" />
17
- ```
18
-
19
- ---
20
-
21
- ### C001: Header Navigation
22
-
23
- **Component:** `<FluentHeader>`
24
-
25
- ```razor
26
- <FluentHeader>
27
- <FluentLabel>{{FEATURE_NAME}}</FluentLabel>
28
- <FluentSpacer />
29
- <FluentPersona Name="@userName" OnClick="@ShowUserMenu" />
30
- </FluentHeader>
31
- ```
32
-
33
- ---
34
-
35
- ### C002: Primary Button
36
-
37
- **Component:** `<FluentButton>`
38
-
39
- ```razor
40
- <FluentButton Appearance="Appearance.Accent"
41
- OnClick="@HandleSave"
42
- Disabled="@(!isValid)">
43
- Save
44
- </FluentButton>
45
- ```
46
-
47
- ---
48
-
49
- ### C003: Data Table
50
-
51
- **Component:** `<FluentDataGrid>`
52
-
53
- ```razor
54
- <FluentDataGrid Items="@items" Pagination="@pagination">
55
- <PropertyColumn Property="@(i => i.Name)" Sortable="true" />
56
- <PropertyColumn Property="@(i => i.Status)" Sortable="true" />
57
- <TemplateColumn Title="Actions">
58
- <FluentMenu>
59
- <FluentMenuItem OnClick="@(() => EditItem(context))">Edit</FluentMenuItem>
60
- <FluentMenuItem OnClick="@(() => DeleteItem(context))">Delete</FluentMenuItem>
61
- </FluentMenu>
62
- </TemplateColumn>
63
- </FluentDataGrid>
64
- ```
65
-
66
- ---
67
-
68
- ### C004: Form Input
69
-
70
- **Component:** `<FluentTextField>`
71
-
72
- ```razor
73
- <FluentTextField @bind-Value="model.Name"
74
- Label="Name"
75
- Required="true"
76
- MaxLength="100"
77
- ErrorMessage="@GetValidationError(nameof(model.Name))">
78
- </FluentTextField>
79
- ```
80
-
81
- {{/if}}
82
-
83
- {{#if (eq STACK "nextjs-supabase")}}
84
- ## Component Library: shadcn/ui
85
-
86
- ### C001: Button
87
-
88
- ```tsx
89
- import { Button } from '@/components/ui/button';
90
-
91
- <Button onClick={handleSave} disabled={!isValid}>
92
- Save
93
- </Button>
94
- ```
95
-
96
- ### C002: Data Table
97
-
98
- ```tsx
99
- import { DataTable } from '@/components/ui/data-table';
100
-
101
- <DataTable columns={columns} data={items} />
102
- ```
103
-
104
- {{/if}}
105
-
106
- ---
107
-
108
- ## Form Validation
109
-
110
- | Field | Rule | Error Message |
111
- |-------|------|---------------|
112
- | **Name** | Required, max 100 | "Name is required" |
113
- | **Email** | Valid email | "Invalid email" |
114
-
115
- ---
116
-
117
- ## Accessibility
118
- - [ ] All inputs have labels
119
- - [ ] Error messages announced
120
- - [ ] Keyboard navigation works
121
-
122
- ---
123
-
124
- *Generated with MORPH Framework*