@polymorphism-tech/morph-spec 3.0.0 → 3.1.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 (240) hide show
  1. package/CLAUDE.md +68 -400
  2. package/README.md +198 -76
  3. package/bin/detect-agents.js +227 -225
  4. package/bin/morph-spec.js +10 -0
  5. package/bin/render-template.js +303 -302
  6. package/bin/semantic-detect-agents.js +247 -246
  7. package/bin/{task-manager.js → task-manager.cjs} +12 -1
  8. package/bin/validate-agents-skills.js +257 -251
  9. package/bin/validate-agents.js +70 -69
  10. package/bin/validate-phase.js +263 -263
  11. package/docs/getting-started.md +3 -3
  12. package/package.json +3 -4
  13. package/scripts/reorganize-skills.cjs +175 -0
  14. package/scripts/validate-agents-structure.cjs +52 -0
  15. package/scripts/validate-skills.cjs +180 -0
  16. package/src/commands/create-story.js +354 -351
  17. package/src/commands/detect-agents.js +13 -2
  18. package/src/commands/detect.js +104 -104
  19. package/src/commands/state.js +334 -333
  20. package/src/commands/sync.js +167 -167
  21. package/src/commands/task.js +1 -1
  22. package/src/commands/update.js +13 -1
  23. package/src/lib/context-generator.js +7 -4
  24. package/{detectors → src/lib/detectors}/config-detector.js +223 -223
  25. package/{detectors → src/lib/detectors}/conversation-analyzer.js +163 -163
  26. package/{detectors → src/lib/detectors}/index.js +84 -84
  27. package/{detectors → src/lib/detectors}/standards-generator.js +275 -275
  28. package/src/lib/hook-executor.js +2 -1
  29. package/src/lib/stack-resolver.js +148 -0
  30. package/src/lib/standards-context-injector.js +4 -3
  31. package/src/lib/state-manager.js +21 -4
  32. package/src/lib/team-orchestrator.js +2 -1
  33. package/src/lib/troubleshoot-grep.js +13 -3
  34. package/src/lib/validation-runner.js +2 -1
  35. package/src/utils/file-copier.js +3 -1
  36. package/{content → stacks/blazor-azure}/.azure/README.md +293 -293
  37. package/{content → stacks/blazor-azure}/.azure/docs/azure-devops-setup.md +454 -454
  38. package/{content → stacks/blazor-azure}/.azure/docs/branch-strategy.md +398 -398
  39. package/{content → stacks/blazor-azure}/.azure/docs/local-development.md +515 -515
  40. package/{content → stacks/blazor-azure}/.azure/pipelines/pipeline-variables.yml +34 -34
  41. package/{content → stacks/blazor-azure}/.azure/pipelines/prod-pipeline.yml +319 -319
  42. package/{content → stacks/blazor-azure}/.azure/pipelines/staging-pipeline.yml +234 -234
  43. package/{content → stacks/blazor-azure}/.azure/pipelines/templates/build-dotnet.yml +75 -75
  44. package/{content → stacks/blazor-azure}/.azure/pipelines/templates/deploy-app-service.yml +94 -94
  45. package/{content → stacks/blazor-azure}/.azure/pipelines/templates/deploy-container-app.yml +120 -120
  46. package/{content → stacks/blazor-azure}/.azure/pipelines/templates/infra-deploy.yml +90 -90
  47. package/{content → stacks/blazor-azure}/.claude/commands/morph-archive.md +79 -79
  48. package/{content → stacks/blazor-azure}/.claude/commands/morph-deploy.md +529 -529
  49. package/{content → stacks/blazor-azure}/.claude/commands/morph-infra.md +209 -209
  50. package/{content → stacks/blazor-azure}/.claude/commands/morph-troubleshoot.md +1 -1
  51. package/{content → stacks/blazor-azure}/.claude/settings.local.json +15 -15
  52. package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-setup.md +1 -1
  53. package/{content/.claude/skills/specialists → stacks/blazor-azure/.claude/skills/level-2-domains/architecture}/prompt-engineer.md +189 -189
  54. package/{content/.claude/skills/specialists → stacks/blazor-azure/.claude/skills/level-2-domains/architecture}/seo-growth-hacker.md +320 -320
  55. package/{content/.claude/skills/infra → stacks/blazor-azure/.claude/skills/level-2-domains/infrastructure}/azure-deploy-specialist.md +699 -699
  56. package/{content → stacks/blazor-azure}/.morph/.morphversion +5 -5
  57. package/{content → stacks/blazor-azure}/.morph/archive/.gitkeep +25 -25
  58. package/{content → stacks/blazor-azure}/.morph/config/agents.json +7 -5
  59. package/{content → stacks/blazor-azure}/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -392
  60. package/{content → stacks/blazor-azure}/.morph/docs/workflows/enforcement-pipeline.md +3 -3
  61. package/{content → stacks/blazor-azure}/.morph/examples/api-nextjs/README.md +241 -241
  62. package/{content → stacks/blazor-azure}/.morph/examples/api-nextjs/contracts.ts +307 -307
  63. package/{content → stacks/blazor-azure}/.morph/examples/api-nextjs/spec.md +399 -399
  64. package/{content → stacks/blazor-azure}/.morph/examples/api-nextjs/tasks.md +168 -168
  65. package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/README.md +125 -125
  66. package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/contracts.cs +358 -358
  67. package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/decisions.md +246 -246
  68. package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/spec.md +236 -236
  69. package/{content → stacks/blazor-azure}/.morph/examples/micro-saas/tasks.md +150 -150
  70. package/{content → stacks/blazor-azure}/.morph/examples/multi-agent/README.md +309 -309
  71. package/{content → stacks/blazor-azure}/.morph/examples/multi-agent/contracts.cs +433 -433
  72. package/{content → stacks/blazor-azure}/.morph/examples/multi-agent/spec.md +479 -479
  73. package/{content → stacks/blazor-azure}/.morph/examples/multi-agent/tasks.md +185 -185
  74. package/{content → stacks/blazor-azure}/.morph/examples/state-v3.json +188 -188
  75. package/{content → stacks/blazor-azure}/.morph/features/.gitkeep +25 -25
  76. package/{content → stacks/blazor-azure}/.morph/hooks/README.md +12 -12
  77. package/{content → stacks/blazor-azure}/.morph/hooks/pre-commit-all.sh +48 -48
  78. package/{content → stacks/blazor-azure}/.morph/hooks/pre-commit-specs.sh +49 -49
  79. package/{content → stacks/blazor-azure}/.morph/hooks/pre-commit-tests.sh +60 -60
  80. package/{content → stacks/blazor-azure}/.morph/project.md +160 -160
  81. package/{content → stacks/blazor-azure}/.morph/schemas/agent.schema.json +296 -296
  82. package/{content → stacks/blazor-azure}/.morph/specs/.gitkeep +20 -20
  83. package/{content → stacks/blazor-azure}/.morph/standards/agent-teams-workflow.md +2 -2
  84. package/{content → stacks/blazor-azure}/.morph/standards/coding.md +377 -377
  85. package/{content → stacks/blazor-azure}/.morph/standards/fluent-ui-setup.md +590 -590
  86. package/{content → stacks/blazor-azure}/.morph/standards/migration-guide.md +514 -514
  87. package/{content → stacks/blazor-azure}/.morph/standards/passkeys-auth.md +423 -423
  88. package/{content → stacks/blazor-azure}/.morph/standards/vector-search-rag.md +536 -536
  89. package/{content → stacks/blazor-azure}/.morph/state.json +17 -17
  90. package/{content → stacks/blazor-azure}/.morph/templates/FluentDesignTheme.cs +149 -149
  91. package/{content → stacks/blazor-azure}/.morph/templates/MudTheme.cs +281 -281
  92. package/{content → stacks/blazor-azure}/.morph/templates/component.razor +239 -239
  93. package/{content → stacks/blazor-azure}/.morph/templates/contracts.cs +217 -217
  94. package/{content → stacks/blazor-azure}/.morph/templates/design-system.css +226 -226
  95. package/{content → stacks/blazor-azure}/.morph/templates/infra/.dockerignore.example +89 -89
  96. package/{content → stacks/blazor-azure}/.morph/templates/infra/Dockerfile.example +82 -82
  97. package/{content → stacks/blazor-azure}/.morph/templates/infra/README.md +286 -286
  98. package/{content → stacks/blazor-azure}/.morph/templates/infra/app-insights.bicep +63 -63
  99. package/{content → stacks/blazor-azure}/.morph/templates/infra/app-service.bicep +164 -164
  100. package/{content → stacks/blazor-azure}/.morph/templates/infra/azure-pipelines-deploy.yml +480 -480
  101. package/{content → stacks/blazor-azure}/.morph/templates/infra/container-app-env.bicep +49 -49
  102. package/{content → stacks/blazor-azure}/.morph/templates/infra/container-app.bicep +156 -156
  103. package/{content → stacks/blazor-azure}/.morph/templates/infra/deploy.ps1 +229 -229
  104. package/{content → stacks/blazor-azure}/.morph/templates/infra/deploy.sh +208 -208
  105. package/{content → stacks/blazor-azure}/.morph/templates/infra/key-vault.bicep +91 -91
  106. package/{content → stacks/blazor-azure}/.morph/templates/infra/main.bicep +189 -189
  107. package/{content → stacks/blazor-azure}/.morph/templates/infra/parameters.dev.json +29 -29
  108. package/{content → stacks/blazor-azure}/.morph/templates/infra/parameters.prod.json +29 -29
  109. package/{content → stacks/blazor-azure}/.morph/templates/infra/parameters.staging.json +29 -29
  110. package/{content → stacks/blazor-azure}/.morph/templates/infra/sql-database.bicep +103 -103
  111. package/{content → stacks/blazor-azure}/.morph/templates/infra/storage.bicep +106 -106
  112. package/{content → stacks/blazor-azure}/.morph/templates/integrations/asaas-client.cs +387 -387
  113. package/{content → stacks/blazor-azure}/.morph/templates/integrations/asaas-webhook.cs +351 -351
  114. package/{content → stacks/blazor-azure}/.morph/templates/integrations/azure-identity-config.cs +288 -288
  115. package/{content → stacks/blazor-azure}/.morph/templates/integrations/clerk-config.cs +258 -258
  116. package/{content → stacks/blazor-azure}/.morph/templates/job.cs +171 -171
  117. package/{content → stacks/blazor-azure}/.morph/templates/migration.cs +83 -83
  118. package/{content → stacks/blazor-azure}/.morph/templates/repository.cs +141 -141
  119. package/{content → stacks/blazor-azure}/.morph/templates/saas/subscription.cs +347 -347
  120. package/{content → stacks/blazor-azure}/.morph/templates/saas/tenant.cs +338 -338
  121. package/{content → stacks/blazor-azure}/.morph/templates/service.cs +139 -139
  122. package/{content → stacks/blazor-azure}/.morph/templates/sprint-status.yaml +68 -68
  123. package/{content → stacks/blazor-azure}/.morph/templates/story.md +143 -143
  124. package/{content → stacks/blazor-azure}/.morph/templates/test.cs +239 -239
  125. package/{content → stacks/blazor-azure}/.morph/templates/ui-design-system.md +286 -286
  126. package/{content → stacks/blazor-azure}/.morph/templates/ui-flows.md +336 -336
  127. package/{content → stacks/blazor-azure}/.morph/templates/ui-mockups.md +133 -133
  128. package/{content → stacks/blazor-azure}/.morph/test-infra/example.bicep +59 -59
  129. package/{content → stacks/blazor-azure}/README.md +79 -79
  130. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/backend/dotnet-supabase.md +244 -0
  131. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/frontend/nextjs-supabase.md +335 -0
  132. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/infrastructure/easypanel-deployer.md +189 -0
  133. package/stacks/nextjs-supabase/.claude/skills/level-2-domains/integrations/supabase-expert.md +170 -0
  134. package/stacks/nextjs-supabase/.morph/config/agents.json +345 -0
  135. package/stacks/nextjs-supabase/.morph/config/config.template.json +92 -0
  136. package/stacks/nextjs-supabase/.morph/docs/easypanel-setup.md +169 -0
  137. package/stacks/nextjs-supabase/.morph/docs/supabase-mcp-setup.md +247 -0
  138. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/README.md +697 -0
  139. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/spec.md +85 -0
  140. package/stacks/nextjs-supabase/.morph/examples/crud-nextjs-supabase/tasks.md +86 -0
  141. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/README.md +498 -0
  142. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/decisions.md +121 -0
  143. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/spec.md +138 -0
  144. package/stacks/nextjs-supabase/.morph/examples/saas-nextjs-supabase/tasks.md +162 -0
  145. package/stacks/nextjs-supabase/.morph/project.md +168 -0
  146. package/stacks/nextjs-supabase/.morph/standards/easypanel-deploy.md +191 -0
  147. package/stacks/nextjs-supabase/.morph/standards/nextjs-patterns.md +193 -0
  148. package/stacks/nextjs-supabase/.morph/standards/supabase-auth.md +171 -0
  149. package/stacks/nextjs-supabase/.morph/standards/supabase-pgvector.md +164 -0
  150. package/stacks/nextjs-supabase/.morph/standards/supabase-rls.md +179 -0
  151. package/stacks/nextjs-supabase/.morph/standards/supabase-storage.md +148 -0
  152. package/stacks/nextjs-supabase/.morph/templates/contracts.cs +173 -0
  153. package/stacks/nextjs-supabase/.morph/templates/contracts.ts +168 -0
  154. package/stacks/nextjs-supabase/.morph/templates/decisions.md +115 -0
  155. package/stacks/nextjs-supabase/.morph/templates/dockerfile-api.dockerfile +38 -0
  156. package/stacks/nextjs-supabase/.morph/templates/dockerfile-web.dockerfile +48 -0
  157. package/stacks/nextjs-supabase/.morph/templates/proposal.md +145 -0
  158. package/stacks/nextjs-supabase/.morph/templates/recap.md +134 -0
  159. package/stacks/nextjs-supabase/.morph/templates/rls-policy.sql +57 -0
  160. package/stacks/nextjs-supabase/.morph/templates/spec.md +231 -0
  161. package/stacks/nextjs-supabase/.morph/templates/supabase-migration.sql +100 -0
  162. package/stacks/nextjs-supabase/.morph/templates/tasks.md +257 -0
  163. package/stacks/nextjs-supabase/CLAUDE.md +149 -0
  164. package/stacks/nextjs-supabase/README.md +112 -0
  165. /package/{detectors → src/lib/detectors}/structure-detector.js +0 -0
  166. /package/{content → stacks/blazor-azure}/.claude/commands/morph-apply.md +0 -0
  167. /package/{content → stacks/blazor-azure}/.claude/commands/morph-preflight.md +0 -0
  168. /package/{content → stacks/blazor-azure}/.claude/commands/morph-proposal.md +0 -0
  169. /package/{content → stacks/blazor-azure}/.claude/commands/morph-status.md +0 -0
  170. /package/{content → stacks/blazor-azure}/.claude/skills/level-0-meta/README.md +0 -0
  171. /package/{content → stacks/blazor-azure}/.claude/skills/level-0-meta/code-review.md +0 -0
  172. /package/{content → stacks/blazor-azure}/.claude/skills/level-0-meta/morph-checklist.md +0 -0
  173. /package/{content → stacks/blazor-azure}/.claude/skills/level-0-meta/simulation-checklist.md +0 -0
  174. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/README.md +0 -0
  175. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/morph-replicate.md +0 -0
  176. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-clarify.md +0 -0
  177. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-design.md +0 -0
  178. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-tasks.md +0 -0
  179. /package/{content → stacks/blazor-azure}/.claude/skills/level-1-workflows/phase-uiux.md +0 -0
  180. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/README.md +0 -0
  181. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/ai-agents/ai-system-architect.md +0 -0
  182. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/architecture/po-pm-advisor.md +0 -0
  183. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/architecture/standards-architect.md +0 -0
  184. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/backend/dotnet-senior.md +0 -0
  185. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/backend/ef-modeler.md +0 -0
  186. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/backend/hangfire-orchestrator.md +0 -0
  187. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/backend/ms-agent-expert.md +0 -0
  188. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/frontend/blazor-builder.md +0 -0
  189. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/frontend/nextjs-expert.md +0 -0
  190. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/frontend/ui-ux-designer.md +0 -0
  191. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/azure-architect.md +0 -0
  192. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/bicep-architect.md +0 -0
  193. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/container-specialist.md +0 -0
  194. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/infrastructure/devops-engineer.md +0 -0
  195. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/integrations/asaas-financial.md +0 -0
  196. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/integrations/azure-identity.md +0 -0
  197. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/integrations/clerk-auth.md +0 -0
  198. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/integrations/resend-email.md +0 -0
  199. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/quality/code-analyzer.md +0 -0
  200. /package/{content → stacks/blazor-azure}/.claude/skills/level-2-domains/quality/testing-specialist.md +0 -0
  201. /package/{content → stacks/blazor-azure}/.claude/skills/level-3-technologies/README.md +0 -0
  202. /package/{content → stacks/blazor-azure}/.claude/skills/level-4-patterns/README.md +0 -0
  203. /package/{content → stacks/blazor-azure}/.morph/config/config.template.json +0 -0
  204. /package/{content → stacks/blazor-azure}/.morph/docs/workflows/design-impl.md +0 -0
  205. /package/{content → stacks/blazor-azure}/.morph/docs/workflows/fast-track.md +0 -0
  206. /package/{content → stacks/blazor-azure}/.morph/docs/workflows/full-morph.md +0 -0
  207. /package/{content → stacks/blazor-azure}/.morph/docs/workflows/standard.md +0 -0
  208. /package/{content → stacks/blazor-azure}/.morph/docs/workflows/ui-refresh.md +0 -0
  209. /package/{content → stacks/blazor-azure}/.morph/examples/scheduled-reports/decisions.md +0 -0
  210. /package/{content → stacks/blazor-azure}/.morph/examples/scheduled-reports/proposal.md +0 -0
  211. /package/{content → stacks/blazor-azure}/.morph/examples/scheduled-reports/spec.md +0 -0
  212. /package/{content → stacks/blazor-azure}/.morph/hooks/pre-commit-agents.sh +0 -0
  213. /package/{content → stacks/blazor-azure}/.morph/hooks/task-completed.js +0 -0
  214. /package/{content → stacks/blazor-azure}/.morph/hooks/teammate-idle.js +0 -0
  215. /package/{content → stacks/blazor-azure}/.morph/schemas/tasks.schema.json +0 -0
  216. /package/{content → stacks/blazor-azure}/.morph/standards/agent-framework-blazor-ui.md +0 -0
  217. /package/{content → stacks/blazor-azure}/.morph/standards/agent-framework-production.md +0 -0
  218. /package/{content → stacks/blazor-azure}/.morph/standards/agent-framework-setup.md +0 -0
  219. /package/{content → stacks/blazor-azure}/.morph/standards/agent-framework-workflows.md +0 -0
  220. /package/{content → stacks/blazor-azure}/.morph/standards/architecture.md +0 -0
  221. /package/{content → stacks/blazor-azure}/.morph/standards/azure.md +0 -0
  222. /package/{content → stacks/blazor-azure}/.morph/standards/dotnet10-migration.md +0 -0
  223. /package/{content → stacks/blazor-azure}/.morph/templates/CONTEXT-FEATURE.md +0 -0
  224. /package/{content → stacks/blazor-azure}/.morph/templates/CONTEXT.md +0 -0
  225. /package/{content → stacks/blazor-azure}/.morph/templates/agent.cs +0 -0
  226. /package/{content → stacks/blazor-azure}/.morph/templates/clarify-questions.md +0 -0
  227. /package/{content → stacks/blazor-azure}/.morph/templates/contracts/Commands.cs +0 -0
  228. /package/{content → stacks/blazor-azure}/.morph/templates/contracts/Entities.cs +0 -0
  229. /package/{content → stacks/blazor-azure}/.morph/templates/contracts/Queries.cs +0 -0
  230. /package/{content → stacks/blazor-azure}/.morph/templates/contracts/README.md +0 -0
  231. /package/{content → stacks/blazor-azure}/.morph/templates/decisions.md +0 -0
  232. /package/{content → stacks/blazor-azure}/.morph/templates/infra/deploy-checklist.md +0 -0
  233. /package/{content → stacks/blazor-azure}/.morph/templates/proposal.md +0 -0
  234. /package/{content → stacks/blazor-azure}/.morph/templates/recap.md +0 -0
  235. /package/{content → stacks/blazor-azure}/.morph/templates/simulation.md +0 -0
  236. /package/{content → stacks/blazor-azure}/.morph/templates/spec.md +0 -0
  237. /package/{content → stacks/blazor-azure}/.morph/templates/state.template.json +0 -0
  238. /package/{content → stacks/blazor-azure}/.morph/templates/tasks.md +0 -0
  239. /package/{content → stacks/blazor-azure}/.morph/templates/ui-components.md +0 -0
  240. /package/{content → stacks/blazor-azure}/CLAUDE.md +0 -0
@@ -1,188 +1,188 @@
1
- {
2
- "version": "3.0.0",
3
- "project": {
4
- "name": "FishArt",
5
- "type": "blazor-server",
6
- "createdAt": "2024-01-15T10:00:00Z",
7
- "updatedAt": "2024-01-15T14:30:00Z"
8
- },
9
- "features": {
10
- "scheduled-reports": {
11
- "status": "in_progress",
12
- "phase": "implement",
13
- "activeAgents": [
14
- "standards-architect",
15
- "blazor-builder",
16
- "ef-modeler",
17
- "hangfire-orchestrator"
18
- ],
19
- "tasks": [
20
- {
21
- "id": "T001",
22
- "title": "Create ScheduledReport entity",
23
- "status": "completed",
24
- "completedAt": "2024-01-15T10:30:00Z",
25
- "completedBy": "claude",
26
- "dependencies": [],
27
- "files": [
28
- "Domain/Entities/ScheduledReport.cs",
29
- "Infrastructure/Persistence/Config/ScheduledReportConfig.cs"
30
- ],
31
- "checkpoint": "CHECKPOINT_001"
32
- },
33
- {
34
- "id": "T002",
35
- "title": "Create CreateReportCommand + Handler",
36
- "status": "completed",
37
- "completedAt": "2024-01-15T11:15:00Z",
38
- "completedBy": "claude",
39
- "dependencies": ["T001"],
40
- "files": [
41
- "Application/Commands/CreateReport/CreateReportCommand.cs",
42
- "Application/Commands/CreateReport/CreateReportHandler.cs"
43
- ]
44
- },
45
- {
46
- "id": "T003",
47
- "title": "Create Hangfire job for report generation",
48
- "status": "completed",
49
- "completedAt": "2024-01-15T12:00:00Z",
50
- "completedBy": "claude",
51
- "dependencies": ["T002"],
52
- "files": [
53
- "Infrastructure/Jobs/GenerateReportJob.cs"
54
- ],
55
- "checkpoint": "CHECKPOINT_002"
56
- },
57
- {
58
- "id": "T004",
59
- "title": "Create ReportList component (Blazor)",
60
- "status": "in_progress",
61
- "startedAt": "2024-01-15T13:00:00Z",
62
- "dependencies": ["T001"],
63
- "files": [
64
- "Components/Reports/ReportList.razor",
65
- "Components/Reports/ReportList.razor.cs",
66
- "Components/Reports/ReportList.razor.css"
67
- ]
68
- },
69
- {
70
- "id": "T005",
71
- "title": "Create CreateReportForm component (Blazor)",
72
- "status": "pending",
73
- "dependencies": ["T002"],
74
- "files": [
75
- "Components/Reports/CreateReportForm.razor",
76
- "Components/Reports/CreateReportForm.razor.cs",
77
- "Components/Reports/CreateReportForm.razor.css"
78
- ]
79
- },
80
- {
81
- "id": "T006",
82
- "title": "Create API controller for reports",
83
- "status": "pending",
84
- "dependencies": ["T002"],
85
- "files": [
86
- "API/Controllers/ReportsController.cs"
87
- ]
88
- },
89
- {
90
- "id": "T007",
91
- "title": "Add Hangfire dashboard configuration",
92
- "status": "pending",
93
- "dependencies": ["T003"],
94
- "files": [
95
- "Program.cs"
96
- ]
97
- },
98
- {
99
- "id": "T008",
100
- "title": "Create unit tests for CreateReportCommand",
101
- "status": "pending",
102
- "dependencies": ["T002"],
103
- "files": [
104
- "Tests/Application/Commands/CreateReportCommandTests.cs"
105
- ]
106
- },
107
- {
108
- "id": "T009",
109
- "title": "Create integration tests for report generation",
110
- "status": "pending",
111
- "dependencies": ["T003", "T006"],
112
- "files": [
113
- "Tests/Integration/ReportGenerationTests.cs"
114
- ],
115
- "checkpoint": "CHECKPOINT_003"
116
- }
117
- ],
118
- "progress": {
119
- "total": 9,
120
- "completed": 3,
121
- "inProgress": 1,
122
- "pending": 5,
123
- "percentage": 33
124
- },
125
- "checkpoints": [
126
- {
127
- "id": "CHECKPOINT_001",
128
- "timestamp": "2024-01-15T10:30:00Z",
129
- "tasksCompleted": ["T001"],
130
- "note": "Checkpoint: Create ScheduledReport entity"
131
- },
132
- {
133
- "id": "CHECKPOINT_002",
134
- "timestamp": "2024-01-15T12:00:00Z",
135
- "tasksCompleted": ["T003"],
136
- "note": "Checkpoint: Create Hangfire job for report generation"
137
- },
138
- {
139
- "id": "CHECKPOINT_AUTO_1705326000000",
140
- "timestamp": "2024-01-15T12:00:00Z",
141
- "tasksCompleted": ["T001", "T002", "T003"],
142
- "note": "Auto-checkpoint: 3 tasks completed"
143
- }
144
- ],
145
- "outputs": {
146
- "proposal": {
147
- "created": true,
148
- "path": ".morph/project/outputs/scheduled-reports/proposal.md"
149
- },
150
- "spec": {
151
- "created": true,
152
- "path": ".morph/project/outputs/scheduled-reports/spec.md"
153
- },
154
- "contracts": {
155
- "created": true,
156
- "path": ".morph/project/outputs/scheduled-reports/contracts.cs"
157
- },
158
- "ui-spec": {
159
- "created": true,
160
- "path": ".morph/project/outputs/scheduled-reports/ui-spec.md"
161
- },
162
- "tasks": {
163
- "created": true,
164
- "note": "Tasks are now inline in state.json (schema 3.0.0)"
165
- },
166
- "decisions": {
167
- "created": true,
168
- "path": ".morph/project/outputs/scheduled-reports/decisions.md"
169
- }
170
- },
171
- "costs": {
172
- "estimated": 5.50,
173
- "approved": true,
174
- "breakdown": {
175
- "hangfire": 0,
176
- "storage": 0.02,
177
- "sql": 4.99,
178
- "containerApp": 0.49
179
- }
180
- }
181
- }
182
- },
183
- "metadata": {
184
- "totalFeatures": 1,
185
- "completedFeatures": 0,
186
- "totalCostEstimated": 5.50
187
- }
188
- }
1
+ {
2
+ "version": "3.0.0",
3
+ "project": {
4
+ "name": "FishArt",
5
+ "type": "blazor-server",
6
+ "createdAt": "2024-01-15T10:00:00Z",
7
+ "updatedAt": "2024-01-15T14:30:00Z"
8
+ },
9
+ "features": {
10
+ "scheduled-reports": {
11
+ "status": "in_progress",
12
+ "phase": "implement",
13
+ "activeAgents": [
14
+ "standards-architect",
15
+ "blazor-builder",
16
+ "ef-modeler",
17
+ "hangfire-orchestrator"
18
+ ],
19
+ "tasks": [
20
+ {
21
+ "id": "T001",
22
+ "title": "Create ScheduledReport entity",
23
+ "status": "completed",
24
+ "completedAt": "2024-01-15T10:30:00Z",
25
+ "completedBy": "claude",
26
+ "dependencies": [],
27
+ "files": [
28
+ "Domain/Entities/ScheduledReport.cs",
29
+ "Infrastructure/Persistence/Config/ScheduledReportConfig.cs"
30
+ ],
31
+ "checkpoint": "CHECKPOINT_001"
32
+ },
33
+ {
34
+ "id": "T002",
35
+ "title": "Create CreateReportCommand + Handler",
36
+ "status": "completed",
37
+ "completedAt": "2024-01-15T11:15:00Z",
38
+ "completedBy": "claude",
39
+ "dependencies": ["T001"],
40
+ "files": [
41
+ "Application/Commands/CreateReport/CreateReportCommand.cs",
42
+ "Application/Commands/CreateReport/CreateReportHandler.cs"
43
+ ]
44
+ },
45
+ {
46
+ "id": "T003",
47
+ "title": "Create Hangfire job for report generation",
48
+ "status": "completed",
49
+ "completedAt": "2024-01-15T12:00:00Z",
50
+ "completedBy": "claude",
51
+ "dependencies": ["T002"],
52
+ "files": [
53
+ "Infrastructure/Jobs/GenerateReportJob.cs"
54
+ ],
55
+ "checkpoint": "CHECKPOINT_002"
56
+ },
57
+ {
58
+ "id": "T004",
59
+ "title": "Create ReportList component (Blazor)",
60
+ "status": "in_progress",
61
+ "startedAt": "2024-01-15T13:00:00Z",
62
+ "dependencies": ["T001"],
63
+ "files": [
64
+ "Components/Reports/ReportList.razor",
65
+ "Components/Reports/ReportList.razor.cs",
66
+ "Components/Reports/ReportList.razor.css"
67
+ ]
68
+ },
69
+ {
70
+ "id": "T005",
71
+ "title": "Create CreateReportForm component (Blazor)",
72
+ "status": "pending",
73
+ "dependencies": ["T002"],
74
+ "files": [
75
+ "Components/Reports/CreateReportForm.razor",
76
+ "Components/Reports/CreateReportForm.razor.cs",
77
+ "Components/Reports/CreateReportForm.razor.css"
78
+ ]
79
+ },
80
+ {
81
+ "id": "T006",
82
+ "title": "Create API controller for reports",
83
+ "status": "pending",
84
+ "dependencies": ["T002"],
85
+ "files": [
86
+ "API/Controllers/ReportsController.cs"
87
+ ]
88
+ },
89
+ {
90
+ "id": "T007",
91
+ "title": "Add Hangfire dashboard configuration",
92
+ "status": "pending",
93
+ "dependencies": ["T003"],
94
+ "files": [
95
+ "Program.cs"
96
+ ]
97
+ },
98
+ {
99
+ "id": "T008",
100
+ "title": "Create unit tests for CreateReportCommand",
101
+ "status": "pending",
102
+ "dependencies": ["T002"],
103
+ "files": [
104
+ "Tests/Application/Commands/CreateReportCommandTests.cs"
105
+ ]
106
+ },
107
+ {
108
+ "id": "T009",
109
+ "title": "Create integration tests for report generation",
110
+ "status": "pending",
111
+ "dependencies": ["T003", "T006"],
112
+ "files": [
113
+ "Tests/Integration/ReportGenerationTests.cs"
114
+ ],
115
+ "checkpoint": "CHECKPOINT_003"
116
+ }
117
+ ],
118
+ "progress": {
119
+ "total": 9,
120
+ "completed": 3,
121
+ "inProgress": 1,
122
+ "pending": 5,
123
+ "percentage": 33
124
+ },
125
+ "checkpoints": [
126
+ {
127
+ "id": "CHECKPOINT_001",
128
+ "timestamp": "2024-01-15T10:30:00Z",
129
+ "tasksCompleted": ["T001"],
130
+ "note": "Checkpoint: Create ScheduledReport entity"
131
+ },
132
+ {
133
+ "id": "CHECKPOINT_002",
134
+ "timestamp": "2024-01-15T12:00:00Z",
135
+ "tasksCompleted": ["T003"],
136
+ "note": "Checkpoint: Create Hangfire job for report generation"
137
+ },
138
+ {
139
+ "id": "CHECKPOINT_AUTO_1705326000000",
140
+ "timestamp": "2024-01-15T12:00:00Z",
141
+ "tasksCompleted": ["T001", "T002", "T003"],
142
+ "note": "Auto-checkpoint: 3 tasks completed"
143
+ }
144
+ ],
145
+ "outputs": {
146
+ "proposal": {
147
+ "created": true,
148
+ "path": ".morph/project/outputs/scheduled-reports/proposal.md"
149
+ },
150
+ "spec": {
151
+ "created": true,
152
+ "path": ".morph/project/outputs/scheduled-reports/spec.md"
153
+ },
154
+ "contracts": {
155
+ "created": true,
156
+ "path": ".morph/project/outputs/scheduled-reports/contracts.cs"
157
+ },
158
+ "ui-spec": {
159
+ "created": true,
160
+ "path": ".morph/project/outputs/scheduled-reports/ui-spec.md"
161
+ },
162
+ "tasks": {
163
+ "created": true,
164
+ "note": "Tasks are now inline in state.json (schema 3.0.0)"
165
+ },
166
+ "decisions": {
167
+ "created": true,
168
+ "path": ".morph/project/outputs/scheduled-reports/decisions.md"
169
+ }
170
+ },
171
+ "costs": {
172
+ "estimated": 5.50,
173
+ "approved": true,
174
+ "breakdown": {
175
+ "hangfire": 0,
176
+ "storage": 0.02,
177
+ "sql": 4.99,
178
+ "containerApp": 0.49
179
+ }
180
+ }
181
+ }
182
+ },
183
+ "metadata": {
184
+ "totalFeatures": 1,
185
+ "completedFeatures": 0,
186
+ "totalCostEstimated": 5.50
187
+ }
188
+ }
@@ -1,25 +1,25 @@
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
+ # 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*
@@ -17,14 +17,14 @@ Pre-commit hooks for automatic validation before committing.
17
17
 
18
18
  ```bash
19
19
  # Symlink all hooks at once
20
- ln -s ../../content/.morph/hooks/pre-commit-all.sh .git/hooks/pre-commit
20
+ ln -s ../../.morph/hooks/pre-commit-all.sh .git/hooks/pre-commit
21
21
  ```
22
22
 
23
23
  ### Option 2: Copy Hooks
24
24
 
25
25
  ```bash
26
26
  # Copy master hook
27
- cp content/.morph/hooks/pre-commit-all.sh .git/hooks/pre-commit
27
+ cp .morph/hooks/pre-commit-all.sh .git/hooks/pre-commit
28
28
  chmod +x .git/hooks/pre-commit
29
29
  ```
30
30
 
@@ -34,7 +34,7 @@ If you already have `.git/hooks/pre-commit`, add this to the end:
34
34
 
35
35
  ```bash
36
36
  # Run MORPH-SPEC validations
37
- bash content/.morph/hooks/pre-commit-all.sh || exit 1
37
+ bash .morph/hooks/pre-commit-all.sh || exit 1
38
38
  ```
39
39
 
40
40
  ## What Each Hook Does
@@ -172,10 +172,10 @@ bash .git/hooks/pre-commit
172
172
 
173
173
  ```bash
174
174
  # Run individual hook for debugging
175
- bash content/.morph/hooks/pre-commit-costs.sh
175
+ bash .morph/hooks/pre-commit-costs.sh
176
176
 
177
177
  # Check hook output
178
- bash -x content/.morph/hooks/pre-commit-costs.sh
178
+ bash -x .morph/hooks/pre-commit-costs.sh
179
179
  ```
180
180
 
181
181
  ## Benefits
@@ -206,12 +206,12 @@ bash -x content/.morph/hooks/pre-commit-costs.sh
206
206
 
207
207
  **Usage:**
208
208
  ```bash
209
- node content/.morph/hooks/teammate-idle.js <feature-name> [--dry-run] [--verbose]
209
+ node .morph/hooks/teammate-idle.js <feature-name> [--dry-run] [--verbose]
210
210
  ```
211
211
 
212
212
  **Example:**
213
213
  ```bash
214
- node content/.morph/hooks/teammate-idle.js user-authentication --verbose
214
+ node .morph/hooks/teammate-idle.js user-authentication --verbose
215
215
  ```
216
216
 
217
217
  **Output:**
@@ -262,12 +262,12 @@ Validators are configured in `agents.json` for Tier 4 agents:
262
262
 
263
263
  **Usage:**
264
264
  ```bash
265
- node content/.morph/hooks/task-completed.js <feature-name> <task-id> [--dry-run] [--verbose]
265
+ node .morph/hooks/task-completed.js <feature-name> <task-id> [--dry-run] [--verbose]
266
266
  ```
267
267
 
268
268
  **Example:**
269
269
  ```bash
270
- node content/.morph/hooks/task-completed.js user-authentication T003 --verbose
270
+ node .morph/hooks/task-completed.js user-authentication T003 --verbose
271
271
  ```
272
272
 
273
273
  **Output:**
@@ -305,8 +305,8 @@ When Agent Teams is enabled (`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`), these ho
305
305
  ```json
306
306
  {
307
307
  "hooks": {
308
- "TeammateIdle": "node content/.morph/hooks/teammate-idle.js {feature}",
309
- "TaskCompleted": "node content/.morph/hooks/task-completed.js {feature} {taskId}"
308
+ "TeammateIdle": "node .morph/hooks/teammate-idle.js {feature}",
309
+ "TaskCompleted": "node .morph/hooks/task-completed.js {feature} {taskId}"
310
310
  }
311
311
  }
312
312
  ```
@@ -317,7 +317,7 @@ Test hooks without blocking:
317
317
 
318
318
  ```bash
319
319
  # See what would run without executing
320
- node content/.morph/hooks/teammate-idle.js my-feature --dry-run
320
+ node .morph/hooks/teammate-idle.js my-feature --dry-run
321
321
 
322
322
  # Output:
323
323
  # 🔍 DRY RUN - Would execute:
@@ -1,48 +1,48 @@
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
+ #!/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