@polymorphism-tech/morph-spec 4.3.3 → 4.3.5

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 (488) hide show
  1. package/.morph/.morphversion +5 -0
  2. package/.morph/analytics/threads-log.jsonl +9 -0
  3. package/{stacks/blazor-azure/.morph → .morph}/config/agents.json +948 -948
  4. package/.morph/config/config.json +9 -0
  5. package/{stacks/blazor-azure/.morph → .morph}/project/context/README.md +1 -1
  6. package/.morph/project/context/detection-log.md +16 -0
  7. package/.morph/project/standards/inferred.md +59 -0
  8. package/.morph/state.json +48 -0
  9. package/.morph/templates/.idea/morph-templates.xml +92 -0
  10. package/.morph/templates/.vscode/morph-templates.code-snippets +186 -0
  11. package/.morph/templates/IDE-SNIPPETS.md +266 -0
  12. package/.morph/templates/README.md +814 -0
  13. package/.morph/templates/REGISTRY.json +1677 -0
  14. package/.morph/templates/code/dotnet/backend/repository.cs +141 -0
  15. package/.morph/templates/code/dotnet/backend/service.cs +139 -0
  16. package/.morph/templates/code/dotnet/contracts/Commands.cs +74 -0
  17. package/.morph/templates/code/dotnet/contracts/Entities.cs +25 -0
  18. package/.morph/templates/code/dotnet/contracts/Queries.cs +74 -0
  19. package/.morph/templates/code/dotnet/contracts/README.md +74 -0
  20. package/.morph/templates/code/dotnet/contracts/api-contracts.cs +173 -0
  21. package/.morph/templates/code/dotnet/contracts/contracts.cs +217 -0
  22. package/.morph/templates/code/dotnet/database/migration.cs +83 -0
  23. package/.morph/templates/code/dotnet/frontend/component.razor +239 -0
  24. package/.morph/templates/code/dotnet/jobs/agent.cs +163 -0
  25. package/.morph/templates/code/dotnet/jobs/job.cs +171 -0
  26. package/.morph/templates/code/dotnet/test.cs +239 -0
  27. package/.morph/templates/code/sql/rls-policy.sql +57 -0
  28. package/.morph/templates/code/sql/supabase-migration.sql +100 -0
  29. package/.morph/templates/code/sql/supabase-migration.template.sql +113 -0
  30. package/.morph/templates/code/typescript/contracts.ts +168 -0
  31. package/.morph/templates/context/CONTEXT-FEATURE.md +276 -0
  32. package/.morph/templates/context/CONTEXT.md +181 -0
  33. package/.morph/templates/docs/proposal.md +182 -0
  34. package/.morph/templates/docs/spec.md +149 -0
  35. package/.morph/templates/examples/design-system-examples.md +357 -0
  36. package/.morph/templates/examples/spec-examples.md +90 -0
  37. package/.morph/templates/feature/decisions.md +187 -0
  38. package/.morph/templates/feature/recap.md +146 -0
  39. package/.morph/templates/feature/tasks.md +199 -0
  40. package/.morph/templates/infrastructure/azure/Dockerfile.example +82 -0
  41. package/.morph/templates/infrastructure/azure/README.md +286 -0
  42. package/.morph/templates/infrastructure/azure/app-insights.bicep +63 -0
  43. package/.morph/templates/infrastructure/azure/app-service.bicep +164 -0
  44. package/.morph/templates/infrastructure/azure/container-app-env.bicep +49 -0
  45. package/.morph/templates/infrastructure/azure/container-app.bicep +156 -0
  46. package/.morph/templates/infrastructure/azure/deploy-checklist.md +426 -0
  47. package/.morph/templates/infrastructure/azure/deploy.ps1 +229 -0
  48. package/.morph/templates/infrastructure/azure/deploy.sh +208 -0
  49. package/.morph/templates/infrastructure/azure/key-vault.bicep +91 -0
  50. package/.morph/templates/infrastructure/azure/main.bicep +189 -0
  51. package/.morph/templates/infrastructure/azure/parameters.dev.json +29 -0
  52. package/.morph/templates/infrastructure/azure/parameters.prod.json +29 -0
  53. package/.morph/templates/infrastructure/azure/parameters.staging.json +29 -0
  54. package/.morph/templates/infrastructure/azure/sql-database.bicep +103 -0
  55. package/.morph/templates/infrastructure/azure/storage.bicep +106 -0
  56. package/.morph/templates/infrastructure/docker/Dockerfile.template +58 -0
  57. package/.morph/templates/infrastructure/docker/docker-compose.template.yml +67 -0
  58. package/.morph/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -0
  59. package/.morph/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -0
  60. package/.morph/templates/infrastructure/docker/easypanel.template.json +54 -0
  61. package/.morph/templates/infrastructure/github/README.md +593 -0
  62. package/.morph/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +22 -0
  63. package/.morph/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +45 -0
  64. package/.morph/templates/infrastructure/github/actions/health-check/action.yml.hbs +27 -0
  65. package/.morph/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +61 -0
  66. package/.morph/templates/infrastructure/github/workflows/deploy-easypanel.yml.hbs +31 -0
  67. package/.morph/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +59 -0
  68. package/.morph/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +39 -0
  69. package/.morph/templates/integrations/asaas-client.cs +387 -0
  70. package/.morph/templates/integrations/asaas-webhook.cs +351 -0
  71. package/.morph/templates/integrations/azure-identity-config.cs +288 -0
  72. package/.morph/templates/integrations/clerk-config.cs +258 -0
  73. package/.morph/templates/meta-prompts/fusion/fusion-agent.md +76 -0
  74. package/.morph/templates/meta-prompts/fusion/fusion-aggregator.md +100 -0
  75. package/.morph/templates/meta-prompts/hops/hop-retry.md +78 -0
  76. package/.morph/templates/meta-prompts/hops/hop-validation.md +97 -0
  77. package/.morph/templates/meta-prompts/hops/hop-wrapper.md +36 -0
  78. package/.morph/templates/meta-prompts/parallel-workers/parallel-coordinator.md +113 -0
  79. package/.morph/templates/meta-prompts/parallel-workers/parallel-worker.md +80 -0
  80. package/.morph/templates/meta-prompts/squad-leaders/backend-squad.md +90 -0
  81. package/.morph/templates/meta-prompts/squad-leaders/frontend-squad.md +126 -0
  82. package/.morph/templates/meta-prompts/squad-leaders/squad-leader.md +43 -0
  83. package/.morph/templates/meta-prompts/validators/checkpoint-validator.md +107 -0
  84. package/.morph/templates/meta-prompts/validators/pre-commit-validator.md +95 -0
  85. package/.morph/templates/saas/subscription.cs +347 -0
  86. package/.morph/templates/saas/tenant.cs +338 -0
  87. package/.morph/templates/state.template.json +17 -0
  88. package/.morph/templates/ui/FluentDesignTheme.cs +149 -0
  89. package/.morph/templates/ui/MudTheme.cs +281 -0
  90. package/.morph/templates/ui/design-system.css +226 -0
  91. package/bin/detect-agents.js +1 -2
  92. package/bin/morph-spec.js +1 -14
  93. package/framework/agents.json +948 -0
  94. package/{stacks/nextjs-supabase/.claude → framework}/commands/morph-infra.md +1 -1
  95. package/framework/hooks/README.md +282 -0
  96. package/framework/hooks/agent-stop/validate-and-continue.js +96 -0
  97. package/framework/hooks/agent-stop/validate-checkpoints.js +101 -0
  98. package/framework/hooks/agent-stop/validate-tests.js +109 -0
  99. package/framework/hooks/agent-teams/dispatch.js +67 -0
  100. package/framework/hooks/agent-teams/phase-advanced.js +80 -0
  101. package/framework/hooks/agent-teams/task-completed.js +76 -0
  102. package/framework/hooks/agent-teams/teammate-idle.js +70 -0
  103. package/framework/hooks/commit-msg/conventional-commits.sh +33 -0
  104. package/framework/hooks/pre-commit/agents.sh +25 -0
  105. package/framework/hooks/pre-commit/orchestrator.sh +64 -0
  106. package/framework/hooks/pre-commit/specs.sh +50 -0
  107. package/framework/hooks/pre-push/run-tests.sh +44 -0
  108. package/framework/index/troubleshooting-index.json +184 -0
  109. package/framework/memory/patterns-learned.md +766 -0
  110. package/framework/skills/level-0-meta/README.md +7 -0
  111. package/framework/skills/level-0-meta/code-review.md +226 -0
  112. package/framework/skills/level-0-meta/morph-checklist.md +117 -0
  113. package/framework/skills/level-0-meta/simulation-checklist.md +77 -0
  114. package/framework/skills/level-1-workflows/README.md +7 -0
  115. package/framework/skills/level-1-workflows/morph-replicate.md +213 -0
  116. package/framework/skills/level-1-workflows/phase-clarify.md +131 -0
  117. package/framework/skills/level-1-workflows/phase-design.md +213 -0
  118. package/framework/skills/level-1-workflows/phase-setup.md +106 -0
  119. package/framework/skills/level-1-workflows/phase-tasks.md +164 -0
  120. package/framework/skills/level-1-workflows/phase-uiux.md +169 -0
  121. package/framework/skills/level-2-domains/README.md +14 -0
  122. package/framework/skills/level-2-domains/ai-agents/ai-system-architect.md +192 -0
  123. package/framework/skills/level-2-domains/architecture/po-pm-advisor.md +197 -0
  124. package/framework/skills/level-2-domains/architecture/prompt-engineer.md +189 -0
  125. package/framework/skills/level-2-domains/architecture/seo-growth-hacker.md +320 -0
  126. package/framework/skills/level-2-domains/architecture/standards-architect.md +156 -0
  127. package/framework/skills/level-2-domains/backend/api-designer.md +59 -0
  128. package/framework/skills/level-2-domains/backend/dotnet-senior.md +77 -0
  129. package/framework/skills/level-2-domains/backend/ef-modeler.md +58 -0
  130. package/framework/skills/level-2-domains/backend/hangfire-orchestrator.md +126 -0
  131. package/framework/skills/level-2-domains/backend/ms-agent-expert.md +45 -0
  132. package/framework/skills/level-2-domains/frontend/blazor-builder.md +210 -0
  133. package/framework/skills/level-2-domains/frontend/nextjs-expert.md +154 -0
  134. package/framework/skills/level-2-domains/frontend/ui-ux-designer.md +191 -0
  135. package/framework/skills/level-2-domains/infrastructure/azure-architect.md +142 -0
  136. package/framework/skills/level-2-domains/infrastructure/azure-deploy-specialist.md +699 -0
  137. package/framework/skills/level-2-domains/infrastructure/bicep-architect.md +126 -0
  138. package/framework/skills/level-2-domains/infrastructure/container-specialist.md +131 -0
  139. package/framework/skills/level-2-domains/infrastructure/devops-engineer.md +119 -0
  140. package/framework/skills/level-2-domains/integrations/asaas-financial.md +130 -0
  141. package/framework/skills/level-2-domains/integrations/azure-identity.md +142 -0
  142. package/framework/skills/level-2-domains/integrations/clerk-auth.md +108 -0
  143. package/framework/skills/level-2-domains/integrations/hangfire-orchestrator.md +64 -0
  144. package/framework/skills/level-2-domains/integrations/resend-email.md +119 -0
  145. package/framework/skills/level-2-domains/quality/code-analyzer.md +235 -0
  146. package/framework/skills/level-2-domains/quality/testing-specialist.md +126 -0
  147. package/framework/skills/level-3-technologies/README.md +7 -0
  148. package/framework/skills/level-4-patterns/README.md +7 -0
  149. package/framework/squad-templates/backend-only.json +34 -0
  150. package/framework/squad-templates/frontend-only.json +34 -0
  151. package/framework/squad-templates/full-stack.json +52 -0
  152. package/framework/templates/.idea/morph-templates.xml +92 -0
  153. package/framework/templates/.vscode/morph-templates.code-snippets +186 -0
  154. package/framework/templates/IDE-SNIPPETS.md +266 -0
  155. package/framework/templates/README.md +814 -0
  156. package/framework/templates/REGISTRY.json +1677 -0
  157. package/framework/templates/code/dotnet/backend/repository.cs +141 -0
  158. package/framework/templates/code/dotnet/backend/service.cs +139 -0
  159. package/framework/templates/code/dotnet/contracts/Commands.cs +74 -0
  160. package/framework/templates/code/dotnet/contracts/Entities.cs +25 -0
  161. package/framework/templates/code/dotnet/contracts/Queries.cs +74 -0
  162. package/framework/templates/code/dotnet/contracts/README.md +74 -0
  163. package/framework/templates/code/dotnet/contracts/api-contracts.cs +173 -0
  164. package/framework/templates/code/dotnet/contracts/contracts.cs +217 -0
  165. package/framework/templates/code/dotnet/database/migration.cs +83 -0
  166. package/framework/templates/code/dotnet/frontend/component.razor +239 -0
  167. package/framework/templates/code/dotnet/jobs/agent.cs +163 -0
  168. package/framework/templates/code/dotnet/jobs/job.cs +171 -0
  169. package/framework/templates/code/dotnet/test.cs +239 -0
  170. package/framework/templates/code/sql/rls-policy.sql +57 -0
  171. package/framework/templates/code/sql/supabase-migration.sql +100 -0
  172. package/framework/templates/code/sql/supabase-migration.template.sql +113 -0
  173. package/framework/templates/code/typescript/contracts.ts +168 -0
  174. package/framework/templates/context/CONTEXT-FEATURE.md +276 -0
  175. package/framework/templates/context/CONTEXT.md +181 -0
  176. package/framework/templates/docs/proposal.md +182 -0
  177. package/framework/templates/docs/spec.md +149 -0
  178. package/framework/templates/examples/design-system-examples.md +357 -0
  179. package/framework/templates/examples/spec-examples.md +90 -0
  180. package/framework/templates/feature/decisions.md +187 -0
  181. package/framework/templates/feature/recap.md +146 -0
  182. package/framework/templates/feature/tasks.md +199 -0
  183. package/framework/templates/infrastructure/azure/Dockerfile.example +82 -0
  184. package/framework/templates/infrastructure/azure/README.md +286 -0
  185. package/framework/templates/infrastructure/azure/app-insights.bicep +63 -0
  186. package/framework/templates/infrastructure/azure/app-service.bicep +164 -0
  187. package/framework/templates/infrastructure/azure/container-app-env.bicep +49 -0
  188. package/framework/templates/infrastructure/azure/container-app.bicep +156 -0
  189. package/framework/templates/infrastructure/azure/deploy-checklist.md +426 -0
  190. package/framework/templates/infrastructure/azure/deploy.ps1 +229 -0
  191. package/framework/templates/infrastructure/azure/deploy.sh +208 -0
  192. package/framework/templates/infrastructure/azure/key-vault.bicep +91 -0
  193. package/framework/templates/infrastructure/azure/main.bicep +189 -0
  194. package/framework/templates/infrastructure/azure/parameters.dev.json +29 -0
  195. package/framework/templates/infrastructure/azure/parameters.prod.json +29 -0
  196. package/framework/templates/infrastructure/azure/parameters.staging.json +29 -0
  197. package/framework/templates/infrastructure/azure/sql-database.bicep +103 -0
  198. package/framework/templates/infrastructure/azure/storage.bicep +106 -0
  199. package/framework/templates/infrastructure/docker/Dockerfile.template +58 -0
  200. package/framework/templates/infrastructure/docker/docker-compose.template.yml +67 -0
  201. package/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +38 -0
  202. package/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +48 -0
  203. package/framework/templates/infrastructure/docker/easypanel.template.json +54 -0
  204. package/framework/templates/infrastructure/github/README.md +593 -0
  205. package/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +22 -0
  206. package/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +45 -0
  207. package/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +27 -0
  208. package/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +61 -0
  209. package/framework/templates/infrastructure/github/workflows/deploy-easypanel.yml.hbs +31 -0
  210. package/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +59 -0
  211. package/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +39 -0
  212. package/framework/templates/integrations/asaas-client.cs +387 -0
  213. package/framework/templates/integrations/asaas-webhook.cs +351 -0
  214. package/framework/templates/integrations/azure-identity-config.cs +288 -0
  215. package/framework/templates/integrations/clerk-config.cs +258 -0
  216. package/framework/templates/meta-prompts/fusion/fusion-agent.md +76 -0
  217. package/framework/templates/meta-prompts/fusion/fusion-aggregator.md +100 -0
  218. package/framework/templates/meta-prompts/hops/hop-retry.md +78 -0
  219. package/framework/templates/meta-prompts/hops/hop-validation.md +97 -0
  220. package/framework/templates/meta-prompts/hops/hop-wrapper.md +36 -0
  221. package/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +113 -0
  222. package/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +80 -0
  223. package/framework/templates/meta-prompts/squad-leaders/backend-squad.md +90 -0
  224. package/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +126 -0
  225. package/framework/templates/meta-prompts/squad-leaders/squad-leader.md +43 -0
  226. package/framework/templates/meta-prompts/validators/checkpoint-validator.md +107 -0
  227. package/framework/templates/meta-prompts/validators/pre-commit-validator.md +95 -0
  228. package/framework/templates/saas/subscription.cs +347 -0
  229. package/framework/templates/saas/tenant.cs +338 -0
  230. package/framework/templates/state.template.json +17 -0
  231. package/framework/templates/ui/FluentDesignTheme.cs +149 -0
  232. package/framework/templates/ui/MudTheme.cs +281 -0
  233. package/framework/templates/ui/design-system.css +226 -0
  234. package/framework/workflows/README.md +1041 -0
  235. package/framework/workflows/configs/design-impl.json +49 -0
  236. package/framework/workflows/configs/fast-track.json +42 -0
  237. package/framework/workflows/configs/full-morph.json +79 -0
  238. package/framework/workflows/configs/fusion.json +39 -0
  239. package/framework/workflows/configs/long-running.json +33 -0
  240. package/framework/workflows/configs/standard.json +60 -0
  241. package/framework/workflows/configs/ui-refresh.json +49 -0
  242. package/framework/workflows/configs/zero-touch.json +75 -0
  243. package/framework/workflows/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -0
  244. package/framework/workflows/docs/design-impl.md +37 -0
  245. package/framework/workflows/docs/enforcement-pipeline.md +668 -0
  246. package/framework/workflows/docs/fast-track.md +29 -0
  247. package/framework/workflows/docs/full-morph.md +76 -0
  248. package/framework/workflows/docs/standard.md +44 -0
  249. package/framework/workflows/docs/ui-refresh.md +39 -0
  250. package/package.json +3 -3
  251. package/src/commands/feature/create-story.js +11 -7
  252. package/src/commands/project/detect-agents.js +1 -2
  253. package/src/commands/project/init.js +69 -32
  254. package/src/commands/project/update.js +102 -15
  255. package/src/commands/templates/template-customize.js +3 -17
  256. package/src/commands/templates/template-list.js +1 -15
  257. package/src/commands/templates/template-render.js +2 -3
  258. package/src/commands/templates/template-show.js +3 -5
  259. package/src/core/templates/template-registry.js +9 -23
  260. package/src/lib/detectors/structure-detector.js +3 -3
  261. package/src/lib/generators/context-generator.js +18 -6
  262. package/src/lib/hooks/hook-executor.js +0 -2
  263. package/src/lib/orchestration/team-orchestrator.js +1 -2
  264. package/src/lib/standards/standards-context-injector.js +3 -4
  265. package/src/lib/troubleshooting/troubleshoot-grep.js +3 -9
  266. package/src/lib/validators/validation-runner.js +1 -2
  267. package/src/utils/file-copier.js +1 -2
  268. package/docs/README.md +0 -144
  269. package/docs/api/fonts/Montserrat/Montserrat-Bold.eot +0 -0
  270. package/docs/api/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
  271. package/docs/api/fonts/Montserrat/Montserrat-Bold.woff +0 -0
  272. package/docs/api/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
  273. package/docs/api/fonts/Montserrat/Montserrat-Regular.eot +0 -0
  274. package/docs/api/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
  275. package/docs/api/fonts/Montserrat/Montserrat-Regular.woff +0 -0
  276. package/docs/api/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
  277. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  278. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -978
  279. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  280. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  281. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
  282. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  283. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -1049
  284. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  285. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  286. package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
  287. package/docs/api/scripts/collapse.js +0 -39
  288. package/docs/api/scripts/commonNav.js +0 -28
  289. package/docs/api/scripts/linenumber.js +0 -25
  290. package/docs/api/scripts/nav.js +0 -12
  291. package/docs/api/scripts/polyfill.js +0 -4
  292. package/docs/api/scripts/prettify/Apache-License-2.0.txt +0 -202
  293. package/docs/api/scripts/prettify/lang-css.js +0 -2
  294. package/docs/api/scripts/prettify/prettify.js +0 -28
  295. package/docs/api/scripts/search.js +0 -99
  296. package/docs/api/styles/jsdoc.css +0 -776
  297. package/docs/api/styles/prettify.css +0 -80
  298. package/docs/cli-auto-detection.md +0 -219
  299. package/docs/getting-started.md +0 -296
  300. package/docs/installation.md +0 -361
  301. package/docs/next-generation/AGENTS.md +0 -521
  302. package/docs/next-generation/ANALYSIS.md +0 -555
  303. package/docs/next-generation/ARCHITECTURE.md +0 -436
  304. package/docs/next-generation/CONTEXT-OPTIMIZATION.md +0 -267
  305. package/docs/next-generation/EXECUTION-FLOW.md +0 -274
  306. package/docs/next-generation/FEATURES.md +0 -688
  307. package/docs/next-generation/META-PROMPTS.md +0 -235
  308. package/docs/next-generation/MIGRATION-GUIDE.md +0 -253
  309. package/docs/next-generation/README.md +0 -231
  310. package/docs/next-generation/ROADMAP.md +0 -801
  311. package/docs/next-generation/THREAD-MANAGEMENT.md +0 -240
  312. package/docs/templates.md +0 -418
  313. package/docs/troubleshooting.md +0 -269
  314. package/docs/validation-checklist.md +0 -264
  315. package/scripts/postinstall.js +0 -132
  316. package/src/lib/stacks/index.js +0 -7
  317. package/src/lib/stacks/stack-resolver.js +0 -180
  318. package/stacks/blazor-azure/.claude/commands/morph-deploy.md +0 -529
  319. package/stacks/blazor-azure/.claude/commands/morph-infra.md +0 -209
  320. package/stacks/blazor-azure/.morph/.morphversion +0 -5
  321. package/stacks/blazor-azure/.morph/config/config.json +0 -9
  322. package/stacks/blazor-azure/CLAUDE.md +0 -155
  323. package/stacks/blazor-azure/README.md +0 -79
  324. package/stacks/nextjs-supabase/.claude/commands/morph-apply.md +0 -221
  325. package/stacks/nextjs-supabase/.claude/commands/morph-archive.md +0 -79
  326. package/stacks/nextjs-supabase/.claude/commands/morph-deploy.md +0 -529
  327. package/stacks/nextjs-supabase/.claude/commands/morph-preflight.md +0 -227
  328. package/stacks/nextjs-supabase/.claude/commands/morph-proposal.md +0 -122
  329. package/stacks/nextjs-supabase/.claude/commands/morph-status.md +0 -86
  330. package/stacks/nextjs-supabase/.claude/commands/morph-troubleshoot.md +0 -122
  331. package/stacks/nextjs-supabase/.morph/.morphversion +0 -5
  332. package/stacks/nextjs-supabase/.morph/config/agents.json +0 -345
  333. package/stacks/nextjs-supabase/.morph/config/config.json +0 -9
  334. package/stacks/nextjs-supabase/.morph/project/context/README.md +0 -17
  335. package/stacks/nextjs-supabase/CLAUDE.md +0 -155
  336. package/stacks/nextjs-supabase/README.md +0 -103
  337. /package/{stacks/blazor-azure/.morph → .morph}/standards/ai-agents/blazor-ui.md +0 -0
  338. /package/{stacks/blazor-azure/.morph → .morph}/standards/ai-agents/production.md +0 -0
  339. /package/{stacks/blazor-azure/.morph → .morph}/standards/ai-agents/setup.md +0 -0
  340. /package/{stacks/blazor-azure/.morph → .morph}/standards/ai-agents/team-orchestration.md +0 -0
  341. /package/{stacks/blazor-azure/.morph → .morph}/standards/ai-agents/workflows.md +0 -0
  342. /package/{stacks/blazor-azure/.morph → .morph}/standards/architecture/ddd/aggregates.md +0 -0
  343. /package/{stacks/blazor-azure/.morph → .morph}/standards/architecture/ddd/entities.md +0 -0
  344. /package/{stacks/blazor-azure/.morph → .morph}/standards/architecture/ddd/value-objects.md +0 -0
  345. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/api/minimal-api.md +0 -0
  346. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/api/rest.md +0 -0
  347. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/api/validation.md +0 -0
  348. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/authentication/passkeys.md +0 -0
  349. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/database/ef-core.md +0 -0
  350. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/database/migrations.md +0 -0
  351. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/database/postgresql/database.md +0 -0
  352. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/database/repository-patterns.md +0 -0
  353. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/database/vector-search-rag.md +0 -0
  354. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/dotnet/async.md +0 -0
  355. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/dotnet/core.md +0 -0
  356. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/dotnet/di.md +0 -0
  357. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/dotnet/program-cs-checklist.md +0 -0
  358. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/integrations/asaas/asaas-api.md +0 -0
  359. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/integrations/clerk/clerk-auth.md +0 -0
  360. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/integrations/hangfire/hangfire-jobs.md +0 -0
  361. /package/{stacks/blazor-azure/.morph → .morph}/standards/backend/integrations/resend/resend-email.md +0 -0
  362. /package/{stacks/blazor-azure/.morph → .morph}/standards/context/analytics.md +0 -0
  363. /package/{stacks/blazor-azure/.morph → .morph}/standards/context/bundles.md +0 -0
  364. /package/{stacks/blazor-azure/.morph → .morph}/standards/context/priming.md +0 -0
  365. /package/{stacks/blazor-azure/.morph → .morph}/standards/core/architecture.md +0 -0
  366. /package/{stacks/blazor-azure/.morph → .morph}/standards/core/coding.md +0 -0
  367. /package/{stacks/blazor-azure/.morph → .morph}/standards/core/git-branching-strategy.md +0 -0
  368. /package/{stacks/blazor-azure/.morph → .morph}/standards/core/git.md +0 -0
  369. /package/{stacks/blazor-azure/.morph → .morph}/standards/core/testing.md +0 -0
  370. /package/{stacks/blazor-azure/.morph → .morph}/standards/data/nosql/blob-storage.md +0 -0
  371. /package/{stacks/blazor-azure/.morph → .morph}/standards/data/nosql/cache/redis.md +0 -0
  372. /package/{stacks/blazor-azure/.morph → .morph}/standards/data/nosql/cosmos-db.md +0 -0
  373. /package/{stacks/blazor-azure/.morph → .morph}/standards/data/vector-search/azure-ai-search.md +0 -0
  374. /package/{stacks/blazor-azure/.morph → .morph}/standards/data/vector-search/rag-chunking.md +0 -0
  375. /package/{stacks/blazor-azure/.morph → .morph}/standards/frontend/blazor/design-checklist.md +0 -0
  376. /package/{stacks/blazor-azure/.morph → .morph}/standards/frontend/blazor/fluent-ui-setup.md +0 -0
  377. /package/{stacks/blazor-azure/.morph → .morph}/standards/frontend/blazor/fluent-ui.md +0 -0
  378. /package/{stacks/blazor-azure/.morph → .morph}/standards/frontend/blazor/html-conversion.md +0 -0
  379. /package/{stacks/blazor-azure/.morph → .morph}/standards/frontend/blazor/lifecycle.md +0 -0
  380. /package/{stacks/blazor-azure/.morph → .morph}/standards/frontend/blazor/pitfalls.md +0 -0
  381. /package/{stacks/blazor-azure/.morph → .morph}/standards/frontend/blazor/state.md +0 -0
  382. /package/{stacks/blazor-azure/.morph → .morph}/standards/frontend/design-system/animations.md +0 -0
  383. /package/{stacks/blazor-azure/.morph → .morph}/standards/frontend/design-system/naming.md +0 -0
  384. /package/{stacks/blazor-azure/.morph → .morph}/standards/frontend/nextjs/nextjs-patterns.md +0 -0
  385. /package/{stacks/blazor-azure/.morph → .morph}/standards/infrastructure/azure/azure.md +0 -0
  386. /package/{stacks/blazor-azure/.morph → .morph}/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -0
  387. /package/{stacks/blazor-azure/.morph → .morph}/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -0
  388. /package/{stacks/blazor-azure/.morph → .morph}/standards/infrastructure/azure/devops/local-development.md +0 -0
  389. /package/{stacks/blazor-azure/.morph → .morph}/standards/infrastructure/azure/services/functions.md +0 -0
  390. /package/{stacks/blazor-azure/.morph → .morph}/standards/infrastructure/azure/services/service-bus.md +0 -0
  391. /package/{stacks/blazor-azure/.morph → .morph}/standards/infrastructure/azure/services/storage.md +0 -0
  392. /package/{stacks/blazor-azure/.morph → .morph}/standards/infrastructure/docker/easypanel-deploy.md +0 -0
  393. /package/{stacks/blazor-azure/.morph → .morph}/standards/infrastructure/supabase/mcp-setup.md +0 -0
  394. /package/{stacks/blazor-azure/.morph → .morph}/standards/infrastructure/supabase/supabase-auth.md +0 -0
  395. /package/{stacks/blazor-azure/.morph → .morph}/standards/infrastructure/supabase/supabase-pgvector.md +0 -0
  396. /package/{stacks/blazor-azure/.morph → .morph}/standards/infrastructure/supabase/supabase-rls.md +0 -0
  397. /package/{stacks/blazor-azure/.morph → .morph}/standards/infrastructure/supabase/supabase-storage.md +0 -0
  398. /package/{stacks/blazor-azure/.morph → .morph}/standards/integration/api/graphql.md +0 -0
  399. /package/{stacks/blazor-azure/.morph → .morph}/standards/integration/api/grpc.md +0 -0
  400. /package/{stacks/blazor-azure/.morph → .morph}/standards/integration/api/rest-design.md +0 -0
  401. /package/{stacks/blazor-azure/.morph → .morph}/standards/integration/event-driven/cqrs.md +0 -0
  402. /package/{stacks/blazor-azure/.morph → .morph}/standards/integration/event-driven/event-sourcing.md +0 -0
  403. /package/{stacks/blazor-azure/.morph → .morph}/standards/integration/event-driven/service-bus.md +0 -0
  404. /package/{stacks/blazor-azure/.morph → .morph}/standards/observability/logging.md +0 -0
  405. /package/{stacks/blazor-azure/.morph → .morph}/standards/observability/metrics.md +0 -0
  406. /package/{stacks/blazor-azure/.morph → .morph}/standards/observability/monitoring.md +0 -0
  407. /package/{stacks/blazor-azure/.morph → .morph}/standards/observability/tracing.md +0 -0
  408. /package/{stacks/blazor-azure/.morph → .morph}/standards/workflows/parallel-execution.md +0 -0
  409. /package/{stacks/blazor-azure/.morph → .morph}/standards/workflows/thread-management.md +0 -0
  410. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-apply.md +0 -0
  411. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-archive.md +0 -0
  412. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-preflight.md +0 -0
  413. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-proposal.md +0 -0
  414. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-status.md +0 -0
  415. /package/{stacks/blazor-azure/.claude → framework}/commands/morph-troubleshoot.md +0 -0
  416. /package/{stacks/nextjs-supabase/.morph → framework}/standards/ai-agents/blazor-ui.md +0 -0
  417. /package/{stacks/nextjs-supabase/.morph → framework}/standards/ai-agents/production.md +0 -0
  418. /package/{stacks/nextjs-supabase/.morph → framework}/standards/ai-agents/setup.md +0 -0
  419. /package/{stacks/nextjs-supabase/.morph → framework}/standards/ai-agents/team-orchestration.md +0 -0
  420. /package/{stacks/nextjs-supabase/.morph → framework}/standards/ai-agents/workflows.md +0 -0
  421. /package/{stacks/nextjs-supabase/.morph → framework}/standards/architecture/ddd/aggregates.md +0 -0
  422. /package/{stacks/nextjs-supabase/.morph → framework}/standards/architecture/ddd/entities.md +0 -0
  423. /package/{stacks/nextjs-supabase/.morph → framework}/standards/architecture/ddd/value-objects.md +0 -0
  424. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/api/minimal-api.md +0 -0
  425. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/api/rest.md +0 -0
  426. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/api/validation.md +0 -0
  427. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/authentication/passkeys.md +0 -0
  428. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/database/ef-core.md +0 -0
  429. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/database/migrations.md +0 -0
  430. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/database/postgresql/database.md +0 -0
  431. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/database/repository-patterns.md +0 -0
  432. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/database/vector-search-rag.md +0 -0
  433. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/dotnet/async.md +0 -0
  434. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/dotnet/core.md +0 -0
  435. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/dotnet/di.md +0 -0
  436. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/dotnet/program-cs-checklist.md +0 -0
  437. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/integrations/asaas/asaas-api.md +0 -0
  438. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/integrations/clerk/clerk-auth.md +0 -0
  439. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/integrations/hangfire/hangfire-jobs.md +0 -0
  440. /package/{stacks/nextjs-supabase/.morph → framework}/standards/backend/integrations/resend/resend-email.md +0 -0
  441. /package/{stacks/nextjs-supabase/.morph → framework}/standards/context/analytics.md +0 -0
  442. /package/{stacks/nextjs-supabase/.morph → framework}/standards/context/bundles.md +0 -0
  443. /package/{stacks/nextjs-supabase/.morph → framework}/standards/context/priming.md +0 -0
  444. /package/{stacks/nextjs-supabase/.morph → framework}/standards/core/architecture.md +0 -0
  445. /package/{stacks/nextjs-supabase/.morph → framework}/standards/core/coding.md +0 -0
  446. /package/{stacks/nextjs-supabase/.morph → framework}/standards/core/git-branching-strategy.md +0 -0
  447. /package/{stacks/nextjs-supabase/.morph → framework}/standards/core/git.md +0 -0
  448. /package/{stacks/nextjs-supabase/.morph → framework}/standards/core/testing.md +0 -0
  449. /package/{stacks/nextjs-supabase/.morph → framework}/standards/data/nosql/blob-storage.md +0 -0
  450. /package/{stacks/nextjs-supabase/.morph → framework}/standards/data/nosql/cache/redis.md +0 -0
  451. /package/{stacks/nextjs-supabase/.morph → framework}/standards/data/nosql/cosmos-db.md +0 -0
  452. /package/{stacks/nextjs-supabase/.morph → framework}/standards/data/vector-search/azure-ai-search.md +0 -0
  453. /package/{stacks/nextjs-supabase/.morph → framework}/standards/data/vector-search/rag-chunking.md +0 -0
  454. /package/{stacks/nextjs-supabase/.morph → framework}/standards/frontend/blazor/design-checklist.md +0 -0
  455. /package/{stacks/nextjs-supabase/.morph → framework}/standards/frontend/blazor/fluent-ui-setup.md +0 -0
  456. /package/{stacks/nextjs-supabase/.morph → framework}/standards/frontend/blazor/fluent-ui.md +0 -0
  457. /package/{stacks/nextjs-supabase/.morph → framework}/standards/frontend/blazor/html-conversion.md +0 -0
  458. /package/{stacks/nextjs-supabase/.morph → framework}/standards/frontend/blazor/lifecycle.md +0 -0
  459. /package/{stacks/nextjs-supabase/.morph → framework}/standards/frontend/blazor/pitfalls.md +0 -0
  460. /package/{stacks/nextjs-supabase/.morph → framework}/standards/frontend/blazor/state.md +0 -0
  461. /package/{stacks/nextjs-supabase/.morph → framework}/standards/frontend/design-system/animations.md +0 -0
  462. /package/{stacks/nextjs-supabase/.morph → framework}/standards/frontend/design-system/naming.md +0 -0
  463. /package/{stacks/nextjs-supabase/.morph → framework}/standards/frontend/nextjs/nextjs-patterns.md +0 -0
  464. /package/{stacks/nextjs-supabase/.morph → framework}/standards/infrastructure/azure/azure.md +0 -0
  465. /package/{stacks/nextjs-supabase/.morph → framework}/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -0
  466. /package/{stacks/nextjs-supabase/.morph → framework}/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -0
  467. /package/{stacks/nextjs-supabase/.morph → framework}/standards/infrastructure/azure/devops/local-development.md +0 -0
  468. /package/{stacks/nextjs-supabase/.morph → framework}/standards/infrastructure/azure/services/functions.md +0 -0
  469. /package/{stacks/nextjs-supabase/.morph → framework}/standards/infrastructure/azure/services/service-bus.md +0 -0
  470. /package/{stacks/nextjs-supabase/.morph → framework}/standards/infrastructure/azure/services/storage.md +0 -0
  471. /package/{stacks/nextjs-supabase/.morph → framework}/standards/infrastructure/docker/easypanel-deploy.md +0 -0
  472. /package/{stacks/nextjs-supabase/.morph → framework}/standards/infrastructure/supabase/mcp-setup.md +0 -0
  473. /package/{stacks/nextjs-supabase/.morph → framework}/standards/infrastructure/supabase/supabase-auth.md +0 -0
  474. /package/{stacks/nextjs-supabase/.morph → framework}/standards/infrastructure/supabase/supabase-pgvector.md +0 -0
  475. /package/{stacks/nextjs-supabase/.morph → framework}/standards/infrastructure/supabase/supabase-rls.md +0 -0
  476. /package/{stacks/nextjs-supabase/.morph → framework}/standards/infrastructure/supabase/supabase-storage.md +0 -0
  477. /package/{stacks/nextjs-supabase/.morph → framework}/standards/integration/api/graphql.md +0 -0
  478. /package/{stacks/nextjs-supabase/.morph → framework}/standards/integration/api/grpc.md +0 -0
  479. /package/{stacks/nextjs-supabase/.morph → framework}/standards/integration/api/rest-design.md +0 -0
  480. /package/{stacks/nextjs-supabase/.morph → framework}/standards/integration/event-driven/cqrs.md +0 -0
  481. /package/{stacks/nextjs-supabase/.morph → framework}/standards/integration/event-driven/event-sourcing.md +0 -0
  482. /package/{stacks/nextjs-supabase/.morph → framework}/standards/integration/event-driven/service-bus.md +0 -0
  483. /package/{stacks/nextjs-supabase/.morph → framework}/standards/observability/logging.md +0 -0
  484. /package/{stacks/nextjs-supabase/.morph → framework}/standards/observability/metrics.md +0 -0
  485. /package/{stacks/nextjs-supabase/.morph → framework}/standards/observability/monitoring.md +0 -0
  486. /package/{stacks/nextjs-supabase/.morph → framework}/standards/observability/tracing.md +0 -0
  487. /package/{stacks/nextjs-supabase/.morph → framework}/standards/workflows/parallel-execution.md +0 -0
  488. /package/{stacks/nextjs-supabase/.morph → framework}/standards/workflows/thread-management.md +0 -0
@@ -76,15 +76,14 @@ export async function templateShowCommand(templateId, options) {
76
76
  // Resolve actual path
77
77
  if (options.showPath) {
78
78
  const projectPath = options.projectPath || process.cwd();
79
- const stackId = options.stack || 'blazor-azure';
80
- const resolvedPath = resolveTemplatePathById(templateId, projectPath, stackId);
79
+ const resolvedPath = resolveTemplatePathById(templateId, projectPath);
81
80
 
82
81
  logger.info(chalk.bold('📂 Resolved Path'));
83
82
  if (resolvedPath) {
84
83
  console.log(` ${chalk.green(resolvedPath)}`);
85
84
  console.log(` ${chalk.dim(`(${existsSync(resolvedPath) ? 'exists' : 'not found'})`)}`);
86
85
  } else {
87
- console.log(` ${chalk.red('Not found in framework/ or stack/')}`);
86
+ console.log(` ${chalk.red('Not found in .morph/templates/ or framework/templates/')}`);
88
87
  }
89
88
  logger.blank();
90
89
  }
@@ -92,8 +91,7 @@ export async function templateShowCommand(templateId, options) {
92
91
  // Show template preview
93
92
  if (options.preview) {
94
93
  const projectPath = options.projectPath || process.cwd();
95
- const stackId = options.stack || 'blazor-azure';
96
- const resolvedPath = resolveTemplatePathById(templateId, projectPath, stackId);
94
+ const resolvedPath = resolveTemplatePathById(templateId, projectPath);
97
95
 
98
96
  if (resolvedPath && existsSync(resolvedPath)) {
99
97
  logger.info(chalk.bold('👁️ Preview (first 20 lines)'));
@@ -252,42 +252,28 @@ export function templateExists(templateId, projectPath = null) {
252
252
  * Get template absolute path with fallback logic.
253
253
  *
254
254
  * Resolution order:
255
- * 1. Stack-specific template (stacks/{stack}/.morph/templates/{path})
255
+ * 1. Project-local override (.morph/templates/{path})
256
256
  * 2. Framework universal template (framework/templates/{path})
257
257
  *
258
258
  * @param {string} templateId - Template identifier
259
259
  * @param {string} projectPath - Project root path
260
- * @param {string} [stackId] - Stack identifier (optional)
261
260
  * @returns {string|null} Absolute template path or null if not found
262
261
  */
263
- export function resolveTemplatePathById(templateId, projectPath, stackId = null) {
262
+ export function resolveTemplatePathById(templateId, projectPath) {
264
263
  const template = getTemplateById(templateId, projectPath);
265
264
  if (!template) {
266
265
  return null;
267
266
  }
268
267
 
269
- // If template is universal (framework location)
270
- if (template.location === 'framework') {
271
- const frameworkPath = join(projectPath, 'framework/templates', template.path);
272
- return existsSync(frameworkPath) ? frameworkPath : null;
268
+ // 1. Project-local override
269
+ const projectLocalPath = join(projectPath, '.morph/templates', template.path);
270
+ if (existsSync(projectLocalPath)) {
271
+ return projectLocalPath;
273
272
  }
274
273
 
275
- // If template is stack-specific
276
- if (template.location === 'stack' && stackId) {
277
- // Try stack-specific first
278
- const stackPath = join(projectPath, 'stacks', stackId, '.morph/templates', template.path);
279
- if (existsSync(stackPath)) {
280
- return stackPath;
281
- }
282
-
283
- // Fallback to framework if exists
284
- const frameworkPath = join(projectPath, 'framework/templates', template.path);
285
- if (existsSync(frameworkPath)) {
286
- return frameworkPath;
287
- }
288
- }
289
-
290
- return null;
274
+ // 2. Framework universal template
275
+ const frameworkPath = join(projectPath, 'framework/templates', template.path);
276
+ return existsSync(frameworkPath) ? frameworkPath : null;
291
277
  }
292
278
 
293
279
  /**
@@ -97,7 +97,7 @@ async function detectStack(projectPath) {
97
97
  ]
98
98
  };
99
99
 
100
- const globIgnore = ['stacks/**', 'framework/**', 'test/**', 'node_modules/**', '.morph/**'];
100
+ const globIgnore = ['framework/**', 'test/**', 'node_modules/**', '.morph/**'];
101
101
 
102
102
  for (const [stack, globs] of Object.entries(patterns)) {
103
103
  for (const pattern of globs) {
@@ -115,7 +115,7 @@ async function detectStack(projectPath) {
115
115
  * Detect architecture pattern
116
116
  */
117
117
  async function detectArchitecture(projectPath) {
118
- const globIgnore = ['stacks/**', 'framework/**', 'test/**', 'node_modules/**', '.morph/**'];
118
+ const globIgnore = ['framework/**', 'test/**', 'node_modules/**', '.morph/**'];
119
119
 
120
120
  const checks = [
121
121
  // .NET: Clean Architecture
@@ -209,7 +209,7 @@ async function detectUILibrary(projectPath) {
209
209
  async function detectPatterns(projectPath) {
210
210
  const patterns = [];
211
211
  // Ignore template/vendor directories; keep test/ accessible for JS test detection
212
- const globIgnore = ['stacks/**', 'framework/**', 'test/fixtures/**', 'node_modules/**', '.morph/**'];
212
+ const globIgnore = ['framework/**', 'test/fixtures/**', 'node_modules/**', '.morph/**'];
213
213
 
214
214
  // C# / .NET patterns
215
215
  const dotnetChecks = [
@@ -13,6 +13,21 @@
13
13
 
14
14
  import fs from 'fs/promises';
15
15
  import path from 'path';
16
+ import { existsSync } from 'fs';
17
+
18
+ /**
19
+ * Resolve a template path: check .morph/templates/ first, then framework/templates/.
20
+ * @param {string} projectPath
21
+ * @param {string} templatePath - relative path e.g. 'context/CONTEXT.md'
22
+ * @returns {string|null}
23
+ */
24
+ function resolveTemplatePath(projectPath, templatePath) {
25
+ const projectLocal = path.join(projectPath, '.morph/templates', templatePath);
26
+ if (existsSync(projectLocal)) return projectLocal;
27
+ const framework = path.join(projectPath, 'framework/templates', templatePath);
28
+ if (existsSync(framework)) return framework;
29
+ return null;
30
+ }
16
31
 
17
32
  /**
18
33
  * Load project state from state.json
@@ -50,8 +65,7 @@ async function loadConfig(projectPath) {
50
65
  * @returns {Promise<Object>} Parsed agents config
51
66
  */
52
67
  async function loadAgents(projectPath) {
53
- const { resolveAgentsConfigPath } = await import('../stacks/stack-resolver.js');
54
- const agentsPath = resolveAgentsConfigPath(projectPath);
68
+ const agentsPath = path.join(projectPath, '.morph/config/agents.json');
55
69
  try {
56
70
  const content = await fs.readFile(agentsPath, 'utf8');
57
71
  return JSON.parse(content);
@@ -179,8 +193,7 @@ export async function generateProjectContext(projectPath) {
179
193
  loadProjectStandards(projectPath)
180
194
  ]);
181
195
 
182
- // Load template with fallback (stack-specific → framework universal)
183
- const { resolveTemplatePath } = await import('../stacks/stack-resolver.js');
196
+ // Load template with fallback (.morph/templates/ → framework/templates/)
184
197
  const templatePath = resolveTemplatePath(projectPath, 'context/CONTEXT.md');
185
198
 
186
199
  if (!templatePath) {
@@ -351,8 +364,7 @@ export async function generateFeatureContext(projectPath, featureName) {
351
364
  // No tasks.json yet
352
365
  }
353
366
 
354
- // Load template with fallback (stack-specific → framework universal)
355
- const { resolveTemplatePath } = await import('../stacks/stack-resolver.js');
367
+ // Load template with fallback (.morph/templates/ → framework/templates/)
356
368
  const featureTemplatePath = resolveTemplatePath(projectPath, 'context/CONTEXT-FEATURE.md');
357
369
 
358
370
  if (!featureTemplatePath) {
@@ -20,8 +20,6 @@ import { join } from 'path';
20
20
  function loadAgents(projectPath) {
21
21
  const agentPaths = [
22
22
  join(projectPath, '.morph/config/agents.json'),
23
- join(projectPath, 'stacks/blazor-azure/.morph/config/agents.json'),
24
- join(projectPath, 'stacks/nextjs-supabase/.morph/config/agents.json'),
25
23
  ];
26
24
 
27
25
  const allAgents = {};
@@ -13,7 +13,6 @@
13
13
  import fs from 'fs/promises';
14
14
  import path from 'path';
15
15
  import { fileURLToPath } from 'url';
16
- import { resolveAgentsConfigPath } from '../stacks/stack-resolver.js';
17
16
 
18
17
  const __filename = fileURLToPath(import.meta.url);
19
18
  const __dirname = path.dirname(__filename);
@@ -24,7 +23,7 @@ const __dirname = path.dirname(__filename);
24
23
  * @returns {Promise<Object>} Parsed agents configuration
25
24
  */
26
25
  async function loadAgentsConfig(projectPath) {
27
- const agentsPath = resolveAgentsConfigPath(projectPath);
26
+ const agentsPath = path.join(projectPath, '.morph/config/agents.json');
28
27
  const content = await fs.readFile(agentsPath, 'utf8');
29
28
  return JSON.parse(content);
30
29
  }
@@ -9,7 +9,6 @@
9
9
 
10
10
  import { readFileSync, existsSync } from 'fs';
11
11
  import { join } from 'path';
12
- import { resolveStandardsDir } from '../stacks/stack-resolver.js';
13
12
 
14
13
  /**
15
14
  * Agent → Standards mapping
@@ -202,8 +201,8 @@ function loadStandard(standardName, projectPath) {
202
201
  const locations = [
203
202
  // 1. Project override
204
203
  join(projectPath, '.morph/project/standards', `${standardName}.md`),
205
- // 2. Stack standards (for stack-specific overrides like azure.md, passkeys-auth.md)
206
- join(resolveStandardsDir(projectPath), `${standardName}.md`),
204
+ // 2. Project-level standards (.morph/standards/)
205
+ join(projectPath, '.morph/standards', `${standardName}.md`),
207
206
  // 3. Framework standards (hierarchical structure: core/, backend/, frontend/, infrastructure/)
208
207
  join(projectPath, 'framework/standards', `${standardName}.md`)
209
208
  ];
@@ -284,7 +283,7 @@ export function getStandardsListForAgent(agentId) {
284
283
  export function checkStandardExists(standardName, projectPath = '.') {
285
284
  const locations = [
286
285
  { type: 'project', path: join(projectPath, '.morph/project/standards', `${standardName}.md`) },
287
- { type: 'stack', path: join(resolveStandardsDir(projectPath), `${standardName}.md`) },
286
+ { type: 'morph', path: join(projectPath, '.morph/standards', `${standardName}.md`) },
288
287
  { type: 'framework', path: join(projectPath, 'framework/standards', `${standardName}.md`) }
289
288
  ];
290
289
 
@@ -6,25 +6,19 @@
6
6
  import { readFileSync, readdirSync, existsSync } from 'fs';
7
7
  import { join, dirname, basename } from 'path';
8
8
  import { fileURLToPath } from 'url';
9
- import { resolveStandardsDir } from '../stacks/stack-resolver.js';
10
9
 
11
10
  const __filename = fileURLToPath(import.meta.url);
12
11
  const __dirname = dirname(__filename);
13
- const frameworkRoot = join(__dirname, '..', '..');
14
12
 
15
- // Directories to search (stack standards resolved dynamically)
13
+ // Directories to search
16
14
  const SEARCH_PATHS = [
17
15
  'framework/standards',
16
+ '.morph/standards',
18
17
  '.wiki'
19
18
  ];
20
19
 
21
20
  function getSearchPaths(basePath) {
22
- const paths = [...SEARCH_PATHS];
23
- // Insert resolved stack standards path
24
- const stackStandards = resolveStandardsDir(basePath || frameworkRoot);
25
- const relativePath = stackStandards.replace(basePath || frameworkRoot, '').replace(/^[\\/]/, '');
26
- paths.splice(1, 0, relativePath);
27
- return paths;
21
+ return SEARCH_PATHS;
28
22
  }
29
23
 
30
24
  /**
@@ -11,7 +11,6 @@ import { existsSync, readFileSync } from 'fs';
11
11
  import { join } from 'path';
12
12
  import chalk from 'chalk';
13
13
  import { loadState } from '../../core/state/state-manager.js';
14
- import { resolveAgentsConfigPath } from '../stacks/stack-resolver.js';
15
14
 
16
15
  /**
17
16
  * Load agent → validators map from agents.json (data-driven)
@@ -20,7 +19,7 @@ import { resolveAgentsConfigPath } from '../stacks/stack-resolver.js';
20
19
  */
21
20
  function loadAgentValidatorMap(projectPath) {
22
21
  try {
23
- const agentsPath = resolveAgentsConfigPath(projectPath);
22
+ const agentsPath = join(projectPath, '.morph/config/agents.json');
24
23
  const agentsConfig = JSON.parse(readFileSync(agentsPath, 'utf8'));
25
24
 
26
25
  const map = {};
@@ -1,7 +1,6 @@
1
1
  import fs from 'fs-extra';
2
2
  import { join, dirname, resolve } from 'path';
3
3
  import { fileURLToPath } from 'url';
4
- import { resolveStackPath } from '../lib/stacks/stack-resolver.js';
5
4
 
6
5
  const __dirname = dirname(fileURLToPath(import.meta.url));
7
6
  const frameworkRoot = join(__dirname, '..', '..');
@@ -11,7 +10,7 @@ function isSamePath(a, b) {
11
10
  }
12
11
 
13
12
  export function getContentDir() {
14
- return resolveStackPath(frameworkRoot);
13
+ return frameworkRoot;
15
14
  }
16
15
 
17
16
  export async function copyDirectory(src, dest, options = {}) {
package/docs/README.md DELETED
@@ -1,144 +0,0 @@
1
- # MORPH-SPEC API Documentation
2
-
3
- This directory contains the API documentation for MORPH-SPEC Framework libraries.
4
-
5
- ## Available Documentation
6
-
7
- ### API Reference (`/api`)
8
-
9
- Comprehensive API documentation generated from JSDoc comments in the source code.
10
-
11
- **Libraries Documented:**
12
- - **state-manager** - Feature state management, agents, checkpoints, outputs tracking
13
- - **design-system-generator** - UI design system parsing and theme generation
14
-
15
- **View Documentation:**
16
- - Open `api/index.html` in your browser
17
- - Or run `npm run docs:serve` to start a local server at http://localhost:8080
18
-
19
- ## Running Tests
20
-
21
- ### Run Tests
22
-
23
- ```bash
24
- npm test
25
- ```
26
-
27
- Runs all 85 unit tests with 100% pass rate.
28
-
29
- ### Run Tests with Coverage
30
-
31
- ```bash
32
- npm run test:coverage
33
- ```
34
-
35
- Generates coverage report (HTML + text + lcov). **Current coverage: 98.03%**
36
-
37
- - **Statements:** 98.03%
38
- - **Branches:** 88.74%
39
- - **Functions:** 100%
40
- - **Lines:** 98.03%
41
-
42
- Coverage reports are generated in `coverage/` directory.
43
-
44
- ### Coverage Summary Only
45
-
46
- ```bash
47
- npm run test:coverage:summary
48
- ```
49
-
50
- Shows text summary without generating HTML report.
51
-
52
- ## Generating Documentation
53
-
54
- ### Build API Docs
55
-
56
- ```bash
57
- npm run docs
58
- ```
59
-
60
- Generates HTML documentation from JSDoc comments in `src/lib/` to `docs/api/`.
61
-
62
- ### Watch Mode
63
-
64
- ```bash
65
- npm run docs:watch
66
- ```
67
-
68
- Automatically regenerates documentation when source files change.
69
-
70
- ### Serve Locally
71
-
72
- ```bash
73
- npm run docs:serve
74
- ```
75
-
76
- Starts a local HTTP server at http://localhost:8080 to view documentation.
77
-
78
- ## Documentation Standards
79
-
80
- ### JSDoc Format
81
-
82
- All library functions in `src/lib/` use JSDoc comments with:
83
-
84
- - **@param** - Parameter descriptions with types
85
- - **@returns** - Return value description with type
86
- - **@throws** - Exceptions that may be thrown
87
- - **@example** - Usage examples (when applicable)
88
-
89
- **Example:**
90
-
91
- ```javascript
92
- /**
93
- * Get feature from state
94
- * @param {string} featureName - Feature name
95
- * @returns {Object|null} Feature object or null
96
- */
97
- export function getFeature(featureName) {
98
- // Implementation
99
- }
100
- ```
101
-
102
- ### Module-Level Documentation
103
-
104
- Each library file starts with a block comment describing:
105
-
106
- - Purpose and responsibilities
107
- - Usage context (CLI commands, internal automation)
108
- - Key features
109
-
110
- **Example:**
111
-
112
- ```javascript
113
- /**
114
- * MORPH-SPEC State Manager Library
115
- *
116
- * Manages state.json for tracking features, progress, agents, and checkpoints.
117
- * Used both by CLI commands and internal automation.
118
- */
119
- ```
120
-
121
- ## Updating Documentation
122
-
123
- 1. **Update JSDoc comments** in source files (`src/lib/*.js`)
124
- 2. **Regenerate docs:** `npm run docs`
125
- 3. **Review:** Open `docs/api/index.html`
126
- 4. **Commit:** Include updated `docs/api/` in your commit
127
-
128
- ## Template
129
-
130
- Documentation is generated using the [docdash](https://github.com/clenemt/docdash) template for JSDoc, configured in `jsdoc.json`.
131
-
132
- **Features:**
133
- - Clean, modern design
134
- - Full-text search
135
- - Responsive layout
136
- - Syntax highlighting
137
- - Type definitions
138
- - Source code links
139
-
140
- ## Links
141
-
142
- - **GitHub:** https://github.com/lucasPolymorphism/morph-spec-framework
143
- - **npm:** https://www.npmjs.com/package/@polymorphism-tech/morph-spec
144
- - **Website:** https://polymorphism.com.br/morph-spec