@polymorphism-tech/morph-spec 4.3.7 → 4.6.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 (394) hide show
  1. package/.morph/.morphversion +3 -3
  2. package/.morph/analytics/threads-log.jsonl +6 -9
  3. package/.morph/config/config.json +2 -3
  4. package/.morph/framework/standards/STANDARDS.json +812 -0
  5. package/.morph/{standards → framework/standards}/ai-agents/team-orchestration.md +3 -3
  6. package/.morph/{standards → framework/standards}/frontend/nextjs/nextjs-patterns.md +17 -0
  7. package/.morph/framework/standards/integration/mcp/mcp-tools.md +384 -0
  8. package/.morph/{templates → framework/templates}/README.md +17 -17
  9. package/.morph/{templates → framework/templates}/REGISTRY.json +48 -233
  10. package/.morph/framework/templates/code/dotnet/contracts/contracts.cs.hbs +172 -0
  11. package/.morph/{templates → framework/templates}/context/CONTEXT-FEATURE.md +1 -1
  12. package/.morph/{templates → framework/templates}/context/CONTEXT.md +3 -3
  13. package/.morph/framework/templates/docs/clarifications.md +253 -0
  14. package/.morph/framework/templates/docs/onboarding.md +123 -0
  15. package/.morph/framework/templates/docs/schema-analysis.md +119 -0
  16. package/.morph/{templates → framework/templates}/docs/spec.md +149 -149
  17. package/.morph/framework/templates/docs/ui-components.md +124 -0
  18. package/.morph/framework/templates/docs/ui-design-system.md +76 -0
  19. package/.morph/framework/templates/docs/ui-flows.md +167 -0
  20. package/.morph/framework/templates/docs/ui-mockups.md +98 -0
  21. package/.morph/framework/templates/docs/user-stories.md +34 -0
  22. package/.morph/{templates → framework/templates}/examples/spec-examples.md +1 -1
  23. package/.morph/{templates → framework/templates}/infrastructure/github/README.md +11 -11
  24. package/.morph/{templates → framework/templates}/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +2 -2
  25. package/.morph/{templates → framework/templates}/meta-prompts/parallel-workers/parallel-worker.md +2 -2
  26. package/.morph/{templates → framework/templates}/meta-prompts/validators/pre-commit-validator.md +1 -1
  27. package/.morph/logs/tool-failures.log +7 -0
  28. package/.morph/memory/pre-compact-2026-02-23T15-43-03-521Z.json +16 -0
  29. package/.morph/state.json +1 -1
  30. package/CLAUDE.md +77 -155
  31. package/README.md +20 -18
  32. package/bin/detect-agents.js +1 -1
  33. package/bin/morph-spec.js +116 -266
  34. package/bin/task-manager.cjs +2 -2
  35. package/bin/validate.js +1 -1
  36. package/claude-plugin.json +14 -0
  37. package/docs/claude-alignment-report.md +137 -0
  38. package/docs/plans/2026-02-22-claude-docs-morph-alignment-analysis.md +512 -0
  39. package/docs/plans/2026-02-22-claude-settings.md +515 -0
  40. package/docs/plans/2026-02-22-morph-cc-alignment-impl.md +728 -0
  41. package/docs/plans/2026-02-22-morph-spec-next.md +478 -0
  42. package/docs/plans/2026-02-22-native-alignment-design.md +199 -0
  43. package/docs/plans/2026-02-22-native-alignment-impl.md +925 -0
  44. package/docs/plans/2026-02-22-native-enrichment-design.md +244 -0
  45. package/docs/plans/2026-02-22-native-enrichment.md +735 -0
  46. package/framework/CLAUDE.md +77 -0
  47. package/framework/{skills/level-2-domains → agents}/ai-agents/ai-system-architect.md +7 -3
  48. package/framework/{skills/level-2-domains → agents}/architecture/po-pm-advisor.md +7 -1
  49. package/framework/{skills/level-2-domains → agents}/architecture/prompt-engineer.md +7 -1
  50. package/framework/{skills/level-2-domains → agents}/architecture/seo-growth-hacker.md +7 -1
  51. package/framework/{skills/level-2-domains → agents}/architecture/standards-architect.md +10 -6
  52. package/framework/agents/backend/api-designer.md +103 -0
  53. package/framework/{skills/level-2-domains → agents}/backend/dotnet-senior.md +7 -1
  54. package/framework/agents/backend/ef-modeler.md +119 -0
  55. package/framework/{skills/level-2-domains → agents}/backend/hangfire-orchestrator.md +8 -4
  56. package/framework/{skills/level-2-domains → agents}/backend/ms-agent-expert.md +7 -3
  57. package/framework/{skills/level-2-domains → agents}/frontend/blazor-builder.md +7 -3
  58. package/framework/{skills/level-2-domains → agents}/frontend/nextjs-expert.md +7 -3
  59. package/framework/{skills/level-2-domains → agents}/frontend/ui-ux-designer.md +8 -2
  60. package/framework/{skills/level-2-domains → agents}/infrastructure/azure-architect.md +7 -1
  61. package/framework/{skills/level-2-domains → agents}/infrastructure/azure-deploy-specialist.md +7 -1
  62. package/framework/{skills/level-2-domains → agents}/infrastructure/bicep-architect.md +7 -3
  63. package/framework/{skills/level-2-domains → agents}/infrastructure/container-specialist.md +7 -3
  64. package/framework/{skills/level-2-domains → agents}/infrastructure/devops-engineer.md +7 -3
  65. package/framework/{skills/level-2-domains → agents}/integrations/asaas-financial.md +7 -3
  66. package/framework/{skills/level-2-domains → agents}/integrations/azure-identity.md +7 -3
  67. package/framework/{skills/level-2-domains → agents}/integrations/clerk-auth.md +7 -3
  68. package/framework/{skills/level-2-domains/integrations/hangfire-orchestrator.md → agents/integrations/hangfire-integration.md} +7 -1
  69. package/framework/{skills/level-2-domains → agents}/integrations/resend-email.md +7 -3
  70. package/framework/{skills/level-2-domains → agents}/quality/code-analyzer.md +9 -5
  71. package/framework/{skills/level-2-domains → agents}/quality/testing-specialist.md +7 -3
  72. package/framework/commands/morph-apply.md +9 -9
  73. package/framework/commands/morph-archive.md +8 -8
  74. package/framework/commands/morph-infra.md +1 -1
  75. package/framework/commands/morph-proposal.md +9 -9
  76. package/framework/commands/morph-status.md +3 -3
  77. package/framework/commands/morph-troubleshoot.md +1 -1
  78. package/framework/hooks/README.md +201 -282
  79. package/framework/hooks/claude-code/notification/approval-reminder.js +52 -0
  80. package/framework/hooks/claude-code/post-tool-use/dispatch.js +83 -0
  81. package/framework/hooks/claude-code/post-tool-use/handle-tool-failure.js +42 -0
  82. package/framework/hooks/claude-code/pre-compact/save-morph-context.js +61 -0
  83. package/framework/hooks/claude-code/pre-tool-use/enforce-phase-writes.js +71 -0
  84. package/framework/hooks/claude-code/pre-tool-use/protect-readonly-files.js +58 -0
  85. package/framework/hooks/claude-code/pre-tool-use/protect-spec-files.js +64 -0
  86. package/framework/hooks/claude-code/session-start/inject-morph-context.js +94 -0
  87. package/framework/hooks/claude-code/statusline.py +538 -0
  88. package/framework/hooks/claude-code/statusline.sh +7 -0
  89. package/framework/hooks/claude-code/stop/validate-completion.js +88 -0
  90. package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +91 -0
  91. package/framework/hooks/shared/hook-response.js +45 -0
  92. package/framework/hooks/shared/phase-utils.js +129 -0
  93. package/framework/hooks/shared/state-reader.js +138 -0
  94. package/framework/hooks/shared/stdin-reader.js +26 -0
  95. package/framework/phases.json +145 -0
  96. package/framework/rules/csharp-standards.md +10 -0
  97. package/framework/rules/frontend-standards.md +14 -0
  98. package/framework/rules/infrastructure-standards.md +13 -0
  99. package/framework/rules/morph-workflow.md +86 -0
  100. package/framework/rules/testing-standards.md +11 -0
  101. package/framework/skills/README.md +66 -0
  102. package/framework/skills/level-0-meta/brainstorming/SKILL.md +135 -0
  103. package/framework/skills/level-0-meta/brainstorming/references/proposal-example.md +138 -0
  104. package/framework/skills/level-0-meta/{code-review.md → code-review/SKILL.md} +13 -4
  105. package/framework/skills/level-0-meta/code-review/references/review-example.md +164 -0
  106. package/framework/skills/level-0-meta/code-review/scripts/scan-csharp.mjs +121 -0
  107. package/framework/skills/level-0-meta/mcp-registry.json +207 -0
  108. package/framework/skills/level-0-meta/{morph-checklist.md → morph-checklist/SKILL.md} +8 -3
  109. package/framework/skills/{level-1-workflows/morph-replicate.md → level-0-meta/morph-replicate/SKILL.md} +13 -6
  110. package/framework/skills/level-0-meta/{simulation-checklist.md → simulation-checklist/SKILL.md} +9 -4
  111. package/framework/skills/level-0-meta/tool-usage-guide/SKILL.md +334 -0
  112. package/framework/skills/level-0-meta/verification-before-completion/SKILL.md +147 -0
  113. package/framework/skills/level-0-meta/verification-before-completion/scripts/check-phase-outputs.mjs +110 -0
  114. package/framework/skills/level-1-workflows/{phase-clarify.md → phase-clarify/SKILL.md} +65 -4
  115. package/framework/skills/level-1-workflows/phase-clarify/references/clarifications-example.md +117 -0
  116. package/framework/skills/level-1-workflows/phase-codebase-analysis/SKILL.md +181 -0
  117. package/framework/skills/level-1-workflows/phase-design/SKILL.md +303 -0
  118. package/framework/skills/level-1-workflows/phase-design/references/spec-example.md +253 -0
  119. package/framework/skills/level-1-workflows/phase-implement/SKILL.md +254 -0
  120. package/framework/skills/level-1-workflows/phase-implement/references/recap-example.md +132 -0
  121. package/framework/skills/level-1-workflows/phase-setup/SKILL.md +171 -0
  122. package/framework/skills/level-1-workflows/{phase-tasks.md → phase-tasks/SKILL.md} +89 -7
  123. package/framework/skills/level-1-workflows/phase-tasks/references/tasks-example.md +231 -0
  124. package/framework/skills/level-1-workflows/phase-tasks/scripts/validate-tasks.mjs +112 -0
  125. package/framework/skills/level-1-workflows/phase-uiux/SKILL.md +246 -0
  126. package/framework/standards/STANDARDS.json +812 -0
  127. package/framework/standards/ai-agents/team-orchestration.md +3 -3
  128. package/framework/standards/frontend/nextjs/nextjs-patterns.md +17 -0
  129. package/framework/standards/integration/mcp/mcp-tools.md +384 -0
  130. package/framework/templates/README.md +17 -17
  131. package/framework/templates/REGISTRY.json +48 -233
  132. package/framework/templates/code/dotnet/contracts/contracts.cs.hbs +172 -0
  133. package/framework/templates/context/CONTEXT-FEATURE.md +1 -1
  134. package/framework/templates/context/CONTEXT.md +3 -3
  135. package/framework/templates/docs/clarifications.md +253 -0
  136. package/framework/templates/docs/onboarding.md +123 -0
  137. package/framework/templates/docs/schema-analysis.md +119 -0
  138. package/framework/templates/docs/spec.md +149 -149
  139. package/framework/templates/docs/ui-components.md +124 -0
  140. package/framework/templates/docs/ui-design-system.md +76 -0
  141. package/framework/templates/docs/ui-flows.md +167 -0
  142. package/framework/templates/docs/ui-mockups.md +98 -0
  143. package/framework/templates/docs/user-stories.md +34 -0
  144. package/framework/templates/examples/spec-examples.md +1 -1
  145. package/framework/templates/infrastructure/github/README.md +11 -11
  146. package/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +2 -2
  147. package/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +2 -2
  148. package/framework/templates/meta-prompts/validators/pre-commit-validator.md +1 -1
  149. package/framework/workflows/configs/express.json +45 -0
  150. package/framework/workflows/configs/spec-only.json +43 -0
  151. package/framework/workflows/docs/enforcement-pipeline.md +8 -8
  152. package/framework/workflows/docs/full-morph.md +3 -3
  153. package/package.json +3 -1
  154. package/scripts/generate-refs.js +336 -0
  155. package/scripts/generate-standards-registry.js +44 -0
  156. package/scripts/validate-real.mjs +255 -0
  157. package/src/commands/feature/create-story.js +362 -361
  158. package/src/commands/feature/shard-spec.js +225 -224
  159. package/src/commands/feature/sprint-status.js +1 -1
  160. package/src/commands/generation/generate-onboarding.js +169 -0
  161. package/src/commands/generation/generate.js +2 -2
  162. package/src/commands/mcp/mcp-setup.js +315 -0
  163. package/src/commands/project/changes.js +66 -0
  164. package/src/commands/project/checkpoint.js +209 -0
  165. package/src/commands/project/cost.js +179 -0
  166. package/src/commands/project/diff.js +278 -0
  167. package/src/commands/project/doctor.js +55 -7
  168. package/src/commands/project/init.js +318 -136
  169. package/src/commands/project/revert.js +173 -0
  170. package/src/commands/project/standards.js +80 -0
  171. package/src/commands/project/status.js +376 -0
  172. package/src/commands/project/update-agents.js +23 -0
  173. package/src/commands/project/update.js +60 -88
  174. package/src/commands/state/advance-phase.js +4 -3
  175. package/src/commands/state/state.js +10 -3
  176. package/src/commands/state/validate-phase.js +19 -2
  177. package/src/commands/templates/template-customize.js +4 -4
  178. package/src/commands/templates/template-render.js +1 -1
  179. package/src/commands/templates/template-show.js +1 -1
  180. package/src/commands/validation/validate-feature.js +359 -0
  181. package/src/core/orchestrator.js +3 -38
  182. package/src/core/paths/output-schema.js +135 -0
  183. package/src/core/state/state-manager.js +831 -592
  184. package/src/core/templates/template-registry.js +2 -2
  185. package/src/core/workflows/workflow-detector.js +17 -1
  186. package/src/lib/agents/micro-agent-factory.js +1 -1
  187. package/src/lib/context/context-bundler.js +2 -1
  188. package/src/lib/detectors/claude-config-detector.js +390 -0
  189. package/src/lib/detectors/conversation-analyzer.js +4 -4
  190. package/src/lib/detectors/design-system-detector.js +6 -5
  191. package/src/lib/detectors/standards-generator.js +2 -2
  192. package/src/lib/generators/context-generator.js +539 -538
  193. package/src/lib/generators/recap-generator.js +1 -1
  194. package/src/lib/generators/settings-generator.js +210 -0
  195. package/src/lib/hooks/hook-executor.js +1 -1
  196. package/src/lib/installers/mcp-installer.js +299 -0
  197. package/src/lib/learning/learning-system.js +3 -3
  198. package/src/lib/orchestration/team-orchestrator.js +1 -1
  199. package/src/lib/standards/standards-context-injector.js +7 -7
  200. package/src/lib/threads/thread-coordinator.js +1 -1
  201. package/src/lib/troubleshooting/troubleshoot-grep.js +1 -1
  202. package/src/lib/validators/contracts/contract-compliance-validator.js +274 -273
  203. package/src/lib/validators/design-system/design-system-validator.js +1 -1
  204. package/src/lib/validators/spec-validator.js +258 -258
  205. package/src/lib/validators/validation-runner.js +270 -269
  206. package/src/utils/agents-installer.js +206 -0
  207. package/src/utils/claude-settings-manager.js +258 -0
  208. package/src/utils/file-copier.js +1 -1
  209. package/src/utils/hooks-installer.js +354 -28
  210. package/src/utils/skills-installer.js +118 -0
  211. package/.morph/project/context/README.md +0 -17
  212. package/.morph/project/context/detection-log.md +0 -16
  213. package/.morph/project/standards/inferred.md +0 -59
  214. package/framework/hooks/agent-stop/validate-and-continue.js +0 -96
  215. package/framework/hooks/agent-stop/validate-checkpoints.js +0 -101
  216. package/framework/hooks/agent-stop/validate-tests.js +0 -109
  217. package/framework/hooks/agent-teams/dispatch.js +0 -67
  218. package/framework/hooks/agent-teams/phase-advanced.js +0 -80
  219. package/framework/hooks/agent-teams/task-completed.js +0 -76
  220. package/framework/hooks/agent-teams/teammate-idle.js +0 -70
  221. package/framework/skills/level-1-workflows/phase-design.md +0 -213
  222. package/framework/skills/level-1-workflows/phase-setup.md +0 -106
  223. package/framework/skills/level-1-workflows/phase-uiux.md +0 -169
  224. package/framework/skills/level-2-domains/backend/api-designer.md +0 -59
  225. package/framework/skills/level-2-domains/backend/ef-modeler.md +0 -58
  226. package/framework/skills/level-3-technologies/README.md +0 -7
  227. package/framework/skills/level-4-patterns/README.md +0 -7
  228. package/src/commands/agents/agents-fuse.js +0 -97
  229. package/src/commands/agents/micro-agent.js +0 -112
  230. package/src/commands/agents/spawn-team.js +0 -237
  231. package/src/commands/agents/squad-template.js +0 -146
  232. package/src/commands/analytics/analytics.js +0 -176
  233. package/src/commands/context/context-prime.js +0 -63
  234. package/src/commands/context/core-four.js +0 -54
  235. package/src/commands/generation/generate-context.js +0 -40
  236. package/src/commands/project/detect-agents.js +0 -207
  237. package/src/commands/project/detect-workflow.js +0 -174
  238. package/src/commands/threads/thread-template.js +0 -103
  239. package/src/commands/threads/threads.js +0 -261
  240. package/src/commands/utils/session-summary.js +0 -291
  241. package/src/llm/analyzer.js +0 -215
  242. package/src/llm/few-shot-examples.js +0 -216
  243. package/src/llm/project-config-schema.json +0 -188
  244. package/src/llm/prompt-builder.js +0 -96
  245. /package/.morph/{config → framework}/agents.json +0 -0
  246. /package/.morph/{standards → framework/standards}/ai-agents/blazor-ui.md +0 -0
  247. /package/.morph/{standards → framework/standards}/ai-agents/production.md +0 -0
  248. /package/.morph/{standards → framework/standards}/ai-agents/setup.md +0 -0
  249. /package/.morph/{standards → framework/standards}/ai-agents/workflows.md +0 -0
  250. /package/.morph/{standards → framework/standards}/architecture/ddd/aggregates.md +0 -0
  251. /package/.morph/{standards → framework/standards}/architecture/ddd/entities.md +0 -0
  252. /package/.morph/{standards → framework/standards}/architecture/ddd/value-objects.md +0 -0
  253. /package/.morph/{standards → framework/standards}/backend/api/minimal-api.md +0 -0
  254. /package/.morph/{standards → framework/standards}/backend/api/rest.md +0 -0
  255. /package/.morph/{standards → framework/standards}/backend/api/validation.md +0 -0
  256. /package/.morph/{standards → framework/standards}/backend/authentication/passkeys.md +0 -0
  257. /package/.morph/{standards → framework/standards}/backend/database/ef-core.md +0 -0
  258. /package/.morph/{standards → framework/standards}/backend/database/migrations.md +0 -0
  259. /package/.morph/{standards → framework/standards}/backend/database/postgresql/database.md +0 -0
  260. /package/.morph/{standards → framework/standards}/backend/database/repository-patterns.md +0 -0
  261. /package/.morph/{standards → framework/standards}/backend/database/vector-search-rag.md +0 -0
  262. /package/.morph/{standards → framework/standards}/backend/dotnet/async.md +0 -0
  263. /package/.morph/{standards → framework/standards}/backend/dotnet/core.md +0 -0
  264. /package/.morph/{standards → framework/standards}/backend/dotnet/di.md +0 -0
  265. /package/.morph/{standards → framework/standards}/backend/dotnet/program-cs-checklist.md +0 -0
  266. /package/.morph/{standards → framework/standards}/backend/integrations/asaas/asaas-api.md +0 -0
  267. /package/.morph/{standards → framework/standards}/backend/integrations/clerk/clerk-auth.md +0 -0
  268. /package/.morph/{standards → framework/standards}/backend/integrations/hangfire/hangfire-jobs.md +0 -0
  269. /package/.morph/{standards → framework/standards}/backend/integrations/resend/resend-email.md +0 -0
  270. /package/.morph/{standards → framework/standards}/context/analytics.md +0 -0
  271. /package/.morph/{standards → framework/standards}/context/bundles.md +0 -0
  272. /package/.morph/{standards → framework/standards}/context/priming.md +0 -0
  273. /package/.morph/{standards → framework/standards}/core/architecture.md +0 -0
  274. /package/.morph/{standards → framework/standards}/core/coding.md +0 -0
  275. /package/.morph/{standards → framework/standards}/core/git-branching-strategy.md +0 -0
  276. /package/.morph/{standards → framework/standards}/core/git.md +0 -0
  277. /package/.morph/{standards → framework/standards}/core/testing.md +0 -0
  278. /package/.morph/{standards → framework/standards}/data/nosql/blob-storage.md +0 -0
  279. /package/.morph/{standards → framework/standards}/data/nosql/cache/redis.md +0 -0
  280. /package/.morph/{standards → framework/standards}/data/nosql/cosmos-db.md +0 -0
  281. /package/.morph/{standards → framework/standards}/data/vector-search/azure-ai-search.md +0 -0
  282. /package/.morph/{standards → framework/standards}/data/vector-search/rag-chunking.md +0 -0
  283. /package/.morph/{standards → framework/standards}/frontend/blazor/design-checklist.md +0 -0
  284. /package/.morph/{standards → framework/standards}/frontend/blazor/fluent-ui-setup.md +0 -0
  285. /package/.morph/{standards → framework/standards}/frontend/blazor/fluent-ui.md +0 -0
  286. /package/.morph/{standards → framework/standards}/frontend/blazor/html-conversion.md +0 -0
  287. /package/.morph/{standards → framework/standards}/frontend/blazor/lifecycle.md +0 -0
  288. /package/.morph/{standards → framework/standards}/frontend/blazor/pitfalls.md +0 -0
  289. /package/.morph/{standards → framework/standards}/frontend/blazor/state.md +0 -0
  290. /package/.morph/{standards → framework/standards}/frontend/design-system/animations.md +0 -0
  291. /package/.morph/{standards → framework/standards}/frontend/design-system/naming.md +0 -0
  292. /package/.morph/{standards → framework/standards}/infrastructure/azure/azure.md +0 -0
  293. /package/.morph/{standards → framework/standards}/infrastructure/azure/bicep/bicep-patterns.md +0 -0
  294. /package/.morph/{standards → framework/standards}/infrastructure/azure/devops/azure-devops-setup.md +0 -0
  295. /package/.morph/{standards → framework/standards}/infrastructure/azure/devops/local-development.md +0 -0
  296. /package/.morph/{standards → framework/standards}/infrastructure/azure/services/functions.md +0 -0
  297. /package/.morph/{standards → framework/standards}/infrastructure/azure/services/service-bus.md +0 -0
  298. /package/.morph/{standards → framework/standards}/infrastructure/azure/services/storage.md +0 -0
  299. /package/.morph/{standards → framework/standards}/infrastructure/docker/easypanel-deploy.md +0 -0
  300. /package/.morph/{standards → framework/standards}/infrastructure/supabase/mcp-setup.md +0 -0
  301. /package/.morph/{standards → framework/standards}/infrastructure/supabase/supabase-auth.md +0 -0
  302. /package/.morph/{standards → framework/standards}/infrastructure/supabase/supabase-pgvector.md +0 -0
  303. /package/.morph/{standards → framework/standards}/infrastructure/supabase/supabase-rls.md +0 -0
  304. /package/.morph/{standards → framework/standards}/infrastructure/supabase/supabase-storage.md +0 -0
  305. /package/.morph/{standards → framework/standards}/integration/api/graphql.md +0 -0
  306. /package/.morph/{standards → framework/standards}/integration/api/grpc.md +0 -0
  307. /package/.morph/{standards → framework/standards}/integration/api/rest-design.md +0 -0
  308. /package/.morph/{standards → framework/standards}/integration/event-driven/cqrs.md +0 -0
  309. /package/.morph/{standards → framework/standards}/integration/event-driven/event-sourcing.md +0 -0
  310. /package/.morph/{standards → framework/standards}/integration/event-driven/service-bus.md +0 -0
  311. /package/.morph/{standards → framework/standards}/observability/logging.md +0 -0
  312. /package/.morph/{standards → framework/standards}/observability/metrics.md +0 -0
  313. /package/.morph/{standards → framework/standards}/observability/monitoring.md +0 -0
  314. /package/.morph/{standards → framework/standards}/observability/tracing.md +0 -0
  315. /package/.morph/{standards → framework/standards}/workflows/parallel-execution.md +0 -0
  316. /package/.morph/{standards → framework/standards}/workflows/thread-management.md +0 -0
  317. /package/.morph/{templates → framework/templates}/.idea/morph-templates.xml +0 -0
  318. /package/.morph/{templates → framework/templates}/.vscode/morph-templates.code-snippets +0 -0
  319. /package/.morph/{templates → framework/templates}/IDE-SNIPPETS.md +0 -0
  320. /package/.morph/{templates → framework/templates}/code/dotnet/backend/repository.cs +0 -0
  321. /package/.morph/{templates → framework/templates}/code/dotnet/backend/service.cs +0 -0
  322. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/Commands.cs +0 -0
  323. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/Entities.cs +0 -0
  324. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/Queries.cs +0 -0
  325. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/README.md +0 -0
  326. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/api-contracts.cs +0 -0
  327. /package/.morph/{templates → framework/templates}/code/dotnet/contracts/contracts.cs +0 -0
  328. /package/.morph/{templates → framework/templates}/code/dotnet/database/migration.cs +0 -0
  329. /package/.morph/{templates → framework/templates}/code/dotnet/frontend/component.razor +0 -0
  330. /package/.morph/{templates → framework/templates}/code/dotnet/jobs/agent.cs +0 -0
  331. /package/.morph/{templates → framework/templates}/code/dotnet/jobs/job.cs +0 -0
  332. /package/.morph/{templates → framework/templates}/code/dotnet/test.cs +0 -0
  333. /package/.morph/{templates → framework/templates}/code/sql/rls-policy.sql +0 -0
  334. /package/.morph/{templates → framework/templates}/code/sql/supabase-migration.sql +0 -0
  335. /package/.morph/{templates → framework/templates}/code/sql/supabase-migration.template.sql +0 -0
  336. /package/.morph/{templates → framework/templates}/code/typescript/contracts.ts +0 -0
  337. /package/.morph/{templates → framework/templates}/docs/proposal.md +0 -0
  338. /package/.morph/{templates → framework/templates}/examples/design-system-examples.md +0 -0
  339. /package/.morph/{templates → framework/templates}/feature/decisions.md +0 -0
  340. /package/.morph/{templates → framework/templates}/feature/recap.md +0 -0
  341. /package/.morph/{templates → framework/templates}/feature/tasks.md +0 -0
  342. /package/.morph/{templates → framework/templates}/infrastructure/azure/Dockerfile.example +0 -0
  343. /package/.morph/{templates → framework/templates}/infrastructure/azure/README.md +0 -0
  344. /package/.morph/{templates → framework/templates}/infrastructure/azure/app-insights.bicep +0 -0
  345. /package/.morph/{templates → framework/templates}/infrastructure/azure/app-service.bicep +0 -0
  346. /package/.morph/{templates → framework/templates}/infrastructure/azure/container-app-env.bicep +0 -0
  347. /package/.morph/{templates → framework/templates}/infrastructure/azure/container-app.bicep +0 -0
  348. /package/.morph/{templates → framework/templates}/infrastructure/azure/deploy-checklist.md +0 -0
  349. /package/.morph/{templates → framework/templates}/infrastructure/azure/deploy.ps1 +0 -0
  350. /package/.morph/{templates → framework/templates}/infrastructure/azure/deploy.sh +0 -0
  351. /package/.morph/{templates → framework/templates}/infrastructure/azure/key-vault.bicep +0 -0
  352. /package/.morph/{templates → framework/templates}/infrastructure/azure/main.bicep +0 -0
  353. /package/.morph/{templates → framework/templates}/infrastructure/azure/parameters.dev.json +0 -0
  354. /package/.morph/{templates → framework/templates}/infrastructure/azure/parameters.prod.json +0 -0
  355. /package/.morph/{templates → framework/templates}/infrastructure/azure/parameters.staging.json +0 -0
  356. /package/.morph/{templates → framework/templates}/infrastructure/azure/sql-database.bicep +0 -0
  357. /package/.morph/{templates → framework/templates}/infrastructure/azure/storage.bicep +0 -0
  358. /package/.morph/{templates → framework/templates}/infrastructure/docker/Dockerfile.template +0 -0
  359. /package/.morph/{templates → framework/templates}/infrastructure/docker/docker-compose.template.yml +0 -0
  360. /package/.morph/{templates → framework/templates}/infrastructure/docker/dockerfile-api.dockerfile +0 -0
  361. /package/.morph/{templates → framework/templates}/infrastructure/docker/dockerfile-web.dockerfile +0 -0
  362. /package/.morph/{templates → framework/templates}/infrastructure/docker/easypanel.template.json +0 -0
  363. /package/.morph/{templates → framework/templates}/infrastructure/github/actions/azure-auth/action.yml.hbs +0 -0
  364. /package/.morph/{templates → framework/templates}/infrastructure/github/actions/docker-build-push/action.yml.hbs +0 -0
  365. /package/.morph/{templates → framework/templates}/infrastructure/github/actions/health-check/action.yml.hbs +0 -0
  366. /package/.morph/{templates → framework/templates}/infrastructure/github/workflows/deploy-easypanel.yml.hbs +0 -0
  367. /package/.morph/{templates → framework/templates}/infrastructure/github/workflows/docker-build-push.yml.hbs +0 -0
  368. /package/.morph/{templates → framework/templates}/infrastructure/github/workflows/dotnet-build.yml.hbs +0 -0
  369. /package/.morph/{templates → framework/templates}/integrations/asaas-client.cs +0 -0
  370. /package/.morph/{templates → framework/templates}/integrations/asaas-webhook.cs +0 -0
  371. /package/.morph/{templates → framework/templates}/integrations/azure-identity-config.cs +0 -0
  372. /package/.morph/{templates → framework/templates}/integrations/clerk-config.cs +0 -0
  373. /package/.morph/{templates → framework/templates}/meta-prompts/fusion/fusion-agent.md +0 -0
  374. /package/.morph/{templates → framework/templates}/meta-prompts/fusion/fusion-aggregator.md +0 -0
  375. /package/.morph/{templates → framework/templates}/meta-prompts/hops/hop-retry.md +0 -0
  376. /package/.morph/{templates → framework/templates}/meta-prompts/hops/hop-validation.md +0 -0
  377. /package/.morph/{templates → framework/templates}/meta-prompts/hops/hop-wrapper.md +0 -0
  378. /package/.morph/{templates → framework/templates}/meta-prompts/parallel-workers/parallel-coordinator.md +0 -0
  379. /package/.morph/{templates → framework/templates}/meta-prompts/squad-leaders/backend-squad.md +0 -0
  380. /package/.morph/{templates → framework/templates}/meta-prompts/squad-leaders/frontend-squad.md +0 -0
  381. /package/.morph/{templates → framework/templates}/meta-prompts/squad-leaders/squad-leader.md +0 -0
  382. /package/.morph/{templates → framework/templates}/meta-prompts/validators/checkpoint-validator.md +0 -0
  383. /package/.morph/{templates → framework/templates}/saas/subscription.cs +0 -0
  384. /package/.morph/{templates → framework/templates}/saas/tenant.cs +0 -0
  385. /package/.morph/{templates → framework/templates}/state.template.json +0 -0
  386. /package/.morph/{templates → framework/templates}/ui/FluentDesignTheme.cs +0 -0
  387. /package/.morph/{templates → framework/templates}/ui/MudTheme.cs +0 -0
  388. /package/.morph/{templates → framework/templates}/ui/design-system.css +0 -0
  389. /package/framework/{skills/level-2-domains → agents}/README.md +0 -0
  390. /package/framework/hooks/{commit-msg → git/commit-msg}/conventional-commits.sh +0 -0
  391. /package/framework/hooks/{pre-commit → git/pre-commit}/agents.sh +0 -0
  392. /package/framework/hooks/{pre-commit → git/pre-commit}/orchestrator.sh +0 -0
  393. /package/framework/hooks/{pre-commit → git/pre-commit}/specs.sh +0 -0
  394. /package/framework/hooks/{pre-push → git/pre-push}/run-tests.sh +0 -0
@@ -0,0 +1,254 @@
1
+ ---
2
+ name: phase-implement
3
+ description: MORPH-SPEC Phase 5 (Implement). Executes feature tasks using TDD with checkpoint validation every 3 tasks, smoke tests via Playwright, and generates code + recap.md. Use after task list approval when starting feature implementation.
4
+ argument-hint: "[feature-name]"
5
+ disable-model-invocation: true
6
+ context: fork
7
+ agent: general-purpose
8
+ user-invocable: false
9
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
10
+ ---
11
+
12
+ # MORPH Implement - FASE 5
13
+
14
+ > INTERNAL: Workflow skill used by /morph-apply during automated phase orchestration. Not a user command.
15
+
16
+ Implemente as tasks definidas na FASE 4, com checkpoints a cada 3 tasks e recap final.
17
+
18
+ ## Pré-requisitos
19
+
20
+ - [ ] FASE 4 (Tasks) concluída
21
+ - [ ] `tasks.md` ou `tasks.json` aprovado pelo usuário
22
+ - [ ] Tasks gate (`morph-spec approve $ARGUMENTS tasks`) aprovado
23
+ - [ ] Todos os outputs de design existem (spec.md, contracts.cs, decisions.md)
24
+
25
+ ## Ferramentas Recomendadas
26
+
27
+ > **Ref:** `framework/skills/level-0-meta/tool-usage-guide/SKILL.md` para guia completo.
28
+ > **Ref:** `framework/standards/integration/mcp/mcp-tools.md` para referência MCP.
29
+ > **Example:** `references/recap-example.md` — filled-in recap.md showing expected output quality.
30
+
31
+ | Ação | Ferramenta | Alternativa |
32
+ |------|------------|-------------|
33
+ | Ler task details | **Read** tasks.json, spec.md, contracts.cs | — |
34
+ | Criar novos arquivos | **Write** source files | — |
35
+ | Modificar arquivos existentes | **Edit** source files | — |
36
+ | Consultar API de biblioteca | **Context7 MCP** `query_docs()` | **WebSearch** + **WebFetch** |
37
+ | Executar migrations | **Supabase MCP** `query()` | **Bash** `npx supabase migration ...` |
38
+ | Build do projeto | **Bash** `dotnet build` ou `npm run build` | — |
39
+ | Rodar testes | **Bash** `dotnet test` ou `npm test` | — |
40
+ | Checkpoint validation | **Bash** `npx morph-spec validate-feature ...` | — |
41
+ | Marcar task concluída | **Bash** `npx morph-spec task done $ARGUMENTS T001` | — |
42
+ | Smoke test no browser | **Playwright MCP** `browser_navigate()` + `browser_snapshot()` | Manual |
43
+ | Verificar erros de console | **Playwright MCP** `browser_console_messages()` | — |
44
+ | Screenshot para recap | **Playwright MCP** `browser_take_screenshot()` | — |
45
+ | Criar PR | **Bash** `gh pr create ...` | **GitHub MCP** `create_pull_request()` |
46
+ | Atualizar state | **Bash** `npx morph-spec state set ...` | — |
47
+
48
+ **MCPs desta fase:** Supabase (migrations, RLS), Context7 (API lookup), Playwright (smoke test), GitHub (PRs).
49
+
50
+ **Anti-padrões:**
51
+ - ❌ Task agent para editar um único arquivo (use Edit direto)
52
+ - ✅ Task agent para implementar service layer em 5+ arquivos (multi-file legítimo)
53
+ - ❌ Bash `cat` para criar arquivos (use Write tool)
54
+ - ❌ Bash `sed` para modificar código (use Edit tool)
55
+ - ❌ Implementar sem ler contracts.cs primeiro (contracts são a fonte de verdade!)
56
+
57
+ ---
58
+
59
+ ## Workflow
60
+
61
+ ### CHECKPOINT DE ENTRADA: Verificar Pré-requisitos
62
+
63
+ **⏸️ Antes de iniciar implementação:**
64
+
65
+ - [ ] `tasks.md` ou `tasks.json` existe e foi aprovado?
66
+ - [ ] Tasks gate aprovado (`morph-spec approve $ARGUMENTS tasks`)?
67
+ - [ ] `spec.md` atualizado com clarificações?
68
+ - [ ] `contracts.cs` corresponde ao schema real?
69
+ - [ ] Build base do projeto compila sem erros?
70
+
71
+ ```bash
72
+ npx morph-spec state get $ARGUMENTS
73
+ npx morph-spec approval-status $ARGUMENTS
74
+ ```
75
+
76
+ **❌ Se alguma checkbox NÃO estiver marcada:**
77
+ → Voltar para a fase correspondente
78
+
79
+ ---
80
+
81
+ ### Passo 1: Carregar Contexto Completo
82
+
83
+ Leia TODOS os outputs antes de implementar:
84
+
85
+ 1. `.morph/features/$ARGUMENTS/3-tasks/tasks.md` — Lista de tasks
86
+ 2. `.morph/features/$ARGUMENTS/1-design/spec.md` — Especificação completa
87
+ 3. `.morph/features/$ARGUMENTS/1-design/contracts.cs` — Interfaces e DTOs
88
+ 4. `.morph/features/$ARGUMENTS/1-design/decisions.md` — ADRs
89
+ 5. `.morph/features/$ARGUMENTS/1-design/schema-analysis.md` — Schema real (se existir)
90
+ 6. `.morph/features/$ARGUMENTS/2-ui/design-system.md` — Design tokens (se existir)
91
+
92
+ ### Passo 2: Iniciar Primeira Task
93
+
94
+ ```bash
95
+ npx morph-spec task next $ARGUMENTS
96
+ npx morph-spec task start $ARGUMENTS T001
97
+ ```
98
+
99
+ Para cada task:
100
+
101
+ 1. **Ler a task description** completa
102
+ 2. **Ler contracts.cs** para DTOs/interfaces relevantes
103
+ 3. **Implementar** usando Write (novo) ou Edit (existente)
104
+ 4. **Verificar** — build, lint, testes
105
+ 5. **Marcar como done:**
106
+ ```bash
107
+ npx morph-spec task done $ARGUMENTS T001
108
+ ```
109
+
110
+ ### Passo 3: Checkpoint a Cada 3 Tasks
111
+
112
+ **A cada 3 tasks completadas:**
113
+
114
+ ```bash
115
+ # Save checkpoint
116
+ npx morph-spec checkpoint-save $ARGUMENTS
117
+
118
+ # Run validation
119
+ npx morph-spec validate-feature $ARGUMENTS --phase implement
120
+ ```
121
+
122
+ **Se validação falhar:**
123
+ 1. NÃO avançar para próxima task
124
+ 2. Corrigir issues reportados
125
+ 3. Re-rodar validação
126
+ 4. Só então prosseguir
127
+
128
+ ### Passo 4: Test-Driven Development (Recomendado)
129
+
130
+ Para cada task de implementação:
131
+
132
+ 1. **Escrever teste primeiro** (unit test para service/domain)
133
+ 2. **Rodar teste** — deve falhar (RED)
134
+ 3. **Implementar** o mínimo para passar
135
+ 4. **Rodar teste** — deve passar (GREEN)
136
+ 5. **Refatorar** se necessário (REFACTOR)
137
+
138
+ ```bash
139
+ # .NET
140
+ dotnet test --filter "FullyQualifiedName~{TestClass}"
141
+
142
+ # Node.js
143
+ npm test -- test/path/to/test.js
144
+ ```
145
+
146
+ ### Passo 5: Smoke Test com Playwright (se UI)
147
+
148
+ Após implementar componentes visuais:
149
+
150
+ ```javascript
151
+ // Navegar para a página
152
+ await mcp__playwright__browser_navigate({ url: 'http://localhost:5000/feature-page' });
153
+
154
+ // Capturar estado da página
155
+ await mcp__playwright__browser_snapshot();
156
+
157
+ // Verificar erros de console
158
+ await mcp__playwright__browser_console_messages({ level: 'error' });
159
+
160
+ // Screenshot para recap
161
+ await mcp__playwright__browser_take_screenshot({ type: 'png' });
162
+ ```
163
+
164
+ ### Passo 6: Gerar `recap.md`
165
+
166
+ Após TODAS as tasks completadas:
167
+
168
+ ```bash
169
+ npx morph-spec generate recap $ARGUMENTS
170
+ ```
171
+
172
+ Ou crie manualmente `.morph/features/$ARGUMENTS/4-implement/recap.md`:
173
+
174
+ ```markdown
175
+ # Recap — {Feature Name}
176
+
177
+ ## Summary
178
+ {1-2 parágrafos descrevendo o que foi implementado}
179
+
180
+ ## Tasks Completed
181
+ - [x] T001: {título}
182
+ - [x] T002: {título}
183
+ - ...
184
+
185
+ ## Key Decisions During Implementation
186
+ - {Decisão 1}: {Razão}
187
+ - {Decisão 2}: {Razão}
188
+
189
+ ## Files Created/Modified
190
+ {Lista de arquivos}
191
+
192
+ ## Tests
193
+ - Unit tests: X passing
194
+ - Integration tests: Y passing
195
+
196
+ ## Validation Results
197
+ {Output do morph-spec validate-feature}
198
+
199
+ ## Screenshots
200
+ {Se UI, incluir screenshots}
201
+ ```
202
+
203
+ ### Passo 7: Atualizar State
204
+
205
+ ```bash
206
+ npx morph-spec state set $ARGUMENTS phase implement
207
+ npx morph-spec state set $ARGUMENTS status done
208
+ npx morph-spec state mark-output $ARGUMENTS recap
209
+ ```
210
+
211
+ ---
212
+
213
+ ## Integração com Superpowers
214
+
215
+ > Disponível quando o plugin `superpowers` está instalado.
216
+
217
+ | Skill | Quando Usar | Invocação |
218
+ |-------|-------------|-----------|
219
+ | `test-driven-development` | Para cada task de implementação | `Skill(superpowers:test-driven-development)` |
220
+ | `systematic-debugging` | Quando testes falham ou erros inesperados | `Skill(superpowers:systematic-debugging)` |
221
+ | `requesting-code-review` | Após implementação completa | `Skill(superpowers:requesting-code-review)` |
222
+ | `verification-before-completion` | Antes de marcar feature como done | Use `verification-before-completion` (morph-spec version) |
223
+
224
+ ---
225
+
226
+ ## Outputs Gerados
227
+
228
+ - Código fonte implementado (vários arquivos)
229
+ - Testes unitários e de integração
230
+ - `.morph/features/$ARGUMENTS/4-implement/recap.md` — Resumo da implementação
231
+
232
+ ## Critérios de Conclusão
233
+
234
+ - [x] Todas as tasks completadas
235
+ - [x] Build compila sem erros
236
+ - [x] Testes passando
237
+ - [x] Validation pipeline passa
238
+ - [x] `recap.md` gerado
239
+ - [x] State atualizado para `status: done`
240
+ - [x] Checkpoints salvos a cada 3 tasks
241
+
242
+ ---
243
+
244
+ ## Outputs desta Fase
245
+
246
+ <!-- morph:outputs:implement -->
247
+ | Output | Caminho |
248
+ |--------|---------|
249
+ | `recap` | `.morph/features/{feature}/4-implement/recap.md` |
250
+ <!-- /morph:outputs -->
251
+
252
+ ---
253
+
254
+ Feature completa! Considere criar um PR e rodar `morph-spec session-summary $ARGUMENTS`.
@@ -0,0 +1,132 @@
1
+ # Feature Recap: Photo Processing Pipeline
2
+
3
+ > Example of a well-structured recap.md. Filled-in reference — not a template.
4
+
5
+ ## Summary
6
+
7
+ | Field | Value |
8
+ |-------|-------|
9
+ | **Feature ID** | photo-processing |
10
+ | **Completed** | 2025-01-22 |
11
+ | **Total Tasks** | 11 / 11 |
12
+ | **Time Spent** | ~9h |
13
+ | **Agents Used** | dotnet-senior, azure-architect, blazor-builder |
14
+ | **Stack** | blazor-azure |
15
+
16
+ ---
17
+
18
+ ## Tasks Completed
19
+
20
+ | ID | Title | Category | Duration |
21
+ |----|-------|----------|----------|
22
+ | T001 | Define C# contracts and interfaces | Contract | 25min |
23
+ | T002 | Create ProcessingJob entity and enum | Domain | 30min |
24
+ | T003 | EF Core migration and DbContext setup | Infrastructure | 50min |
25
+ | T004 | Azure Blob Storage service | Infrastructure | 45min |
26
+ | T005 | Implement PhotoProcessingService | Service | 65min |
27
+ | T006 | Implement Hangfire background job | Job | 70min |
28
+ | T007 | Upload and status endpoints | API | 40min |
29
+ | T008 | Blazor upload page component | UI | 60min |
30
+ | T009 | Blazor status polling page | UI | 65min |
31
+ | T010 | Unit tests for PhotoProcessingService | Test | 55min |
32
+ | T011 | Integration tests for upload + status API | Test | 70min |
33
+
34
+ ---
35
+
36
+ ## What Was Delivered
37
+
38
+ ### Functionality
39
+ - Photo upload via Blazor form (10MB limit, .jpg/.png only)
40
+ - Azure Blob Storage integration with `uploads/{jobId}/original.jpg` path structure
41
+ - Hangfire background job with 3-retry exponential backoff (5s/30s/120s)
42
+ - Real-time status polling page (5s interval, stops on terminal state)
43
+ - Download redirect for completed jobs
44
+
45
+ ### Backend (.NET)
46
+ - Endpoints: `POST /api/upload`, `GET /api/status/{id}`, `GET /api/download/{id}`
47
+ - Services: `PhotoProcessingService`, `PhotoProcessingJob`
48
+ - Simulation: `FakeBlobStorageService`, `FakePhotoProcessingJob` for dev mode
49
+
50
+ ### Frontend (Blazor)
51
+ - Pages: `Upload.razor`, `ProcessingStatus.razor`
52
+ - Polling via `PeriodicTimer` — no SignalR dependency
53
+
54
+ ---
55
+
56
+ ## Files Created
57
+
58
+ ```
59
+ src/Domain/Entities/ProcessingJob.cs
60
+ src/Domain/Enums/ProcessingStatus.cs
61
+ src/Application/PhotoProcessing/Interfaces/IPhotoProcessingService.cs
62
+ src/Application/PhotoProcessing/Commands/UploadPhotoCommand.cs
63
+ src/Application/PhotoProcessing/Queries/GetJobStatusQuery.cs
64
+ src/Application/PhotoProcessing/DTOs/JobStatusDto.cs
65
+ src/Application/PhotoProcessing/PhotoProcessingService.cs
66
+ src/Application/PhotoProcessing/PhotoProcessingJob.cs
67
+ src/Application/PhotoProcessing/FakePhotoProcessingJob.cs
68
+ src/Infrastructure/Storage/IBlobStorageService.cs
69
+ src/Infrastructure/Storage/AzureBlobStorageService.cs
70
+ src/Infrastructure/Storage/FakeBlobStorageService.cs
71
+ src/Infrastructure/Persistence/Configurations/ProcessingJobConfiguration.cs
72
+ src/Web/Endpoints/PhotoProcessingEndpoints.cs
73
+ src/Web/Pages/Upload.razor + .cs
74
+ src/Web/Pages/ProcessingStatus.razor + .cs
75
+ tests/Unit/Application/PhotoProcessing/PhotoProcessingServiceTests.cs
76
+ tests/Integration/Api/PhotoProcessingEndpointTests.cs
77
+ tests/Integration/Fixtures/PhotoProcessingApiFixture.cs
78
+ ```
79
+
80
+ ## Files Modified
81
+
82
+ ```
83
+ src/Infrastructure/Persistence/AppDbContext.cs
84
+ src/Infrastructure/DependencyInjection.cs
85
+ src/Application/DependencyInjection.cs
86
+ src/Web/Program.cs
87
+ ```
88
+
89
+ ---
90
+
91
+ ## Architecture Decisions
92
+
93
+ | Decision | Rationale |
94
+ |----------|-----------|
95
+ | PeriodicTimer for polling (not SignalR) | Simpler, no hub overhead, sufficient at MVP scale |
96
+ | FakeBlobStorageService as Singleton | Stores in-memory dict; Scoped would lose state between requests |
97
+ | Hangfire RetryCount on entity (not Hangfire built-in) | Domain owns retry state; allows custom error messages per attempt |
98
+
99
+ See full ADRs in `decisions.md`
100
+
101
+ ---
102
+
103
+ ## Test Coverage
104
+
105
+ | Type | Files | Notes |
106
+ |------|-------|-------|
107
+ | Unit | `PhotoProcessingServiceTests.cs` | Happy path, invalid type, size limit, 404, all statuses |
108
+ | Integration | `PhotoProcessingEndpointTests.cs` | POST /upload, GET /status, GET /download (completed + pending) |
109
+
110
+ ---
111
+
112
+ ## Issues Encountered
113
+
114
+ | Issue | Resolution |
115
+ |-------|-----------|
116
+ | `FakeBlobStorageService` registered as `Scoped` — lost uploads between requests | Changed to `Singleton` per simulation-checklist.md |
117
+ | `PeriodicTimer` not stopping on component dispose | Added `CancellationTokenSource` + dispose pattern in `ProcessingStatus.razor.cs` |
118
+
119
+ ---
120
+
121
+ ## Metrics
122
+
123
+ | Metric | Value |
124
+ |--------|-------|
125
+ | Tasks Completed | 11 / 11 |
126
+ | Checkpoints Passed | 3 (after T003, T006, T009) |
127
+ | Bugs Found | 2 |
128
+ | Bugs Fixed | 2 |
129
+
130
+ ---
131
+
132
+ *MORPH-SPEC by Polymorphism Tech*
@@ -0,0 +1,171 @@
1
+ ---
2
+ name: phase-setup
3
+ description: MORPH-SPEC Phase 1 (Setup). Reads project context, detects tech stack, activates relevant agents via detect-agents, and confirms the feature environment. Use at the start of every MORPH-SPEC feature workflow after proposal approval to load standards and initialize the context.
4
+ argument-hint: "[feature-name]"
5
+ user-invocable: false
6
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
7
+ ---
8
+
9
+ # MORPH Setup - FASE 1
10
+
11
+ > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
12
+
13
+ Inicialize o contexto e prepare o ambiente para uma feature aprovada.
14
+
15
+ ## Pré-requisitos
16
+
17
+ - [ ] Feature tem `proposal.md` criado (FASE 0 concluída)
18
+ - [ ] Proposal foi aprovado pelo usuário
19
+ - [ ] Agentes foram detectados e registrados no state
20
+
21
+ ## Ferramentas Recomendadas
22
+
23
+ > **Ref:** `framework/skills/level-0-meta/tool-usage-guide/SKILL.md` para guia completo.
24
+ > **Ref:** `framework/standards/integration/mcp/mcp-tools.md` para referência MCP.
25
+
26
+ | Ação | Ferramenta | Alternativa |
27
+ |------|------------|-------------|
28
+ | Verificar state | **Bash** `npx morph-spec state get` | — |
29
+ | Detectar agentes + standards | **Bash** `npx morph-spec detect-agents --json` | — |
30
+ | Ler contexto do projeto | **Read** `.morph/context/README.md` | — |
31
+ | Ler config | **Read** `.morph/config.json` | — |
32
+ | Escanear estrutura do projeto | **Glob** `src/**/*.{ts,tsx,cs}` | — |
33
+ | Metadata do repositório | **GitHub MCP** `get_repo()` | **Bash** `gh repo view --json` |
34
+ | Atualizar state | **Bash** `npx morph-spec state set` | — |
35
+
36
+ **MCPs desta fase:** GitHub (opcional — metadata do repo).
37
+
38
+ **Anti-padrões:**
39
+ - ❌ Task agent para detectar stack (detect-agents CLI já faz isso)
40
+ - ❌ WebSearch para info local do projeto (use Read/Glob)
41
+ - ❌ Ler agents.json manualmente (detect-agents retorna standards processados)
42
+
43
+ ---
44
+
45
+ ## Workflow
46
+
47
+ ### CHECKPOINT DE ENTRADA: Verificar Pré-requisitos
48
+
49
+ **⏸️ Antes de prosseguir com setup:**
50
+
51
+ - [ ] `proposal.md` existe em `.morph/features/$ARGUMENTS/`?
52
+ - [ ] Proposal foi apresentado e aprovado pelo usuário?
53
+ - [ ] Feature foi registrada no state?
54
+
55
+ **❌ Se alguma checkbox NÃO estiver marcada:**
56
+ → Voltar para FASE 0 (Proposal)
57
+
58
+ ---
59
+
60
+ ### Passo 1: Verificar State
61
+
62
+ Confirme que a feature existe no state:
63
+
64
+ ```bash
65
+ npx morph-spec state get $ARGUMENTS
66
+ ```
67
+
68
+ Se não existir, volte para FASE 0 (proposal).
69
+
70
+ ### Passo 2: Carregar Contexto e Standards Automaticamente
71
+
72
+ **Use detect-agents --json para obter standards context:**
73
+
74
+ ```bash
75
+ npx morph-spec detect-agents --json "{feature description from proposal}"
76
+ ```
77
+
78
+ O output JSON contém `standardsSummary` com todos os standards relevantes para cada agente ativo:
79
+
80
+ ```json
81
+ {
82
+ "standardsSummary": {
83
+ "blazor-builder": {
84
+ "standards": ["blazor-lifecycle", "blazor-state", "coding", ...],
85
+ "fullContent": "# blazor-lifecycle\n\n...", // Full standards text
86
+ "count": 10
87
+ }
88
+ }
89
+ }
90
+ ```
91
+
92
+ **Standards resolution order** (automático):
93
+ 1. `.morph/context/*.md` (project overrides - highest priority)
94
+ 2. `.morph/framework/standards/*.md` (AI Agent Framework, Azure)
95
+ 3. `framework/standards/*.md` (Blazor, CSS, .NET)
96
+ 4. `.morph/context/inferred.md` (always loaded if exists)
97
+
98
+ **Contexto geral** (leia manualmente):
99
+ - `.morph/context/README.md` - Overview do projeto
100
+ - `.morph/config.json` - Configurações
101
+
102
+ ### Passo 3: Confirmar Stack
103
+
104
+ Baseado no proposal e contexto, confirme:
105
+ - Stack tecnológica (Blazor Server, Next.js, etc.)
106
+ - Padrões arquiteturais aplicáveis
107
+ - Componentes reutilizáveis existentes
108
+
109
+ ### Passo 4: Listar Agentes Ativos
110
+
111
+ Mostre os agentes detectados no proposal:
112
+
113
+ ```bash
114
+ npx morph-spec state get $ARGUMENTS
115
+ ```
116
+
117
+ Parse o JSON e liste os `activeAgents` com seus emojis e responsabilidades (consulte `.morph/framework/agents.json`).
118
+
119
+ ### Passo 5: Atualizar State
120
+
121
+ Marque a feature como na fase SETUP:
122
+
123
+ ```bash
124
+ npx morph-spec state set $ARGUMENTS phase setup
125
+ npx morph-spec state set $ARGUMENTS status in_progress
126
+ ```
127
+
128
+ ## Outputs
129
+
130
+ **Apresente ao usuário:**
131
+
132
+ 1. **Contexto carregado**:
133
+ - Nome do projeto
134
+ - Stack confirmado
135
+ - Standards aplicáveis
136
+
137
+ 2. **Agentes ativos**:
138
+ - Lista de agentes com emojis
139
+ - Responsabilidades de cada um
140
+
141
+ ## Critérios de Avanço
142
+
143
+ - [x] Contexto do projeto carregado
144
+ - [x] Standards identificados (framework + project)
145
+ - [x] Stack confirmado
146
+ - [x] Agentes listados
147
+ - [x] State atualizado para phase: setup
148
+
149
+ ---
150
+
151
+ ## Integração com Superpowers
152
+
153
+ > Disponível quando o plugin `superpowers` está instalado.
154
+
155
+ | Skill | Quando Usar | Invocação |
156
+ |-------|-------------|-----------|
157
+ | `using-git-worktrees` | Se feature requer isolamento do workspace | `Skill(superpowers:using-git-worktrees)` |
158
+
159
+ ---
160
+
161
+ ## Outputs desta Fase
162
+
163
+ <!-- morph:outputs:proposal -->
164
+ | Output | Caminho |
165
+ |--------|---------|
166
+ | `proposal` | `.morph/features/{feature}/0-proposal/proposal.md` |
167
+ <!-- /morph:outputs -->
168
+
169
+ ---
170
+
171
+ Continuar automaticamente para próxima fase (UI/UX se detectado, ou Design).
@@ -1,3 +1,12 @@
1
+ ---
2
+ name: phase-tasks
3
+ description: MORPH-SPEC Phase 4 (Tasks). Breaks approved spec into bottom-up ordered implementation tasks (T001...TXXX) with dependencies, checkpoints every 3 tasks, and effort estimates, producing tasks.md. Use after design and clarification phases to create a structured implementation plan before coding starts.
4
+ argument-hint: "[feature-name]"
5
+ disable-model-invocation: true
6
+ user-invocable: false
7
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
8
+ ---
9
+
1
10
  # MORPH Tasks - FASE 4
2
11
 
3
12
  > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
@@ -10,11 +19,63 @@ Quebre a especificação em tasks executáveis, defina ordem de execução e est
10
19
  - [ ] `spec.md` atualizado com clarificações
11
20
  - [ ] Todos os edge cases documentados
12
21
 
22
+ ## Ferramentas Recomendadas
23
+
24
+ > **Ref:** `framework/skills/level-0-meta/tool-usage-guide/SKILL.md` para guia completo.
25
+ > **Ref:** `framework/standards/integration/mcp/mcp-tools.md` para referência MCP.
26
+ > **Example:** `references/tasks-example.md` — filled-in tasks.md showing expected granularity and format.
27
+ > **Script:** `scripts/validate-tasks.mjs` — validates tasks.md structure, T### IDs, and required fields.
28
+
29
+ | Ação | Ferramenta | Alternativa |
30
+ |------|------------|-------------|
31
+ | Ler spec + contracts + decisions | **Read** todos os outputs | — |
32
+ | Analisar complexidade de implementação | **Grep** padrões no código existente | — |
33
+ | Contar padrões similares existentes | **Glob** `**/Services/**/*.cs` | — |
34
+ | Consultar padrões de implementação | **Context7 MCP** `query_docs()` | **WebSearch** |
35
+ | Criar issues no GitHub a partir das tasks | **GitHub MCP** `create_issue()` | **Bash** `gh issue create ...` |
36
+ | Renderizar template de tasks | **Bash** `npx morph-spec template render docs/tasks ...` | — |
37
+ | Atualizar state com total de tasks | **Bash** `npx morph-spec state set ... tasks.total N` | — |
38
+
39
+ **MCPs desta fase:** Context7 (estimar complexidade), GitHub (criar issues).
40
+
41
+ **Anti-padrões:**
42
+ - ❌ Task agent para quebrar spec simples (faça diretamente)
43
+ - ✅ Task agent para specs complexos com 50+ requisitos (análise legítima multi-step)
44
+ - ❌ Criar tasks.json sem ler todos os outputs primeiro
45
+
46
+ ---
47
+
13
48
  ## Workflow
14
49
 
50
+ ### CHECKPOINT DE ENTRADA: Verificar Pré-requisitos
51
+
52
+ **⏸️ PAUSE - Antes de iniciar o breakdown de tasks:**
53
+
54
+ - [ ] `spec.md` existe e foi aprovado pelo usuário?
55
+ - [ ] `contracts.cs` existe e corresponde ao schema real?
56
+ - [ ] `schema-analysis.md` foi validado (se aplicável)?
57
+ - [ ] `decisions.md` contém ADRs para todas as escolhas críticas?
58
+ - [ ] Design gate (`morph-spec approve $ARGUMENTS design`) foi aprovado?
59
+ - [ ] Clarificações (FASE 3) foram resolvidas e spec atualizado?
60
+
61
+ **❌ Se alguma checkbox NÃO estiver marcada:**
62
+ → Voltar para a fase correspondente e resolver
63
+
64
+ **✅ Se TODAS as checkboxes estiverem marcadas:**
65
+ → Prosseguir para análise e breakdown
66
+
67
+ ```bash
68
+ # Verificar estado atual:
69
+ npx morph-spec state get $ARGUMENTS
70
+ # Verificar se design foi aprovado:
71
+ npx morph-spec approval get $ARGUMENTS design
72
+ ```
73
+
74
+ ---
75
+
15
76
  ### Passo 1: Analisar Spec
16
77
 
17
- Leia `.morph/project/outputs/{feature}/spec.md` e identifique:
78
+ Leia `.morph/features/$ARGUMENTS/1-design/spec.md` e identifique:
18
79
 
19
80
  1. **Requisitos funcionais** (FR001, FR002, ...)
20
81
  2. **Componentes técnicos** (Entities, Services, Controllers, Pages)
@@ -121,7 +182,7 @@ Para cada task, estime tempo em minutos:
121
182
 
122
183
  ### Passo 6: Gerar `tasks.json`
123
184
 
124
- Crie `.morph/project/outputs/{feature}/tasks.json` com a estrutura completa de tasks, checkpoints e estimativas.
185
+ Crie `.morph/features/$ARGUMENTS/3-tasks/tasks.md` com a estrutura completa de tasks, checkpoints e estimativas.
125
186
 
126
187
  ### Passo 7: Incluir Tasks de IaC (se necessário)
127
188
 
@@ -130,14 +191,14 @@ Se houver recursos Azure, adicionar tasks de Bicep e migrations.
130
191
  ### Passo 8: Atualizar State
131
192
 
132
193
  ```bash
133
- npx morph-spec state set {feature-name} phase tasks
134
- npx morph-spec state set {feature-name} tasks.total {N}
135
- npx morph-spec state mark-output {feature-name} tasks
194
+ npx morph-spec state set $ARGUMENTS phase tasks
195
+ npx morph-spec state set $ARGUMENTS tasks.total {N}
196
+ npx morph-spec state mark-output $ARGUMENTS tasks
136
197
  ```
137
198
 
138
199
  ## Outputs Gerados
139
200
 
140
- - `.morph/project/outputs/{feature}/tasks.json` - Breakdown completo de tasks
201
+ - `.morph/features/$ARGUMENTS/3-tasks/tasks.md` - Breakdown completo de tasks
141
202
 
142
203
  ## PAUSA OBRIGATÓRIA
143
204
 
@@ -161,4 +222,25 @@ Apresente ao usuário 3 ações sugeridas:
161
222
 
162
223
  ---
163
224
 
164
- Após aprovação: "Planejamento completo! Execute `/morph-apply {feature}` para iniciar implementação."
225
+ ## Integração com Superpowers
226
+
227
+ > Disponível quando o plugin `superpowers` está instalado.
228
+
229
+ | Skill | Quando Usar | Invocação |
230
+ |-------|-------------|-----------|
231
+ | `writing-plans` | Após breakdown de tasks, para planejar sequência de implementação | `Skill(superpowers:writing-plans)` |
232
+ | `executing-plans` | Para executar o plano de tasks em sessão separada | `Skill(superpowers:executing-plans)` |
233
+
234
+ ---
235
+
236
+ ## Outputs desta Fase
237
+
238
+ <!-- morph:outputs:tasks -->
239
+ | Output | Caminho |
240
+ |--------|---------|
241
+ | `tasks` | `.morph/features/{feature}/3-tasks/tasks.md` |
242
+ <!-- /morph:outputs -->
243
+
244
+ ---
245
+
246
+ Após aprovação: "Planejamento completo! Execute `/morph-apply $ARGUMENTS` para iniciar implementação."