@polymorphism-tech/morph-spec 4.7.0 → 4.7.2

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 (232) hide show
  1. package/.morph/.morphversion +5 -0
  2. package/.morph/analytics/threads-log.jsonl +5 -0
  3. package/.morph/config/config.json +8 -0
  4. package/.morph/framework/agents.json +1815 -0
  5. package/.morph/framework/hooks/README.md +205 -0
  6. package/.morph/framework/hooks/claude-code/notification/approval-reminder.js +54 -0
  7. package/.morph/framework/hooks/claude-code/post-tool-use/dispatch.js +83 -0
  8. package/.morph/framework/hooks/claude-code/post-tool-use/handle-tool-failure.js +42 -0
  9. package/.morph/framework/hooks/claude-code/pre-compact/save-morph-context.js +61 -0
  10. package/.morph/framework/hooks/claude-code/pre-tool-use/enforce-phase-writes.js +71 -0
  11. package/.morph/framework/hooks/claude-code/pre-tool-use/protect-readonly-files.js +58 -0
  12. package/.morph/framework/hooks/claude-code/pre-tool-use/protect-spec-files.js +64 -0
  13. package/.morph/framework/hooks/claude-code/session-start/inject-morph-context.js +94 -0
  14. package/.morph/framework/hooks/claude-code/statusline.py +538 -0
  15. package/.morph/framework/hooks/claude-code/statusline.sh +7 -0
  16. package/.morph/framework/hooks/claude-code/stop/validate-completion.js +88 -0
  17. package/.morph/framework/hooks/claude-code/user-prompt/enrich-prompt.js +91 -0
  18. package/.morph/framework/hooks/git/commit-msg/conventional-commits.sh +33 -0
  19. package/.morph/framework/hooks/git/pre-commit/agents.sh +25 -0
  20. package/.morph/framework/hooks/git/pre-commit/orchestrator.sh +64 -0
  21. package/.morph/framework/hooks/git/pre-commit/specs.sh +50 -0
  22. package/.morph/framework/hooks/git/pre-push/run-tests.sh +44 -0
  23. package/.morph/framework/hooks/shared/hook-response.js +45 -0
  24. package/.morph/framework/hooks/shared/phase-utils.js +129 -0
  25. package/.morph/framework/hooks/shared/state-reader.js +138 -0
  26. package/.morph/framework/hooks/shared/stdin-reader.js +26 -0
  27. package/.morph/framework/standards/STANDARDS.json +933 -0
  28. package/.morph/framework/standards/ai-agents/blazor-ui.md +364 -0
  29. package/.morph/framework/standards/ai-agents/production.md +415 -0
  30. package/.morph/framework/standards/ai-agents/setup.md +418 -0
  31. package/.morph/framework/standards/ai-agents/team-orchestration.md +479 -0
  32. package/.morph/framework/standards/ai-agents/workflows.md +354 -0
  33. package/.morph/framework/standards/architecture/ddd/aggregates.md +120 -0
  34. package/.morph/framework/standards/architecture/ddd/bounded-contexts.md +105 -0
  35. package/.morph/framework/standards/architecture/ddd/complexity-levels.md +108 -0
  36. package/.morph/framework/standards/architecture/ddd/entities.md +99 -0
  37. package/.morph/framework/standards/architecture/ddd/ubiquitous-language.md +58 -0
  38. package/.morph/framework/standards/architecture/ddd/value-objects.md +124 -0
  39. package/.morph/framework/standards/backend/api/minimal-api.md +494 -0
  40. package/.morph/framework/standards/backend/api/rest.md +492 -0
  41. package/.morph/framework/standards/backend/api/validation.md +88 -0
  42. package/.morph/framework/standards/backend/authentication/passkeys.md +428 -0
  43. package/.morph/framework/standards/backend/database/ef-core.md +199 -0
  44. package/.morph/framework/standards/backend/database/migrations.md +393 -0
  45. package/.morph/framework/standards/backend/database/postgresql/database.md +352 -0
  46. package/.morph/framework/standards/backend/database/repository-patterns.md +528 -0
  47. package/.morph/framework/standards/backend/database/vector-search-rag.md +541 -0
  48. package/.morph/framework/standards/backend/dotnet/async.md +366 -0
  49. package/.morph/framework/standards/backend/dotnet/core.md +117 -0
  50. package/.morph/framework/standards/backend/dotnet/di.md +439 -0
  51. package/.morph/framework/standards/backend/dotnet/program-cs-checklist.md +92 -0
  52. package/.morph/framework/standards/backend/integrations/asaas/asaas-api.md +216 -0
  53. package/.morph/framework/standards/backend/integrations/clerk/clerk-auth.md +290 -0
  54. package/.morph/framework/standards/backend/integrations/hangfire/hangfire-jobs.md +350 -0
  55. package/.morph/framework/standards/backend/integrations/resend/resend-email.md +385 -0
  56. package/.morph/framework/standards/context/analytics.md +96 -0
  57. package/.morph/framework/standards/context/bundles.md +110 -0
  58. package/.morph/framework/standards/context/priming.md +78 -0
  59. package/.morph/framework/standards/core/architecture.md +185 -0
  60. package/.morph/framework/standards/core/coding.md +214 -0
  61. package/.morph/framework/standards/core/git-branching-strategy.md +403 -0
  62. package/.morph/framework/standards/core/git.md +185 -0
  63. package/.morph/framework/standards/core/testing.md +295 -0
  64. package/.morph/framework/standards/data/nosql/blob-storage.md +102 -0
  65. package/.morph/framework/standards/data/nosql/cache/redis.md +97 -0
  66. package/.morph/framework/standards/data/nosql/cosmos-db.md +118 -0
  67. package/.morph/framework/standards/data/vector-search/azure-ai-search.md +121 -0
  68. package/.morph/framework/standards/data/vector-search/rag-chunking.md +104 -0
  69. package/.morph/framework/standards/frontend/blazor/design-checklist.md +222 -0
  70. package/.morph/framework/standards/frontend/blazor/fluent-ui-setup.md +595 -0
  71. package/.morph/framework/standards/frontend/blazor/fluent-ui.md +137 -0
  72. package/.morph/framework/standards/frontend/blazor/html-conversion.md +184 -0
  73. package/.morph/framework/standards/frontend/blazor/lifecycle.md +195 -0
  74. package/.morph/framework/standards/frontend/blazor/pitfalls.md +198 -0
  75. package/.morph/framework/standards/frontend/blazor/state.md +191 -0
  76. package/.morph/framework/standards/frontend/design-system/animations.md +151 -0
  77. package/.morph/framework/standards/frontend/design-system/naming.md +64 -0
  78. package/.morph/framework/standards/frontend/nextjs/app-router.md +123 -0
  79. package/.morph/framework/standards/frontend/nextjs/components.md +132 -0
  80. package/.morph/framework/standards/frontend/nextjs/data-fetching.md +126 -0
  81. package/.morph/framework/standards/frontend/nextjs/forms.md +128 -0
  82. package/.morph/framework/standards/frontend/nextjs/naming-conventions.md +67 -0
  83. package/.morph/framework/standards/frontend/nextjs/nextjs-patterns.md +215 -0
  84. package/.morph/framework/standards/frontend/nextjs/project-structure.md +102 -0
  85. package/.morph/framework/standards/frontend/nextjs/state-management.md +72 -0
  86. package/.morph/framework/standards/frontend/nextjs/testing.md +111 -0
  87. package/.morph/framework/standards/infrastructure/azure/azure.md +624 -0
  88. package/.morph/framework/standards/infrastructure/azure/bicep/bicep-patterns.md +422 -0
  89. package/.morph/framework/standards/infrastructure/azure/devops/azure-devops-setup.md +516 -0
  90. package/.morph/framework/standards/infrastructure/azure/devops/local-development.md +520 -0
  91. package/.morph/framework/standards/infrastructure/azure/services/functions.md +486 -0
  92. package/.morph/framework/standards/infrastructure/azure/services/service-bus.md +459 -0
  93. package/.morph/framework/standards/infrastructure/azure/services/storage.md +407 -0
  94. package/.morph/framework/standards/infrastructure/docker/easypanel-deploy.md +196 -0
  95. package/.morph/framework/standards/infrastructure/supabase/mcp-setup.md +252 -0
  96. package/.morph/framework/standards/infrastructure/supabase/supabase-auth.md +176 -0
  97. package/.morph/framework/standards/infrastructure/supabase/supabase-pgvector.md +169 -0
  98. package/.morph/framework/standards/infrastructure/supabase/supabase-rls.md +184 -0
  99. package/.morph/framework/standards/infrastructure/supabase/supabase-storage.md +153 -0
  100. package/.morph/framework/standards/integration/api/graphql.md +91 -0
  101. package/.morph/framework/standards/integration/api/grpc.md +114 -0
  102. package/.morph/framework/standards/integration/api/rest-design.md +95 -0
  103. package/.morph/framework/standards/integration/event-driven/cqrs.md +101 -0
  104. package/.morph/framework/standards/integration/event-driven/event-sourcing.md +124 -0
  105. package/.morph/framework/standards/integration/event-driven/service-bus.md +95 -0
  106. package/.morph/framework/standards/integration/mcp/mcp-tools.md +384 -0
  107. package/.morph/framework/standards/observability/logging.md +131 -0
  108. package/.morph/framework/standards/observability/metrics.md +121 -0
  109. package/.morph/framework/standards/observability/monitoring.md +114 -0
  110. package/.morph/framework/standards/observability/tracing.md +132 -0
  111. package/.morph/framework/standards/workflows/parallel-execution.md +112 -0
  112. package/.morph/framework/standards/workflows/thread-management.md +113 -0
  113. package/.morph/framework/templates/.idea/morph-templates.xml +92 -0
  114. package/.morph/framework/templates/.vscode/morph-templates.code-snippets +186 -0
  115. package/.morph/framework/templates/IDE-SNIPPETS.md +266 -0
  116. package/.morph/framework/templates/README.md +814 -0
  117. package/.morph/framework/templates/REGISTRY.json +1888 -0
  118. package/.morph/framework/templates/code/dotnet/backend/repository.cs +141 -0
  119. package/.morph/framework/templates/code/dotnet/backend/service.cs +139 -0
  120. package/.morph/framework/templates/code/dotnet/contracts/Commands.cs +74 -0
  121. package/.morph/framework/templates/code/dotnet/contracts/Entities.cs +25 -0
  122. package/.morph/framework/templates/code/dotnet/contracts/Queries.cs +74 -0
  123. package/.morph/framework/templates/code/dotnet/contracts/README.md +74 -0
  124. package/.morph/framework/templates/code/dotnet/contracts/api-contracts.cs +173 -0
  125. package/.morph/framework/templates/code/dotnet/contracts/contracts-level1.cs +69 -0
  126. package/.morph/framework/templates/code/dotnet/contracts/contracts-level2.cs +86 -0
  127. package/.morph/framework/templates/code/dotnet/contracts/contracts-level3.cs +41 -0
  128. package/.morph/framework/templates/code/dotnet/database/migration.cs +83 -0
  129. package/.morph/framework/templates/code/dotnet/frontend/component.razor +239 -0
  130. package/.morph/framework/templates/code/dotnet/jobs/agent.cs +163 -0
  131. package/.morph/framework/templates/code/dotnet/jobs/job.cs +171 -0
  132. package/.morph/framework/templates/code/dotnet/test.cs +239 -0
  133. package/.morph/framework/templates/code/sql/rls-policy.sql +57 -0
  134. package/.morph/framework/templates/code/sql/supabase-migration.sql +100 -0
  135. package/.morph/framework/templates/code/sql/supabase-migration.template.sql +113 -0
  136. package/.morph/framework/templates/code/typescript/contracts.ts +168 -0
  137. package/.morph/framework/templates/context/CONTEXT-FEATURE.md +276 -0
  138. package/.morph/framework/templates/context/CONTEXT.md +181 -0
  139. package/.morph/framework/templates/docs/clarifications.md +253 -0
  140. package/.morph/framework/templates/docs/onboarding.md +123 -0
  141. package/.morph/framework/templates/docs/proposal.md +182 -0
  142. package/.morph/framework/templates/docs/schema-analysis.md +119 -0
  143. package/.morph/framework/templates/docs/spec.md +198 -0
  144. package/.morph/framework/templates/docs/ui-components.md +124 -0
  145. package/.morph/framework/templates/docs/ui-design-system.md +76 -0
  146. package/.morph/framework/templates/docs/ui-flows.md +167 -0
  147. package/.morph/framework/templates/docs/ui-mockups.md +98 -0
  148. package/.morph/framework/templates/docs/user-stories.md +34 -0
  149. package/.morph/framework/templates/examples/design-system-examples.md +357 -0
  150. package/.morph/framework/templates/examples/spec-examples.md +90 -0
  151. package/.morph/framework/templates/feature/decisions.md +187 -0
  152. package/.morph/framework/templates/feature/recap.md +146 -0
  153. package/.morph/framework/templates/feature/tasks.md +199 -0
  154. package/.morph/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -0
  155. package/.morph/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -0
  156. package/.morph/framework/templates/frontend/nextjs/env.mjs.hbs +32 -0
  157. package/.morph/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -0
  158. package/.morph/framework/templates/frontend/nextjs/page.tsx.hbs +22 -0
  159. package/.morph/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -0
  160. package/.morph/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -0
  161. package/.morph/framework/templates/infrastructure/azure/Dockerfile.example +82 -0
  162. package/.morph/framework/templates/infrastructure/azure/README.md +286 -0
  163. package/.morph/framework/templates/infrastructure/azure/app-insights.bicep +63 -0
  164. package/.morph/framework/templates/infrastructure/azure/app-service.bicep +164 -0
  165. package/.morph/framework/templates/infrastructure/azure/container-app-env.bicep +49 -0
  166. package/.morph/framework/templates/infrastructure/azure/container-app.bicep +156 -0
  167. package/.morph/framework/templates/infrastructure/azure/deploy-checklist.md +426 -0
  168. package/.morph/framework/templates/infrastructure/azure/deploy.ps1 +229 -0
  169. package/.morph/framework/templates/infrastructure/azure/deploy.sh +208 -0
  170. package/.morph/framework/templates/infrastructure/azure/key-vault.bicep +91 -0
  171. package/.morph/framework/templates/infrastructure/azure/main.bicep +189 -0
  172. package/.morph/framework/templates/infrastructure/azure/parameters.dev.json +29 -0
  173. package/.morph/framework/templates/infrastructure/azure/parameters.prod.json +29 -0
  174. package/.morph/framework/templates/infrastructure/azure/parameters.staging.json +29 -0
  175. package/.morph/framework/templates/infrastructure/azure/sql-database.bicep +103 -0
  176. package/.morph/framework/templates/infrastructure/azure/storage.bicep +106 -0
  177. package/.morph/framework/templates/infrastructure/docker/Dockerfile.template +58 -0
  178. package/.morph/framework/templates/infrastructure/docker/docker-compose.template.yml +67 -0
  179. package/.morph/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -0
  180. package/.morph/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -0
  181. package/.morph/framework/templates/infrastructure/docker/easypanel.template.json +54 -0
  182. package/.morph/framework/templates/infrastructure/github/README.md +593 -0
  183. package/.morph/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +22 -0
  184. package/.morph/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +45 -0
  185. package/.morph/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +27 -0
  186. package/.morph/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +61 -0
  187. package/.morph/framework/templates/infrastructure/github/workflows/deploy-easypanel.yml.hbs +31 -0
  188. package/.morph/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +59 -0
  189. package/.morph/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +39 -0
  190. package/.morph/framework/templates/integrations/asaas-client.cs +387 -0
  191. package/.morph/framework/templates/integrations/asaas-webhook.cs +351 -0
  192. package/.morph/framework/templates/integrations/azure-identity-config.cs +288 -0
  193. package/.morph/framework/templates/integrations/clerk-config.cs +258 -0
  194. package/.morph/framework/templates/meta-prompts/fusion/fusion-agent.md +76 -0
  195. package/.morph/framework/templates/meta-prompts/fusion/fusion-aggregator.md +100 -0
  196. package/.morph/framework/templates/meta-prompts/hops/hop-retry.md +78 -0
  197. package/.morph/framework/templates/meta-prompts/hops/hop-validation.md +97 -0
  198. package/.morph/framework/templates/meta-prompts/hops/hop-wrapper.md +36 -0
  199. package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +113 -0
  200. package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +80 -0
  201. package/.morph/framework/templates/meta-prompts/squad-leaders/backend-squad.md +90 -0
  202. package/.morph/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +126 -0
  203. package/.morph/framework/templates/meta-prompts/squad-leaders/squad-leader.md +43 -0
  204. package/.morph/framework/templates/meta-prompts/validators/checkpoint-validator.md +107 -0
  205. package/.morph/framework/templates/meta-prompts/validators/pre-commit-validator.md +95 -0
  206. package/.morph/framework/templates/project-structure/dotnet-ddd.md +70 -0
  207. package/.morph/framework/templates/saas/subscription.cs +347 -0
  208. package/.morph/framework/templates/saas/tenant.cs +338 -0
  209. package/.morph/framework/templates/state.template.json +17 -0
  210. package/.morph/framework/templates/ui/FluentDesignTheme.cs +149 -0
  211. package/.morph/framework/templates/ui/MudTheme.cs +281 -0
  212. package/.morph/framework/templates/ui/design-system.css +226 -0
  213. package/.morph/logs/tool-failures.log +17 -0
  214. package/.morph/memory/pre-compact-2026-02-24T17-43-30-049Z.json +16 -0
  215. package/.morph/plans/eager-watching-bunny.md +105 -0
  216. package/.morph/plans/temporal-seeking-nebula.md +45 -0
  217. package/.morph/state.json +48 -0
  218. package/CLAUDE.md +1 -1
  219. package/README.md +119 -99
  220. package/bin/morph-spec.js +0 -9
  221. package/framework/CLAUDE.md +1 -1
  222. package/framework/hooks/README.md +10 -6
  223. package/framework/hooks/claude-code/notification/approval-reminder.js +2 -0
  224. package/framework/hooks/claude-code/post-tool-use/dispatch.js +1 -1
  225. package/framework/hooks/claude-code/stop/validate-completion.js +1 -1
  226. package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +1 -1
  227. package/package.json +1 -1
  228. package/src/commands/project/init.js +15 -42
  229. package/src/commands/project/update.js +22 -37
  230. package/src/lib/installers/mcp-installer.js +18 -3
  231. package/src/utils/hooks-installer.js +5 -15
  232. package/src/commands/project/detect.js +0 -114
@@ -0,0 +1,167 @@
1
+ # UI Flows: {{titleCase FEATURE_NAME}}
2
+
3
+ | Field | Value |
4
+ |-------|-------|
5
+ | **Feature** | {{FEATURE_NAME}} |
6
+ | **Created** | {{DATE}} |
7
+
8
+ ---
9
+
10
+ ## User Stories
11
+
12
+ ### US001: {Primary User Story}
13
+
14
+ **As** a {user type}
15
+ **I want** to {capability}
16
+ **So that** {benefit}
17
+
18
+ **Acceptance Criteria:**
19
+ 1. {Criterion 1}
20
+ 2. {Criterion 2}
21
+
22
+ ---
23
+
24
+ ## Flow Inventory
25
+
26
+ | Flow ID | Name | Priority |
27
+ |---------|------|----------|
28
+ | **F001** | Create New Item | High |
29
+ | **F002** | Edit Existing Item | High |
30
+ | **F003** | Delete Item | Medium |
31
+
32
+ ---
33
+
34
+ ## F001: Create New Item
35
+
36
+ ### Happy Path
37
+
38
+ ```
39
+ START
40
+
41
+ [User clicks "Add New"]
42
+
43
+ [Modal opens with form]
44
+
45
+ [User fills required fields]
46
+
47
+ [User clicks "Submit"]
48
+
49
+ [Validation passes] ✓
50
+
51
+ [API call: POST /api/items]
52
+
53
+ [Success response]
54
+
55
+ [Modal closes]
56
+
57
+ [Success toast: "Item created"]
58
+
59
+ [Table refreshes]
60
+
61
+ END
62
+ ```
63
+
64
+ **Duration:** 15-30 seconds
65
+ **Success Rate Target:** 95%
66
+
67
+ ---
68
+
69
+ ### Alternative Path: Validation Error
70
+
71
+ ```
72
+ [User clicks "Submit"]
73
+
74
+ [Validation fails] ✕
75
+
76
+ [Error messages shown inline]
77
+
78
+ [User corrects errors]
79
+
80
+ [Real-time validation clears errors]
81
+
82
+ → Returns to Happy Path
83
+ ```
84
+
85
+ ---
86
+
87
+ ### Edge Cases
88
+
89
+ | Scenario | Behavior |
90
+ |----------|----------|
91
+ | **Duplicate Name** | Show warning, allow submit |
92
+ | **Network Error** | Show error toast, preserve data |
93
+ | **Session Expired** | Redirect to login |
94
+
95
+ ---
96
+
97
+ ## F002: Edit Existing Item
98
+
99
+ ```
100
+ [User clicks "Edit"]
101
+
102
+ [Modal opens with pre-filled form]
103
+
104
+ [User modifies fields]
105
+
106
+ [User clicks "Save"]
107
+
108
+ [API call: PUT /api/items/{id}]
109
+
110
+ [Success toast]
111
+
112
+ [Table refreshes]
113
+ END
114
+ ```
115
+
116
+ ---
117
+
118
+ ## F003: Delete Item
119
+
120
+ ```
121
+ [User clicks "Delete"]
122
+
123
+ [Confirmation dialog: "Delete item?"]
124
+
125
+ [User confirms]
126
+
127
+ [API call: DELETE /api/items/{id}]
128
+
129
+ [Success toast]
130
+
131
+ [Table refreshes]
132
+ END
133
+ ```
134
+
135
+ ---
136
+
137
+ ## Toast Notifications
138
+
139
+ | Event | Type | Message | Duration |
140
+ |-------|------|---------|----------|
141
+ | **Item Created** | Success | "Item created successfully" | 3s |
142
+ | **Item Updated** | Success | "Item updated successfully" | 3s |
143
+ | **Item Deleted** | Success | "Item deleted successfully" | 3s |
144
+ | **Error** | Error | "Something went wrong" | 5s |
145
+
146
+ ---
147
+
148
+ ## Keyboard Shortcuts
149
+
150
+ | Shortcut | Action |
151
+ |----------|--------|
152
+ | **Ctrl+N** | New Item |
153
+ | **Escape** | Close modal |
154
+ | **Enter** | Submit form |
155
+
156
+ ---
157
+
158
+ ## Performance Targets
159
+
160
+ | Flow | Target |
161
+ |------|--------|
162
+ | **Create Item** | < 2s (API response) |
163
+ | **Search** | < 500ms |
164
+
165
+ ---
166
+
167
+ *Generated with MORPH Framework*
@@ -0,0 +1,98 @@
1
+ # UI Mockups & Wireframes: {{titleCase FEATURE_NAME}}
2
+
3
+ | Field | Value |
4
+ |-------|-------|
5
+ | **Feature** | {{FEATURE_NAME}} |
6
+ | **Created** | {{DATE}} |
7
+
8
+ ---
9
+
10
+ ## Screen Inventory
11
+
12
+ | Screen ID | Name | Route | Priority |
13
+ |-----------|------|-------|----------|
14
+ | **S001** | {Screen Name} | /path | High |
15
+ | **S002** | {Screen Name} | /path | Medium |
16
+
17
+ ---
18
+
19
+ ## S001: {Primary Screen}
20
+
21
+ ### Desktop Layout
22
+
23
+ ```
24
+ ┌─────────────────────────────────────┐
25
+ │ Header [User ▼] │
26
+ ├─────────────────────────────────────┤
27
+ │ │
28
+ │ [Title] │
29
+ │ │
30
+ │ ┌──────────────────────────────┐ │
31
+ │ │ Main Content Area │ │
32
+ │ │ │ │
33
+ │ │ [Card 1] [Card 2] │ │
34
+ │ │ │ │
35
+ │ │ ┌────────────────────────┐ │ │
36
+ │ │ │ Data Table │ │ │
37
+ │ │ │ ... │ │ │
38
+ │ │ └────────────────────────┘ │ │
39
+ │ └──────────────────────────────┘ │
40
+ │ │
41
+ └─────────────────────────────────────┘
42
+ ```
43
+
44
+ ### Mobile Layout
45
+
46
+ ```
47
+ ┌──────────────────────┐
48
+ │ ☰ Title [User ▼]│
49
+ ├──────────────────────┤
50
+ │ │
51
+ │ [Card 1] │
52
+ │ │
53
+ │ [Card 2] │
54
+ │ │
55
+ │ [View All Items] │
56
+ │ │
57
+ └──────────────────────┘
58
+ ```
59
+
60
+ ---
61
+
62
+ ## States
63
+
64
+ ### Loading
65
+ - Show skeleton placeholders
66
+ - Spinner for primary content
67
+
68
+ ### Empty
69
+ - Icon + message
70
+ - Clear call-to-action button
71
+
72
+ ### Error
73
+ - Warning icon
74
+ - User-friendly message
75
+ - Retry button
76
+
77
+ ### Success (After Action)
78
+ - Toast notification
79
+ - Auto-dismiss after 3s
80
+
81
+ ---
82
+
83
+ ## Interactions
84
+
85
+ - **Hover**: Subtle elevation increase
86
+ - **Click**: Scale down (0.98)
87
+ - **Transitions**: Fade-in 200ms
88
+
89
+ ---
90
+
91
+ ## Accessibility
92
+ - [ ] 44x44px minimum touch targets
93
+ - [ ] Focus indicators visible
94
+ - [ ] Proper heading hierarchy (H1 → H2 → H3)
95
+
96
+ ---
97
+
98
+ *Generated with MORPH Framework*
@@ -0,0 +1,34 @@
1
+ # User Stories: {{featureName}}
2
+
3
+ > Generated: {{date}} | Feature: {{featureName}} | Status: Draft
4
+
5
+ ---
6
+
7
+ ## Story 1: [Actor] [Action]
8
+
9
+ **Feature:** {{featureName}}
10
+ **Priority:** High / Medium / Low
11
+
12
+ ### Optimal Path
13
+ 1. [Step 1]
14
+ 2. [Step 2]
15
+ 3. [Step 3 — success state]
16
+
17
+ ### Edge Cases
18
+ - [Edge case] → [Expected behavior]
19
+ - [Error condition] → [Expected error handling]
20
+
21
+ ### Acceptance Criteria
22
+ - [ ] [Measurable criterion 1]
23
+ - [ ] [Measurable criterion 2]
24
+ - [ ] Edge: [edge case criterion]
25
+
26
+ ---
27
+
28
+ ## Story 2: [Actor] [Action]
29
+
30
+ [Repeat structure above]
31
+
32
+ ---
33
+
34
+ *Generated by MORPH-SPEC — complete before implementation begins*
@@ -0,0 +1,357 @@
1
+ # Design System CSS Index Template
2
+
3
+ > Template de indice estruturado para arquivos CSS grandes.
4
+ > Copie este header para o inicio do seu `design-system.css`.
5
+
6
+ ## Indice Padrao
7
+
8
+ ```css
9
+ /* ===========================================================================
10
+ {PROJECT_NAME} Design System
11
+ ===========================================================================
12
+
13
+ Indice de Secoes
14
+ ================
15
+
16
+ 1-99: Tokens e Variaveis CSS
17
+ 100-199: Reset e Base Styles
18
+ 200-299: Tipografia
19
+ 300-399: Layout e Containers
20
+ 400-499: Componentes Base (buttons, inputs, cards)
21
+ 500-599: Componentes Compostos (forms, tables, lists)
22
+ 600-699: Navegacao (header, sidebar, footer, menus)
23
+ 700-799: Paginas Especificas
24
+ 800-849: Modais e Overlays
25
+ 850-899: Animacoes e Keyframes
26
+ 900-949: Responsivo e Media Queries
27
+ 950-979: Utilities e Helpers
28
+ 980-989: Overrides de Fluent UI / MudBlazor
29
+ 990-999: Hotfixes e Temporarios
30
+
31
+ Convencoes de Nomenclatura
32
+ ==========================
33
+
34
+ Prefixo por Pagina:
35
+ - .home-* : Pagina inicial
36
+ - .checkout-* : Pagina de checkout
37
+ - .dashboard-* : Pagina de dashboard
38
+ - .auth-* : Paginas de autenticacao
39
+
40
+ Prefixo por Componente:
41
+ - .btn-* : Botoes
42
+ - .card-* : Cards
43
+ - .modal-* : Modais
44
+ - .form-* : Formularios
45
+ - .nav-* : Navegacao
46
+
47
+ Sufixos de Estado:
48
+ - *--active : Estado ativo
49
+ - *--disabled : Estado desabilitado
50
+ - *--loading : Estado de loading
51
+ - *--error : Estado de erro
52
+
53
+ Validacao:
54
+ morph-spec validate-css src/MyApp.Web
55
+
56
+ =========================================================================== */
57
+
58
+
59
+ /* ===========================================================================
60
+ SECAO 1-99: TOKENS E VARIAVEIS CSS
61
+ =========================================================================== */
62
+
63
+ :root {
64
+ /* Cores Primarias */
65
+ --primary: #3b82f6;
66
+ --primary-hover: #2563eb;
67
+ --primary-active: #1d4ed8;
68
+
69
+ /* Cores Secundarias */
70
+ --secondary: #6b7280;
71
+ --secondary-hover: #4b5563;
72
+
73
+ /* Cores Semanticas */
74
+ --success: #10b981;
75
+ --warning: #f59e0b;
76
+ --error: #ef4444;
77
+ --info: #06b6d4;
78
+
79
+ /* Neutros */
80
+ --neutral-50: #f9fafb;
81
+ --neutral-100: #f3f4f6;
82
+ --neutral-200: #e5e7eb;
83
+ --neutral-300: #d1d5db;
84
+ --neutral-400: #9ca3af;
85
+ --neutral-500: #6b7280;
86
+ --neutral-600: #4b5563;
87
+ --neutral-700: #374151;
88
+ --neutral-800: #1f2937;
89
+ --neutral-900: #111827;
90
+
91
+ /* Tipografia */
92
+ --font-family: 'Inter', system-ui, -apple-system, sans-serif;
93
+ --font-family-mono: 'JetBrains Mono', monospace;
94
+
95
+ --font-size-xs: 0.75rem; /* 12px */
96
+ --font-size-sm: 0.875rem; /* 14px */
97
+ --font-size-base: 1rem; /* 16px */
98
+ --font-size-lg: 1.125rem; /* 18px */
99
+ --font-size-xl: 1.25rem; /* 20px */
100
+ --font-size-2xl: 1.5rem; /* 24px */
101
+ --font-size-3xl: 1.875rem; /* 30px */
102
+ --font-size-4xl: 2.25rem; /* 36px */
103
+
104
+ /* Espacamento (base 4px) */
105
+ --space-1: 0.25rem; /* 4px */
106
+ --space-2: 0.5rem; /* 8px */
107
+ --space-3: 0.75rem; /* 12px */
108
+ --space-4: 1rem; /* 16px */
109
+ --space-5: 1.25rem; /* 20px */
110
+ --space-6: 1.5rem; /* 24px */
111
+ --space-8: 2rem; /* 32px */
112
+ --space-10: 2.5rem; /* 40px */
113
+ --space-12: 3rem; /* 48px */
114
+
115
+ /* Border Radius */
116
+ --radius-sm: 0.25rem; /* 4px */
117
+ --radius-md: 0.5rem; /* 8px */
118
+ --radius-lg: 0.75rem; /* 12px */
119
+ --radius-xl: 1rem; /* 16px */
120
+ --radius-full: 9999px;
121
+
122
+ /* Sombras */
123
+ --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
124
+ --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
125
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);
126
+ --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1);
127
+
128
+ /* Transicoes */
129
+ --transition-fast: 150ms ease;
130
+ --transition-normal: 300ms ease;
131
+ --transition-slow: 500ms ease;
132
+
133
+ /* Z-Index */
134
+ --z-dropdown: 1000;
135
+ --z-sticky: 1020;
136
+ --z-fixed: 1030;
137
+ --z-modal-backdrop: 1040;
138
+ --z-modal: 1050;
139
+ --z-popover: 1060;
140
+ --z-tooltip: 1070;
141
+ }
142
+
143
+
144
+ /* ===========================================================================
145
+ SECAO 100-199: RESET E BASE STYLES
146
+ =========================================================================== */
147
+
148
+ /* ... */
149
+
150
+
151
+ /* ===========================================================================
152
+ SECAO 200-299: TIPOGRAFIA
153
+ =========================================================================== */
154
+
155
+ /* ... */
156
+
157
+
158
+ /* ===========================================================================
159
+ SECAO 300-399: LAYOUT E CONTAINERS
160
+ =========================================================================== */
161
+
162
+ .page-layout {
163
+ min-height: 100vh;
164
+ display: flex;
165
+ flex-direction: column;
166
+ }
167
+
168
+ .page-content {
169
+ flex: 1;
170
+ padding: var(--space-6);
171
+ }
172
+
173
+ .container {
174
+ width: 100%;
175
+ max-width: 1280px;
176
+ margin: 0 auto;
177
+ padding: 0 var(--space-4);
178
+ }
179
+
180
+
181
+ /* ===========================================================================
182
+ SECAO 400-499: COMPONENTES BASE
183
+ =========================================================================== */
184
+
185
+ /* Botoes */
186
+ .btn-primary { /* ... */ }
187
+ .btn-secondary { /* ... */ }
188
+
189
+ /* Cards */
190
+ .card { /* ... */ }
191
+ .card-premium { /* ... */ }
192
+
193
+ /* Inputs */
194
+ .input { /* ... */ }
195
+
196
+
197
+ /* ===========================================================================
198
+ SECAO 500-599: COMPONENTES COMPOSTOS
199
+ =========================================================================== */
200
+
201
+ /* Forms */
202
+ .form-group { /* ... */ }
203
+ .form-label { /* ... */ }
204
+
205
+ /* Tables */
206
+ .data-table { /* ... */ }
207
+
208
+
209
+ /* ===========================================================================
210
+ SECAO 600-699: NAVEGACAO
211
+ =========================================================================== */
212
+
213
+ .page-header-nav { /* ... */ }
214
+ .page-footer { /* ... */ }
215
+ .sidebar { /* ... */ }
216
+
217
+
218
+ /* ===========================================================================
219
+ SECAO 700-799: PAGINAS ESPECIFICAS
220
+ =========================================================================== */
221
+
222
+ /* Home */
223
+ .home-hero { /* ... */ }
224
+ .home-features { /* ... */ }
225
+
226
+ /* Checkout */
227
+ .checkout-form { /* ... */ }
228
+ .checkout-summary { /* ... */ }
229
+
230
+
231
+ /* ===========================================================================
232
+ SECAO 800-849: MODAIS E OVERLAYS
233
+ =========================================================================== */
234
+
235
+ .modal-overlay {
236
+ position: fixed;
237
+ inset: 0;
238
+ background: rgba(0, 0, 0, 0.5);
239
+ backdrop-filter: blur(4px);
240
+ z-index: var(--z-modal-backdrop);
241
+ }
242
+
243
+ .modal-container {
244
+ position: fixed;
245
+ top: 50%;
246
+ left: 50%;
247
+ transform: translate(-50%, -50%);
248
+ z-index: var(--z-modal);
249
+ }
250
+
251
+
252
+ /* ===========================================================================
253
+ SECAO 850-899: ANIMACOES E KEYFRAMES
254
+ =========================================================================== */
255
+
256
+ @keyframes slideInUp {
257
+ from {
258
+ opacity: 0;
259
+ transform: translateY(20px);
260
+ }
261
+ to {
262
+ opacity: 1;
263
+ transform: translateY(0);
264
+ }
265
+ }
266
+
267
+ @keyframes scaleIn {
268
+ from {
269
+ opacity: 0;
270
+ transform: scale(0.95);
271
+ }
272
+ to {
273
+ opacity: 1;
274
+ transform: scale(1);
275
+ }
276
+ }
277
+
278
+ .animate-slideInUp {
279
+ animation: slideInUp var(--transition-normal) forwards;
280
+ }
281
+
282
+ .animate-scaleIn {
283
+ animation: scaleIn var(--transition-fast) forwards;
284
+ }
285
+
286
+ /* Stagger delays para animacoes em sequencia */
287
+ .stagger-1 { animation-delay: 0.1s; }
288
+ .stagger-2 { animation-delay: 0.2s; }
289
+ .stagger-3 { animation-delay: 0.3s; }
290
+ .stagger-4 { animation-delay: 0.4s; }
291
+ .stagger-5 { animation-delay: 0.5s; }
292
+
293
+
294
+ /* ===========================================================================
295
+ SECAO 900-949: RESPONSIVO E MEDIA QUERIES
296
+ =========================================================================== */
297
+
298
+ @media (max-width: 768px) {
299
+ /* Tablet e Mobile */
300
+ }
301
+
302
+ @media (max-width: 480px) {
303
+ /* Mobile */
304
+ }
305
+
306
+
307
+ /* ===========================================================================
308
+ SECAO 950-979: UTILITIES E HELPERS
309
+ =========================================================================== */
310
+
311
+ .sr-only {
312
+ position: absolute;
313
+ width: 1px;
314
+ height: 1px;
315
+ padding: 0;
316
+ margin: -1px;
317
+ overflow: hidden;
318
+ clip: rect(0, 0, 0, 0);
319
+ white-space: nowrap;
320
+ border: 0;
321
+ }
322
+
323
+
324
+ /* ===========================================================================
325
+ SECAO 980-989: OVERRIDES DE FLUENT UI / MUDBLAZOR
326
+ =========================================================================== */
327
+
328
+ /* Fluent UI overrides */
329
+ .fluent-card {
330
+ /* Customizacoes */
331
+ }
332
+
333
+
334
+ /* ===========================================================================
335
+ SECAO 990-999: HOTFIXES E TEMPORARIOS
336
+ =========================================================================== */
337
+
338
+ /* TODO: Remover apos fix no componente X */
339
+ ```
340
+
341
+ ## Uso
342
+
343
+ 1. Copie o header para o inicio do seu `design-system.css`
344
+ 2. Substitua `{PROJECT_NAME}` pelo nome do seu projeto
345
+ 3. Adicione suas classes CSS nas secoes apropriadas
346
+ 4. Mantenha o indice atualizado conforme adiciona novas secoes
347
+
348
+ ## Beneficios
349
+
350
+ - **Navegacao rapida:** Use Ctrl+G (go to line) para pular para secoes
351
+ - **Organizacao clara:** Cada tipo de componente em sua secao
352
+ - **Facil manutencao:** Encontre onde adicionar novos estilos
353
+ - **Evita conflitos:** Prefixos por pagina previnem colisoes
354
+
355
+ ---
356
+
357
+ *Template MORPH-SPEC v2.2.0 by Polymorphism Tech*