@polymorphism-tech/morph-spec 3.2.0 → 4.3.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 (386) hide show
  1. package/README.md +1 -14
  2. package/bin/detect-agents.js +1 -1
  3. package/bin/morph-spec.js +403 -40
  4. package/bin/validate.js +5 -5
  5. package/docs/getting-started.md +0 -5
  6. package/docs/next-generation/AGENTS.md +521 -0
  7. package/docs/next-generation/ANALYSIS.md +555 -0
  8. package/docs/next-generation/ARCHITECTURE.md +436 -0
  9. package/docs/next-generation/CONTEXT-OPTIMIZATION.md +267 -0
  10. package/docs/next-generation/EXECUTION-FLOW.md +274 -0
  11. package/docs/next-generation/FEATURES.md +688 -0
  12. package/docs/next-generation/META-PROMPTS.md +235 -0
  13. package/docs/next-generation/MIGRATION-GUIDE.md +253 -0
  14. package/docs/next-generation/README.md +231 -0
  15. package/docs/next-generation/ROADMAP.md +801 -0
  16. package/docs/next-generation/THREAD-MANAGEMENT.md +240 -0
  17. package/docs/validation-checklist.md +0 -1
  18. package/package.json +5 -5
  19. package/src/commands/agents/agents-fuse.js +96 -0
  20. package/src/commands/agents/index.js +4 -0
  21. package/src/commands/agents/micro-agent.js +112 -0
  22. package/src/commands/{spawn-team.js → agents/spawn-team.js} +237 -172
  23. package/src/commands/agents/squad-template.js +146 -0
  24. package/src/commands/analytics/analytics.js +176 -0
  25. package/src/commands/context/context-prime.js +63 -0
  26. package/src/commands/context/core-four.js +54 -0
  27. package/src/commands/{create-story.js → feature/create-story.js} +357 -354
  28. package/src/commands/feature/index.js +6 -0
  29. package/src/commands/{shard-spec.js → feature/shard-spec.js} +2 -2
  30. package/src/commands/{sprint-status.js → feature/sprint-status.js} +1 -1
  31. package/src/commands/{generate-context.js → generation/generate-context.js} +40 -40
  32. package/src/commands/{generate.js → generation/generate.js} +4 -4
  33. package/src/commands/generation/index.js +5 -0
  34. package/src/commands/index.js +16 -0
  35. package/src/commands/{capture-pattern.js → learning/capture-pattern.js} +121 -121
  36. package/src/commands/learning/index.js +5 -0
  37. package/src/commands/mcp/mcp.js +102 -0
  38. package/src/commands/{detect-agents.js → project/detect-agents.js} +178 -178
  39. package/src/commands/project/detect-workflow.js +174 -0
  40. package/src/commands/{detect.js → project/detect.js} +104 -104
  41. package/src/commands/{doctor.js → project/doctor.js} +221 -4
  42. package/src/commands/project/index.js +10 -0
  43. package/src/commands/{init.js → project/init.js} +305 -295
  44. package/src/commands/{sync.js → project/sync.js} +167 -167
  45. package/src/commands/{update.js → project/update.js} +240 -240
  46. package/src/commands/{advance-phase.js → state/advance-phase.js} +101 -25
  47. package/src/commands/{approve.js → state/approve.js} +221 -221
  48. package/src/commands/state/index.js +8 -0
  49. package/src/commands/{rollback-phase.js → state/rollback-phase.js} +185 -185
  50. package/src/commands/{state.js → state/state.js} +334 -334
  51. package/src/commands/{validate-phase.js → state/validate-phase.js} +221 -221
  52. package/src/commands/tasks/index.js +4 -0
  53. package/src/commands/{task.js → tasks/task.js} +78 -78
  54. package/src/commands/templates/index.js +8 -0
  55. package/src/commands/templates/template-customize.js +101 -0
  56. package/src/commands/templates/template-list.js +128 -0
  57. package/src/commands/templates/template-render.js +174 -0
  58. package/src/commands/templates/template-show.js +131 -0
  59. package/src/commands/templates/template-validate.js +91 -0
  60. package/src/commands/threads/thread-template.js +103 -0
  61. package/src/commands/threads/threads.js +261 -0
  62. package/src/commands/trust/trust.js +205 -0
  63. package/src/commands/utils/index.js +7 -0
  64. package/src/commands/{session-summary.js → utils/session-summary.js} +291 -291
  65. package/src/commands/{troubleshoot.js → utils/troubleshoot.js} +222 -222
  66. package/src/commands/{analyze-blazor-concurrency.js → validation/analyze-blazor-concurrency.js} +193 -193
  67. package/src/commands/validation/index.js +8 -0
  68. package/src/commands/{lint-fluent.js → validation/lint-fluent.js} +352 -352
  69. package/src/commands/{validate-blazor-state.js → validation/validate-blazor-state.js} +210 -210
  70. package/src/commands/{validate-blazor.js → validation/validate-blazor.js} +156 -156
  71. package/src/commands/{validate-css.js → validation/validate-css.js} +84 -84
  72. package/src/core/index.js +10 -0
  73. package/src/{orchestrator.js → core/orchestrator.js} +8 -8
  74. package/src/core/registry/command-registry.js +302 -0
  75. package/src/core/registry/index.js +8 -0
  76. package/src/core/registry/validator-registry.js +204 -0
  77. package/src/core/state/index.js +8 -0
  78. package/src/{lib → core/state}/phase-state-machine.js +214 -214
  79. package/src/{lib → core/state}/state-manager.js +588 -534
  80. package/src/core/templates/index.js +9 -0
  81. package/src/core/templates/template-registry.js +335 -0
  82. package/src/core/templates/template-renderer.js +477 -0
  83. package/src/core/templates/template-validator.js +296 -0
  84. package/src/core/workflows/index.js +7 -0
  85. package/src/core/workflows/workflow-detector.js +452 -0
  86. package/src/lib/agents/micro-agent-factory.js +161 -0
  87. package/src/lib/{complexity-analyzer.js → analysis/complexity-analyzer.js} +441 -441
  88. package/src/lib/analysis/index.js +7 -0
  89. package/src/lib/analytics/analytics-engine.js +345 -0
  90. package/src/lib/{checkpoint-hooks.js → checkpoints/checkpoint-hooks.js} +35 -0
  91. package/src/lib/checkpoints/index.js +7 -0
  92. package/src/lib/context/context-bundler.js +240 -0
  93. package/src/lib/context/context-optimizer.js +212 -0
  94. package/src/lib/context/context-tracker.js +273 -0
  95. package/src/lib/context/core-four-tracker.js +201 -0
  96. package/src/lib/context/mcp-optimizer.js +200 -0
  97. package/src/lib/detectors/config-detector.js +223 -223
  98. package/src/lib/detectors/conversation-analyzer.js +163 -163
  99. package/src/lib/{design-system-detector.js → detectors/design-system-detector.js} +187 -187
  100. package/src/lib/detectors/index.js +87 -84
  101. package/src/lib/detectors/standards-generator.js +275 -275
  102. package/src/lib/detectors/structure-detector.js +245 -245
  103. package/src/lib/execution/fusion-executor.js +304 -0
  104. package/src/lib/execution/parallel-executor.js +270 -0
  105. package/src/lib/{context-generator.js → generators/context-generator.js} +526 -516
  106. package/src/lib/generators/index.js +10 -0
  107. package/src/lib/{metadata-extractor.js → generators/metadata-extractor.js} +387 -380
  108. package/src/lib/{recap-generator.js → generators/recap-generator.js} +205 -205
  109. package/src/lib/hooks/hook-executor.js +169 -0
  110. package/src/lib/hooks/stop-hook-executor.js +286 -0
  111. package/src/lib/hops/hop-composer.js +221 -0
  112. package/src/lib/learning/index.js +7 -0
  113. package/src/lib/orchestration/index.js +7 -0
  114. package/src/lib/{team-orchestrator.js → orchestration/team-orchestrator.js} +323 -323
  115. package/src/lib/stacks/index.js +7 -0
  116. package/src/lib/{stack-resolver.js → stacks/stack-resolver.js} +180 -148
  117. package/src/lib/standards/index.js +7 -0
  118. package/src/lib/{standards-context-injector.js → standards/standards-context-injector.js} +298 -288
  119. package/src/lib/threads/thread-coordinator.js +238 -0
  120. package/src/lib/threads/thread-manager.js +317 -0
  121. package/src/lib/tracking/artifact-trail.js +202 -0
  122. package/src/lib/troubleshooting/index.js +8 -0
  123. package/src/lib/{troubleshoot-grep.js → troubleshooting/troubleshoot-grep.js} +204 -204
  124. package/src/lib/{troubleshoot-index.js → troubleshooting/troubleshoot-index.js} +144 -144
  125. package/src/lib/trust/trust-manager.js +269 -0
  126. package/src/lib/validators/{architecture-validator.js → architecture/architecture-validator.js} +8 -8
  127. package/src/lib/validators/architecture/index.js +7 -0
  128. package/src/lib/{blazor-concurrency-analyzer.js → validators/blazor/blazor-concurrency-analyzer.js} +277 -288
  129. package/src/lib/{blazor-state-validator.js → validators/blazor/blazor-state-validator.js} +279 -291
  130. package/src/lib/{blazor-validator.js → validators/blazor/blazor-validator.js} +369 -374
  131. package/src/lib/validators/blazor/index.js +9 -0
  132. package/src/lib/validators/{content-validator.js → content/content-validator.js} +351 -351
  133. package/src/lib/validators/content/index.js +7 -0
  134. package/src/lib/validators/{contract-compliance-validator.js → contracts/contract-compliance-validator.js} +273 -273
  135. package/src/lib/validators/contracts/index.js +7 -0
  136. package/src/lib/{css-validator.js → validators/css/css-validator.js} +352 -352
  137. package/src/lib/validators/css/index.js +7 -0
  138. package/src/lib/validators/{design-system-validator.js → design-system/design-system-validator.js} +231 -231
  139. package/src/lib/validators/design-system/index.js +7 -0
  140. package/src/lib/validators/packages/index.js +7 -0
  141. package/src/lib/validators/shared/index.js +12 -0
  142. package/src/lib/validators/shared/issue-counter.js +18 -0
  143. package/src/lib/validators/shared/result-formatter.js +124 -0
  144. package/src/lib/{spec-validator.js → validators/spec-validator.js} +258 -258
  145. package/src/lib/validators/ui/index.js +7 -0
  146. package/src/lib/{validation-runner.js → validators/validation-runner.js} +286 -284
  147. package/src/ui/wizard-questions.js +0 -2
  148. package/src/utils/color-utils.js +70 -0
  149. package/src/utils/file-copier.js +188 -189
  150. package/src/utils/process-handler.js +97 -0
  151. package/stacks/blazor-azure/.morph/config/agents.json +948 -764
  152. package/stacks/blazor-azure/.morph/hooks/{pre-commit-tests.sh → pre-commit/tests-csharp.sh} +3 -2
  153. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/cd-prod.yml.hbs +41 -0
  154. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/cd-staging.yml.hbs +24 -0
  155. package/stacks/blazor-azure/.morph/templates/infrastructure/github/workflows/ci-build.yml.hbs +23 -0
  156. package/stacks/nextjs-supabase/.morph/config/agents.json +345 -345
  157. package/stacks/nextjs-supabase/.morph/hooks/pre-commit/tests-typescript.sh +61 -0
  158. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/cd-prod.yml.hbs +22 -0
  159. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/cd-staging.yml.hbs +22 -0
  160. package/stacks/nextjs-supabase/.morph/templates/infrastructure/github/workflows/ci-build.yml.hbs +35 -0
  161. package/stacks/nextjs-supabase/README.md +6 -15
  162. package/CLAUDE.md +0 -648
  163. package/bin/render-template.js +0 -349
  164. package/bin/semantic-detect-agents.js +0 -247
  165. package/bin/validate-agents-skills.js +0 -257
  166. package/bin/validate-agents.js +0 -70
  167. package/bin/validate-phase.js +0 -263
  168. package/docs/examples.md +0 -328
  169. package/docs/llm-interaction-config.md +0 -735
  170. package/scripts/reorganize-skills.cjs +0 -175
  171. package/scripts/validate-agents-structure.cjs +0 -52
  172. package/scripts/validate-skills.cjs +0 -180
  173. package/src/commands/deploy.js +0 -780
  174. package/src/commands/migrate-state.js +0 -158
  175. package/src/commands/upgrade.js +0 -346
  176. package/src/lib/continuous-validator.js +0 -421
  177. package/src/lib/decision-constraint-loader.js +0 -109
  178. package/src/lib/design-system-scaffolder.js +0 -299
  179. package/src/lib/hook-executor.js +0 -257
  180. package/src/lib/mockup-generator.js +0 -366
  181. package/src/lib/ui-detector.js +0 -350
  182. package/src/llm/schema-validator.js +0 -121
  183. package/src/sanitizer/.gitkeep +0 -0
  184. package/src/scanner/.gitkeep +0 -0
  185. package/src/types/index.js +0 -477
  186. package/src/ui/.gitkeep +0 -0
  187. package/src/writer/.gitkeep +0 -0
  188. package/stacks/blazor-azure/.azure/README.md +0 -293
  189. package/stacks/blazor-azure/.azure/docs/azure-devops-setup.md +0 -454
  190. package/stacks/blazor-azure/.azure/docs/branch-strategy.md +0 -398
  191. package/stacks/blazor-azure/.azure/docs/local-development.md +0 -515
  192. package/stacks/blazor-azure/.azure/pipelines/pipeline-variables.yml +0 -34
  193. package/stacks/blazor-azure/.azure/pipelines/prod-pipeline.yml +0 -319
  194. package/stacks/blazor-azure/.azure/pipelines/staging-pipeline.yml +0 -234
  195. package/stacks/blazor-azure/.azure/pipelines/templates/build-dotnet.yml +0 -75
  196. package/stacks/blazor-azure/.azure/pipelines/templates/deploy-app-service.yml +0 -94
  197. package/stacks/blazor-azure/.azure/pipelines/templates/deploy-container-app.yml +0 -120
  198. package/stacks/blazor-azure/.azure/pipelines/templates/infra-deploy.yml +0 -90
  199. package/stacks/blazor-azure/.claude/commands/morph-apply.md +0 -221
  200. package/stacks/blazor-azure/.claude/commands/morph-archive.md +0 -79
  201. package/stacks/blazor-azure/.claude/commands/morph-deploy.md +0 -529
  202. package/stacks/blazor-azure/.claude/commands/morph-infra.md +0 -209
  203. package/stacks/blazor-azure/.claude/commands/morph-preflight.md +0 -227
  204. package/stacks/blazor-azure/.claude/commands/morph-proposal.md +0 -122
  205. package/stacks/blazor-azure/.claude/commands/morph-status.md +0 -86
  206. package/stacks/blazor-azure/.claude/commands/morph-troubleshoot.md +0 -122
  207. package/stacks/blazor-azure/.claude/settings.local.json +0 -15
  208. package/stacks/blazor-azure/.claude/skills/level-0-meta/README.md +0 -7
  209. package/stacks/blazor-azure/.claude/skills/level-0-meta/code-review.md +0 -226
  210. package/stacks/blazor-azure/.claude/skills/level-0-meta/morph-checklist.md +0 -117
  211. package/stacks/blazor-azure/.claude/skills/level-0-meta/simulation-checklist.md +0 -77
  212. package/stacks/blazor-azure/.claude/skills/level-1-workflows/README.md +0 -7
  213. package/stacks/blazor-azure/.claude/skills/level-1-workflows/morph-replicate.md +0 -213
  214. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-clarify.md +0 -131
  215. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-design.md +0 -213
  216. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-setup.md +0 -106
  217. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-tasks.md +0 -164
  218. package/stacks/blazor-azure/.claude/skills/level-1-workflows/phase-uiux.md +0 -169
  219. package/stacks/blazor-azure/.claude/skills/level-2-domains/README.md +0 -14
  220. package/stacks/blazor-azure/.claude/skills/level-2-domains/ai-agents/ai-system-architect.md +0 -192
  221. package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/po-pm-advisor.md +0 -197
  222. package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/prompt-engineer.md +0 -189
  223. package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/seo-growth-hacker.md +0 -320
  224. package/stacks/blazor-azure/.claude/skills/level-2-domains/architecture/standards-architect.md +0 -156
  225. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/dotnet-senior.md +0 -287
  226. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/ef-modeler.md +0 -113
  227. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/hangfire-orchestrator.md +0 -126
  228. package/stacks/blazor-azure/.claude/skills/level-2-domains/backend/ms-agent-expert.md +0 -109
  229. package/stacks/blazor-azure/.claude/skills/level-2-domains/frontend/blazor-builder.md +0 -210
  230. package/stacks/blazor-azure/.claude/skills/level-2-domains/frontend/nextjs-expert.md +0 -154
  231. package/stacks/blazor-azure/.claude/skills/level-2-domains/frontend/ui-ux-designer.md +0 -191
  232. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/azure-architect.md +0 -142
  233. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/azure-deploy-specialist.md +0 -699
  234. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/bicep-architect.md +0 -126
  235. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/container-specialist.md +0 -131
  236. package/stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure/devops-engineer.md +0 -119
  237. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/asaas-financial.md +0 -130
  238. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/azure-identity.md +0 -142
  239. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/clerk-auth.md +0 -108
  240. package/stacks/blazor-azure/.claude/skills/level-2-domains/integrations/resend-email.md +0 -119
  241. package/stacks/blazor-azure/.claude/skills/level-2-domains/quality/code-analyzer.md +0 -235
  242. package/stacks/blazor-azure/.claude/skills/level-2-domains/quality/testing-specialist.md +0 -126
  243. package/stacks/blazor-azure/.claude/skills/level-3-technologies/README.md +0 -7
  244. package/stacks/blazor-azure/.claude/skills/level-4-patterns/README.md +0 -7
  245. package/stacks/blazor-azure/.morph/archive/.gitkeep +0 -25
  246. package/stacks/blazor-azure/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +0 -392
  247. package/stacks/blazor-azure/.morph/docs/workflows/design-impl.md +0 -37
  248. package/stacks/blazor-azure/.morph/docs/workflows/enforcement-pipeline.md +0 -668
  249. package/stacks/blazor-azure/.morph/docs/workflows/fast-track.md +0 -29
  250. package/stacks/blazor-azure/.morph/docs/workflows/full-morph.md +0 -76
  251. package/stacks/blazor-azure/.morph/docs/workflows/standard.md +0 -44
  252. package/stacks/blazor-azure/.morph/docs/workflows/ui-refresh.md +0 -39
  253. package/stacks/blazor-azure/.morph/examples/api-nextjs/README.md +0 -241
  254. package/stacks/blazor-azure/.morph/examples/api-nextjs/contracts.ts +0 -307
  255. package/stacks/blazor-azure/.morph/examples/api-nextjs/spec.md +0 -399
  256. package/stacks/blazor-azure/.morph/examples/api-nextjs/tasks.md +0 -168
  257. package/stacks/blazor-azure/.morph/examples/micro-saas/README.md +0 -125
  258. package/stacks/blazor-azure/.morph/examples/micro-saas/contracts.cs +0 -358
  259. package/stacks/blazor-azure/.morph/examples/micro-saas/decisions.md +0 -246
  260. package/stacks/blazor-azure/.morph/examples/micro-saas/spec.md +0 -236
  261. package/stacks/blazor-azure/.morph/examples/micro-saas/tasks.md +0 -150
  262. package/stacks/blazor-azure/.morph/examples/multi-agent/README.md +0 -309
  263. package/stacks/blazor-azure/.morph/examples/multi-agent/contracts.cs +0 -433
  264. package/stacks/blazor-azure/.morph/examples/multi-agent/spec.md +0 -479
  265. package/stacks/blazor-azure/.morph/examples/multi-agent/tasks.md +0 -185
  266. package/stacks/blazor-azure/.morph/examples/scheduled-reports/decisions.md +0 -158
  267. package/stacks/blazor-azure/.morph/examples/scheduled-reports/proposal.md +0 -95
  268. package/stacks/blazor-azure/.morph/examples/scheduled-reports/spec.md +0 -267
  269. package/stacks/blazor-azure/.morph/examples/state-v3.json +0 -188
  270. package/stacks/blazor-azure/.morph/features/.gitkeep +0 -25
  271. package/stacks/blazor-azure/.morph/hooks/README.md +0 -348
  272. package/stacks/blazor-azure/.morph/hooks/pre-commit-agents.sh +0 -24
  273. package/stacks/blazor-azure/.morph/hooks/pre-commit-all.sh +0 -48
  274. package/stacks/blazor-azure/.morph/hooks/pre-commit-specs.sh +0 -49
  275. package/stacks/blazor-azure/.morph/hooks/task-completed.js +0 -73
  276. package/stacks/blazor-azure/.morph/hooks/teammate-idle.js +0 -68
  277. package/stacks/blazor-azure/.morph/schemas/agent.schema.json +0 -296
  278. package/stacks/blazor-azure/.morph/schemas/tasks.schema.json +0 -220
  279. package/stacks/blazor-azure/.morph/specs/.gitkeep +0 -20
  280. package/stacks/blazor-azure/.morph/standards/agent-framework-blazor-ui.md +0 -359
  281. package/stacks/blazor-azure/.morph/standards/agent-framework-production.md +0 -410
  282. package/stacks/blazor-azure/.morph/standards/agent-framework-setup.md +0 -413
  283. package/stacks/blazor-azure/.morph/standards/agent-framework-workflows.md +0 -349
  284. package/stacks/blazor-azure/.morph/standards/agent-teams-workflow.md +0 -474
  285. package/stacks/blazor-azure/.morph/standards/architecture.md +0 -325
  286. package/stacks/blazor-azure/.morph/standards/azure.md +0 -605
  287. package/stacks/blazor-azure/.morph/standards/coding.md +0 -377
  288. package/stacks/blazor-azure/.morph/standards/dotnet10-migration.md +0 -520
  289. package/stacks/blazor-azure/.morph/standards/fluent-ui-setup.md +0 -590
  290. package/stacks/blazor-azure/.morph/standards/migration-guide.md +0 -514
  291. package/stacks/blazor-azure/.morph/standards/passkeys-auth.md +0 -423
  292. package/stacks/blazor-azure/.morph/standards/vector-search-rag.md +0 -536
  293. package/stacks/blazor-azure/.morph/templates/CONTEXT-FEATURE.md +0 -276
  294. package/stacks/blazor-azure/.morph/templates/CONTEXT.md +0 -170
  295. package/stacks/blazor-azure/.morph/templates/FluentDesignTheme.cs +0 -149
  296. package/stacks/blazor-azure/.morph/templates/MudTheme.cs +0 -281
  297. package/stacks/blazor-azure/.morph/templates/agent.cs +0 -163
  298. package/stacks/blazor-azure/.morph/templates/clarify-questions.md +0 -159
  299. package/stacks/blazor-azure/.morph/templates/component.razor +0 -239
  300. package/stacks/blazor-azure/.morph/templates/contracts/Commands.cs +0 -74
  301. package/stacks/blazor-azure/.morph/templates/contracts/Entities.cs +0 -25
  302. package/stacks/blazor-azure/.morph/templates/contracts/Queries.cs +0 -74
  303. package/stacks/blazor-azure/.morph/templates/contracts/README.md +0 -74
  304. package/stacks/blazor-azure/.morph/templates/contracts.cs +0 -217
  305. package/stacks/blazor-azure/.morph/templates/decisions.md +0 -123
  306. package/stacks/blazor-azure/.morph/templates/design-system.css +0 -226
  307. package/stacks/blazor-azure/.morph/templates/infra/.dockerignore.example +0 -89
  308. package/stacks/blazor-azure/.morph/templates/infra/Dockerfile.example +0 -82
  309. package/stacks/blazor-azure/.morph/templates/infra/README.md +0 -286
  310. package/stacks/blazor-azure/.morph/templates/infra/app-insights.bicep +0 -63
  311. package/stacks/blazor-azure/.morph/templates/infra/app-service.bicep +0 -164
  312. package/stacks/blazor-azure/.morph/templates/infra/azure-pipelines-deploy.yml +0 -480
  313. package/stacks/blazor-azure/.morph/templates/infra/container-app-env.bicep +0 -49
  314. package/stacks/blazor-azure/.morph/templates/infra/container-app.bicep +0 -156
  315. package/stacks/blazor-azure/.morph/templates/infra/deploy-checklist.md +0 -426
  316. package/stacks/blazor-azure/.morph/templates/infra/deploy.ps1 +0 -229
  317. package/stacks/blazor-azure/.morph/templates/infra/deploy.sh +0 -208
  318. package/stacks/blazor-azure/.morph/templates/infra/key-vault.bicep +0 -91
  319. package/stacks/blazor-azure/.morph/templates/infra/main.bicep +0 -189
  320. package/stacks/blazor-azure/.morph/templates/infra/parameters.dev.json +0 -29
  321. package/stacks/blazor-azure/.morph/templates/infra/parameters.prod.json +0 -29
  322. package/stacks/blazor-azure/.morph/templates/infra/parameters.staging.json +0 -29
  323. package/stacks/blazor-azure/.morph/templates/infra/sql-database.bicep +0 -103
  324. package/stacks/blazor-azure/.morph/templates/infra/storage.bicep +0 -106
  325. package/stacks/blazor-azure/.morph/templates/integrations/asaas-client.cs +0 -387
  326. package/stacks/blazor-azure/.morph/templates/integrations/asaas-webhook.cs +0 -351
  327. package/stacks/blazor-azure/.morph/templates/integrations/azure-identity-config.cs +0 -288
  328. package/stacks/blazor-azure/.morph/templates/integrations/clerk-config.cs +0 -258
  329. package/stacks/blazor-azure/.morph/templates/job.cs +0 -171
  330. package/stacks/blazor-azure/.morph/templates/migration.cs +0 -83
  331. package/stacks/blazor-azure/.morph/templates/proposal.md +0 -141
  332. package/stacks/blazor-azure/.morph/templates/recap.md +0 -94
  333. package/stacks/blazor-azure/.morph/templates/repository.cs +0 -141
  334. package/stacks/blazor-azure/.morph/templates/saas/subscription.cs +0 -347
  335. package/stacks/blazor-azure/.morph/templates/saas/tenant.cs +0 -338
  336. package/stacks/blazor-azure/.morph/templates/service.cs +0 -139
  337. package/stacks/blazor-azure/.morph/templates/simulation.md +0 -353
  338. package/stacks/blazor-azure/.morph/templates/spec.md +0 -149
  339. package/stacks/blazor-azure/.morph/templates/sprint-status.yaml +0 -68
  340. package/stacks/blazor-azure/.morph/templates/state.template.json +0 -222
  341. package/stacks/blazor-azure/.morph/templates/story.md +0 -143
  342. package/stacks/blazor-azure/.morph/templates/tasks.md +0 -257
  343. package/stacks/blazor-azure/.morph/templates/test.cs +0 -239
  344. package/stacks/blazor-azure/.morph/templates/ui-components.md +0 -362
  345. package/stacks/blazor-azure/.morph/templates/ui-design-system.md +0 -286
  346. package/stacks/blazor-azure/.morph/templates/ui-flows.md +0 -336
  347. package/stacks/blazor-azure/.morph/templates/ui-mockups.md +0 -133
  348. package/stacks/blazor-azure/.morph/test-infra/example.bicep +0 -59
  349. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/backend/dotnet-supabase.md +0 -244
  350. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/frontend/nextjs-supabase.md +0 -335
  351. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/infrastructure/easypanel-deployer.md +0 -189
  352. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/integrations/supabase-expert.md +0 -170
  353. package/stacks/nextjs-supabase/.morph/docs/easypanel-setup.md +0 -169
  354. package/stacks/nextjs-supabase/.morph/docs/supabase-mcp-setup.md +0 -247
  355. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/README.md +0 -697
  356. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/spec.md +0 -85
  357. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/tasks.md +0 -86
  358. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/README.md +0 -498
  359. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/decisions.md +0 -121
  360. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/spec.md +0 -138
  361. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/tasks.md +0 -162
  362. package/stacks/nextjs-supabase/.morph/standards/easypanel-deploy.md +0 -191
  363. package/stacks/nextjs-supabase/.morph/standards/nextjs-patterns.md +0 -193
  364. package/stacks/nextjs-supabase/.morph/standards/supabase-auth.md +0 -171
  365. package/stacks/nextjs-supabase/.morph/standards/supabase-pgvector.md +0 -164
  366. package/stacks/nextjs-supabase/.morph/standards/supabase-rls.md +0 -179
  367. package/stacks/nextjs-supabase/.morph/standards/supabase-storage.md +0 -148
  368. package/stacks/nextjs-supabase/.morph/templates/contracts.cs +0 -173
  369. package/stacks/nextjs-supabase/.morph/templates/contracts.ts +0 -168
  370. package/stacks/nextjs-supabase/.morph/templates/decisions.md +0 -115
  371. package/stacks/nextjs-supabase/.morph/templates/dockerfile-api.dockerfile +0 -38
  372. package/stacks/nextjs-supabase/.morph/templates/dockerfile-web.dockerfile +0 -48
  373. package/stacks/nextjs-supabase/.morph/templates/proposal.md +0 -145
  374. package/stacks/nextjs-supabase/.morph/templates/recap.md +0 -134
  375. package/stacks/nextjs-supabase/.morph/templates/rls-policy.sql +0 -57
  376. package/stacks/nextjs-supabase/.morph/templates/spec.md +0 -231
  377. package/stacks/nextjs-supabase/.morph/templates/supabase-migration.sql +0 -100
  378. package/stacks/nextjs-supabase/.morph/templates/tasks.md +0 -257
  379. /package/src/commands/{search-patterns.js → learning/search-patterns.js} +0 -0
  380. /package/src/{lib → core/templates}/template-data-sources.js +0 -0
  381. /package/src/lib/{design-system-generator.js → generators/design-system-generator.js} +0 -0
  382. /package/src/lib/{learning-system.js → learning/learning-system.js} +0 -0
  383. /package/src/lib/validators/{package-validator.js → packages/package-validator.js} +0 -0
  384. /package/src/lib/validators/{ui-contrast-validator.js → ui/ui-contrast-validator.js} +0 -0
  385. /package/{src/generator → stacks/blazor-azure/.morph/templates}/.gitkeep +0 -0
  386. /package/{src/llm → stacks/nextjs-supabase/.morph/templates}/.gitkeep +0 -0
@@ -1,25 +0,0 @@
1
- # Features em Desenvolvimento
2
-
3
- Esta pasta contém as features ATIVAS em desenvolvimento.
4
-
5
- ## Estrutura
6
-
7
- ```
8
- features/
9
- └── {feature-name}/
10
- ├── proposal.md # Proposta (por que e o quê)
11
- ├── spec.md # Especificação técnica
12
- ├── tasks.md # Checklist de implementação
13
- ├── contracts.cs # Interfaces e DTOs
14
- ├── decisions.md # ADRs
15
- └── recap.md # Resumo pós-implementação
16
- ```
17
-
18
- ## Workflow
19
-
20
- 1. `/morph-proposal {feature}` - Criar nova feature
21
- 2. Revisar e aprovar proposal
22
- 3. `/morph-apply {feature}` - Implementar
23
- 4. `/morph-archive {feature}` - Arquivar quando concluída
24
-
25
- *Gerado pelo MORPH Framework*
@@ -1,348 +0,0 @@
1
- # MORPH-SPEC Git Hooks
2
-
3
- Pre-commit hooks for automatic validation before committing.
4
-
5
- ## Available Hooks
6
-
7
- | Hook | Description | Action |
8
- |------|-------------|--------|
9
- | `pre-commit-agents.sh` | Validates agents.json with JSON Schema | ❌ Blocks commit |
10
- | `pre-commit-specs.sh` | Validates spec.md has required sections | ❌ Blocks commit |
11
- | `pre-commit-tests.sh` | Checks if new code has tests | ⚠️ Warns only |
12
- | `pre-commit-all.sh` | Runs all hooks in sequence | ❌ Blocks if any fail |
13
-
14
- ## Installation
15
-
16
- ### Option 1: Install Individual Hooks
17
-
18
- ```bash
19
- # Symlink all hooks at once
20
- ln -s ../../.morph/hooks/pre-commit-all.sh .git/hooks/pre-commit
21
- ```
22
-
23
- ### Option 2: Copy Hooks
24
-
25
- ```bash
26
- # Copy master hook
27
- cp .morph/hooks/pre-commit-all.sh .git/hooks/pre-commit
28
- chmod +x .git/hooks/pre-commit
29
- ```
30
-
31
- ### Option 3: Use Existing Hooks
32
-
33
- If you already have `.git/hooks/pre-commit`, add this to the end:
34
-
35
- ```bash
36
- # Run MORPH-SPEC validations
37
- bash .morph/hooks/pre-commit-all.sh || exit 1
38
- ```
39
-
40
- ## What Each Hook Does
41
-
42
- ### pre-commit-agents.sh
43
-
44
- **Validates:** `agents.json` configuration
45
-
46
- **Checks:**
47
- - JSON Schema compliance
48
- - Required fields (id, name, emoji, type, etc.)
49
- - Keyword patterns (alphanumeric + hyphens/underscores)
50
- - No duplicate keywords
51
- - autoActivation for specialist agents
52
-
53
- **Example Output:**
54
- ```
55
- 🤖 Validating agent configuration...
56
- Detected changes to agents.json
57
-
58
- === MORPH-SPEC Agent Validator ===
59
-
60
- Version: 1.0.0
61
- Core Agents: 6
62
- Specialist Agents: 4
63
-
64
- ✓ Validation PASSED
65
- ```
66
-
67
- ### pre-commit-specs.sh
68
-
69
- **Validates:** `spec.md` files have required sections
70
-
71
- **Checks:**
72
- - `## 📋 Metadata`
73
- - `## 🎯 Overview`
74
- - `## 🏗️ Technical Design`
75
- - `## ✅ Acceptance Criteria`
76
- - Warns if no user stories found
77
-
78
- **Example Output:**
79
- ```
80
- 🔍 Validating spec files...
81
- Checking: .morph/outputs/my-feature/spec.md
82
- ✓ All required sections found
83
- ✓ All spec files are valid
84
- ```
85
-
86
- ### pre-commit-tests.sh
87
-
88
- **Validates:** New C# code has corresponding tests
89
-
90
- **Checks:**
91
- - Finds modified `.cs` files (excluding tests)
92
- - Looks for `*Tests.cs` or `Test*.cs`
93
- - Skips trivial files (DTOs, records, models)
94
- - **Warns only, doesn't block**
95
-
96
- **Example Output:**
97
- ```
98
- 🧪 Checking test coverage...
99
- ✓ Test found for: Services/UserService.cs
100
- ⚠️ No test found for: Services/PaymentService.cs
101
-
102
- ⚠️ WARNING: Some files don't have tests
103
- Override with: git commit --no-verify
104
- ```
105
-
106
- ### pre-commit-all.sh (Master Hook)
107
-
108
- **Runs:** All hooks in sequence
109
-
110
- **Output:**
111
- ```
112
- ╔════════════════════════════════════════════════╗
113
- ║ MORPH-SPEC PRE-COMMIT VALIDATION ║
114
- ╚════════════════════════════════════════════════╝
115
-
116
- ─────────────────────────────────────────────────
117
- 🤖 Validating agent configuration...
118
- ✓ No changes to agents.json
119
-
120
- ─────────────────────────────────────────────────
121
- 🔍 Validating spec files...
122
- ✓ No spec files modified
123
-
124
- ─────────────────────────────────────────────────
125
- 🧪 Checking test coverage...
126
- ✓ Test found for: Services/UserService.cs
127
-
128
- ═════════════════════════════════════════════════
129
- ✅ ALL PRE-COMMIT VALIDATIONS PASSED
130
- ```
131
-
132
- ## Bypassing Hooks
133
-
134
- If you need to commit without validation (e.g., WIP commit):
135
-
136
- ```bash
137
- git commit --no-verify -m "WIP: work in progress"
138
- ```
139
-
140
- **⚠️ Use sparingly** - hooks exist to prevent errors.
141
-
142
- ## Customizing Hooks
143
-
144
- ### Disable Specific Hooks
145
-
146
- Edit `.git/hooks/pre-commit` and comment out unwanted hooks:
147
-
148
- ```bash
149
- HOOKS=(
150
- "pre-commit-agents.sh"
151
- "pre-commit-specs.sh"
152
- "pre-commit-tests.sh"
153
- )
154
- ```
155
-
156
- ## Troubleshooting
157
-
158
- ### Hook Not Running
159
-
160
- ```bash
161
- # Check if hook exists
162
- ls -la .git/hooks/pre-commit
163
-
164
- # Check if executable
165
- chmod +x .git/hooks/pre-commit
166
-
167
- # Test manually
168
- bash .git/hooks/pre-commit
169
- ```
170
-
171
- ### Hook Fails Unexpectedly
172
-
173
- ```bash
174
- # Run individual hook for debugging
175
- bash .morph/hooks/pre-commit-costs.sh
176
-
177
- # Check hook output
178
- bash -x .morph/hooks/pre-commit-costs.sh
179
- ```
180
-
181
- ## Benefits
182
-
183
- - ✅ **Prevents Errors:** Catches issues before commit
184
- - ✅ **Enforces Quality:** Requires tests, specs, ADRs
185
- - ✅ **Fast Feedback:** Fails early in dev workflow
186
- - ✅ **Consistent:** Same validation for entire team
187
-
188
- ---
189
-
190
- ## Agent Teams Hooks (Claude Code)
191
-
192
- **New in MORPH 3.0:** Hooks for Claude Code's experimental Agent Teams feature.
193
-
194
- ### Available Agent Teams Hooks
195
-
196
- | Hook | Event | Description | Action |
197
- |------|-------|-------------|--------|
198
- | `teammate-idle.js` | TeammateIdle | Validates teammate's work before proceeding | ❌ Blocks if errors |
199
- | `task-completed.js` | TaskCompleted | Validates task deliverables on completion | ❌ Blocks if errors |
200
-
201
- ### teammate-idle.js
202
-
203
- **Triggered:** When a teammate in Agent Teams is idle and waiting for instructions
204
- **Purpose:** Quality gate to validate recent work before allowing teammate to proceed
205
- **Validates:** Security, code quality, standards compliance
206
-
207
- **Usage:**
208
- ```bash
209
- node .morph/hooks/teammate-idle.js <feature-name> [--dry-run] [--verbose]
210
- ```
211
-
212
- **Example:**
213
- ```bash
214
- node .morph/hooks/teammate-idle.js user-authentication --verbose
215
- ```
216
-
217
- **Output:**
218
- ```
219
- 🔔 TeammateIdle Hook Triggered
220
- Feature: user-authentication
221
- Event: Teammate is idle, validating recent work...
222
-
223
- 🎯 Executing TeammateIdle hook for feature: user-authentication
224
- Validators: security-expert
225
-
226
- 🔍 Running security-expert validators...
227
-
228
- ✅ TeammateIdle hook: All validators passed
229
- ```
230
-
231
- **Configuration:**
232
-
233
- Validators are configured in `agents.json` for Tier 4 agents:
234
-
235
- ```json
236
- {
237
- "security-expert": {
238
- "tier": 4,
239
- "role": "validator",
240
- "relationships": {
241
- "runs_in": "hooks",
242
- "hook_triggers": ["TeammateIdle", "TaskCompleted"]
243
- },
244
- "hook_behavior": {
245
- "validates": [
246
- "SQL injection (string concatenation in queries)",
247
- "Hardcoded secrets (API keys, passwords, connection strings)",
248
- "XSS (@Html.Raw usage in Razor/Blazor)"
249
- ],
250
- "severity": "error",
251
- "blocks_on_fail": true
252
- }
253
- }
254
- }
255
- ```
256
-
257
- ### task-completed.js
258
-
259
- **Triggered:** When a task is marked as completed
260
- **Purpose:** Quality gate to validate task deliverables before marking done
261
- **Validates:** All active validators for the feature
262
-
263
- **Usage:**
264
- ```bash
265
- node .morph/hooks/task-completed.js <feature-name> <task-id> [--dry-run] [--verbose]
266
- ```
267
-
268
- **Example:**
269
- ```bash
270
- node .morph/hooks/task-completed.js user-authentication T003 --verbose
271
- ```
272
-
273
- **Output:**
274
- ```
275
- 🔔 TaskCompleted Hook Triggered
276
- Feature: user-authentication
277
- Task: T003
278
- Event: Task marked complete, validating deliverables...
279
-
280
- 🎯 Executing TaskCompleted hook for feature: user-authentication
281
- Validators: security-expert
282
-
283
- 🔍 Running security-expert validators...
284
-
285
- ❌ TaskCompleted hook: Validation FAILED
286
-
287
- 🚫 ERRORS (blocking):
288
- security-expert → security
289
- • Hardcoded secret detected: API key in appsettings.json (appsettings.json:15)
290
- • SQL injection risk: String concatenation in UserService.cs (UserService.cs:42)
291
-
292
- ⛔ Hook execution BLOCKED - fix errors before proceeding
293
-
294
- 💡 TIP: Fix the errors above before the task can be marked complete.
295
- ```
296
-
297
- ### Integration with Claude Code
298
-
299
- When Agent Teams is enabled (`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`), these hooks run automatically:
300
-
301
- 1. **TeammateIdle**: When a teammate finishes work and waits
302
- 2. **TaskCompleted**: When `morph-spec task done` is called
303
-
304
- **Claude Code Settings:**
305
- ```json
306
- {
307
- "hooks": {
308
- "TeammateIdle": "node .morph/hooks/teammate-idle.js {feature}",
309
- "TaskCompleted": "node .morph/hooks/task-completed.js {feature} {taskId}"
310
- }
311
- }
312
- ```
313
-
314
- ### Dry Run Mode
315
-
316
- Test hooks without blocking:
317
-
318
- ```bash
319
- # See what would run without executing
320
- node .morph/hooks/teammate-idle.js my-feature --dry-run
321
-
322
- # Output:
323
- # 🔍 DRY RUN - Would execute:
324
- # - security-expert (severity: error)
325
- # • SQL injection (string concatenation in queries)
326
- # • Hardcoded secrets (API keys, passwords, connection strings)
327
- # • XSS (@Html.Raw usage in Razor/Blazor)
328
- ```
329
-
330
- ### Hook Behavior Configuration
331
-
332
- | Field | Description | Values |
333
- |-------|-------------|--------|
334
- | `validates` | Array of validation checks | Descriptive strings |
335
- | `severity` | Error level | `"error"` (blocks) \| `"warning"` (warns only) |
336
- | `blocks_on_fail` | Block on failure | `true` (default) \| `false` |
337
-
338
- ### Exit Codes
339
-
340
- | Code | Meaning |
341
- |------|---------|
342
- | 0 | All validators passed |
343
- | 1 | Validation failed and blocked |
344
- | 2 | Configuration error (missing feature, etc.) |
345
-
346
- ---
347
-
348
- *MORPH-SPEC Framework - Git Hooks*
@@ -1,24 +0,0 @@
1
- #!/bin/bash
2
- # MORPH-SPEC Pre-Commit Hook: Agent Configuration Validation
3
- # Uses validate-agents.js to check agents.json
4
-
5
- echo "🤖 Validating agent configuration..."
6
-
7
- # Check if agents.json is being modified
8
- if git diff --cached --name-only | grep -q 'agents\.json$'; then
9
- echo "Detected changes to agents.json"
10
-
11
- # Run validator
12
- if ! npx morph-spec validate-agents-skills; then
13
- echo ""
14
- echo "❌ COMMIT BLOCKED: agents.json validation failed"
15
- echo " Fix errors above before committing"
16
- exit 1
17
- fi
18
-
19
- echo "✓ agents.json is valid"
20
- else
21
- echo "✓ No changes to agents.json"
22
- fi
23
-
24
- exit 0
@@ -1,48 +0,0 @@
1
- #!/bin/bash
2
- # MORPH-SPEC Master Pre-Commit Hook
3
- # Runs all validation hooks in sequence
4
-
5
- echo "╔════════════════════════════════════════════════╗"
6
- echo "║ MORPH-SPEC PRE-COMMIT VALIDATION ║"
7
- echo "╚════════════════════════════════════════════════╝"
8
- echo ""
9
-
10
- HOOKS_DIR="$(dirname "$0")"
11
-
12
- # Run all hooks in order
13
- HOOKS=(
14
- "pre-commit-agents.sh"
15
- "pre-commit-costs.sh"
16
- "pre-commit-specs.sh"
17
- "pre-commit-tests.sh"
18
- )
19
-
20
- HAS_FAILURES=false
21
-
22
- for hook in "${HOOKS[@]}"; do
23
- HOOK_PATH="$HOOKS_DIR/$hook"
24
-
25
- if [ ! -f "$HOOK_PATH" ]; then
26
- echo "⚠️ Hook not found: $hook (skipping)"
27
- continue
28
- fi
29
-
30
- echo "─────────────────────────────────────────────────"
31
- if ! bash "$HOOK_PATH"; then
32
- HAS_FAILURES=true
33
- echo "❌ Hook failed: $hook"
34
- fi
35
- echo ""
36
- done
37
-
38
- echo "═════════════════════════════════════════════════"
39
-
40
- if [ "$HAS_FAILURES" = true ]; then
41
- echo "❌ PRE-COMMIT VALIDATION FAILED"
42
- echo " Fix errors above before committing"
43
- echo " Or use: git commit --no-verify to skip"
44
- exit 1
45
- fi
46
-
47
- echo "✅ ALL PRE-COMMIT VALIDATIONS PASSED"
48
- exit 0
@@ -1,49 +0,0 @@
1
- #!/bin/bash
2
- # MORPH-SPEC Pre-Commit Hook: Spec Validation
3
- # Validates that spec.md files have required sections
4
-
5
- echo "🔍 Validating spec files..."
6
-
7
- # Find modified spec.md files
8
- SPEC_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep 'spec\.md$')
9
-
10
- if [ -z "$SPEC_FILES" ]; then
11
- echo "✓ No spec files modified"
12
- exit 0
13
- fi
14
-
15
- HAS_ERRORS=false
16
-
17
- for spec_file in $SPEC_FILES; do
18
- echo "Checking: $spec_file"
19
-
20
- # Required sections
21
- REQUIRED_SECTIONS=(
22
- "## 📋 Metadata"
23
- "## 🎯 Overview"
24
- "## 🏗️ Technical Design"
25
- "## ✅ Acceptance Criteria"
26
- )
27
-
28
- for section in "${REQUIRED_SECTIONS[@]}"; do
29
- if ! grep -q "$section" "$spec_file"; then
30
- echo " ❌ Missing section: $section"
31
- HAS_ERRORS=true
32
- fi
33
- done
34
-
35
- # Check if has at least one user story or requirement
36
- if ! grep -qi "user story\|requirement\|acceptance criteria" "$spec_file"; then
37
- echo " ⚠️ Warning: No user stories or requirements found"
38
- fi
39
- done
40
-
41
- if [ "$HAS_ERRORS" = true ]; then
42
- echo ""
43
- echo "❌ COMMIT BLOCKED: spec.md files are incomplete"
44
- echo " Add missing sections before committing"
45
- exit 1
46
- fi
47
-
48
- echo "✓ All spec files are valid"
49
- exit 0
@@ -1,73 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * TaskCompleted Hook - Claude Code Agent Teams
5
- *
6
- * Triggered when a task is marked as completed.
7
- * Validates the task deliverables before allowing the task to be marked done.
8
- *
9
- * Usage (from Claude Code hooks):
10
- * task-completed.js <feature-name> <task-id> [--dry-run] [--verbose]
11
- *
12
- * Exit codes:
13
- * 0 - All validators passed
14
- * 1 - Validation failed and blocked
15
- * 2 - Configuration error
16
- */
17
-
18
- import { executeHook, formatHookResults } from '../../../src/lib/hook-executor.js';
19
- import { fileURLToPath } from 'url';
20
- import { dirname, join } from 'path';
21
-
22
- const __filename = fileURLToPath(import.meta.url);
23
- const __dirname = dirname(__filename);
24
-
25
- // Get project root (3 levels up from hooks dir)
26
- const projectPath = join(__dirname, '../../..');
27
-
28
- async function main() {
29
- const args = process.argv.slice(2);
30
-
31
- if (args.length < 2) {
32
- console.error('Usage: task-completed.js <feature-name> <task-id> [--dry-run] [--verbose]');
33
- process.exit(2);
34
- }
35
-
36
- const featureName = args[0];
37
- const taskId = args[1];
38
- const dryRun = args.includes('--dry-run');
39
- const verbose = args.includes('--verbose');
40
-
41
- console.log('🔔 TaskCompleted Hook Triggered');
42
- console.log(` Feature: ${featureName}`);
43
- console.log(` Task: ${taskId}`);
44
- console.log(` Event: Task marked complete, validating deliverables...\n`);
45
-
46
- try {
47
- const results = await executeHook(projectPath, featureName, 'TaskCompleted', {
48
- dryRun,
49
- verbose
50
- });
51
-
52
- const output = formatHookResults(results, 'TaskCompleted');
53
- console.log(output);
54
-
55
- if (results.blocked) {
56
- console.log('\n💡 TIP: Fix the errors above before the task can be marked complete.');
57
- console.log(` Run: morph-spec task done ${featureName} ${taskId} --skip-validation`);
58
- console.log(' (Not recommended - only use if you know what you\'re doing)');
59
- process.exit(1);
60
- }
61
-
62
- console.log('\n✅ Task deliverables validated successfully.');
63
- process.exit(0);
64
- } catch (err) {
65
- console.error(`\n❌ Hook execution error: ${err.message}`);
66
- if (verbose) {
67
- console.error(err.stack);
68
- }
69
- process.exit(2);
70
- }
71
- }
72
-
73
- main();
@@ -1,68 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * TeammateIdle Hook - Claude Code Agent Teams
5
- *
6
- * Triggered when a teammate is idle and waiting for next instructions.
7
- * Validates the teammate's recent work before allowing them to proceed.
8
- *
9
- * Usage (from Claude Code hooks):
10
- * teammate-idle.js <feature-name> [--dry-run] [--verbose]
11
- *
12
- * Exit codes:
13
- * 0 - All validators passed
14
- * 1 - Validation failed and blocked
15
- * 2 - Configuration error
16
- */
17
-
18
- import { executeHook, formatHookResults } from '../../../src/lib/hook-executor.js';
19
- import { fileURLToPath } from 'url';
20
- import { dirname, join } from 'path';
21
-
22
- const __filename = fileURLToPath(import.meta.url);
23
- const __dirname = dirname(__filename);
24
-
25
- // Get project root (3 levels up from hooks dir)
26
- const projectPath = join(__dirname, '../../..');
27
-
28
- async function main() {
29
- const args = process.argv.slice(2);
30
-
31
- if (args.length === 0) {
32
- console.error('Usage: teammate-idle.js <feature-name> [--dry-run] [--verbose]');
33
- process.exit(2);
34
- }
35
-
36
- const featureName = args[0];
37
- const dryRun = args.includes('--dry-run');
38
- const verbose = args.includes('--verbose');
39
-
40
- console.log('🔔 TeammateIdle Hook Triggered');
41
- console.log(` Feature: ${featureName}`);
42
- console.log(` Event: Teammate is idle, validating recent work...\n`);
43
-
44
- try {
45
- const results = await executeHook(projectPath, featureName, 'TeammateIdle', {
46
- dryRun,
47
- verbose
48
- });
49
-
50
- const output = formatHookResults(results, 'TeammateIdle');
51
- console.log(output);
52
-
53
- if (results.blocked) {
54
- console.log('\n💡 TIP: Fix the errors above before the teammate can proceed.');
55
- process.exit(1);
56
- }
57
-
58
- process.exit(0);
59
- } catch (err) {
60
- console.error(`\n❌ Hook execution error: ${err.message}`);
61
- if (verbose) {
62
- console.error(err.stack);
63
- }
64
- process.exit(2);
65
- }
66
- }
67
-
68
- main();