@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,149 +0,0 @@
1
- using Microsoft.FluentUI.AspNetCore.Components;
2
-
3
- namespace {Namespace}.Themes;
4
-
5
- /// <summary>
6
- /// Fluent UI Design Theme customizado para {Project Name}.
7
- /// Gerado automaticamente baseado em ui-design-system.md
8
- /// </summary>
9
- /// <remarks>
10
- /// Template MORPH-SPEC by Polymorphism Tech
11
- /// </remarks>
12
- public static class FluentDesignTheme
13
- {
14
- /// <summary>
15
- /// Paleta de cores do tema
16
- /// </summary>
17
- public static DesignThemePalette GetPalette() => new()
18
- {
19
- // Cores Principais
20
- Primary = "#{hex da cor primária}", // Ex: #3b82f6
21
- Secondary = "#{hex da cor secundária}", // Ex: #6b7280
22
-
23
- // Cores de Estado
24
- Success = "#{hex}", // Ex: #10b981
25
- Error = "#{hex}", // Ex: #ef4444
26
- Warning = "#{hex}", // Ex: #f59e0b
27
- Info = "#{hex}", // Ex: #06b6d4
28
-
29
- // Neutros
30
- NeutralLight = "#{hex do gray-50}", // Ex: #f9fafb
31
- NeutralLighter = "#{hex do gray-100}", // Ex: #f3f4f6
32
- NeutralDark = "#{hex do gray-800}", // Ex: #1f2937
33
- NeutralDarker = "#{hex do gray-900}", // Ex: #111827
34
-
35
- // Background e Foreground
36
- Background = "#ffffff",
37
- Foreground = "#{hex do gray-900}", // Texto principal
38
-
39
- // Accent (geralmente = Primary)
40
- Accent = "#{hex da cor primária}",
41
- };
42
-
43
- /// <summary>
44
- /// Configuração de tipografia
45
- /// </summary>
46
- public static DesignThemeTypography GetTypography() => new()
47
- {
48
- FontFamily = "'{Font Name}', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
49
-
50
- // Tamanhos
51
- FontSizeBase = "1rem", // 16px
52
- FontSizeSmall = "0.875rem", // 14px
53
- FontSizeLarge = "1.125rem", // 18px
54
-
55
- // Weights
56
- FontWeightRegular = 400,
57
- FontWeightSemibold = 600,
58
- FontWeightBold = 700,
59
-
60
- // Line Heights
61
- LineHeightBase = 1.5,
62
- };
63
-
64
- /// <summary>
65
- /// Configuração de espaçamento e layout
66
- /// </summary>
67
- public static DesignThemeLayout GetLayout() => new()
68
- {
69
- // Espaçamento (baseado em múltiplos de {base}px - ex: 4px)
70
- SpacingBase = "0.25rem", // 4px
71
- SpacingSmall = "0.5rem", // 8px
72
- SpacingMedium = "1rem", // 16px
73
- SpacingLarge = "1.5rem", // 24px
74
-
75
- // Border Radius
76
- BorderRadiusSmall = "0.125rem", // 2px
77
- BorderRadiusMedium = "0.375rem", // 6px
78
- BorderRadiusLarge = "0.5rem", // 8px
79
-
80
- // Shadows (depende da biblioteca - ajustar conforme API)
81
- Elevation1 = "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
82
- Elevation2 = "0 4px 6px -1px rgba(0, 0, 0, 0.1)",
83
- Elevation3 = "0 10px 15px -3px rgba(0, 0, 0, 0.1)",
84
- };
85
-
86
- /// <summary>
87
- /// Aplica o tema customizado ao FluentUI
88
- /// </summary>
89
- /// <param name="services">Service collection</param>
90
- public static void AddFluentUIWithCustomTheme(this IServiceCollection services)
91
- {
92
- services.AddFluentUIComponents(options =>
93
- {
94
- // Aplicar paleta customizada
95
- options.DesignThemePalette = GetPalette();
96
-
97
- // Outras configurações do Fluent UI
98
- // ...
99
- });
100
- }
101
- }
102
-
103
- /// <summary>
104
- /// Classe de configuração de tipografia
105
- /// (Ajustar conforme API do Fluent UI Blazor v4.x)
106
- /// </summary>
107
- public class DesignThemeTypography
108
- {
109
- public string FontFamily { get; set; } = string.Empty;
110
- public string FontSizeBase { get; set; } = string.Empty;
111
- public string FontSizeSmall { get; set; } = string.Empty;
112
- public string FontSizeLarge { get; set; } = string.Empty;
113
- public int FontWeightRegular { get; set; }
114
- public int FontWeightSemibold { get; set; }
115
- public int FontWeightBold { get; set; }
116
- public double LineHeightBase { get; set; }
117
- }
118
-
119
- /// <summary>
120
- /// Classe de configuração de layout
121
- /// (Ajustar conforme API do Fluent UI Blazor v4.x)
122
- /// </summary>
123
- public class DesignThemeLayout
124
- {
125
- public string SpacingBase { get; set; } = string.Empty;
126
- public string SpacingSmall { get; set; } = string.Empty;
127
- public string SpacingMedium { get; set; } = string.Empty;
128
- public string SpacingLarge { get; set; } = string.Empty;
129
-
130
- public string BorderRadiusSmall { get; set; } = string.Empty;
131
- public string BorderRadiusMedium { get; set; } = string.Empty;
132
- public string BorderRadiusLarge { get; set; } = string.Empty;
133
-
134
- public string Elevation1 { get; set; } = string.Empty;
135
- public string Elevation2 { get; set; } = string.Empty;
136
- public string Elevation3 { get; set; } = string.Empty;
137
- }
138
-
139
- /// <summary>
140
- /// EXEMPLO DE USO:
141
- ///
142
- /// // Program.cs
143
- /// builder.Services.AddFluentUIWithCustomTheme();
144
- ///
145
- /// // App.razor ou MainLayout.razor
146
- /// <FluentDesignTheme Mode="DesignThemeMode.Light" />
147
- ///
148
- /// // Componentes podem acessar cores via CSS variables ou propriedades do tema
149
- /// </summary>
@@ -1,281 +0,0 @@
1
- using MudBlazor;
2
-
3
- namespace {Namespace}.Themes;
4
-
5
- /// <summary>
6
- /// MudBlazor Theme customizado para {Project Name}.
7
- /// Gerado automaticamente baseado em ui-design-system.md
8
- /// </summary>
9
- /// <remarks>
10
- /// Template MORPH-SPEC by Polymorphism Tech
11
- /// </remarks>
12
- public static class AppTheme
13
- {
14
- /// <summary>
15
- /// Tema Light Mode
16
- /// </summary>
17
- public static MudTheme LightTheme => new()
18
- {
19
- Palette = new PaletteLight
20
- {
21
- // Cores Principais
22
- Primary = "#{hex da cor primária}", // Ex: #3b82f6
23
- Secondary = "#{hex da cor secundária}", // Ex: #6b7280
24
- Tertiary = "#{hex da cor terciária}", // Opcional
25
-
26
- // Cores de Estado
27
- Success = "#{hex}", // Ex: #10b981
28
- Error = "#{hex}", // Ex: #ef4444
29
- Warning = "#{hex}", // Ex: #f59e0b
30
- Info = "#{hex}", // Ex: #06b6d4
31
-
32
- // Background e Superfícies
33
- Background = "#ffffff",
34
- BackgroundGrey = "#{hex do gray-50}", // Ex: #f9fafb
35
- Surface = "#ffffff",
36
-
37
- // Text Colors
38
- TextPrimary = "#{hex do gray-900}", // Texto principal
39
- TextSecondary = "#{hex do gray-600}", // Texto secundário
40
- TextDisabled = "#{hex do gray-400}", // Texto desabilitado
41
-
42
- // Borders
43
- Divider = "#{hex do gray-200}", // Divisores
44
- DividerLight = "#{hex do gray-100}", // Divisores mais claros
45
- Lines = "#{hex do gray-300}", // Linhas de borda
46
-
47
- // Action colors (usados em botões, links, etc)
48
- ActionDefault = "#{hex do gray-500}",
49
- ActionDisabled = "#{hex do gray-300}",
50
- ActionDisabledBackground = "#{hex do gray-100}",
51
-
52
- // Outros
53
- Dark = "#{hex do gray-800}",
54
- DarkLighten = "#{hex do gray-700}",
55
- DarkDarken = "#{hex do gray-900}",
56
-
57
- // Overlay (usado em modais, dropdowns)
58
- OverlayLight = "rgba(255, 255, 255, 0.95)",
59
- OverlayDark = "rgba(33, 33, 33, 0.95)",
60
-
61
- // Hover effects
62
- HoverOpacity = 0.06, // Opacidade do hover (6%)
63
- },
64
-
65
- Typography = new Typography
66
- {
67
- // Font Families
68
- Default = new Default
69
- {
70
- FontFamily = new[] { "{Font Name}", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto", "sans-serif" },
71
- FontSize = "1rem", // 16px
72
- FontWeight = 400, // Regular
73
- LineHeight = 1.5,
74
- LetterSpacing = "normal",
75
- },
76
-
77
- H1 = new H1
78
- {
79
- FontFamily = new[] { "{Font Name}", "sans-serif" },
80
- FontSize = "2.25rem", // 36px
81
- FontWeight = 700, // Bold
82
- LineHeight = 1.2,
83
- },
84
-
85
- H2 = new H2
86
- {
87
- FontFamily = new[] { "{Font Name}", "sans-serif" },
88
- FontSize = "1.875rem", // 30px
89
- FontWeight = 700,
90
- LineHeight = 1.3,
91
- },
92
-
93
- H3 = new H3
94
- {
95
- FontFamily = new[] { "{Font Name}", "sans-serif" },
96
- FontSize = "1.5rem", // 24px
97
- FontWeight = 600,
98
- LineHeight = 1.4,
99
- },
100
-
101
- H4 = new H4
102
- {
103
- FontFamily = new[] { "{Font Name}", "sans-serif" },
104
- FontSize = "1.25rem", // 20px
105
- FontWeight = 600,
106
- LineHeight = 1.4,
107
- },
108
-
109
- H5 = new H5
110
- {
111
- FontFamily = new[] { "{Font Name}", "sans-serif" },
112
- FontSize = "1.125rem", // 18px
113
- FontWeight = 600,
114
- LineHeight = 1.5,
115
- },
116
-
117
- H6 = new H6
118
- {
119
- FontFamily = new[] { "{Font Name}", "sans-serif" },
120
- FontSize = "1rem", // 16px
121
- FontWeight = 600,
122
- LineHeight = 1.5,
123
- },
124
-
125
- Body1 = new Body1
126
- {
127
- FontFamily = new[] { "{Font Name}", "sans-serif" },
128
- FontSize = "1rem", // 16px
129
- FontWeight = 400,
130
- LineHeight = 1.5,
131
- },
132
-
133
- Body2 = new Body2
134
- {
135
- FontFamily = new[] { "{Font Name}", "sans-serif" },
136
- FontSize = "0.875rem", // 14px
137
- FontWeight = 400,
138
- LineHeight = 1.43,
139
- },
140
-
141
- Button = new Button
142
- {
143
- FontFamily = new[] { "{Font Name}", "sans-serif" },
144
- FontSize = "0.875rem", // 14px
145
- FontWeight = 600, // Semibold
146
- LineHeight = 1.75,
147
- TextTransform = "none", // Ou "uppercase" se preferir
148
- },
149
-
150
- Caption = new Caption
151
- {
152
- FontFamily = new[] { "{Font Name}", "sans-serif" },
153
- FontSize = "0.75rem", // 12px
154
- FontWeight = 400,
155
- LineHeight = 1.66,
156
- },
157
-
158
- Subtitle1 = new Subtitle1
159
- {
160
- FontFamily = new[] { "{Font Name}", "sans-serif" },
161
- FontSize = "1rem",
162
- FontWeight = 500, // Medium
163
- LineHeight = 1.75,
164
- },
165
-
166
- Subtitle2 = new Subtitle2
167
- {
168
- FontFamily = new[] { "{Font Name}", "sans-serif" },
169
- FontSize = "0.875rem",
170
- FontWeight = 500,
171
- LineHeight = 1.57,
172
- },
173
-
174
- Overline = new Overline
175
- {
176
- FontFamily = new[] { "{Font Name}", "sans-serif" },
177
- FontSize = "0.75rem",
178
- FontWeight = 600,
179
- LineHeight = 2.66,
180
- LetterSpacing = "0.08em",
181
- },
182
- },
183
-
184
- Shadows = new Shadow
185
- {
186
- Elevation = new[]
187
- {
188
- "none", // 0
189
- "0 1px 2px 0 rgba(0, 0, 0, 0.05)", // 1
190
- "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)", // 2
191
- "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)", // 3
192
- "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)", // 4
193
- "0 25px 50px -12px rgba(0, 0, 0, 0.25)", // 5
194
- // Adicione mais elevações conforme necessário
195
- }
196
- },
197
-
198
- LayoutProperties = new LayoutProperties
199
- {
200
- // Border Radius
201
- DefaultBorderRadius = "6px", // md
202
-
203
- // Drawer
204
- DrawerWidthLeft = "240px",
205
- DrawerWidthRight = "240px",
206
-
207
- // AppBar
208
- AppbarHeight = "64px",
209
- },
210
-
211
- ZIndex = new ZIndex
212
- {
213
- Drawer = 1200,
214
- AppBar = 1100,
215
- Dialog = 1300,
216
- Popover = 1400,
217
- Snackbar = 1500,
218
- Tooltip = 1600,
219
- },
220
- };
221
-
222
- /// <summary>
223
- /// Tema Dark Mode (opcional - ajustar cores)
224
- /// </summary>
225
- public static MudTheme DarkTheme => new()
226
- {
227
- Palette = new PaletteDark
228
- {
229
- // Cores Principais (ajustar para dark mode)
230
- Primary = "#{hex}",
231
- Secondary = "#{hex}",
232
-
233
- // Cores de Estado
234
- Success = "#{hex}",
235
- Error = "#{hex}",
236
- Warning = "#{hex}",
237
- Info = "#{hex}",
238
-
239
- // Background e Superfícies (tons escuros)
240
- Background = "#{hex do gray-900}",
241
- BackgroundGrey = "#{hex do gray-800}",
242
- Surface = "#{hex do gray-800}",
243
-
244
- // Text Colors (invertidos)
245
- TextPrimary = "#{hex do gray-50}",
246
- TextSecondary = "#{hex do gray-400}",
247
- TextDisabled = "#{hex do gray-600}",
248
-
249
- // Etc... (ajustar conforme design system dark mode)
250
- },
251
-
252
- // Compartilhar Typography e outras configurações do LightTheme
253
- Typography = LightTheme.Typography,
254
- Shadows = LightTheme.Shadows,
255
- LayoutProperties = LightTheme.LayoutProperties,
256
- ZIndex = LightTheme.ZIndex,
257
- };
258
- }
259
-
260
- /// <summary>
261
- /// EXEMPLO DE USO:
262
- ///
263
- /// // Program.cs
264
- /// builder.Services.AddMudServices(config =>
265
- /// {
266
- /// config.SnackbarConfiguration.PositionClass = Defaults.Classes.Position.BottomRight;
267
- /// });
268
- ///
269
- /// // App.razor ou MainLayout.razor
270
- /// <MudThemeProvider Theme="@AppTheme.LightTheme" />
271
- /// <MudDialogProvider />
272
- /// <MudSnackbarProvider />
273
- ///
274
- /// // Para suportar dark mode dinâmico:
275
- /// <MudThemeProvider @bind-IsDarkMode="@_isDarkMode"
276
- /// Theme="@(_isDarkMode ? AppTheme.DarkTheme : AppTheme.LightTheme)" />
277
- ///
278
- /// @code {
279
- /// private bool _isDarkMode;
280
- /// }
281
- /// </summary>
@@ -1,40 +0,0 @@
1
- {
2
- "id": "nodejs-cli",
3
- "name": "Node.js CLI Development",
4
- "description": "Workflow otimizado para desenvolvimento de features em projetos CLI Node.js/ESM, como o morph-spec-framework.",
5
- "criteria": {
6
- "maxFiles": 15,
7
- "maxLines": 400,
8
- "maxComponents": 0,
9
- "noInfrastructure": true,
10
- "noArchitecturalDecisions": false
11
- },
12
- "keywords": [
13
- "nodejs", "javascript", "esm", "cli", "commander", "command", "morph-spec",
14
- "hook", "validator", "plugin", "script"
15
- ],
16
- "phases": {
17
- "run": ["proposal", "setup", "design", "tasks", "implement"],
18
- "skip": ["uiux", "clarify", "sync"],
19
- "combined": {}
20
- },
21
- "pausePoints": [
22
- {
23
- "phase": "design",
24
- "question": "O design da feature está correto? Approve para gerar tasks."
25
- },
26
- {
27
- "phase": "tasks",
28
- "question": "As tasks estão bem definidas? Approve para iniciar implementação."
29
- }
30
- ],
31
- "outputs": {
32
- "required": ["proposal", "spec", "tasks"],
33
- "optional": ["contracts", "decisions", "recap"]
34
- },
35
- "agentPreferences": {
36
- "specialists": ["morph-spec-architect", "nodejs-cli-expert"],
37
- "validators": ["morph-spec-validator"]
38
- },
39
- "priority": 5
40
- }
@@ -1,89 +0,0 @@
1
- /**
2
- * context-budget — Token budget tracking for standards context
3
- *
4
- * Shows estimated token usage for agent briefings built from STANDARDS.json digests.
5
- *
6
- * Usage:
7
- * morph-spec context-budget [--phase <phase>] [--json]
8
- */
9
-
10
- import { readFileSync, existsSync } from 'fs';
11
- import { join, dirname } from 'path';
12
- import { fileURLToPath } from 'url';
13
- import { buildAgentBriefing, estimateTokens, clearCache } from '../../lib/standards/digest-builder.js';
14
- import chalk from 'chalk';
15
-
16
- const __dirname = dirname(fileURLToPath(import.meta.url));
17
- const AGENTS_JSON_PATH = join(__dirname, '../../../framework/agents.json');
18
-
19
- /**
20
- * CLI command: morph-spec context-budget [--phase <phase>] [--json]
21
- */
22
- export async function contextBudgetCommand(options = {}) {
23
- const phase = options.phase || 'implement';
24
-
25
- if (!existsSync(AGENTS_JSON_PATH)) {
26
- console.error(chalk.red('framework/agents.json not found.'));
27
- process.exit(1);
28
- }
29
-
30
- try {
31
- clearCache();
32
- const agentsData = JSON.parse(readFileSync(AGENTS_JSON_PATH, 'utf8'));
33
- const allAgents = agentsData.agents || {};
34
-
35
- const results = [];
36
-
37
- for (const [agentId, agentData] of Object.entries(allAgents)) {
38
- if (agentId.startsWith('_comment')) continue;
39
- if (!agentData.standards || agentData.standards.length === 0) continue;
40
-
41
- const briefing = buildAgentBriefing(agentId, phase);
42
- if (!briefing) continue;
43
-
44
- const tokens = estimateTokens(briefing);
45
- results.push({
46
- agentId,
47
- tier: agentData.tier,
48
- standardsCount: agentData.standards.length,
49
- tokens,
50
- overBudget: tokens > 8000,
51
- });
52
- }
53
-
54
- // Sort by tokens descending
55
- results.sort((a, b) => b.tokens - a.tokens);
56
-
57
- const totalTokens = results.reduce((sum, r) => sum + r.tokens, 0);
58
- const overBudget = results.filter(r => r.overBudget);
59
-
60
- if (options.json) {
61
- console.log(JSON.stringify({ phase, totalTokens, overBudgetCount: overBudget.length, agents: results }, null, 2));
62
- return;
63
- }
64
-
65
- // Human-readable
66
- console.log(chalk.bold(`\n Context Budget — phase: ${phase}`));
67
- console.log(' ' + '─'.repeat(62));
68
- console.log(` ${'Agent'.padEnd(32)} ${'Tier'.padEnd(6)} ${'Stds'.padEnd(6)} Tokens`);
69
- console.log(' ' + '─'.repeat(62));
70
-
71
- for (const r of results) {
72
- const tokenStr = r.overBudget ? chalk.red(String(r.tokens)) : String(r.tokens);
73
- const flag = r.overBudget ? ' ⚠' : '';
74
- console.log(
75
- ` ${r.agentId.padEnd(32)} ${String(r.tier).padEnd(6)} ${String(r.standardsCount).padEnd(6)} ${tokenStr}${flag}`
76
- );
77
- }
78
-
79
- console.log(' ' + '─'.repeat(62));
80
- console.log(` Total: ${results.length} agents, ${totalTokens} tokens`);
81
- if (overBudget.length > 0) {
82
- console.log(chalk.yellow(` ⚠ ${overBudget.length} agent(s) exceed 8000 token threshold`));
83
- }
84
- console.log();
85
- } catch (err) {
86
- console.error(chalk.red(`Error: ${err.message}`));
87
- process.exit(1);
88
- }
89
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * Standards Utilities
3
- *
4
- * Injects relevant coding standards and architectural guidelines into LLM context.
5
- */
6
-
7
- export * from './standards-context-injector.js';