@polymorphism-tech/morph-spec 4.5.0 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. package/CLAUDE.md +77 -56
  2. package/README.md +394 -700
  3. package/docs/ARCHITECTURE.md +331 -0
  4. package/docs/CHEATSHEET.md +221 -0
  5. package/docs/COMMAND-FLOWS.md +368 -0
  6. package/docs/QUICKSTART.md +212 -0
  7. package/docs/examples/order-management/contracts.cs +84 -0
  8. package/docs/examples/order-management/proposal.md +24 -0
  9. package/docs/examples/order-management/spec.md +162 -0
  10. package/docs/plans/2026-02-23-ddd-architecture-refactor.md +1153 -0
  11. package/docs/plans/2026-02-23-ddd-nextsteps.md +682 -0
  12. package/docs/plans/2026-02-23-infra-architect-refactor.md +437 -0
  13. package/docs/plans/2026-02-23-nextjs-code-review-design.md +156 -0
  14. package/docs/plans/2026-02-23-nextjs-code-review-impl.md +1254 -0
  15. package/docs/plans/2026-02-23-nextjs-standards-design.md +149 -0
  16. package/docs/plans/2026-02-23-nextjs-standards-impl.md +1846 -0
  17. package/framework/{skills/level-2-domains → agents}/README.md +14 -14
  18. package/framework/{skills/level-2-domains → agents}/ai-agents/ai-system-architect.md +1 -4
  19. package/framework/{skills/level-2-domains → agents}/architecture/po-pm-advisor.md +1 -2
  20. package/framework/{skills/level-2-domains → agents}/architecture/prompt-engineer.md +1 -2
  21. package/framework/{skills/level-2-domains → agents}/architecture/seo-growth-hacker.md +1 -2
  22. package/framework/{skills/level-2-domains → agents}/architecture/standards-architect.md +159 -162
  23. package/framework/agents/backend/api-designer.md +103 -0
  24. package/framework/{skills/level-2-domains → agents}/backend/dotnet-senior.md +1 -2
  25. package/framework/agents/backend/ef-modeler.md +119 -0
  26. package/framework/{skills/level-2-domains → agents}/backend/hangfire-orchestrator.md +1 -4
  27. package/framework/{skills/level-2-domains → agents}/backend/ms-agent-expert.md +1 -4
  28. package/framework/{skills/level-2-domains → agents}/frontend/blazor-builder.md +1 -4
  29. package/framework/agents/frontend/nextjs-expert.md +118 -0
  30. package/framework/{skills/level-2-domains → agents}/frontend/ui-ux-designer.md +1 -2
  31. package/framework/{skills/level-2-domains → agents}/infrastructure/azure-architect.md +147 -148
  32. package/framework/{skills/level-2-domains → agents}/infrastructure/azure-deploy-specialist.md +1 -2
  33. package/framework/{skills/level-2-domains → agents}/infrastructure/bicep-architect.md +1 -4
  34. package/framework/{skills/level-2-domains → agents}/infrastructure/container-specialist.md +1 -4
  35. package/framework/{skills/level-2-domains → agents}/infrastructure/devops-engineer.md +1 -4
  36. package/framework/agents/infrastructure/infra-architect.md +45 -0
  37. package/framework/{skills/level-2-domains → agents}/integrations/asaas-financial.md +1 -4
  38. package/framework/{skills/level-2-domains → agents}/integrations/azure-identity.md +1 -4
  39. package/framework/{skills/level-2-domains → agents}/integrations/clerk-auth.md +1 -4
  40. package/framework/{skills/level-2-domains → agents}/integrations/hangfire-integration.md +1 -2
  41. package/framework/{skills/level-2-domains → agents}/integrations/resend-email.md +1 -4
  42. package/framework/{skills/level-2-domains → agents}/quality/code-analyzer.md +1 -4
  43. package/framework/{skills/level-2-domains → agents}/quality/testing-specialist.md +1 -4
  44. package/framework/agents.json +1145 -278
  45. package/framework/hooks/claude-code/statusline.py +384 -85
  46. package/framework/hooks/shared/phase-utils.js +129 -129
  47. package/framework/rules/frontend-standards.md +0 -3
  48. package/framework/rules/nextjs-standards.md +17 -0
  49. package/framework/skills/README.md +66 -0
  50. package/framework/skills/level-0-meta/{brainstorming.md → brainstorming/SKILL.md} +3 -1
  51. package/framework/skills/level-0-meta/brainstorming/references/proposal-example.md +138 -0
  52. package/framework/skills/level-0-meta/{code-review.md → code-review/SKILL.md} +3 -2
  53. package/framework/skills/level-0-meta/code-review/references/review-example.md +164 -0
  54. package/framework/skills/level-0-meta/code-review/scripts/scan-csharp.mjs +121 -0
  55. package/framework/skills/level-0-meta/code-review-nextjs/SKILL.md +147 -0
  56. package/framework/skills/level-0-meta/code-review-nextjs/references/review-example-nextjs.md +254 -0
  57. package/framework/skills/level-0-meta/{morph-checklist.md → morph-checklist/SKILL.md} +2 -5
  58. package/framework/skills/{level-1-workflows/morph-replicate.md → level-0-meta/morph-replicate/SKILL.md} +6 -7
  59. package/framework/skills/level-0-meta/{simulation-checklist.md → simulation-checklist/SKILL.md} +3 -6
  60. package/framework/skills/level-0-meta/{tool-usage-guide.md → tool-usage-guide/SKILL.md} +4 -5
  61. package/framework/skills/level-0-meta/{verification-before-completion.md → verification-before-completion/SKILL.md} +3 -1
  62. package/framework/skills/level-0-meta/verification-before-completion/scripts/check-phase-outputs.mjs +110 -0
  63. package/framework/skills/level-1-workflows/{phase-clarify.md → phase-clarify/SKILL.md} +3 -3
  64. package/framework/skills/level-1-workflows/phase-clarify/references/clarifications-example.md +117 -0
  65. package/framework/skills/level-1-workflows/{phase-codebase-analysis.md → phase-codebase-analysis/SKILL.md} +2 -3
  66. package/framework/skills/level-1-workflows/{phase-design.md → phase-design/SKILL.md} +46 -182
  67. package/framework/skills/level-1-workflows/phase-design/references/spec-example.md +253 -0
  68. package/framework/skills/level-1-workflows/{phase-implement.md → phase-implement/SKILL.md} +3 -3
  69. package/framework/skills/level-1-workflows/phase-implement/references/recap-example.md +132 -0
  70. package/framework/skills/level-1-workflows/{phase-setup.md → phase-setup/SKILL.md} +2 -3
  71. package/framework/skills/level-1-workflows/{phase-tasks.md → phase-tasks/SKILL.md} +42 -3
  72. package/framework/skills/level-1-workflows/phase-tasks/references/tasks-example.md +231 -0
  73. package/framework/skills/level-1-workflows/phase-tasks/scripts/validate-tasks.mjs +112 -0
  74. package/framework/skills/level-1-workflows/{phase-uiux.md → phase-uiux/SKILL.md} +2 -3
  75. package/framework/standards/STANDARDS.json +121 -0
  76. package/framework/standards/architecture/ddd/bounded-contexts.md +105 -0
  77. package/framework/standards/architecture/ddd/complexity-levels.md +108 -0
  78. package/framework/standards/architecture/ddd/ubiquitous-language.md +58 -0
  79. package/framework/standards/frontend/nextjs/app-router.md +123 -0
  80. package/framework/standards/frontend/nextjs/components.md +132 -0
  81. package/framework/standards/frontend/nextjs/data-fetching.md +126 -0
  82. package/framework/standards/frontend/nextjs/forms.md +128 -0
  83. package/framework/standards/frontend/nextjs/naming-conventions.md +67 -0
  84. package/framework/standards/frontend/nextjs/project-structure.md +102 -0
  85. package/framework/standards/frontend/nextjs/state-management.md +72 -0
  86. package/framework/standards/frontend/nextjs/testing.md +111 -0
  87. package/framework/templates/REGISTRY.json +538 -142
  88. package/framework/templates/code/dotnet/contracts/contracts-level1.cs +69 -0
  89. package/framework/templates/code/dotnet/contracts/contracts-level2.cs +86 -0
  90. package/framework/templates/code/dotnet/contracts/contracts-level3.cs +41 -0
  91. package/framework/templates/docs/spec.md +49 -0
  92. package/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -0
  93. package/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -0
  94. package/framework/templates/frontend/nextjs/env.mjs.hbs +32 -0
  95. package/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -0
  96. package/framework/templates/frontend/nextjs/page.tsx.hbs +22 -0
  97. package/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -0
  98. package/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -0
  99. package/framework/templates/project-structure/dotnet-ddd.md +70 -0
  100. package/framework/workflows/docs/enforcement-pipeline.md +2 -1
  101. package/package.json +1 -1
  102. package/scripts/scan-nextjs.mjs +169 -0
  103. package/src/commands/project/doctor.js +52 -1
  104. package/src/commands/project/init.js +19 -65
  105. package/src/commands/project/update.js +7 -63
  106. package/src/lib/detectors/claude-config-detector.js +1 -3
  107. package/src/lib/standards/standards-context-injector.js +5 -0
  108. package/src/lib/validators/nextjs/index.js +6 -0
  109. package/src/lib/validators/nextjs/next-component-validator.js +181 -0
  110. package/src/lib/validators/validation-runner.js +5 -0
  111. package/src/utils/agents-installer.js +16 -4
  112. package/src/utils/skills-installer.js +59 -15
  113. package/.morph/.morphversion +0 -5
  114. package/.morph/analytics/threads-log.jsonl +0 -44
  115. package/.morph/config/config.json +0 -8
  116. package/.morph/context/README.md +0 -17
  117. package/.morph/framework/agents.json +0 -948
  118. package/.morph/framework/standards/STANDARDS.json +0 -812
  119. package/.morph/framework/standards/ai-agents/blazor-ui.md +0 -364
  120. package/.morph/framework/standards/ai-agents/production.md +0 -415
  121. package/.morph/framework/standards/ai-agents/setup.md +0 -418
  122. package/.morph/framework/standards/ai-agents/team-orchestration.md +0 -479
  123. package/.morph/framework/standards/ai-agents/workflows.md +0 -354
  124. package/.morph/framework/standards/architecture/ddd/aggregates.md +0 -120
  125. package/.morph/framework/standards/architecture/ddd/entities.md +0 -99
  126. package/.morph/framework/standards/architecture/ddd/value-objects.md +0 -124
  127. package/.morph/framework/standards/backend/api/minimal-api.md +0 -494
  128. package/.morph/framework/standards/backend/api/rest.md +0 -492
  129. package/.morph/framework/standards/backend/api/validation.md +0 -88
  130. package/.morph/framework/standards/backend/authentication/passkeys.md +0 -428
  131. package/.morph/framework/standards/backend/database/ef-core.md +0 -199
  132. package/.morph/framework/standards/backend/database/migrations.md +0 -393
  133. package/.morph/framework/standards/backend/database/postgresql/database.md +0 -352
  134. package/.morph/framework/standards/backend/database/repository-patterns.md +0 -528
  135. package/.morph/framework/standards/backend/database/vector-search-rag.md +0 -541
  136. package/.morph/framework/standards/backend/dotnet/async.md +0 -366
  137. package/.morph/framework/standards/backend/dotnet/core.md +0 -117
  138. package/.morph/framework/standards/backend/dotnet/di.md +0 -439
  139. package/.morph/framework/standards/backend/dotnet/program-cs-checklist.md +0 -92
  140. package/.morph/framework/standards/backend/integrations/asaas/asaas-api.md +0 -216
  141. package/.morph/framework/standards/backend/integrations/clerk/clerk-auth.md +0 -290
  142. package/.morph/framework/standards/backend/integrations/hangfire/hangfire-jobs.md +0 -350
  143. package/.morph/framework/standards/backend/integrations/resend/resend-email.md +0 -385
  144. package/.morph/framework/standards/context/analytics.md +0 -96
  145. package/.morph/framework/standards/context/bundles.md +0 -110
  146. package/.morph/framework/standards/context/priming.md +0 -78
  147. package/.morph/framework/standards/core/architecture.md +0 -185
  148. package/.morph/framework/standards/core/coding.md +0 -214
  149. package/.morph/framework/standards/core/git-branching-strategy.md +0 -403
  150. package/.morph/framework/standards/core/git.md +0 -185
  151. package/.morph/framework/standards/core/testing.md +0 -295
  152. package/.morph/framework/standards/data/nosql/blob-storage.md +0 -102
  153. package/.morph/framework/standards/data/nosql/cache/redis.md +0 -97
  154. package/.morph/framework/standards/data/nosql/cosmos-db.md +0 -118
  155. package/.morph/framework/standards/data/vector-search/azure-ai-search.md +0 -121
  156. package/.morph/framework/standards/data/vector-search/rag-chunking.md +0 -104
  157. package/.morph/framework/standards/frontend/blazor/design-checklist.md +0 -222
  158. package/.morph/framework/standards/frontend/blazor/fluent-ui-setup.md +0 -595
  159. package/.morph/framework/standards/frontend/blazor/fluent-ui.md +0 -137
  160. package/.morph/framework/standards/frontend/blazor/html-conversion.md +0 -184
  161. package/.morph/framework/standards/frontend/blazor/lifecycle.md +0 -195
  162. package/.morph/framework/standards/frontend/blazor/pitfalls.md +0 -198
  163. package/.morph/framework/standards/frontend/blazor/state.md +0 -191
  164. package/.morph/framework/standards/frontend/design-system/animations.md +0 -151
  165. package/.morph/framework/standards/frontend/design-system/naming.md +0 -64
  166. package/.morph/framework/standards/frontend/nextjs/nextjs-patterns.md +0 -198
  167. package/.morph/framework/standards/infrastructure/azure/azure.md +0 -624
  168. package/.morph/framework/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -422
  169. package/.morph/framework/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -516
  170. package/.morph/framework/standards/infrastructure/azure/devops/local-development.md +0 -520
  171. package/.morph/framework/standards/infrastructure/azure/services/functions.md +0 -486
  172. package/.morph/framework/standards/infrastructure/azure/services/service-bus.md +0 -459
  173. package/.morph/framework/standards/infrastructure/azure/services/storage.md +0 -407
  174. package/.morph/framework/standards/infrastructure/docker/easypanel-deploy.md +0 -196
  175. package/.morph/framework/standards/infrastructure/supabase/mcp-setup.md +0 -252
  176. package/.morph/framework/standards/infrastructure/supabase/supabase-auth.md +0 -176
  177. package/.morph/framework/standards/infrastructure/supabase/supabase-pgvector.md +0 -169
  178. package/.morph/framework/standards/infrastructure/supabase/supabase-rls.md +0 -184
  179. package/.morph/framework/standards/infrastructure/supabase/supabase-storage.md +0 -153
  180. package/.morph/framework/standards/integration/api/graphql.md +0 -91
  181. package/.morph/framework/standards/integration/api/grpc.md +0 -114
  182. package/.morph/framework/standards/integration/api/rest-design.md +0 -95
  183. package/.morph/framework/standards/integration/event-driven/cqrs.md +0 -101
  184. package/.morph/framework/standards/integration/event-driven/event-sourcing.md +0 -124
  185. package/.morph/framework/standards/integration/event-driven/service-bus.md +0 -95
  186. package/.morph/framework/standards/integration/mcp/mcp-tools.md +0 -384
  187. package/.morph/framework/standards/observability/logging.md +0 -131
  188. package/.morph/framework/standards/observability/metrics.md +0 -121
  189. package/.morph/framework/standards/observability/monitoring.md +0 -114
  190. package/.morph/framework/standards/observability/tracing.md +0 -132
  191. package/.morph/framework/standards/workflows/parallel-execution.md +0 -112
  192. package/.morph/framework/standards/workflows/thread-management.md +0 -113
  193. package/.morph/framework/templates/.idea/morph-templates.xml +0 -92
  194. package/.morph/framework/templates/.vscode/morph-templates.code-snippets +0 -186
  195. package/.morph/framework/templates/IDE-SNIPPETS.md +0 -266
  196. package/.morph/framework/templates/README.md +0 -814
  197. package/.morph/framework/templates/REGISTRY.json +0 -1492
  198. package/.morph/framework/templates/code/dotnet/backend/repository.cs +0 -141
  199. package/.morph/framework/templates/code/dotnet/backend/service.cs +0 -139
  200. package/.morph/framework/templates/code/dotnet/contracts/Commands.cs +0 -74
  201. package/.morph/framework/templates/code/dotnet/contracts/Entities.cs +0 -25
  202. package/.morph/framework/templates/code/dotnet/contracts/Queries.cs +0 -74
  203. package/.morph/framework/templates/code/dotnet/contracts/README.md +0 -74
  204. package/.morph/framework/templates/code/dotnet/contracts/api-contracts.cs +0 -173
  205. package/.morph/framework/templates/code/dotnet/contracts/contracts.cs +0 -217
  206. package/.morph/framework/templates/code/dotnet/contracts/contracts.cs.hbs +0 -172
  207. package/.morph/framework/templates/code/dotnet/database/migration.cs +0 -83
  208. package/.morph/framework/templates/code/dotnet/frontend/component.razor +0 -239
  209. package/.morph/framework/templates/code/dotnet/jobs/agent.cs +0 -163
  210. package/.morph/framework/templates/code/dotnet/jobs/job.cs +0 -171
  211. package/.morph/framework/templates/code/dotnet/test.cs +0 -239
  212. package/.morph/framework/templates/code/sql/rls-policy.sql +0 -57
  213. package/.morph/framework/templates/code/sql/supabase-migration.sql +0 -100
  214. package/.morph/framework/templates/code/sql/supabase-migration.template.sql +0 -113
  215. package/.morph/framework/templates/code/typescript/contracts.ts +0 -168
  216. package/.morph/framework/templates/context/CONTEXT-FEATURE.md +0 -276
  217. package/.morph/framework/templates/context/CONTEXT.md +0 -181
  218. package/.morph/framework/templates/docs/clarifications.md +0 -253
  219. package/.morph/framework/templates/docs/onboarding.md +0 -123
  220. package/.morph/framework/templates/docs/proposal.md +0 -182
  221. package/.morph/framework/templates/docs/schema-analysis.md +0 -119
  222. package/.morph/framework/templates/docs/spec.md +0 -149
  223. package/.morph/framework/templates/docs/ui-components.md +0 -124
  224. package/.morph/framework/templates/docs/ui-design-system.md +0 -76
  225. package/.morph/framework/templates/docs/ui-flows.md +0 -167
  226. package/.morph/framework/templates/docs/ui-mockups.md +0 -98
  227. package/.morph/framework/templates/examples/design-system-examples.md +0 -357
  228. package/.morph/framework/templates/examples/spec-examples.md +0 -90
  229. package/.morph/framework/templates/feature/decisions.md +0 -187
  230. package/.morph/framework/templates/feature/recap.md +0 -146
  231. package/.morph/framework/templates/feature/tasks.md +0 -199
  232. package/.morph/framework/templates/infrastructure/azure/Dockerfile.example +0 -82
  233. package/.morph/framework/templates/infrastructure/azure/README.md +0 -286
  234. package/.morph/framework/templates/infrastructure/azure/app-insights.bicep +0 -63
  235. package/.morph/framework/templates/infrastructure/azure/app-service.bicep +0 -164
  236. package/.morph/framework/templates/infrastructure/azure/container-app-env.bicep +0 -49
  237. package/.morph/framework/templates/infrastructure/azure/container-app.bicep +0 -156
  238. package/.morph/framework/templates/infrastructure/azure/deploy-checklist.md +0 -426
  239. package/.morph/framework/templates/infrastructure/azure/deploy.ps1 +0 -229
  240. package/.morph/framework/templates/infrastructure/azure/deploy.sh +0 -208
  241. package/.morph/framework/templates/infrastructure/azure/key-vault.bicep +0 -91
  242. package/.morph/framework/templates/infrastructure/azure/main.bicep +0 -189
  243. package/.morph/framework/templates/infrastructure/azure/parameters.dev.json +0 -29
  244. package/.morph/framework/templates/infrastructure/azure/parameters.prod.json +0 -29
  245. package/.morph/framework/templates/infrastructure/azure/parameters.staging.json +0 -29
  246. package/.morph/framework/templates/infrastructure/azure/sql-database.bicep +0 -103
  247. package/.morph/framework/templates/infrastructure/azure/storage.bicep +0 -106
  248. package/.morph/framework/templates/infrastructure/docker/Dockerfile.template +0 -58
  249. package/.morph/framework/templates/infrastructure/docker/docker-compose.template.yml +0 -67
  250. package/.morph/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +0 -38
  251. package/.morph/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +0 -48
  252. package/.morph/framework/templates/infrastructure/docker/easypanel.template.json +0 -54
  253. package/.morph/framework/templates/infrastructure/github/README.md +0 -593
  254. package/.morph/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +0 -22
  255. package/.morph/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +0 -45
  256. package/.morph/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +0 -27
  257. package/.morph/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +0 -61
  258. package/.morph/framework/templates/infrastructure/github/workflows/deploy-easypanel.yml.hbs +0 -31
  259. package/.morph/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +0 -59
  260. package/.morph/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +0 -39
  261. package/.morph/framework/templates/integrations/asaas-client.cs +0 -387
  262. package/.morph/framework/templates/integrations/asaas-webhook.cs +0 -351
  263. package/.morph/framework/templates/integrations/azure-identity-config.cs +0 -288
  264. package/.morph/framework/templates/integrations/clerk-config.cs +0 -258
  265. package/.morph/framework/templates/meta-prompts/fusion/fusion-agent.md +0 -76
  266. package/.morph/framework/templates/meta-prompts/fusion/fusion-aggregator.md +0 -100
  267. package/.morph/framework/templates/meta-prompts/hops/hop-retry.md +0 -78
  268. package/.morph/framework/templates/meta-prompts/hops/hop-validation.md +0 -97
  269. package/.morph/framework/templates/meta-prompts/hops/hop-wrapper.md +0 -36
  270. package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +0 -113
  271. package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +0 -80
  272. package/.morph/framework/templates/meta-prompts/squad-leaders/backend-squad.md +0 -90
  273. package/.morph/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +0 -126
  274. package/.morph/framework/templates/meta-prompts/squad-leaders/squad-leader.md +0 -43
  275. package/.morph/framework/templates/meta-prompts/validators/checkpoint-validator.md +0 -107
  276. package/.morph/framework/templates/meta-prompts/validators/pre-commit-validator.md +0 -95
  277. package/.morph/framework/templates/saas/subscription.cs +0 -347
  278. package/.morph/framework/templates/saas/tenant.cs +0 -338
  279. package/.morph/framework/templates/state.template.json +0 -17
  280. package/.morph/framework/templates/ui/FluentDesignTheme.cs +0 -149
  281. package/.morph/framework/templates/ui/MudTheme.cs +0 -281
  282. package/.morph/framework/templates/ui/design-system.css +0 -226
  283. package/.morph/logs/tool-failures.log +0 -51
  284. package/.morph/memory/pre-compact-2026-02-22T17-01-01-658Z.json +0 -16
  285. package/.morph/state.json +0 -48
  286. package/framework/skills/level-2-domains/backend/api-designer.md +0 -66
  287. package/framework/skills/level-2-domains/backend/ef-modeler.md +0 -65
  288. package/framework/skills/level-2-domains/frontend/nextjs-expert.md +0 -161
  289. package/framework/skills/level-3-technologies/README.md +0 -7
  290. package/framework/skills/level-4-patterns/README.md +0 -7
  291. package/framework/templates/code/dotnet/contracts/contracts.cs +0 -217
  292. package/framework/templates/code/dotnet/contracts/contracts.cs.hbs +0 -172
@@ -1,258 +0,0 @@
1
- // ==============================================================================
2
- // MORPH-SPEC - Clerk Authentication Configuration Template
3
- // Configuração de autenticação com Clerk para .NET
4
- // ==============================================================================
5
-
6
- using Microsoft.AspNetCore.Authentication;
7
- using Microsoft.AspNetCore.Components.Authorization;
8
- using System.Security.Claims;
9
-
10
- namespace {{Namespace}}.Infrastructure.Auth;
11
-
12
- // ==============================================================================
13
- // OPTIONS
14
- // ==============================================================================
15
-
16
- public class ClerkOptions
17
- {
18
- public const string SectionName = "Clerk";
19
-
20
- /// <summary>
21
- /// Clerk Secret Key (starts with sk_)
22
- /// </summary>
23
- public string SecretKey { get; set; } = string.Empty;
24
-
25
- /// <summary>
26
- /// Clerk Publishable Key (starts with pk_)
27
- /// </summary>
28
- public string PublishableKey { get; set; } = string.Empty;
29
-
30
- /// <summary>
31
- /// Clerk Frontend API URL
32
- /// </summary>
33
- public string FrontendApi { get; set; } = string.Empty;
34
- }
35
-
36
- // ==============================================================================
37
- // SERVICE EXTENSIONS
38
- // ==============================================================================
39
-
40
- public static class ClerkServiceExtensions
41
- {
42
- /// <summary>
43
- /// Adiciona autenticação Clerk ao projeto
44
- /// Requer: Clerk.Net.AspNetCore.Security
45
- /// </summary>
46
- public static IServiceCollection AddClerkAuthentication(
47
- this IServiceCollection services,
48
- IConfiguration configuration)
49
- {
50
- services.Configure<ClerkOptions>(configuration.GetSection(ClerkOptions.SectionName));
51
-
52
- // Opção 1: Usando Clerk.Net SDK oficial
53
- // services.AddClerk(configuration);
54
-
55
- // Opção 2: Configuração manual com JWT
56
- services.AddAuthentication("Clerk")
57
- .AddJwtBearer("Clerk", options =>
58
- {
59
- var clerkOptions = configuration.GetSection(ClerkOptions.SectionName).Get<ClerkOptions>()!;
60
-
61
- options.Authority = clerkOptions.FrontendApi;
62
- options.TokenValidationParameters = new()
63
- {
64
- ValidateIssuer = true,
65
- ValidateAudience = false,
66
- ValidateLifetime = true,
67
- ValidateIssuerSigningKey = true,
68
- NameClaimType = ClaimTypes.NameIdentifier
69
- };
70
- });
71
-
72
- services.AddAuthorization();
73
-
74
- return services;
75
- }
76
-
77
- /// <summary>
78
- /// Adiciona Clerk para Blazor Server
79
- /// </summary>
80
- public static IServiceCollection AddClerkBlazor(
81
- this IServiceCollection services,
82
- IConfiguration configuration)
83
- {
84
- services.AddClerkAuthentication(configuration);
85
- services.AddScoped<AuthenticationStateProvider, ClerkAuthenticationStateProvider>();
86
- services.AddCascadingAuthenticationState();
87
-
88
- return services;
89
- }
90
- }
91
-
92
- // ==============================================================================
93
- // AUTHENTICATION STATE PROVIDER (Blazor)
94
- // ==============================================================================
95
-
96
- public class ClerkAuthenticationStateProvider : AuthenticationStateProvider
97
- {
98
- private readonly IHttpContextAccessor _httpContextAccessor;
99
-
100
- public ClerkAuthenticationStateProvider(IHttpContextAccessor httpContextAccessor)
101
- {
102
- _httpContextAccessor = httpContextAccessor;
103
- }
104
-
105
- public override Task<AuthenticationState> GetAuthenticationStateAsync()
106
- {
107
- var user = _httpContextAccessor.HttpContext?.User ?? new ClaimsPrincipal();
108
- return Task.FromResult(new AuthenticationState(user));
109
- }
110
-
111
- public void NotifyAuthenticationStateChanged()
112
- {
113
- NotifyAuthenticationStateChanged(GetAuthenticationStateAsync());
114
- }
115
- }
116
-
117
- // ==============================================================================
118
- // CLERK USER SERVICE
119
- // ==============================================================================
120
-
121
- public interface IClerkUserService
122
- {
123
- Task<ClerkUser?> GetCurrentUserAsync(CancellationToken ct = default);
124
- Task<ClerkUser?> GetUserByIdAsync(string userId, CancellationToken ct = default);
125
- Task UpdateUserMetadataAsync(string userId, Dictionary<string, object> metadata, CancellationToken ct = default);
126
- }
127
-
128
- public class ClerkUserService : IClerkUserService
129
- {
130
- private readonly HttpClient _httpClient;
131
- private readonly IHttpContextAccessor _httpContextAccessor;
132
- private readonly ILogger<ClerkUserService> _logger;
133
-
134
- public ClerkUserService(
135
- HttpClient httpClient,
136
- IHttpContextAccessor httpContextAccessor,
137
- ILogger<ClerkUserService> logger)
138
- {
139
- _httpClient = httpClient;
140
- _httpContextAccessor = httpContextAccessor;
141
- _logger = logger;
142
- }
143
-
144
- public async Task<ClerkUser?> GetCurrentUserAsync(CancellationToken ct = default)
145
- {
146
- var userId = _httpContextAccessor.HttpContext?.User.FindFirstValue(ClaimTypes.NameIdentifier);
147
- if (string.IsNullOrEmpty(userId)) return null;
148
-
149
- return await GetUserByIdAsync(userId, ct);
150
- }
151
-
152
- public async Task<ClerkUser?> GetUserByIdAsync(string userId, CancellationToken ct = default)
153
- {
154
- try
155
- {
156
- var response = await _httpClient.GetAsync($"users/{userId}", ct);
157
-
158
- if (!response.IsSuccessStatusCode)
159
- {
160
- _logger.LogWarning("Failed to get Clerk user {UserId}: {Status}", userId, response.StatusCode);
161
- return null;
162
- }
163
-
164
- return await response.Content.ReadFromJsonAsync<ClerkUser>(ct);
165
- }
166
- catch (Exception ex)
167
- {
168
- _logger.LogError(ex, "Error getting Clerk user {UserId}", userId);
169
- return null;
170
- }
171
- }
172
-
173
- public async Task UpdateUserMetadataAsync(string userId, Dictionary<string, object> metadata, CancellationToken ct = default)
174
- {
175
- var request = new { public_metadata = metadata };
176
- var response = await _httpClient.PatchAsJsonAsync($"users/{userId}", request, ct);
177
- response.EnsureSuccessStatusCode();
178
- }
179
- }
180
-
181
- // ==============================================================================
182
- // CLERK USER MODEL
183
- // ==============================================================================
184
-
185
- public record ClerkUser
186
- {
187
- public string Id { get; init; } = string.Empty;
188
- public string? FirstName { get; init; }
189
- public string? LastName { get; init; }
190
- public string? ImageUrl { get; init; }
191
- public List<ClerkEmailAddress>? EmailAddresses { get; init; }
192
- public string? PrimaryEmailAddressId { get; init; }
193
- public Dictionary<string, object>? PublicMetadata { get; init; }
194
- public long CreatedAt { get; init; }
195
- public long UpdatedAt { get; init; }
196
-
197
- public string? PrimaryEmail => EmailAddresses?
198
- .FirstOrDefault(e => e.Id == PrimaryEmailAddressId)?.EmailAddress;
199
-
200
- public string FullName => $"{FirstName} {LastName}".Trim();
201
- }
202
-
203
- public record ClerkEmailAddress
204
- {
205
- public string Id { get; init; } = string.Empty;
206
- public string EmailAddress { get; init; } = string.Empty;
207
- public bool Verified { get; init; }
208
- }
209
-
210
- // ==============================================================================
211
- // MIDDLEWARE PIPELINE
212
- // ==============================================================================
213
-
214
- public static class ClerkMiddlewareExtensions
215
- {
216
- public static IApplicationBuilder UseClerkAuthentication(this IApplicationBuilder app)
217
- {
218
- app.UseAuthentication();
219
- app.UseAuthorization();
220
- return app;
221
- }
222
- }
223
-
224
- // ==============================================================================
225
- // APPSETTINGS EXAMPLE
226
- // ==============================================================================
227
-
228
- /*
229
- {
230
- "Clerk": {
231
- "SecretKey": "sk_test_xxxxx",
232
- "PublishableKey": "pk_test_xxxxx",
233
- "FrontendApi": "https://your-app.clerk.accounts.dev"
234
- }
235
- }
236
- */
237
-
238
- // ==============================================================================
239
- // PROGRAM.CS EXAMPLE
240
- // ==============================================================================
241
-
242
- /*
243
- // Program.cs
244
- var builder = WebApplication.CreateBuilder(args);
245
-
246
- // Add Clerk authentication
247
- builder.Services.AddClerkAuthentication(builder.Configuration);
248
- // Or for Blazor:
249
- // builder.Services.AddClerkBlazor(builder.Configuration);
250
-
251
- var app = builder.Build();
252
-
253
- app.UseClerkAuthentication();
254
-
255
- app.MapControllers().RequireAuthorization();
256
-
257
- app.Run();
258
- */
@@ -1,76 +0,0 @@
1
- # Fusion Agent — {{AGENT_ID}} (F-Thread {{THREAD_INDEX}}/{{THREAD_COUNT}})
2
-
3
- You are **Fusion Agent {{THREAD_INDEX}}** in a best-of-N execution session.
4
-
5
- ## Your Identity
6
- - Agent: {{AGENT_ID}}
7
- - Role: Fusion Participant (F-Thread)
8
- - Thread: {{THREAD_ID}}
9
- - Instance: {{THREAD_INDEX}} of {{THREAD_COUNT}}
10
- - Strategy: {{FUSION_STRATEGY}}
11
-
12
- ## Mission
13
- Produce an **independent, high-quality implementation** of the task below. You are competing with {{THREAD_COUNT_MINUS_ONE}} other agents — the best result wins.
14
-
15
- ## The Task
16
- {{TASK_DESCRIPTION}}
17
-
18
- ## Spec Context
19
- {{SPEC_SUMMARY}}
20
-
21
- ## Your Approach Hint
22
- {{#if THREAD_INDEX == 1}}
23
- **Approach: Standard/Recommended**
24
- Follow the most conventional, well-tested approach. Prioritize clarity and maintainability over cleverness.
25
- {{/if}}
26
- {{#if THREAD_INDEX == 2}}
27
- **Approach: Alternative/Creative**
28
- Consider an alternative implementation. What would a different architectural style look like? Explore a different pattern while still meeting all requirements.
29
- {{/if}}
30
- {{#if THREAD_INDEX == 3}}
31
- **Approach: Optimized**
32
- Focus on performance, token efficiency, and minimal complexity. What is the leanest implementation that fully satisfies requirements?
33
- {{/if}}
34
-
35
- ## Standards to Follow
36
- {{STANDARDS}}
37
-
38
- ## Deliverables
39
- {{DELIVERABLES}}
40
-
41
- ## Scoring Criteria
42
-
43
- Your output will be scored on:
44
- 1. **Completeness (40%)** — Did you implement everything in the requirements?
45
- 2. **Standards compliance (30%)** — Do you pass architecture and security validators?
46
- 3. **Code quality (30%)** — Is the code clean, readable, and maintainable?
47
-
48
- ## Output Format
49
-
50
- Structure your output as:
51
-
52
- ```
53
- FUSION AGENT REPORT
54
- Agent: {{AGENT_ID}}
55
- Thread: {{THREAD_ID}}
56
- Approach: [brief description of your approach]
57
-
58
- IMPLEMENTATION:
59
- [your actual implementation]
60
-
61
- SELF-ASSESSMENT:
62
- Completeness: [X/10] — [brief justification]
63
- Standards: [X/10] — [validators passed/failed]
64
- Quality: [X/10] — [brief justification]
65
-
66
- FILES CREATED/MODIFIED:
67
- - [list each file]
68
-
69
- APPROACH RATIONALE:
70
- [explain your key design decisions in 2-3 sentences]
71
- ```
72
-
73
- ## Important
74
- - Work independently — do NOT coordinate with other fusion threads
75
- - Be decisive — don't hedge or produce "option A / option B" — commit to one implementation
76
- - Self-assess honestly — the aggregator uses your self-assessment in scoring
@@ -1,100 +0,0 @@
1
- # Fusion Aggregator — {{SESSION_ID}}
2
-
3
- You are the **Fusion Aggregator** — you select the best result from {{THREAD_COUNT}} competing implementations.
4
-
5
- ## Session Identity
6
- - Aggregator Role: Fusion Judge
7
- - Session: {{SESSION_ID}}
8
- - Feature: {{FEATURE_NAME}}
9
- - Strategy: {{FUSION_STRATEGY}}
10
- - Threads evaluated: {{THREAD_COUNT}}
11
-
12
- ## Results to Evaluate
13
-
14
- {{FUSION_RESULTS}}
15
-
16
- Each result includes:
17
- - Implementation code/files
18
- - Agent's self-assessment (completeness, standards, quality)
19
- - Files created/modified
20
-
21
- ## Evaluation Criteria
22
-
23
- Score each result 0-10 on three dimensions:
24
-
25
- ### 1. Completeness (40% weight)
26
- - Does it implement ALL requirements from the spec?
27
- - Are edge cases handled?
28
- - Are deliverables complete (no TODOs, no stubs)?
29
-
30
- ### 2. Standards Compliance (30% weight)
31
- - Architecture patterns correct (DI, async/await, layer separation)?
32
- - Security requirements met (no secrets, input validation)?
33
- - Code follows project conventions?
34
-
35
- ### 3. Code Quality (30% weight)
36
- - Is the code readable and maintainable?
37
- - Is it appropriately simple (not over-engineered)?
38
- - Naming conventions followed?
39
- - No obvious bugs or anti-patterns?
40
-
41
- ## Aggregation Strategy
42
-
43
- {{#if STRATEGY == "best-of-n"}}
44
- ### Best-of-N Strategy
45
- Select the single highest-scoring result. Use it as-is (do not merge).
46
-
47
- Tiebreaker: prefer the result with higher standards compliance score.
48
- {{/if}}
49
-
50
- {{#if STRATEGY == "consensus"}}
51
- ### Consensus Strategy
52
- Identify elements that appear in 2+ results (majority vote). Synthesize a final implementation using the most common patterns, selecting the best version of each component.
53
-
54
- Structure your output as a synthesized implementation, not a selection.
55
- {{/if}}
56
-
57
- {{#if STRATEGY == "manual-select"}}
58
- ### Manual Select Strategy
59
- Present all results with your scoring to the user. Do NOT make a final selection — let the user choose.
60
- {{/if}}
61
-
62
- ## Your Output
63
-
64
- ### Scoring Table
65
- ```
66
- | Thread | Agent | Completeness | Standards | Quality | TOTAL |
67
- |--------|-------|-------------|-----------|---------|-------|
68
- | T-001 | {{AGENT_1}} | X/10 | X/10 | X/10 | XX/30 |
69
- | T-002 | {{AGENT_2}} | X/10 | X/10 | X/10 | XX/30 |
70
- | T-003 | {{AGENT_3}} | X/10 | X/10 | X/10 | XX/30 |
71
- ```
72
-
73
- ### Winner Selection
74
- ```
75
- FUSION RESULT
76
- Session: {{SESSION_ID}}
77
- Winner: Thread {{WINNING_THREAD}} (Agent: {{WINNING_AGENT}})
78
- Score: {{WINNING_SCORE}}/30
79
- Strategy: {{FUSION_STRATEGY}}
80
-
81
- Key strengths of winning implementation:
82
- - [reason 1]
83
- - [reason 2]
84
-
85
- Areas where other implementations excelled:
86
- - [any cross-thread insights worth preserving]
87
- ```
88
-
89
- ### Final Implementation
90
- [Include the winning implementation in full, or merged implementation for consensus strategy]
91
-
92
- ### Files to Apply
93
- ```
94
- - [each file from winning/merged result]
95
- ```
96
-
97
- ## Important Notes
98
- - Be objective — don't favor any particular agent
99
- - If all results are poor (< 15/30), flag for human review rather than selecting
100
- - Note any elements from non-winning results worth cherry-picking
@@ -1,78 +0,0 @@
1
- # HOP Retry — Attempt {{RETRY_COUNT}}/{{MAX_RETRIES}}
2
-
3
- You are retrying a previously failed task. This HOP provides failure context and adjusted guidance.
4
-
5
- ## Retry Context
6
- - Feature: {{FEATURE_NAME}}
7
- - Agent: {{AGENT_ID}}
8
- - Attempt: {{RETRY_COUNT}} of {{MAX_RETRIES}}
9
- - Original task: {{TASK_ID}}
10
-
11
- ## Previous Failure Analysis
12
-
13
- ### What Failed
14
- {{FAILURE_DESCRIPTION}}
15
-
16
- ### Error Details
17
- ```
18
- {{ERROR_DETAILS}}
19
- ```
20
-
21
- ### What Was Tried
22
- {{PREVIOUS_ATTEMPTS}}
23
-
24
- ## Adjusted Approach for This Attempt
25
-
26
- {{#if RETRY_COUNT == 1}}
27
- ### First Retry: Minor Adjustments
28
- - Review the error message carefully
29
- - Check standards compliance (most common cause)
30
- - Verify file paths and imports
31
- - Try the same approach with the specific error fixed
32
- {{/if}}
33
-
34
- {{#if RETRY_COUNT == 2}}
35
- ### Second Retry: Alternative Approach
36
- - The direct approach failed twice — try an alternative
37
- - Simplify: can you achieve the goal with less complexity?
38
- - Check if dependencies are available (imports, packages)
39
- - Consider a different implementation pattern
40
- {{/if}}
41
-
42
- {{#if RETRY_COUNT == 3}}
43
- ### Final Retry: Escalation-Ready
44
- - This is the last automated attempt
45
- - Try the simplest possible implementation
46
- - If this fails, provide detailed diagnostic info for human escalation
47
- - Document exactly why each approach failed
48
- {{/if}}
49
-
50
- ## Original Task
51
- {{ORIGINAL_TASK_DESCRIPTION}}
52
-
53
- ## Constraints (Unchanged)
54
- {{CONSTRAINTS}}
55
-
56
- ## How to Report
57
-
58
- If this attempt succeeds:
59
- ```
60
- RETRY SUCCESS
61
- Attempt: {{RETRY_COUNT}}
62
- Fixed: [what you changed from previous attempt]
63
- Files: [created/modified]
64
- ```
65
-
66
- If this attempt fails:
67
- ```
68
- RETRY FAILED
69
- Attempt: {{RETRY_COUNT}}
70
- Error: [exact error message]
71
- Root cause hypothesis: [your analysis]
72
- Escalation needed: [what human decision is required]
73
- ```
74
-
75
- {{#if RETRY_COUNT >= MAX_RETRIES}}
76
- ## ⚠️ Final Attempt
77
- If this attempt fails, the task will be escalated to the user. Provide maximum diagnostic detail.
78
- {{/if}}
@@ -1,97 +0,0 @@
1
- # HOP Validation — {{VALIDATION_TYPE}}
2
-
3
- You are a **Validation Agent** running a focused review of work produced by another agent.
4
-
5
- ## Validation Identity
6
- - Validator Type: {{VALIDATION_TYPE}}
7
- - Reviewing Agent: {{REVIEWED_AGENT}}
8
- - Feature: {{FEATURE_NAME}}
9
- - Checkpoint: {{CHECKPOINT_NUM}}
10
-
11
- ## What to Validate
12
-
13
- ### Files Under Review
14
- {{FILES_TO_REVIEW}}
15
-
16
- ### Validation Criteria
17
- {{VALIDATION_CRITERIA}}
18
-
19
- ## Validation Checklist
20
-
21
- {{#if IS_ARCHITECTURE}}
22
- ### Architecture Validation
23
- - [ ] No DbContext injected directly in Blazor components (use IDbContextFactory)
24
- - [ ] Services registered in correct DI order
25
- - [ ] No async void (except event handlers)
26
- - [ ] Clean Architecture layers respected (no domain depending on infrastructure)
27
- - [ ] No circular dependencies between services
28
- - [ ] Repository pattern used for data access
29
- {{/if}}
30
-
31
- {{#if IS_SECURITY}}
32
- ### Security Validation
33
- - [ ] No hardcoded secrets, passwords, API keys, or connection strings
34
- - [ ] All user inputs validated (FluentValidation or data annotations)
35
- - [ ] SQL queries use parameterization (no string interpolation in queries)
36
- - [ ] No XSS vulnerabilities (no raw HTML rendering of user input)
37
- - [ ] Authentication required on protected endpoints
38
- - [ ] Authorization checks in place (not just authentication)
39
- - [ ] Sensitive data not logged
40
- {{/if}}
41
-
42
- {{#if IS_DESIGN_SYSTEM}}
43
- ### Design System Validation
44
- - [ ] Only CSS variables used (no hardcoded hex colors)
45
- - [ ] Spacing in multiples of 4px (4, 8, 12, 16, 24, 32, 48, 64)
46
- - [ ] Typography uses design tokens (`var(--font-size-*)`)
47
- - [ ] Components use design system components (Fluent UI / MudBlazor / shadcn)
48
- - [ ] No inline styles (unless required for dynamic values)
49
- - [ ] Responsive breakpoints used correctly
50
- {{/if}}
51
-
52
- {{#if IS_PACKAGES}}
53
- ### Package Validation
54
- - [ ] No duplicate package references in .csproj
55
- - [ ] No version conflicts (NU1605/NU1608 warnings)
56
- - [ ] Azure.Identity explicitly specified (not transitively assumed)
57
- - [ ] All packages compatible with .NET 10
58
- - [ ] No deprecated packages used
59
- {{/if}}
60
-
61
- ## Output Format
62
-
63
- Provide a structured validation report:
64
-
65
- ```
66
- VALIDATION REPORT
67
- Type: {{VALIDATION_TYPE}}
68
- Feature: {{FEATURE_NAME}}
69
- Checkpoint: {{CHECKPOINT_NUM}}
70
- Status: [PASSED | FAILED | WARNING]
71
-
72
- Errors (block progress):
73
- - [list each error with file:line reference]
74
-
75
- Warnings (non-blocking):
76
- - [list each warning with recommendation]
77
-
78
- Passed Checks:
79
- - [list checks that passed]
80
-
81
- Files Reviewed: X
82
- Issues Found: Y errors, Z warnings
83
- ```
84
-
85
- ## Severity Levels
86
-
87
- | Severity | Meaning | Blocks Progress? |
88
- |----------|---------|-----------------|
89
- | `error` | Violates critical standard | ✅ Yes |
90
- | `warning` | Suboptimal but functional | ⚠️ No |
91
- | `info` | Suggestion for improvement | ℹ️ No |
92
-
93
- ## Escalation
94
- If you find errors that require design decisions (not just fixes), flag with:
95
- ```
96
- ESCALATION NEEDED: [description of decision required]
97
- ```
@@ -1,36 +0,0 @@
1
- # HOP Wrapper — {{HOP_NAME}}
2
-
3
- This is a **Higher-Order Prompt (HOP)** that wraps another prompt with additional context and constraints.
4
-
5
- ## Wrapped Prompt
6
- {{INNER_PROMPT}}
7
-
8
- ## Additional Context Injected by HOP
9
-
10
- ### Feature Context
11
- - Feature: {{FEATURE_NAME}}
12
- - Phase: {{PHASE}}
13
- - Agent: {{AGENT_ID}}
14
-
15
- ### Standards Override
16
- {{#if STANDARDS_OVERRIDE}}
17
- For this execution, prioritize these standards over defaults:
18
- {{STANDARDS_OVERRIDE}}
19
- {{/if}}
20
-
21
- ### Pre-Execution Checklist
22
- Before executing the wrapped prompt, verify:
23
- {{PRE_CONDITIONS}}
24
-
25
- ### Post-Execution Checklist
26
- After executing the wrapped prompt, verify:
27
- {{POST_CONDITIONS}}
28
-
29
- ## HOP Metadata
30
- - HOP Type: wrapper
31
- - Version: {{HOP_VERSION}}
32
- - Created: {{DATE}}
33
- - Applied to: {{AGENT_ID}}
34
-
35
- ## Execution Note
36
- The agent receiving this HOP should execute the inner prompt with the additional context above applied throughout their work. The pre/post checklists are mandatory checkpoints.