@polymorphism-tech/morph-spec 4.6.0 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/README.md +394 -700
  2. package/docs/ARCHITECTURE.md +331 -0
  3. package/docs/CHEATSHEET.md +221 -0
  4. package/docs/COMMAND-FLOWS.md +368 -0
  5. package/docs/QUICKSTART.md +212 -0
  6. package/docs/examples/order-management/contracts.cs +84 -0
  7. package/docs/examples/order-management/proposal.md +24 -0
  8. package/docs/examples/order-management/spec.md +162 -0
  9. package/docs/plans/2026-02-23-ddd-architecture-refactor.md +1153 -0
  10. package/docs/plans/2026-02-23-ddd-nextsteps.md +682 -0
  11. package/docs/plans/2026-02-23-infra-architect-refactor.md +437 -0
  12. package/docs/plans/2026-02-23-nextjs-code-review-design.md +156 -0
  13. package/docs/plans/2026-02-23-nextjs-code-review-impl.md +1254 -0
  14. package/docs/plans/2026-02-23-nextjs-standards-design.md +149 -0
  15. package/docs/plans/2026-02-23-nextjs-standards-impl.md +1846 -0
  16. package/framework/agents/README.md +14 -14
  17. package/framework/agents/architecture/standards-architect.md +159 -159
  18. package/framework/agents/frontend/nextjs-expert.md +87 -127
  19. package/framework/agents/infrastructure/azure-architect.md +147 -147
  20. package/framework/agents/infrastructure/infra-architect.md +45 -0
  21. package/framework/agents.json +1145 -278
  22. package/framework/rules/frontend-standards.md +0 -3
  23. package/framework/rules/nextjs-standards.md +17 -0
  24. package/framework/skills/level-0-meta/code-review-nextjs/SKILL.md +147 -0
  25. package/framework/skills/level-0-meta/code-review-nextjs/references/review-example-nextjs.md +254 -0
  26. package/framework/skills/level-0-meta/tool-usage-guide/SKILL.md +3 -3
  27. package/framework/skills/level-1-workflows/phase-design/SKILL.md +45 -9
  28. package/framework/skills/level-1-workflows/phase-tasks/SKILL.md +38 -0
  29. package/framework/standards/STANDARDS.json +121 -0
  30. package/framework/standards/architecture/ddd/bounded-contexts.md +105 -0
  31. package/framework/standards/architecture/ddd/complexity-levels.md +108 -0
  32. package/framework/standards/architecture/ddd/ubiquitous-language.md +58 -0
  33. package/framework/standards/frontend/nextjs/app-router.md +123 -0
  34. package/framework/standards/frontend/nextjs/components.md +132 -0
  35. package/framework/standards/frontend/nextjs/data-fetching.md +126 -0
  36. package/framework/standards/frontend/nextjs/forms.md +128 -0
  37. package/framework/standards/frontend/nextjs/naming-conventions.md +67 -0
  38. package/framework/standards/frontend/nextjs/project-structure.md +102 -0
  39. package/framework/standards/frontend/nextjs/state-management.md +72 -0
  40. package/framework/standards/frontend/nextjs/testing.md +111 -0
  41. package/framework/templates/REGISTRY.json +538 -142
  42. package/framework/templates/code/dotnet/contracts/contracts-level1.cs +69 -0
  43. package/framework/templates/code/dotnet/contracts/contracts-level2.cs +86 -0
  44. package/framework/templates/code/dotnet/contracts/contracts-level3.cs +41 -0
  45. package/framework/templates/docs/spec.md +49 -0
  46. package/framework/templates/frontend/nextjs/Dockerfile.nextjs.hbs +43 -0
  47. package/framework/templates/frontend/nextjs/client-component.tsx.hbs +26 -0
  48. package/framework/templates/frontend/nextjs/env.mjs.hbs +32 -0
  49. package/framework/templates/frontend/nextjs/feature-form.tsx.hbs +56 -0
  50. package/framework/templates/frontend/nextjs/page.tsx.hbs +22 -0
  51. package/framework/templates/frontend/nextjs/tsconfig.json.hbs +26 -0
  52. package/framework/templates/frontend/nextjs/use-feature.ts.hbs +54 -0
  53. package/framework/templates/project-structure/dotnet-ddd.md +70 -0
  54. package/framework/workflows/docs/enforcement-pipeline.md +2 -1
  55. package/package.json +1 -1
  56. package/scripts/scan-nextjs.mjs +169 -0
  57. package/src/commands/project/doctor.js +52 -1
  58. package/src/commands/project/init.js +15 -1
  59. package/src/commands/project/update.js +6 -1
  60. package/src/lib/standards/standards-context-injector.js +5 -0
  61. package/src/lib/validators/nextjs/index.js +6 -0
  62. package/src/lib/validators/nextjs/next-component-validator.js +181 -0
  63. package/src/lib/validators/validation-runner.js +5 -0
  64. package/src/utils/agents-installer.js +14 -2
  65. package/.morph/.morphversion +0 -5
  66. package/.morph/analytics/threads-log.jsonl +0 -6
  67. package/.morph/config/config.json +0 -8
  68. package/.morph/framework/agents.json +0 -948
  69. package/.morph/framework/standards/STANDARDS.json +0 -812
  70. package/.morph/framework/standards/ai-agents/blazor-ui.md +0 -364
  71. package/.morph/framework/standards/ai-agents/production.md +0 -415
  72. package/.morph/framework/standards/ai-agents/setup.md +0 -418
  73. package/.morph/framework/standards/ai-agents/team-orchestration.md +0 -479
  74. package/.morph/framework/standards/ai-agents/workflows.md +0 -354
  75. package/.morph/framework/standards/architecture/ddd/aggregates.md +0 -120
  76. package/.morph/framework/standards/architecture/ddd/entities.md +0 -99
  77. package/.morph/framework/standards/architecture/ddd/value-objects.md +0 -124
  78. package/.morph/framework/standards/backend/api/minimal-api.md +0 -494
  79. package/.morph/framework/standards/backend/api/rest.md +0 -492
  80. package/.morph/framework/standards/backend/api/validation.md +0 -88
  81. package/.morph/framework/standards/backend/authentication/passkeys.md +0 -428
  82. package/.morph/framework/standards/backend/database/ef-core.md +0 -199
  83. package/.morph/framework/standards/backend/database/migrations.md +0 -393
  84. package/.morph/framework/standards/backend/database/postgresql/database.md +0 -352
  85. package/.morph/framework/standards/backend/database/repository-patterns.md +0 -528
  86. package/.morph/framework/standards/backend/database/vector-search-rag.md +0 -541
  87. package/.morph/framework/standards/backend/dotnet/async.md +0 -366
  88. package/.morph/framework/standards/backend/dotnet/core.md +0 -117
  89. package/.morph/framework/standards/backend/dotnet/di.md +0 -439
  90. package/.morph/framework/standards/backend/dotnet/program-cs-checklist.md +0 -92
  91. package/.morph/framework/standards/backend/integrations/asaas/asaas-api.md +0 -216
  92. package/.morph/framework/standards/backend/integrations/clerk/clerk-auth.md +0 -290
  93. package/.morph/framework/standards/backend/integrations/hangfire/hangfire-jobs.md +0 -350
  94. package/.morph/framework/standards/backend/integrations/resend/resend-email.md +0 -385
  95. package/.morph/framework/standards/context/analytics.md +0 -96
  96. package/.morph/framework/standards/context/bundles.md +0 -110
  97. package/.morph/framework/standards/context/priming.md +0 -78
  98. package/.morph/framework/standards/core/architecture.md +0 -185
  99. package/.morph/framework/standards/core/coding.md +0 -214
  100. package/.morph/framework/standards/core/git-branching-strategy.md +0 -403
  101. package/.morph/framework/standards/core/git.md +0 -185
  102. package/.morph/framework/standards/core/testing.md +0 -295
  103. package/.morph/framework/standards/data/nosql/blob-storage.md +0 -102
  104. package/.morph/framework/standards/data/nosql/cache/redis.md +0 -97
  105. package/.morph/framework/standards/data/nosql/cosmos-db.md +0 -118
  106. package/.morph/framework/standards/data/vector-search/azure-ai-search.md +0 -121
  107. package/.morph/framework/standards/data/vector-search/rag-chunking.md +0 -104
  108. package/.morph/framework/standards/frontend/blazor/design-checklist.md +0 -222
  109. package/.morph/framework/standards/frontend/blazor/fluent-ui-setup.md +0 -595
  110. package/.morph/framework/standards/frontend/blazor/fluent-ui.md +0 -137
  111. package/.morph/framework/standards/frontend/blazor/html-conversion.md +0 -184
  112. package/.morph/framework/standards/frontend/blazor/lifecycle.md +0 -195
  113. package/.morph/framework/standards/frontend/blazor/pitfalls.md +0 -198
  114. package/.morph/framework/standards/frontend/blazor/state.md +0 -191
  115. package/.morph/framework/standards/frontend/design-system/animations.md +0 -151
  116. package/.morph/framework/standards/frontend/design-system/naming.md +0 -64
  117. package/.morph/framework/standards/frontend/nextjs/nextjs-patterns.md +0 -215
  118. package/.morph/framework/standards/infrastructure/azure/azure.md +0 -624
  119. package/.morph/framework/standards/infrastructure/azure/bicep/bicep-patterns.md +0 -422
  120. package/.morph/framework/standards/infrastructure/azure/devops/azure-devops-setup.md +0 -516
  121. package/.morph/framework/standards/infrastructure/azure/devops/local-development.md +0 -520
  122. package/.morph/framework/standards/infrastructure/azure/services/functions.md +0 -486
  123. package/.morph/framework/standards/infrastructure/azure/services/service-bus.md +0 -459
  124. package/.morph/framework/standards/infrastructure/azure/services/storage.md +0 -407
  125. package/.morph/framework/standards/infrastructure/docker/easypanel-deploy.md +0 -196
  126. package/.morph/framework/standards/infrastructure/supabase/mcp-setup.md +0 -252
  127. package/.morph/framework/standards/infrastructure/supabase/supabase-auth.md +0 -176
  128. package/.morph/framework/standards/infrastructure/supabase/supabase-pgvector.md +0 -169
  129. package/.morph/framework/standards/infrastructure/supabase/supabase-rls.md +0 -184
  130. package/.morph/framework/standards/infrastructure/supabase/supabase-storage.md +0 -153
  131. package/.morph/framework/standards/integration/api/graphql.md +0 -91
  132. package/.morph/framework/standards/integration/api/grpc.md +0 -114
  133. package/.morph/framework/standards/integration/api/rest-design.md +0 -95
  134. package/.morph/framework/standards/integration/event-driven/cqrs.md +0 -101
  135. package/.morph/framework/standards/integration/event-driven/event-sourcing.md +0 -124
  136. package/.morph/framework/standards/integration/event-driven/service-bus.md +0 -95
  137. package/.morph/framework/standards/integration/mcp/mcp-tools.md +0 -384
  138. package/.morph/framework/standards/observability/logging.md +0 -131
  139. package/.morph/framework/standards/observability/metrics.md +0 -121
  140. package/.morph/framework/standards/observability/monitoring.md +0 -114
  141. package/.morph/framework/standards/observability/tracing.md +0 -132
  142. package/.morph/framework/standards/workflows/parallel-execution.md +0 -112
  143. package/.morph/framework/standards/workflows/thread-management.md +0 -113
  144. package/.morph/framework/templates/.idea/morph-templates.xml +0 -92
  145. package/.morph/framework/templates/.vscode/morph-templates.code-snippets +0 -186
  146. package/.morph/framework/templates/IDE-SNIPPETS.md +0 -266
  147. package/.morph/framework/templates/README.md +0 -814
  148. package/.morph/framework/templates/REGISTRY.json +0 -1492
  149. package/.morph/framework/templates/code/dotnet/backend/repository.cs +0 -141
  150. package/.morph/framework/templates/code/dotnet/backend/service.cs +0 -139
  151. package/.morph/framework/templates/code/dotnet/contracts/Commands.cs +0 -74
  152. package/.morph/framework/templates/code/dotnet/contracts/Entities.cs +0 -25
  153. package/.morph/framework/templates/code/dotnet/contracts/Queries.cs +0 -74
  154. package/.morph/framework/templates/code/dotnet/contracts/README.md +0 -74
  155. package/.morph/framework/templates/code/dotnet/contracts/api-contracts.cs +0 -173
  156. package/.morph/framework/templates/code/dotnet/contracts/contracts.cs +0 -217
  157. package/.morph/framework/templates/code/dotnet/contracts/contracts.cs.hbs +0 -172
  158. package/.morph/framework/templates/code/dotnet/database/migration.cs +0 -83
  159. package/.morph/framework/templates/code/dotnet/frontend/component.razor +0 -239
  160. package/.morph/framework/templates/code/dotnet/jobs/agent.cs +0 -163
  161. package/.morph/framework/templates/code/dotnet/jobs/job.cs +0 -171
  162. package/.morph/framework/templates/code/dotnet/test.cs +0 -239
  163. package/.morph/framework/templates/code/sql/rls-policy.sql +0 -57
  164. package/.morph/framework/templates/code/sql/supabase-migration.sql +0 -100
  165. package/.morph/framework/templates/code/sql/supabase-migration.template.sql +0 -113
  166. package/.morph/framework/templates/code/typescript/contracts.ts +0 -168
  167. package/.morph/framework/templates/context/CONTEXT-FEATURE.md +0 -276
  168. package/.morph/framework/templates/context/CONTEXT.md +0 -181
  169. package/.morph/framework/templates/docs/clarifications.md +0 -253
  170. package/.morph/framework/templates/docs/onboarding.md +0 -123
  171. package/.morph/framework/templates/docs/proposal.md +0 -182
  172. package/.morph/framework/templates/docs/schema-analysis.md +0 -119
  173. package/.morph/framework/templates/docs/spec.md +0 -149
  174. package/.morph/framework/templates/docs/ui-components.md +0 -124
  175. package/.morph/framework/templates/docs/ui-design-system.md +0 -76
  176. package/.morph/framework/templates/docs/ui-flows.md +0 -167
  177. package/.morph/framework/templates/docs/ui-mockups.md +0 -98
  178. package/.morph/framework/templates/docs/user-stories.md +0 -34
  179. package/.morph/framework/templates/examples/design-system-examples.md +0 -357
  180. package/.morph/framework/templates/examples/spec-examples.md +0 -90
  181. package/.morph/framework/templates/feature/decisions.md +0 -187
  182. package/.morph/framework/templates/feature/recap.md +0 -146
  183. package/.morph/framework/templates/feature/tasks.md +0 -199
  184. package/.morph/framework/templates/infrastructure/azure/Dockerfile.example +0 -82
  185. package/.morph/framework/templates/infrastructure/azure/README.md +0 -286
  186. package/.morph/framework/templates/infrastructure/azure/app-insights.bicep +0 -63
  187. package/.morph/framework/templates/infrastructure/azure/app-service.bicep +0 -164
  188. package/.morph/framework/templates/infrastructure/azure/container-app-env.bicep +0 -49
  189. package/.morph/framework/templates/infrastructure/azure/container-app.bicep +0 -156
  190. package/.morph/framework/templates/infrastructure/azure/deploy-checklist.md +0 -426
  191. package/.morph/framework/templates/infrastructure/azure/deploy.ps1 +0 -229
  192. package/.morph/framework/templates/infrastructure/azure/deploy.sh +0 -208
  193. package/.morph/framework/templates/infrastructure/azure/key-vault.bicep +0 -91
  194. package/.morph/framework/templates/infrastructure/azure/main.bicep +0 -189
  195. package/.morph/framework/templates/infrastructure/azure/parameters.dev.json +0 -29
  196. package/.morph/framework/templates/infrastructure/azure/parameters.prod.json +0 -29
  197. package/.morph/framework/templates/infrastructure/azure/parameters.staging.json +0 -29
  198. package/.morph/framework/templates/infrastructure/azure/sql-database.bicep +0 -103
  199. package/.morph/framework/templates/infrastructure/azure/storage.bicep +0 -106
  200. package/.morph/framework/templates/infrastructure/docker/Dockerfile.template +0 -58
  201. package/.morph/framework/templates/infrastructure/docker/docker-compose.template.yml +0 -67
  202. package/.morph/framework/templates/infrastructure/docker/dockerfile-api.dockerfile +0 -38
  203. package/.morph/framework/templates/infrastructure/docker/dockerfile-web.dockerfile +0 -48
  204. package/.morph/framework/templates/infrastructure/docker/easypanel.template.json +0 -54
  205. package/.morph/framework/templates/infrastructure/github/README.md +0 -593
  206. package/.morph/framework/templates/infrastructure/github/actions/azure-auth/action.yml.hbs +0 -22
  207. package/.morph/framework/templates/infrastructure/github/actions/docker-build-push/action.yml.hbs +0 -45
  208. package/.morph/framework/templates/infrastructure/github/actions/health-check/action.yml.hbs +0 -27
  209. package/.morph/framework/templates/infrastructure/github/workflows/deploy-azure-app-service.yml.hbs +0 -61
  210. package/.morph/framework/templates/infrastructure/github/workflows/deploy-easypanel.yml.hbs +0 -31
  211. package/.morph/framework/templates/infrastructure/github/workflows/docker-build-push.yml.hbs +0 -59
  212. package/.morph/framework/templates/infrastructure/github/workflows/dotnet-build.yml.hbs +0 -39
  213. package/.morph/framework/templates/integrations/asaas-client.cs +0 -387
  214. package/.morph/framework/templates/integrations/asaas-webhook.cs +0 -351
  215. package/.morph/framework/templates/integrations/azure-identity-config.cs +0 -288
  216. package/.morph/framework/templates/integrations/clerk-config.cs +0 -258
  217. package/.morph/framework/templates/meta-prompts/fusion/fusion-agent.md +0 -76
  218. package/.morph/framework/templates/meta-prompts/fusion/fusion-aggregator.md +0 -100
  219. package/.morph/framework/templates/meta-prompts/hops/hop-retry.md +0 -78
  220. package/.morph/framework/templates/meta-prompts/hops/hop-validation.md +0 -97
  221. package/.morph/framework/templates/meta-prompts/hops/hop-wrapper.md +0 -36
  222. package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-coordinator.md +0 -113
  223. package/.morph/framework/templates/meta-prompts/parallel-workers/parallel-worker.md +0 -80
  224. package/.morph/framework/templates/meta-prompts/squad-leaders/backend-squad.md +0 -90
  225. package/.morph/framework/templates/meta-prompts/squad-leaders/frontend-squad.md +0 -126
  226. package/.morph/framework/templates/meta-prompts/squad-leaders/squad-leader.md +0 -43
  227. package/.morph/framework/templates/meta-prompts/validators/checkpoint-validator.md +0 -107
  228. package/.morph/framework/templates/meta-prompts/validators/pre-commit-validator.md +0 -95
  229. package/.morph/framework/templates/saas/subscription.cs +0 -347
  230. package/.morph/framework/templates/saas/tenant.cs +0 -338
  231. package/.morph/framework/templates/state.template.json +0 -17
  232. package/.morph/framework/templates/ui/FluentDesignTheme.cs +0 -149
  233. package/.morph/framework/templates/ui/MudTheme.cs +0 -281
  234. package/.morph/framework/templates/ui/design-system.css +0 -226
  235. package/.morph/logs/tool-failures.log +0 -7
  236. package/.morph/memory/pre-compact-2026-02-23T15-43-03-521Z.json +0 -16
  237. package/.morph/state.json +0 -48
  238. package/framework/templates/code/dotnet/contracts/contracts.cs +0 -217
  239. package/framework/templates/code/dotnet/contracts/contracts.cs.hbs +0 -172
@@ -0,0 +1,331 @@
1
+ # morph-spec Architecture
2
+
3
+ > System design reference for morph-spec v4.6.0
4
+
5
+ ---
6
+
7
+ ## Overview
8
+
9
+ morph-spec is a CLI tool that scaffolds a spec-driven development workflow on top of Claude Code. It installs a structured set of files into `.morph/` and `.claude/`, then lets the AI orchestrate feature development through well-defined phases with approval gates.
10
+
11
+ The framework has three main concerns:
12
+
13
+ 1. **State** — tracking features, phases, and outputs in `.morph/state.json`
14
+ 2. **Agents** — 37 specialized agents organized in 4 tiers, installed as native Claude Code subagents
15
+ 3. **Workflow** — 8 phases from proposal through implementation, enforced via hooks and guards
16
+
17
+ ---
18
+
19
+ ## Agent hierarchy
20
+
21
+ ```
22
+ Tier 1 — Orchestrators (3)
23
+ standards-architect always active — Chief Architect, enforces standards
24
+ ai-system-architect on-demand — multi-agent / AI system design
25
+ po-pm-advisor on-demand — requirements, business value
26
+
27
+ Tier 2 — Domain Leaders (3)
28
+ dotnet-senior always active — Backend Squad lead
29
+ infra-architect always active — Infrastructure Squad Leader (cloud-agnostic)
30
+ ui-designer on-demand — UI/UX Squad lead
31
+
32
+ Tier 3 — Specialists (27)
33
+ Backend (10) ef-modeler, event-architect, api-designer, nosql-cache-expert,
34
+ ddd-expert, hangfire-orchestrator, ms-agent-expert,
35
+ asaas-financial, clerk-auth, resend-email
36
+ Frontend (3) blazor-builder, nextjs-expert, css-specialist
37
+ Infrastructure (6) azure-architect, bicep-architect, devops-engineer,
38
+ container-specialist, observability-expert, azure-identity
39
+ Quality/Cross (8) testing-specialist, code-analyzer, troubleshooting-expert,
40
+ load-testing-expert, documentation-specialist,
41
+ migration-specialist, integration-specialist, data-modeler
42
+
43
+ Tier 4 — Validators (5)
44
+ security-expert SQL injection, XSS, hardcoded secrets
45
+ architecture-expert DbContext, async/await, DI order
46
+ packages-validator NuGet conflicts, .NET 10 compatibility
47
+ design-system-validator CSS palette, spacing, typography
48
+ blazor-concurrency-validator DbContext lifecycle, async void, JSInterop
49
+ ```
50
+
51
+ ### Agent installation
52
+
53
+ Tier 1–2 agents are installed to `.claude/agents/morph-{id}.md` with YAML frontmatter:
54
+
55
+ ```yaml
56
+ ---
57
+ name: morph-standards-architect
58
+ description: Chief Architect...
59
+ model: sonnet
60
+ ---
61
+ ```
62
+
63
+ Tier 3 domain agents are installed to `.claude/agents/morph-domain-{name}.md` with:
64
+
65
+ ```yaml
66
+ ---
67
+ model: sonnet
68
+ memory: project
69
+ maxTurns: 20
70
+ ---
71
+ ```
72
+
73
+ Both sets are updated by `morph-spec update` and `morph-spec update-agents`.
74
+
75
+ ### Agent detection
76
+
77
+ When a feature is created, `detect-agents` matches keywords in the feature description against `agents.json` keyword lists. Matched agents are stored in `state.json` under the feature's `activeAgents` array. The active agent set determines which standards are loaded and which validators run.
78
+
79
+ ---
80
+
81
+ ## Phase pipeline
82
+
83
+ ```
84
+ 0-proposal → 1-setup → [1.5-uiux] → 2-design → 3-clarify → 4-tasks → 5-implement → [6-sync]
85
+ ```
86
+
87
+ | Phase | ID | Optional | Approval gate | Output directory |
88
+ |-------|-----|----------|--------------|-----------------|
89
+ | Proposal | `proposal` | No | Yes | `0-proposal/` |
90
+ | Setup | `setup` | No | No | — |
91
+ | UI/UX | `uiux` | Yes | Yes | `2-ui/` |
92
+ | Design | `design` | No | Yes | `1-design/` |
93
+ | Clarify | `clarify` | No | No | `1-design/` (updates) |
94
+ | Tasks | `tasks` | No | Yes | `3-tasks/` |
95
+ | Implement | `implement` | No | No | `4-implement/` |
96
+ | Sync | `sync` | Yes | No | `.morph/context/` |
97
+
98
+ Phase transitions are controlled by the state machine in `src/lib/state/`. Advancing to a phase with an approval gate is blocked until the gate is explicitly passed. `protect-spec-files.js` (hook) guards spec/contracts from edits after the design gate is passed.
99
+
100
+ Canonical phase definitions live in `framework/phases.json`.
101
+
102
+ ---
103
+
104
+ ## File structure
105
+
106
+ ### Framework source (this repo)
107
+
108
+ ```
109
+ framework/
110
+ ├── agents.json # 37 agents definition (v3.1.0)
111
+ ├── phases.json # 8 phase definitions
112
+ ├── CLAUDE_runtime.md # copied to .claude/CLAUDE.md on init
113
+ ├── agents/ # tier 1-2 agent markdown files
114
+ ├── hooks/
115
+ │ ├── claude-code/ # 11 Claude Code hook scripts
116
+ │ │ └── shared/ # state-reader, phase-utils, hook-response, stdin-reader
117
+ │ └── git/ # pre-commit, commit-msg, pre-push
118
+ ├── rules/ # 5 rule files (copied to .claude/rules/)
119
+ ├── skills/
120
+ │ ├── README.md
121
+ │ ├── level-0-meta/ # 7 meta skills (brainstorming, code-review, etc.)
122
+ │ │ └── {skill}/
123
+ │ │ ├── SKILL.md # skill content
124
+ │ │ ├── scripts/ # optional helper scripts
125
+ │ │ └── references/ # optional reference materials
126
+ │ └── level-1-workflows/ # 8 workflow skills (phase-proposal, phase-design, etc.)
127
+ │ └── {skill}/
128
+ │ └── SKILL.md
129
+ ├── standards/ # 74 standards, 11 categories
130
+ │ ├── STANDARDS.json # registry (regenerate: node scripts/generate-standards-registry.js)
131
+ │ ├── core/
132
+ │ ├── backend/
133
+ │ ├── frontend/
134
+ │ ├── infrastructure/
135
+ │ └── integration/
136
+ ├── templates/ # Handlebars v2.0 code and IaC templates
137
+ │ ├── infrastructure/ # Bicep, Docker, GitHub Actions
138
+ │ └── ...
139
+ └── workflows/
140
+ └── configs/ # 10 workflow configs (express, spec-only, zero-touch, fusion, ...)
141
+ ```
142
+
143
+ ### Installed into a project (after init)
144
+
145
+ ```
146
+ .morph/
147
+ ├── config/config.json # editable project config
148
+ ├── framework/ # READ-ONLY copy from package
149
+ │ ├── agents.json
150
+ │ ├── standards/
151
+ │ └── templates/
152
+ ├── context/ # editable project context
153
+ │ ├── README.md # loaded at every SessionStart
154
+ │ └── standards.md
155
+ ├── features/{feature}/ # feature outputs
156
+ │ ├── 0-proposal/
157
+ │ ├── 1-design/
158
+ │ ├── 2-ui/
159
+ │ ├── 3-tasks/
160
+ │ └── 4-implement/
161
+ ├── checkpoints/
162
+ ├── logs/tool-failures.log
163
+ └── state.json # READ-ONLY
164
+
165
+ .claude/
166
+ ├── CLAUDE.md # runtime instructions
167
+ ├── commands/ # slash command .md files
168
+ ├── skills/ # flat install of framework/skills/
169
+ │ └── {skill-name}/
170
+ │ └── SKILL.md
171
+ ├── agents/ # native subagents
172
+ │ ├── morph-{id}.md # tier 1-2 (from framework/agents/)
173
+ │ └── morph-domain-{name}.md # tier 3 (from framework/skills/level-2-domains/)
174
+ ├── rules/ # path-scoped rules (from framework/rules/)
175
+ │ ├── morph-workflow.md # always active
176
+ │ ├── csharp-standards.md
177
+ │ ├── frontend-standards.md
178
+ │ ├── testing-standards.md
179
+ │ └── infrastructure-standards.md
180
+ └── settings.local.json # hooks, permissions.deny, env vars
181
+ ```
182
+
183
+ ---
184
+
185
+ ## Skills system
186
+
187
+ Skills are Markdown files that provide Claude Code with domain knowledge and procedures. They are invoked via the `Skill` tool inside Claude Code.
188
+
189
+ ### Directory structure
190
+
191
+ Each skill lives in its own directory under `framework/skills/{level}/{skill-name}/`:
192
+
193
+ ```
194
+ {skill-name}/
195
+ ├── SKILL.md # required — main content
196
+ ├── scripts/ # optional — helper scripts (.mjs)
197
+ └── references/ # optional — reference documents
198
+ ```
199
+
200
+ ### Levels
201
+
202
+ | Level | Directory | Count | Purpose |
203
+ |-------|-----------|-------|---------|
204
+ | 0 | `level-0-meta/` | 7 | Cross-cutting: brainstorming, code review, verification, tool usage |
205
+ | 1 | `level-1-workflows/` | 8 | Phase workflows: phase-proposal, phase-setup, phase-uiux, phase-design, phase-clarify, phase-tasks, phase-implement, phase-sync |
206
+
207
+ ### Installation
208
+
209
+ `installSkills()` in `src/utils/skills-installer.js` flattens all skills to `.claude/skills/{name}/SKILL.md`. Skills become available as `/{name}` slash commands in Claude Code.
210
+
211
+ ---
212
+
213
+ ## Hooks system
214
+
215
+ 11 Claude Code hooks are configured in `.claude/settings.local.json`. All hooks fail-open (catch + exit 0) to prevent blocking Claude Code on errors.
216
+
217
+ | Event | Hook | Function |
218
+ |-------|------|----------|
219
+ | `SessionStart` | `inject-morph-context.js` | Injects active feature `1-design/spec.md` (3000 char max) into context |
220
+ | `UserPromptSubmit` | `protect-spec-files.js` | Guards spec files after design gate approval |
221
+ | `PreToolUse` (Bash) | Prompt-type inline guard | Detects destructive shell patterns in Claude's reasoning |
222
+ | `PreToolUse` (Write/Edit) | `validate-feature-phase.js` | Validates write targets against current phase |
223
+ | `PostToolUse` (Write) | `track-output-creation.js` | Detects when feature output files are created; updates state directly via JSON I/O (no subprocess) |
224
+ | `PostToolUse` (any) | `checkpoint-trigger.js` | Triggers auto-checkpoint every 3 completed tasks |
225
+ | `PostToolUseFailure` | `handle-tool-failure.js` | Appends failure details to `.morph/logs/tool-failures.log` |
226
+ | `Stop` | `session-summary.js` | Writes session summary |
227
+ | `PreCompact` | `compact-context.js` | Preserves critical state before context compaction |
228
+ | `Notification` | `morph-notify.js` | Routes approval gate notifications |
229
+
230
+ Shared utilities live in `framework/hooks/claude-code/shared/`:
231
+ - `state-reader.js` — reads `.morph/state.json` without subprocess
232
+ - `phase-utils.js` — phase validation helpers
233
+ - `hook-response.js` — standardized hook response formatting
234
+ - `stdin-reader.js` — reads hook event data from stdin
235
+
236
+ Git hooks (`framework/hooks/git/`): `pre-commit`, `commit-msg` (Conventional Commits), `pre-push` (runs tests).
237
+
238
+ ### Protected files
239
+
240
+ `permissions.deny` in `settings.local.json` blocks direct edits:
241
+
242
+ ```json
243
+ "permissions": {
244
+ "deny": [
245
+ "Write(.morph/state.json)",
246
+ "Edit(.morph/state.json)",
247
+ "Write(.morph/framework/**)",
248
+ "Edit(.morph/framework/**)"
249
+ ]
250
+ }
251
+ ```
252
+
253
+ ---
254
+
255
+ ## State machine
256
+
257
+ `.morph/state.json` tracks the state of all features. It is managed exclusively by the CLI — never edited directly.
258
+
259
+ ```json
260
+ {
261
+ "version": "4.0.0",
262
+ "features": {
263
+ "my-feature": {
264
+ "phase": "design",
265
+ "status": "in_progress",
266
+ "activeAgents": ["dotnet-senior", "ef-modeler", "testing-specialist"],
267
+ "approvals": {
268
+ "proposal": true,
269
+ "design": false,
270
+ "tasks": false
271
+ }
272
+ }
273
+ }
274
+ }
275
+ ```
276
+
277
+ State auto-migrates from v3.0.0 to v4.0.0 on first CLI access.
278
+
279
+ Feature outputs (spec.md, contracts.cs, tasks.md, etc.) are tracked by scanning the filesystem at runtime — not stored in state. This keeps state lean and avoids the circular tracking bug of earlier versions.
280
+
281
+ ---
282
+
283
+ ## Standards registry
284
+
285
+ 74 standards across 11 categories are registered in `framework/standards/STANDARDS.json`. Each entry has an `id`, `name`, `path`, `scope`, `layer`, and `keywords`.
286
+
287
+ Regenerate the registry after adding standards:
288
+
289
+ ```bash
290
+ node scripts/generate-standards-registry.js
291
+ ```
292
+
293
+ Browse via CLI:
294
+
295
+ ```bash
296
+ morph-spec standards --list
297
+ morph-spec standards --list --category backend
298
+ morph-spec standards --search "async"
299
+ morph-spec standards --show csharp-naming
300
+ ```
301
+
302
+ ---
303
+
304
+ ## Workflow configs
305
+
306
+ `framework/workflows/configs/` contains 10 workflow configurations that customize how the phase pipeline runs:
307
+
308
+ | Config | Description |
309
+ |--------|-------------|
310
+ | `default` | Full pipeline with all phases |
311
+ | `express` | Condensed pipeline for small features |
312
+ | `spec-only` | Proposal through tasks, no implementation |
313
+ | `zero-touch` | Fully automated (maximum trust level) |
314
+ | `fusion` | Combines setup + design into single phase |
315
+ | ... | + 5 more |
316
+
317
+ Trust levels (`low`, `medium`, `high`, `maximum`) control how many approval gates are enforced automatically vs manually.
318
+
319
+ ---
320
+
321
+ ## CLI internals
322
+
323
+ - **Entry point:** `bin/morph-spec.js` — Commander.js, 110+ commands
324
+ - **Commands:** `src/commands/` — organized into subdirectories by domain
325
+ - **Libraries:** `src/lib/` — state, validators, templates, agents, detection
326
+ - **Templates engine:** Handlebars v2.0 with helpers (pascalCase, camelCase, snakeCase, pluralize)
327
+ - **Test suite:** `test/` — Node.js built-in test runner, 625+ tests
328
+
329
+ ---
330
+
331
+ *morph-spec v4.6.0 by Polymorphism Tech*
@@ -0,0 +1,221 @@
1
+ # morph-spec Cheat Sheet
2
+
3
+ ## Setup
4
+
5
+ ```bash
6
+ npm install -g @polymorphism-tech/morph-spec # install globally
7
+ morph-spec init # initialize project
8
+ morph-spec init --wizard # interactive wizard
9
+ morph-spec init --force # overwrite existing
10
+ morph-spec update # sync framework files
11
+ morph-spec doctor # health check
12
+ morph-spec --version
13
+ ```
14
+
15
+ ---
16
+
17
+ ## Phase workflow
18
+
19
+ ```
20
+ proposal → setup → [uiux] → design → clarify → tasks → implement → [sync]
21
+ ```
22
+
23
+ Phases in brackets are optional.
24
+
25
+ | Phase | Directory | Output files | Gate |
26
+ |-------|-----------|--------------|------|
27
+ | proposal | `0-proposal/` | `proposal.md` | ✅ Approval |
28
+ | setup | *(no output)* | context loaded | — |
29
+ | uiux *(optional)* | `2-ui/` | `design-system.md`, `mockups.md`, `components.md`, `flows.md` | ✅ Approval |
30
+ | design | `1-design/` | `spec.md`, `contracts.cs`, `decisions.md` | ✅ Approval |
31
+ | clarify | `1-design/` | spec updated | — |
32
+ | tasks | `3-tasks/` | `tasks.md` | ✅ Approval |
33
+ | implement | `4-implement/` | code + `recap.md` | — |
34
+ | sync *(optional)* | `.morph/context/` | standards updated | — |
35
+
36
+ ---
37
+
38
+ ## Slash commands (Claude Code)
39
+
40
+ | Command | Description |
41
+ |---------|-------------|
42
+ | `/morph-proposal {feature}` | Full spec pipeline — phases 0–4 with approval gates |
43
+ | `/morph-apply {feature}` | Implement approved feature — phase 5 |
44
+ | `/morph-status` | Project-wide feature status dashboard |
45
+ | `/morph-preflight` | Pre-implementation validation (7 checks) |
46
+
47
+ ---
48
+
49
+ ## CLI — project management
50
+
51
+ ```bash
52
+ morph-spec init [--wizard] [--force] [--skip-detection] [--skip-mcp]
53
+ morph-spec update [--wizard] [--templates] [--standards]
54
+ morph-spec doctor
55
+ morph-spec detect [--verbose]
56
+ morph-spec update-agents # refresh .claude/agents/
57
+ ```
58
+
59
+ ---
60
+
61
+ ## CLI — feature workflow
62
+
63
+ ```bash
64
+ morph-spec state list # all features
65
+ morph-spec state get {feature} [--json] # feature detail
66
+ morph-spec state show {feature} # phase + approval status
67
+ morph-spec state set {feature} {key} {value} # update property
68
+ morph-spec state checkpoint {feature} "note" # manual checkpoint
69
+ morph-spec phase advance {feature} # advance to next phase
70
+ morph-spec status {feature} [--json] [--verbose]
71
+ morph-spec diff {feature} # spec changes since snapshot
72
+ morph-spec diff-save {feature} # save snapshot
73
+ morph-spec rollback {feature} --to {phase} # revert to phase
74
+ morph-spec task done {feature} # mark task complete
75
+ morph-spec task start {feature} # start next task
76
+ morph-spec task next {feature} # preview next task
77
+ ```
78
+
79
+ ---
80
+
81
+ ## CLI — validation
82
+
83
+ ```bash
84
+ morph-spec validate # all validators
85
+ morph-spec validate architecture
86
+ morph-spec validate packages
87
+ morph-spec validate contrast [--wcag-aaa]
88
+ morph-spec validate-blazor [path]
89
+ morph-spec validate-blazor-state [path]
90
+ morph-spec analyze-blazor-concurrency [path]
91
+ morph-spec validate-css [path]
92
+ morph-spec validate-feature {feature} [--phase {phase}] [--json]
93
+ ```
94
+
95
+ ---
96
+
97
+ ## CLI — standards
98
+
99
+ ```bash
100
+ morph-spec standards --list
101
+ morph-spec standards --list --category {name} # categories: core, backend, frontend, infra, ...
102
+ morph-spec standards --search {query}
103
+ morph-spec standards --show {id}
104
+ morph-spec standards --json
105
+ ```
106
+
107
+ ---
108
+
109
+ ## CLI — utilities
110
+
111
+ ```bash
112
+ morph-spec cost {bicep-file} # Azure cost estimate
113
+ morph-spec cost {bicep-file} --verbose
114
+ morph-spec cost {bicep-file} --strict # exit 1 if over limit
115
+ morph-spec troubleshoot {keywords}
116
+ morph-spec troubleshoot --category {name}
117
+ morph-spec session-summary {feature}
118
+ ```
119
+
120
+ ---
121
+
122
+ ## State — mark-output
123
+
124
+ ```bash
125
+ morph-spec state mark-output {feature} proposal
126
+ morph-spec state mark-output {feature} spec
127
+ morph-spec state mark-output {feature} contracts
128
+ morph-spec state mark-output {feature} decisions
129
+ morph-spec state mark-output {feature} tasks
130
+ morph-spec state mark-output {feature} recap
131
+
132
+ # UI outputs (camelCase or kebab-case both work)
133
+ morph-spec state mark-output {feature} uiDesignSystem
134
+ morph-spec state mark-output {feature} uiMockups
135
+ morph-spec state mark-output {feature} uiComponents
136
+ morph-spec state mark-output {feature} uiFlows
137
+ ```
138
+
139
+ ---
140
+
141
+ ## State — agents
142
+
143
+ ```bash
144
+ morph-spec state add-agent {feature} {agent-id}
145
+ morph-spec state remove-agent {feature} {agent-id}
146
+ morph-spec detect-agents "{description}" # detect agents for request
147
+ morph-spec detect-agents --json "{description}" # with standards
148
+ morph-spec detect-agents --ids-only "{description}"
149
+ ```
150
+
151
+ ---
152
+
153
+ ## Checkpoints
154
+
155
+ ```bash
156
+ morph-spec checkpoint-save {feature}
157
+ morph-spec checkpoint-restore {feature}
158
+ morph-spec checkpoint-list {feature}
159
+ ```
160
+
161
+ ---
162
+
163
+ ## Directory structure
164
+
165
+ ```
166
+ .morph/
167
+ ├── config/
168
+ │ └── config.json # project config (editable)
169
+ ├── framework/ # READ-ONLY
170
+ │ ├── agents.json # 37 agents, 4 tiers
171
+ │ ├── standards/ # 74 standards across 11 categories
172
+ │ └── templates/ # code and IaC templates
173
+ ├── context/ # project context (editable)
174
+ │ ├── README.md
175
+ │ └── standards.md
176
+ ├── features/
177
+ │ └── {feature}/
178
+ │ ├── 0-proposal/proposal.md
179
+ │ ├── 1-design/spec.md, contracts.cs, decisions.md
180
+ │ ├── 2-ui/design-system.md, mockups.md, components.md, flows.md
181
+ │ ├── 3-tasks/tasks.md
182
+ │ └── 4-implement/recap.md
183
+ ├── checkpoints/
184
+ ├── logs/
185
+ └── state.json # READ-ONLY — CLI managed
186
+
187
+ .claude/
188
+ ├── commands/ # slash commands
189
+ ├── skills/ # framework skills (SKILL.md per dir)
190
+ ├── agents/ # native subagents (37)
191
+ │ ├── morph-{id}.md # tier 1-2 agents
192
+ │ └── morph-domain-{name}.md # tier 3 domain agents
193
+ ├── rules/ # path-scoped rules (5 files)
194
+ └── settings.local.json # hooks (11)
195
+ ```
196
+
197
+ ---
198
+
199
+ ## Protected files
200
+
201
+ These files are never edited directly. Use CLI commands or `morph-spec update` instead:
202
+
203
+ | Path | Protected by |
204
+ |------|-------------|
205
+ | `.morph/state.json` | `permissions.deny` |
206
+ | `.morph/framework/**` | `permissions.deny` |
207
+ | Approved spec/contracts | `protect-spec-files.js` hook |
208
+
209
+ ---
210
+
211
+ ## Links
212
+
213
+ - [QUICKSTART.md](QUICKSTART.md) — step-by-step guide
214
+ - [ARCHITECTURE.md](ARCHITECTURE.md) — system design
215
+ - [CHANGELOG.md](../CHANGELOG.md) — release history
216
+ - [npm](https://www.npmjs.com/package/@polymorphism-tech/morph-spec)
217
+ - support@polymorphism.com.br
218
+
219
+ ---
220
+
221
+ *morph-spec v4.6.0 by Polymorphism Tech*