@polymorphism-tech/morph-spec 4.11.1 → 4.13.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 (317) hide show
  1. package/README.md +21 -29
  2. package/bin/morph-spec.js +41 -24
  3. package/bin/task-manager.js +962 -1341
  4. package/bin/validate.js +1 -1
  5. package/claude-plugin.json +1 -1
  6. package/docs/CHEATSHEET.md +10 -11
  7. package/docs/QUICKSTART.md +15 -15
  8. package/framework/CLAUDE.md +5 -2
  9. package/framework/agents/README.md +3 -4
  10. package/framework/agents/ai-agents/ai-system-architect.md +6 -10
  11. package/framework/agents/architecture/seo-growth-hacker.md +166 -326
  12. package/framework/agents/architecture/standards-architect.md +21 -31
  13. package/framework/agents/backend/dotnet-senior.md +160 -86
  14. package/framework/agents/backend/ef-modeler.md +2 -6
  15. package/framework/agents/backend/hangfire-orchestrator.md +8 -9
  16. package/framework/agents/backend/ms-agent-expert.md +1 -1
  17. package/framework/agents/frontend/nextjs-expert.md +198 -133
  18. package/framework/agents/frontend/ui-ux-designer.md +226 -267
  19. package/framework/agents/infrastructure/infra-architect.md +191 -27
  20. package/framework/agents/integrations/clerk-auth.md +19 -26
  21. package/framework/agents/integrations/hangfire-integration.md +1 -4
  22. package/framework/agents.json +226 -1454
  23. package/framework/commands/morph-apply.md +4 -4
  24. package/framework/commands/morph-preflight.md +4 -26
  25. package/framework/commands/morph-proposal.md +19 -19
  26. package/framework/commands/morph-status.md +2 -2
  27. package/framework/commands/morph-troubleshoot.md +6 -13
  28. package/framework/hooks/README.md +1 -6
  29. package/framework/hooks/claude-code/post-tool-use/agent-complete.js +122 -0
  30. package/framework/hooks/claude-code/post-tool-use/validator-feedback.js +4 -6
  31. package/framework/hooks/claude-code/pre-compact/save-morph-context.js +12 -7
  32. package/framework/hooks/claude-code/pre-tool-use/enforce-phase-writes.js +2 -2
  33. package/framework/hooks/claude-code/pre-tool-use/protect-spec-files.js +2 -2
  34. package/framework/hooks/claude-code/pre-tool-use/task-tracking-guard.js +5 -10
  35. package/framework/hooks/claude-code/session-start/inject-morph-context.js +63 -30
  36. package/framework/hooks/claude-code/session-start/resume-context.js +77 -0
  37. package/framework/hooks/claude-code/statusline.py +4 -5
  38. package/framework/hooks/claude-code/stop/validate-completion.js +4 -4
  39. package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +8 -8
  40. package/framework/hooks/shared/compact-restore.js +28 -5
  41. package/framework/hooks/shared/dispatch-helpers.js +17 -0
  42. package/framework/hooks/shared/phase-utils.js +4 -8
  43. package/framework/hooks/shared/state-reader.js +34 -3
  44. package/framework/phases.json +7 -45
  45. package/framework/rules/ai-agents-standards.md +15 -0
  46. package/framework/rules/asaas-standards.md +13 -0
  47. package/framework/rules/clerk-standards.md +13 -0
  48. package/framework/rules/csharp-standards.md +8 -4
  49. package/framework/rules/data-standards.md +18 -0
  50. package/framework/rules/dotnet-templates.md +87 -0
  51. package/framework/rules/frontend-standards.md +13 -13
  52. package/framework/rules/hangfire-standards.md +13 -0
  53. package/framework/rules/infrastructure-standards.md +27 -16
  54. package/framework/rules/morph-workflow.md +73 -13
  55. package/framework/rules/nextjs-standards.md +1 -0
  56. package/framework/rules/nextjs-templates.md +40 -0
  57. package/framework/rules/resend-standards.md +12 -0
  58. package/framework/rules/supabase-standards.md +29 -0
  59. package/framework/skills/README.md +6 -8
  60. package/framework/skills/level-0-meta/mcp-registry.json +21 -99
  61. package/framework/{standards/ai-agents/team-orchestration.md → skills/level-0-meta/morph-agent-teams/SKILL.md} +472 -479
  62. package/framework/skills/level-0-meta/morph-brainstorming/SKILL.md +28 -1
  63. package/framework/skills/level-0-meta/morph-checklist/SKILL.md +2 -2
  64. package/framework/skills/level-0-meta/morph-code-review/SKILL.md +1 -5
  65. package/framework/skills/level-0-meta/morph-code-review/scripts/scan-csharp.mjs +1 -1
  66. package/framework/skills/level-0-meta/morph-frontend-review/SKILL.md +23 -41
  67. package/framework/skills/level-0-meta/morph-init/SKILL.md +18 -14
  68. package/framework/skills/level-0-meta/morph-parallel-dispatch/SKILL.md +225 -0
  69. package/framework/skills/level-0-meta/morph-post-implementation/SKILL.md +20 -0
  70. package/framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md +4 -8
  71. package/framework/skills/level-0-meta/morph-tool-usage-guide/references/tools-per-phase.md +15 -59
  72. package/framework/skills/level-0-meta/morph-verification-before-completion/SKILL.md +7 -19
  73. package/framework/skills/level-0-meta/morph-verification-before-completion/scripts/check-phase-outputs.mjs +8 -8
  74. package/framework/skills/level-1-workflows/README.md +1 -1
  75. package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +49 -50
  76. package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +58 -124
  77. package/framework/skills/level-1-workflows/morph-phase-design/references/architecture-analysis-guide.md +5 -50
  78. package/framework/skills/level-1-workflows/morph-phase-design/references/spec-example.md +1 -1
  79. package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +127 -159
  80. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/implementer-prompt.md +4 -3
  81. package/framework/skills/level-1-workflows/morph-phase-implement/prompts/spec-reviewer-prompt.md +2 -2
  82. package/framework/skills/level-1-workflows/morph-phase-implement/references/recap-example.md +1 -1
  83. package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +17 -13
  84. package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +22 -40
  85. package/framework/skills/level-1-workflows/morph-phase-tasks/references/task-planning-patterns.md +0 -2
  86. package/framework/skills/level-1-workflows/morph-phase-tasks/references/tasks-example.md +5 -5
  87. package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +275 -61
  88. package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +1 -1
  89. package/framework/squad-templates/backend-only.json +6 -6
  90. package/framework/squad-templates/frontend-only.json +17 -8
  91. package/framework/squad-templates/full-stack.json +29 -24
  92. package/framework/standards/STANDARDS.json +1021 -2338
  93. package/framework/standards/backend/dotnet/fluent-validation-vsa.md +200 -0
  94. package/framework/standards/backend/dotnet/result-pattern.md +213 -0
  95. package/framework/standards/backend/dotnet/scalar-ui.md +172 -0
  96. package/framework/standards/backend/dotnet/scrutor.md +158 -0
  97. package/framework/standards/backend/dotnet/vsa-handler-patterns.md +274 -0
  98. package/framework/standards/frontend/nextjs/motion-patterns.md +1 -1
  99. package/framework/standards/infrastructure/supabase/mcp-setup.md +83 -193
  100. package/framework/standards/integration/mcp/mcp-tools.md +91 -77
  101. package/framework/templates/IDE-SNIPPETS.md +2 -6
  102. package/framework/templates/README.md +709 -814
  103. package/framework/templates/REGISTRY.json +223 -762
  104. package/framework/templates/code/dotnet/abstractions/api-endpoint.cs +7 -0
  105. package/framework/templates/code/dotnet/abstractions/error.cs +60 -0
  106. package/framework/templates/code/dotnet/abstractions/handler.cs +12 -0
  107. package/framework/templates/code/dotnet/abstractions/result.cs +74 -0
  108. package/framework/templates/code/dotnet/backend/repository.cs +148 -141
  109. package/framework/templates/code/dotnet/constants/api-tags.cs +6 -0
  110. package/framework/templates/code/dotnet/exceptions/exception-handler.cs +32 -0
  111. package/framework/templates/code/dotnet/extensions/database-extensions.cs +20 -0
  112. package/framework/templates/code/dotnet/extensions/handler-registration.cs +38 -0
  113. package/framework/templates/code/dotnet/extensions/health-checks.cs +24 -0
  114. package/framework/templates/code/dotnet/extensions/map-endpoints.cs +35 -0
  115. package/framework/templates/code/dotnet/extensions/result-extensions.cs +29 -0
  116. package/framework/templates/code/dotnet/feature/endpoint.cs.hbs +21 -0
  117. package/framework/templates/code/dotnet/feature/entity.cs.hbs +8 -0
  118. package/framework/templates/code/dotnet/feature/errors.cs.hbs +8 -0
  119. package/framework/templates/code/dotnet/feature/handler.cs.hbs +24 -0
  120. package/framework/templates/code/dotnet/feature/request.cs.hbs +4 -0
  121. package/framework/templates/code/dotnet/feature/response.cs.hbs +4 -0
  122. package/framework/templates/code/dotnet/feature/validator.cs.hbs +15 -0
  123. package/framework/templates/code/dotnet/jobs/job.cs +21 -17
  124. package/framework/templates/code/dotnet/pipelines/logging-decorator.cs +31 -0
  125. package/framework/templates/code/dotnet/pipelines/validation-decorator.cs +97 -0
  126. package/framework/templates/code/dotnet/test.cs +192 -106
  127. package/framework/templates/context/ARCHITECTURE.md +89 -0
  128. package/framework/templates/context/CONTEXT-FEATURE.md +2 -2
  129. package/framework/templates/context/CONTEXT.md +180 -181
  130. package/framework/templates/context/design-system.md +342 -211
  131. package/framework/templates/docs/onboarding.md +2 -3
  132. package/framework/templates/docs/proposal.md +171 -182
  133. package/framework/templates/docs/spec.md +1 -3
  134. package/framework/templates/docs/ui-components.md +0 -72
  135. package/framework/templates/examples/design-system-examples.md +4 -4
  136. package/framework/templates/feature/decisions.md +0 -66
  137. package/framework/templates/feature/recap.md +1 -2
  138. package/framework/templates/infrastructure/github/README.md +56 -593
  139. package/framework/templates/integrations/clerk-config.cs +0 -41
  140. package/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +2 -2
  141. package/framework/templates/meta-prompts/squad-leaders/backend-squad.md +1 -2
  142. package/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +83 -126
  143. package/framework/templates/meta-prompts/validators/pre-commit-validator.md +2 -2
  144. package/framework/templates/project/validate.js +2 -4
  145. package/framework/templates/ui/design-system.css +1 -1
  146. package/framework/workflows/README.md +8 -8
  147. package/framework/workflows/configs/fast-track.json +51 -0
  148. package/framework/workflows/configs/full.json +68 -0
  149. package/framework/workflows/configs/standard.json +7 -3
  150. package/framework/workflows/docs/STORY-DRIVEN-DEVELOPMENT.md +1 -1
  151. package/framework/workflows/docs/enforcement-pipeline.md +18 -19
  152. package/framework/workflows/docs/full-morph.md +69 -76
  153. package/framework/workflows/docs/standard.md +49 -44
  154. package/framework/workflows/docs/ui-refresh.md +1 -1
  155. package/package.json +3 -3
  156. package/src/commands/agents/dispatch-agents.js +55 -116
  157. package/src/commands/context/context-refresh.js +79 -0
  158. package/src/commands/mcp/mcp-setup.js +28 -6
  159. package/src/commands/phase/phase-reset.js +1 -1
  160. package/src/commands/project/doctor.js +10 -32
  161. package/src/commands/project/init.js +32 -1
  162. package/src/commands/project/status.js +6 -12
  163. package/src/commands/scaffold/scaffold.js +131 -0
  164. package/src/commands/scope/escalate.js +1 -1
  165. package/src/commands/state/advance-phase.js +15 -29
  166. package/src/commands/state/state.js +20 -5
  167. package/src/commands/tasks/task.js +0 -30
  168. package/src/commands/validation/validate-feature.js +3 -10
  169. package/src/core/paths/output-schema.js +12 -13
  170. package/src/core/state/phase-state-machine.js +211 -217
  171. package/src/core/state/state-manager.js +9 -9
  172. package/src/lib/agents/agents-manager.js +2 -2
  173. package/src/lib/agents/output-collector.js +1 -2
  174. package/src/lib/detectors/design-system-detector.js +4 -4
  175. package/src/lib/detectors/index.js +1 -11
  176. package/src/lib/generators/architecture-scanner.js +640 -0
  177. package/src/lib/generators/context-generator.js +3 -3
  178. package/src/lib/generators/design-system-generator.js +508 -298
  179. package/src/lib/generators/index.js +12 -10
  180. package/src/lib/generators/metadata-extractor.js +386 -387
  181. package/src/lib/generators/recap-generator.js +4 -4
  182. package/src/lib/generators/scaffold-generator.js +317 -0
  183. package/src/lib/generators/settings-generator.js +0 -1
  184. package/src/lib/phase-chain/phase-validator.js +64 -42
  185. package/src/lib/stack/stack-profile.js +2 -2
  186. package/src/lib/standards/digest-builder.js +72 -285
  187. package/src/lib/tasks/task-parser.js +11 -5
  188. package/src/lib/validators/architecture/architecture-validator.js +259 -387
  189. package/src/lib/validators/content/content-validator.js +287 -287
  190. package/src/lib/validators/css/css-validator.js +340 -352
  191. package/src/lib/validators/design-system/design-system-validator.js +11 -5
  192. package/src/lib/validators/packages/package-validator.js +347 -360
  193. package/src/lib/validators/shared/issue-counter.js +14 -18
  194. package/src/lib/validators/validation-runner.js +3 -19
  195. package/src/scripts/setup-infra.js +1 -1
  196. package/src/utils/agents-installer.js +24 -3
  197. package/src/utils/file-copier.js +1 -0
  198. package/src/utils/hooks-installer.js +21 -19
  199. package/src/utils/skills-installer.js +178 -178
  200. package/framework/agents/architecture/prompt-engineer.md +0 -195
  201. package/framework/agents/backend/api-designer.md +0 -106
  202. package/framework/agents/frontend/blazor-builder.md +0 -229
  203. package/framework/agents/frontend/nextjs-ui-specialist.md +0 -218
  204. package/framework/agents/infrastructure/azure-architect.md +0 -150
  205. package/framework/agents/infrastructure/azure-deploy-specialist.md +0 -707
  206. package/framework/agents/infrastructure/bicep-architect.md +0 -132
  207. package/framework/agents/infrastructure/container-specialist.md +0 -137
  208. package/framework/agents/infrastructure/devops-engineer.md +0 -126
  209. package/framework/agents/integrations/azure-identity.md +0 -148
  210. package/framework/agents/quality/code-analyzer.md +0 -239
  211. package/framework/agents/quality/testing-specialist.md +0 -130
  212. package/framework/hooks/claude-code/notification/approval-reminder.js +0 -57
  213. package/framework/hooks/claude-code/post-tool-use/context-refresh.js +0 -109
  214. package/framework/hooks/claude-code/post-tool-use/skill-reminder.js +0 -78
  215. package/framework/index/troubleshooting-index.json +0 -184
  216. package/framework/rules/testing-standards.md +0 -14
  217. package/framework/skills/level-0-meta/morph-replicate/SKILL.md +0 -230
  218. package/framework/skills/level-0-meta/morph-replicate/references/blazor-html-mapping.md +0 -70
  219. package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +0 -256
  220. package/framework/skills/level-1-workflows/morph-phase-clarify/references/clarifications-example.md +0 -117
  221. package/framework/skills/level-1-workflows/morph-phase-setup/SKILL.md +0 -269
  222. package/framework/standards/ai-agents/blazor-ui.md +0 -364
  223. package/framework/standards/architecture/ddd/aggregates.md +0 -120
  224. package/framework/standards/architecture/ddd/bounded-contexts.md +0 -105
  225. package/framework/standards/architecture/ddd/complexity-levels.md +0 -108
  226. package/framework/standards/architecture/ddd/entities.md +0 -99
  227. package/framework/standards/architecture/ddd/ubiquitous-language.md +0 -58
  228. package/framework/standards/architecture/ddd/value-objects.md +0 -124
  229. package/framework/standards/backend/api/minimal-api.md +0 -494
  230. package/framework/standards/backend/api/rest.md +0 -492
  231. package/framework/standards/backend/authentication/passkeys.md +0 -428
  232. package/framework/standards/backend/database/ef-core.md +0 -199
  233. package/framework/standards/backend/database/migrations.md +0 -393
  234. package/framework/standards/backend/database/repository-patterns.md +0 -528
  235. package/framework/standards/backend/dotnet/async.md +0 -366
  236. package/framework/standards/backend/dotnet/core.md +0 -117
  237. package/framework/standards/backend/dotnet/di.md +0 -439
  238. package/framework/standards/backend/dotnet/program-cs-checklist.md +0 -92
  239. package/framework/standards/context/analytics.md +0 -96
  240. package/framework/standards/context/bundles.md +0 -110
  241. package/framework/standards/context/priming.md +0 -78
  242. package/framework/standards/core/architecture.md +0 -185
  243. package/framework/standards/core/coding.md +0 -214
  244. package/framework/standards/core/git-branching-strategy.md +0 -403
  245. package/framework/standards/core/git.md +0 -185
  246. package/framework/standards/core/testing.md +0 -295
  247. package/framework/standards/data/nosql/blob-storage.md +0 -102
  248. package/framework/standards/data/vector-search/azure-ai-search.md +0 -121
  249. package/framework/standards/frontend/blazor/design-checklist.md +0 -222
  250. package/framework/standards/frontend/blazor/fluent-ui-setup.md +0 -595
  251. package/framework/standards/frontend/blazor/fluent-ui.md +0 -137
  252. package/framework/standards/frontend/blazor/html-conversion.md +0 -184
  253. package/framework/standards/frontend/blazor/lifecycle.md +0 -195
  254. package/framework/standards/frontend/blazor/pitfalls.md +0 -198
  255. package/framework/standards/frontend/blazor/state.md +0 -191
  256. package/framework/standards/frontend/design-system/aesthetic-direction.md +0 -213
  257. package/framework/standards/infrastructure/azure/azure.md +0 -624
  258. package/framework/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -422
  259. package/framework/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -516
  260. package/framework/standards/infrastructure/azure/devops/local-development.md +0 -520
  261. package/framework/standards/infrastructure/azure/services/functions.md +0 -486
  262. package/framework/standards/infrastructure/azure/services/service-bus.md +0 -459
  263. package/framework/standards/infrastructure/azure/services/storage.md +0 -407
  264. package/framework/standards/infrastructure/vercel/vercel-database.md +0 -106
  265. package/framework/standards/integration/api/graphql.md +0 -91
  266. package/framework/standards/integration/api/grpc.md +0 -114
  267. package/framework/standards/integration/api/rest-design.md +0 -95
  268. package/framework/standards/integration/event-driven/cqrs.md +0 -101
  269. package/framework/standards/integration/event-driven/event-sourcing.md +0 -124
  270. package/framework/standards/integration/event-driven/service-bus.md +0 -95
  271. package/framework/standards/observability/logging.md +0 -131
  272. package/framework/standards/observability/metrics.md +0 -121
  273. package/framework/standards/observability/monitoring.md +0 -114
  274. package/framework/standards/observability/tracing.md +0 -132
  275. package/framework/standards/workflows/parallel-execution.md +0 -112
  276. package/framework/standards/workflows/thread-management.md +0 -113
  277. package/framework/templates/code/dotnet/backend/service.cs +0 -139
  278. package/framework/templates/code/dotnet/contracts/Commands.cs +0 -74
  279. package/framework/templates/code/dotnet/contracts/Entities.cs +0 -25
  280. package/framework/templates/code/dotnet/contracts/Queries.cs +0 -74
  281. package/framework/templates/code/dotnet/contracts/api-contracts.cs +0 -173
  282. package/framework/templates/code/dotnet/contracts/contracts-level1.cs +0 -69
  283. package/framework/templates/code/dotnet/contracts/contracts-level2.cs +0 -86
  284. package/framework/templates/code/dotnet/contracts/contracts-level3.cs +0 -41
  285. package/framework/templates/code/dotnet/frontend/component.razor +0 -239
  286. package/framework/templates/infrastructure/azure/Dockerfile.example +0 -82
  287. package/framework/templates/infrastructure/azure/README.md +0 -286
  288. package/framework/templates/infrastructure/azure/app-insights.bicep +0 -63
  289. package/framework/templates/infrastructure/azure/app-service.bicep +0 -164
  290. package/framework/templates/infrastructure/azure/container-app-env.bicep +0 -49
  291. package/framework/templates/infrastructure/azure/container-app.bicep +0 -156
  292. package/framework/templates/infrastructure/azure/deploy-checklist.md +0 -426
  293. package/framework/templates/infrastructure/azure/deploy.ps1 +0 -229
  294. package/framework/templates/infrastructure/azure/deploy.sh +0 -208
  295. package/framework/templates/infrastructure/azure/key-vault.bicep +0 -91
  296. package/framework/templates/infrastructure/azure/main.bicep +0 -189
  297. package/framework/templates/infrastructure/azure/parameters.dev.json +0 -29
  298. package/framework/templates/infrastructure/azure/parameters.prod.json +0 -29
  299. package/framework/templates/infrastructure/azure/parameters.staging.json +0 -29
  300. package/framework/templates/infrastructure/azure/sql-database.bicep +0 -103
  301. package/framework/templates/infrastructure/azure/storage.bicep +0 -106
  302. package/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +0 -22
  303. package/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +0 -61
  304. package/framework/templates/integrations/azure-identity-config.cs +0 -288
  305. package/framework/templates/project-structure/dotnet-ddd.md +0 -70
  306. package/framework/templates/saas/subscription.cs +0 -347
  307. package/framework/templates/saas/tenant.cs +0 -338
  308. package/framework/templates/ui/FluentDesignTheme.cs +0 -149
  309. package/framework/templates/ui/MudTheme.cs +0 -281
  310. package/framework/workflows/configs/nodejs-cli.json +0 -40
  311. package/src/commands/standards/context-budget.js +0 -89
  312. package/src/lib/standards/index.js +0 -7
  313. package/src/lib/standards/standards-context-injector.js +0 -302
  314. package/src/lib/validators/blazor/blazor-concurrency-analyzer.js +0 -316
  315. package/src/lib/validators/blazor/blazor-state-validator.js +0 -279
  316. package/src/lib/validators/blazor/blazor-validator.js +0 -369
  317. package/src/lib/validators/blazor/index.js +0 -9
@@ -1,211 +1,342 @@
1
- # Design System — [PROJECT_NAME]
2
-
3
- > **Template** — copy to `.morph/context/design-system.md` and fill in TODOs.
4
-
5
- Living document. All agents read this before any UI work. All design decisions land here.
6
-
7
- ---
8
-
9
- ## Aesthetic Direction
10
-
11
- - **Direction**: [Minimal Refined / Editorial / Soft Professional / Industrial / Modern Luxury]
12
- - **Tone**: [TODO: 1-2 sentences about the feel]
13
- - **Differentiator**: [TODO: The 1 memorable element of this interface]
14
- - **Font Pair**: [Display font] + [Body font]
15
- - **Color Philosophy**: [Dominant color] + [Accent color] — [1-sentence rationale]
16
- - **Motion Personality**: [subtle / expressive / playful / precise]
17
- - **Visual Density**: [compact / balanced / spacious]
18
- - **Composition**: [TODO: Layout approach]
19
-
20
- ---
21
-
22
- ## Color Tokens
23
-
24
- ```css
25
- :root {
26
- /* Dominant palette */
27
- --color-primary: #TODO;
28
- --color-primary-light: #TODO;
29
- --color-primary-dark: #TODO;
30
-
31
- /* Sharp accent */
32
- --color-accent: #TODO;
33
- --color-accent-hover: #TODO;
34
-
35
- /* Neutrals */
36
- --color-neutral-50: #f9fafb;
37
- --color-neutral-100: #f3f4f6;
38
- --color-neutral-200: #e5e7eb;
39
- --color-neutral-300: #d1d5db;
40
- --color-neutral-400: #9ca3af;
41
- --color-neutral-500: #6b7280;
42
- --color-neutral-600: #4b5563;
43
- --color-neutral-700: #374151;
44
- --color-neutral-800: #1f2937;
45
- --color-neutral-900: #111827;
46
-
47
- /* Surface */
48
- --color-surface: #ffffff;
49
- --color-surface-alt: #f8f9fa;
50
- --color-border: rgba(0,0,0,0.08);
51
-
52
- /* Semantic */
53
- --color-success: #22c55e;
54
- --color-warning: #f59e0b;
55
- --color-error: #ef4444;
56
- --color-info: #3b82f6;
57
-
58
- /* Text */
59
- --color-text-primary: #TODO;
60
- --color-text-secondary: #TODO;
61
- --color-text-muted: #9ca3af;
62
- }
63
- ```
64
-
65
- ---
66
-
67
- ## Typography
68
-
69
- ```css
70
- :root {
71
- /* Font families */
72
- --font-display: '[TODO: Display font]', serif;
73
- --font-body: '[TODO: Body font]', sans-serif;
74
- --font-mono: 'JetBrains Mono', monospace;
75
-
76
- /* Scale */
77
- --text-xs: 0.75rem; /* 12px */
78
- --text-sm: 0.875rem; /* 14px */
79
- --text-base: 1rem; /* 16px */
80
- --text-lg: 1.125rem; /* 18px */
81
- --text-xl: 1.25rem; /* 20px */
82
- --text-2xl: 1.5rem; /* 24px */
83
- --text-3xl: 1.875rem; /* 30px */
84
- --text-4xl: 2.25rem; /* 36px */
85
-
86
- /* Weights */
87
- --font-weight-regular: 400;
88
- --font-weight-medium: 500;
89
- --font-weight-semibold: 600;
90
- --font-weight-bold: 700;
91
-
92
- /* Line heights */
93
- --leading-tight: 1.25;
94
- --leading-normal: 1.5;
95
- --leading-relaxed: 1.75;
96
- }
97
- ```
98
-
99
- ---
100
-
101
- ## Motion Tokens
102
-
103
- ```css
104
- :root {
105
- /* Durations */
106
- --duration-instant: 0.05s;
107
- --duration-fast: 0.15s;
108
- --duration-base: 0.3s;
109
- --duration-slow: 0.5s;
110
- --duration-slower: 0.8s;
111
-
112
- /* Easings */
113
- --easing-standard: cubic-bezier(0.4, 0, 0.2, 1);
114
- --easing-decelerate: cubic-bezier(0, 0, 0.2, 1);
115
- --easing-accelerate: cubic-bezier(0.4, 0, 1, 1);
116
- --easing-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
117
- --easing-spring: cubic-bezier(0.68, -0.55, 0.265, 1.55);
118
- }
119
- ```
120
-
121
- ### Framer Motion mapping (TypeScript)
122
-
123
- ```typescript
124
- // Map CSS tokens to Framer Motion values
125
- export const durations = {
126
- instant: 0.05,
127
- fast: 0.15,
128
- base: 0.3,
129
- slow: 0.5,
130
- slower: 0.8,
131
- } as const;
132
-
133
- export const easings = {
134
- standard: [0.4, 0, 0.2, 1] as const,
135
- decelerate: [0, 0, 0.2, 1] as const,
136
- accelerate: [0.4, 0, 1, 1] as const,
137
- bounce: [0.34, 1.56, 0.64, 1] as const,
138
- spring: [0.68, -0.55, 0.265, 1.55] as const,
139
- };
140
- ```
141
-
142
- ---
143
-
144
- ## Spacing Tokens
145
-
146
- ```css
147
- :root {
148
- /* 4px base grid */
149
- --space-1: 0.25rem; /* 4px */
150
- --space-2: 0.5rem; /* 8px */
151
- --space-3: 0.75rem; /* 12px */
152
- --space-4: 1rem; /* 16px */
153
- --space-5: 1.25rem; /* 20px */
154
- --space-6: 1.5rem; /* 24px */
155
- --space-8: 2rem; /* 32px */
156
- --space-10: 2.5rem; /* 40px */
157
- --space-12: 3rem; /* 48px */
158
- --space-16: 4rem; /* 64px */
159
- --space-20: 5rem; /* 80px */
160
- --space-24: 6rem; /* 96px */
161
-
162
- /* Container */
163
- --container-padding: var(--space-8);
164
- --grid-gap: var(--space-6);
165
- }
166
- ```
167
-
168
- ---
169
-
170
- ## Border Radius Tokens
171
-
172
- ```css
173
- :root {
174
- --radius-none: 0;
175
- --radius-sm: 0.25rem; /* 4px */
176
- --radius-base: 0.375rem; /* 6px */
177
- --radius-md: 0.5rem; /* 8px */
178
- --radius-lg: 0.75rem; /* 12px */
179
- --radius-xl: 1rem; /* 16px */
180
- --radius-2xl: 1.5rem; /* 24px */
181
- --radius-full: 9999px;
182
- }
183
- ```
184
-
185
- ---
186
-
187
- ## Shadow Tokens
188
-
189
- ```css
190
- :root {
191
- --shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
192
- --shadow-base: 0 1px 3px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.06);
193
- --shadow-md: 0 4px 6px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.06);
194
- --shadow-lg: 0 10px 15px rgba(0,0,0,0.1), 0 4px 6px rgba(0,0,0,0.05);
195
- --shadow-xl: 0 20px 25px rgba(0,0,0,0.1), 0 10px 10px rgba(0,0,0,0.04);
196
- --shadow-lift: 0 8px 30px rgba(0,0,0,0.12); /* Card hover lift */
197
- }
198
- ```
199
-
200
- ---
201
-
202
- ## Changelog
203
-
204
- > Living record — every agent that adds tokens or design decisions registers here.
205
- > Format: `- YYYY-MM-DD [agent-id] Description of addition/change`
206
-
207
- <!-- Entries below this line, newest first -->
208
-
209
- ---
210
-
211
- *MORPH-SPEC by Polymorphism Tech*
1
+ # Design System — [PROJECT_NAME]
2
+
3
+ > **Template** — copy to `.morph/context/design-system.md` and fill in sections marked `/* CUSTOMIZE */`.
4
+
5
+ Living document. All agents read this before any UI work. All design decisions land here.
6
+
7
+ ---
8
+
9
+ ## Aesthetic Direction
10
+
11
+ - **Direction**: [TODO: Minimal Refined / Editorial / Soft Professional / Industrial / Modern Luxury]
12
+ - **Tone**: [TODO: 1-2 sentences about the feel]
13
+ - **Differentiator**: [TODO: The 1 memorable element of this interface]
14
+ - **Font Pair**: Sora Variable (display) + Plus Jakarta Sans Variable (body) /* CUSTOMIZE */
15
+ - **Color Philosophy**: Deep indigo dominant + Rose accent — modern, bold, not generic /* CUSTOMIZE */
16
+ - **Motion Personality**: spring-based, purposeful /* CUSTOMIZE */
17
+ - **Visual Density**: balanced /* CUSTOMIZE */
18
+ - **Composition**: [TODO: Layout approach — see Domain Patterns below for guidance]
19
+ - **Selected Trends**: [TODO: Fill from Step 1.3 trend research — e.g., Bento Grid, Glassmorphism]
20
+
21
+ ---
22
+
23
+ ## Color Tokens
24
+
25
+ ```css
26
+ :root {
27
+ /* Dominant palette — deep indigo /* CUSTOMIZE */ */
28
+ --color-primary: #6366f1;
29
+ --color-primary-light: #818cf8;
30
+ --color-primary-dark: #4f46e5;
31
+ --color-primary-rgb: 99, 102, 241; /* For colored shadows: rgba(var(--color-primary-rgb), 0.3) */
32
+
33
+ /* Sharp accent — rose /* CUSTOMIZE */ */
34
+ --color-accent: #f43f5e;
35
+ --color-accent-hover: #e11d48;
36
+
37
+ /* Neutrals (dark-first) */
38
+ --color-neutral-50: #fafafa;
39
+ --color-neutral-100: #f4f4f5;
40
+ --color-neutral-200: #e4e4e7;
41
+ --color-neutral-300: #d4d4d8;
42
+ --color-neutral-400: #a1a1aa;
43
+ --color-neutral-500: #71717a;
44
+ --color-neutral-600: #52525b;
45
+ --color-neutral-700: #3f3f46;
46
+ --color-neutral-800: #27272a;
47
+ --color-neutral-900: #18181b;
48
+ --color-neutral-950: #09090b;
49
+
50
+ /* Surfaces (elevation via luminance — dark-first) */
51
+ --color-surface-0: #0a0a0f; /* Base background */
52
+ --color-surface-1: #12121a; /* Cards */
53
+ --color-surface-2: #1a1a24; /* Elevated cards, dropdowns */
54
+ --color-surface-3: #22222e; /* Modals, popovers */
55
+ --color-surface-4: #2a2a38; /* Hover states */
56
+
57
+ /* Light mode overrides (apply via .light or @media (prefers-color-scheme: light)) */
58
+ /* --color-surface-0: #ffffff;
59
+ --color-surface-1: #fafafa;
60
+ --color-surface-2: #f4f4f5;
61
+ --color-surface-3: #e4e4e7;
62
+ --color-surface-4: #d4d4d8; */
63
+
64
+ --color-border: rgba(255, 255, 255, 0.08);
65
+
66
+ /* Semantic */
67
+ --color-success: #22c55e;
68
+ --color-warning: #f59e0b;
69
+ --color-error: #ef4444;
70
+ --color-info: #3b82f6;
71
+
72
+ /* Text (luminance hierarchy — dark-first) */
73
+ --color-text-primary: #f0f0f5; /* 95% luminance */
74
+ --color-text-secondary: #a0a0b0; /* 65% luminance */
75
+ --color-text-muted: #606070; /* 40% luminance */
76
+ }
77
+ ```
78
+
79
+ ---
80
+
81
+ ## Typography
82
+
83
+ ```css
84
+ :root {
85
+ /* Font families — Variable Fonts /* CUSTOMIZE */ */
86
+ --font-display: 'Sora Variable', 'Sora', sans-serif;
87
+ --font-body: 'Plus Jakarta Sans Variable', 'Plus Jakarta Sans', sans-serif;
88
+ --font-mono: 'JetBrains Mono Variable', 'JetBrains Mono', monospace;
89
+
90
+ /* Fluid scale (clamp for responsive without breakpoints) */
91
+ --text-xs: clamp(0.7rem, 0.65rem + 0.25vw, 0.75rem); /* ~12px */
92
+ --text-sm: clamp(0.8rem, 0.75rem + 0.25vw, 0.875rem); /* ~14px */
93
+ --text-base: clamp(0.9rem, 0.85rem + 0.25vw, 1rem); /* ~16px */
94
+ --text-lg: clamp(1rem, 0.9rem + 0.5vw, 1.125rem); /* ~18px */
95
+ --text-xl: clamp(1.1rem, 1rem + 0.5vw, 1.25rem); /* ~20px */
96
+ --text-2xl: clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem); /* ~24px */
97
+ --text-3xl: clamp(1.5rem, 1.25rem + 1.25vw, 1.875rem); /* ~30px */
98
+ --text-4xl: clamp(1.875rem, 1.5rem + 1.875vw, 2.25rem); /* ~36px */
99
+ --text-5xl: clamp(2.25rem, 1.75rem + 2.5vw, 3rem); /* ~48px */
100
+
101
+ /* Weights (variable font range) */
102
+ --font-weight-regular: 400;
103
+ --font-weight-medium: 500;
104
+ --font-weight-semibold: 600;
105
+ --font-weight-bold: 700;
106
+ --font-weight-extrabold: 800;
107
+
108
+ /* Line heights */
109
+ --leading-tight: 1.2;
110
+ --leading-snug: 1.35;
111
+ --leading-normal: 1.5;
112
+ --leading-relaxed: 1.75;
113
+
114
+ /* Variable font features */
115
+ --font-display-hover-weight: 'wght' 800; /* For interactive headings */
116
+ }
117
+ ```
118
+
119
+ ---
120
+
121
+ ## Motion Tokens
122
+
123
+ ```css
124
+ :root {
125
+ /* Durations */
126
+ --duration-instant: 0.05s;
127
+ --duration-fast: 0.15s;
128
+ --duration-base: 0.3s;
129
+ --duration-slow: 0.5s;
130
+ --duration-slower: 0.8s;
131
+
132
+ /* Standard easings */
133
+ --easing-standard: cubic-bezier(0.4, 0, 0.2, 1);
134
+ --easing-decelerate: cubic-bezier(0, 0, 0.2, 1);
135
+ --easing-accelerate: cubic-bezier(0.4, 0, 1, 1);
136
+
137
+ /* Spring / bounce easings */
138
+ --easing-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
139
+ --easing-spring: cubic-bezier(0.68, -0.55, 0.265, 1.55);
140
+ --easing-elastic: cubic-bezier(0.175, 0.885, 0.32, 1.275);
141
+
142
+ /* Scroll-driven (use with animation-timeline: scroll()) */
143
+ --scroll-reveal-distance: 20px;
144
+ --scroll-reveal-duration: var(--duration-slow);
145
+ }
146
+
147
+ /* Accessibility — MANDATORY */
148
+ @media (prefers-reduced-motion: reduce) {
149
+ *, *::before, *::after {
150
+ animation-duration: 0.01ms !important;
151
+ transition-duration: 0.01ms !important;
152
+ }
153
+ }
154
+ ```
155
+
156
+ ### Framer Motion mapping (TypeScript)
157
+
158
+ ```typescript
159
+ export const durations = {
160
+ instant: 0.05,
161
+ fast: 0.15,
162
+ base: 0.3,
163
+ slow: 0.5,
164
+ slower: 0.8,
165
+ } as const;
166
+
167
+ export const easings = {
168
+ standard: [0.4, 0, 0.2, 1] as const,
169
+ decelerate: [0, 0, 0.2, 1] as const,
170
+ accelerate: [0.4, 0, 1, 1] as const,
171
+ bounce: [0.34, 1.56, 0.64, 1] as const,
172
+ spring: [0.68, -0.55, 0.265, 1.55] as const,
173
+ elastic: [0.175, 0.885, 0.32, 1.275] as const,
174
+ };
175
+
176
+ export const springConfigs = {
177
+ gentle: { stiffness: 120, damping: 14 },
178
+ snappy: { stiffness: 300, damping: 20 },
179
+ bouncy: { stiffness: 400, damping: 10 },
180
+ } as const;
181
+ ```
182
+
183
+ ---
184
+
185
+ ## Spacing Tokens
186
+
187
+ ```css
188
+ :root {
189
+ /* 4px base grid */
190
+ --space-1: 0.25rem; /* 4px */
191
+ --space-2: 0.5rem; /* 8px */
192
+ --space-3: 0.75rem; /* 12px */
193
+ --space-4: 1rem; /* 16px */
194
+ --space-5: 1.25rem; /* 20px */
195
+ --space-6: 1.5rem; /* 24px */
196
+ --space-8: 2rem; /* 32px */
197
+ --space-10: 2.5rem; /* 40px */
198
+ --space-12: 3rem; /* 48px */
199
+ --space-16: 4rem; /* 64px */
200
+ --space-20: 5rem; /* 80px */
201
+ --space-24: 6rem; /* 96px */
202
+
203
+ /* Container */
204
+ --container-padding: var(--space-8);
205
+ --grid-gap: var(--space-6);
206
+ }
207
+ ```
208
+
209
+ ---
210
+
211
+ ## Border Radius Tokens
212
+
213
+ ```css
214
+ :root {
215
+ --radius-none: 0;
216
+ --radius-sm: 0.25rem; /* 4px */
217
+ --radius-base: 0.375rem; /* 6px */
218
+ --radius-md: 0.5rem; /* 8px */
219
+ --radius-lg: 0.75rem; /* 12px */
220
+ --radius-xl: 1rem; /* 16px */
221
+ --radius-2xl: 1.5rem; /* 24px */
222
+ --radius-full: 9999px;
223
+ }
224
+ ```
225
+
226
+ ---
227
+
228
+ ## Shadow Tokens
229
+
230
+ ```css
231
+ :root {
232
+ /* Standard shadows */
233
+ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
234
+ --shadow-base: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
235
+ --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07), 0 2px 4px rgba(0, 0, 0, 0.06);
236
+ --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05);
237
+ --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04);
238
+
239
+ /* Layered shadows (more realistic depth) */
240
+ --shadow-layered-sm: 0 1px 1px rgba(0,0,0,0.04), 0 2px 4px rgba(0,0,0,0.04);
241
+ --shadow-layered-md: 0 1px 2px rgba(0,0,0,0.03), 0 4px 8px rgba(0,0,0,0.04), 0 12px 24px rgba(0,0,0,0.05);
242
+ --shadow-layered-lg: 0 2px 4px rgba(0,0,0,0.02), 0 8px 16px rgba(0,0,0,0.04), 0 24px 48px rgba(0,0,0,0.06);
243
+
244
+ /* Colored shadows (use element's accent color) */
245
+ --shadow-colored-sm: 0 4px 14px rgba(var(--color-primary-rgb), 0.15);
246
+ --shadow-colored-md: 0 8px 24px rgba(var(--color-primary-rgb), 0.25);
247
+ --shadow-colored-lg: 0 12px 40px rgba(var(--color-primary-rgb), 0.35);
248
+
249
+ /* Interaction shadows */
250
+ --shadow-lift: 0 8px 30px rgba(0, 0, 0, 0.12); /* Card hover lift */
251
+ --shadow-focus: 0 0 0 3px rgba(var(--color-primary-rgb), 0.4); /* Focus ring */
252
+ }
253
+ ```
254
+
255
+ ---
256
+
257
+ ## Design Trends (Active)
258
+
259
+ Agents MUST consider modern design techniques when filling this template. Use Context7 MCP or web search for current design trends. Select 2-3 that fit the project's direction and domain:
260
+
261
+ | Technique | Best For | Direction Fit |
262
+ |-----------|----------|---------------|
263
+ | Bento Grid | Dashboards, landing pages | Industrial, Editorial |
264
+ | Glassmorphism | Navigation, overlays, cards | Soft Professional, Modern Luxury |
265
+ | Aurora Gradients | Hero backgrounds, empty states | Editorial, Modern Luxury |
266
+ | Variable Fonts | Interactive headings, responsive weight | All directions |
267
+ | Scroll-Driven Animations | Narratives, reveals, progress | Editorial, Modern Luxury |
268
+ | Perspective Cards (3D) | Product cards, pricing, features | Modern Luxury |
269
+ | Noise Texture | Backgrounds, surfaces | Minimal Refined |
270
+ | Colored Shadows | CTAs, hover states, cards | Soft Professional, Modern Luxury |
271
+ | Dark Mode First | Data-heavy apps, developer tools | Industrial, Minimal Refined |
272
+ | Fluid Typography | Responsive headings | All directions |
273
+
274
+ ---
275
+
276
+ ## Domain Patterns
277
+
278
+ Choose patterns based on the project domain:
279
+
280
+ | Domain | Layout | Key Components | Visual Approach |
281
+ |--------|--------|---------------|----------------|
282
+ | **SaaS Dashboard** | Bento grid + sidebar | KPI cards, data tables, charts | Controlled density, skeleton loaders, dark default |
283
+ | **E-commerce** | Product grid + asymmetric hero | Product cards, CTA buttons, filters | Image-first, hover lift, colored shadows on CTA |
284
+ | **Landing Page** | Full-width sections | Hero, features, testimonials, CTA | Aurora gradients, scroll reveals, fluid typography |
285
+ | **Internal Tool** | Dense sidebar + content | Forms, tables, status indicators | Minimal effects, compact spacing, monospace data |
286
+ | **Social/Community** | Card feed + drawer nav | Post cards, avatars, notifications | Glassmorphism overlays, spring animations |
287
+
288
+ ---
289
+
290
+ ## Advanced Effects
291
+
292
+ ```css
293
+ :root {
294
+ /* Glassmorphism */
295
+ --glass-blur: 12px;
296
+ --glass-saturation: 180%;
297
+ --glass-bg-light: rgba(255, 255, 255, 0.15);
298
+ --glass-bg-dark: rgba(0, 0, 0, 0.25);
299
+ --glass-border: rgba(255, 255, 255, 0.18);
300
+
301
+ /* Aurora gradient (animate with @keyframes) */
302
+ --aurora-gradient: conic-gradient(from 0deg at 50% 50%,
303
+ var(--color-primary), var(--color-accent), #fbbf24, var(--color-primary));
304
+ --aurora-speed: 15s;
305
+
306
+ /* Noise texture (inline SVG) */
307
+ --noise-texture: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
308
+
309
+ /* 3D / Perspective */
310
+ --perspective-card: perspective(1000px);
311
+ --perspective-hover-rotate: rotateX(-2deg) rotateY(3deg) translateZ(10px);
312
+
313
+ /* Container queries */
314
+ --container-sm: 400px;
315
+ --container-md: 600px;
316
+ --container-lg: 800px;
317
+
318
+ /* View Transitions (CSS) */
319
+ --view-transition-duration: 0.3s;
320
+ --view-transition-easing: var(--easing-decelerate);
321
+ }
322
+
323
+ /* View Transitions API support */
324
+ ::view-transition-old(root),
325
+ ::view-transition-new(root) {
326
+ animation-duration: var(--view-transition-duration);
327
+ animation-timing-function: var(--view-transition-easing);
328
+ }
329
+ ```
330
+
331
+ ---
332
+
333
+ ## Changelog
334
+
335
+ > Living record — every agent that adds tokens or design decisions registers here.
336
+ > Format: `- YYYY-MM-DD [agent-id] Description of addition/change`
337
+
338
+ <!-- Entries below this line, newest first -->
339
+
340
+ ---
341
+
342
+ *MORPH-SPEC by Polymorphism Tech*
@@ -67,7 +67,6 @@ morph-spec status <feature>
67
67
  morph-spec validate-feature <feature>
68
68
 
69
69
  # Manage tasks
70
- morph-spec task next <feature>
71
70
  morph-spec task start <feature> <task-id>
72
71
  morph-spec task done <feature> <task-id>
73
72
 
@@ -95,8 +94,8 @@ morph-spec doctor
95
94
  │ ├── context/ # Project context & overrides
96
95
  │ └── features/{feature}/ # Feature outputs
97
96
  │ ├── 0-proposal/
98
- │ ├── 1-design/
99
- │ ├── 2-ui/
97
+ │ ├── 1-ui/
98
+ │ ├── 2-design/
100
99
  │ ├── 4-tasks/
101
100
  │ └── 5-implement/
102
101
  └── .claude/