@polymorphism-tech/morph-spec 2.2.0 → 2.4.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.
- package/CLAUDE.md +314 -1673
- package/LICENSE +72 -72
- package/README.md +515 -516
- package/bin/detect-agents.js +225 -225
- package/bin/morph-spec.js +358 -173
- package/bin/render-template.js +302 -302
- package/bin/semantic-detect-agents.js +246 -246
- package/bin/task-manager.js +429 -0
- package/bin/validate-agents-skills.js +251 -251
- package/bin/validate-agents.js +69 -69
- package/bin/validate-phase.js +263 -263
- package/bin/validate.js +369 -0
- package/content/.azure/README.md +293 -293
- package/content/.azure/docs/azure-devops-setup.md +454 -454
- package/content/.azure/docs/branch-strategy.md +398 -398
- package/content/.azure/docs/local-development.md +515 -515
- package/content/.azure/pipelines/pipeline-variables.yml +34 -34
- package/content/.azure/pipelines/prod-pipeline.yml +319 -319
- package/content/.azure/pipelines/staging-pipeline.yml +234 -234
- package/content/.azure/pipelines/templates/build-dotnet.yml +75 -75
- package/content/.azure/pipelines/templates/deploy-app-service.yml +94 -94
- package/content/.azure/pipelines/templates/deploy-container-app.yml +120 -120
- package/content/.azure/pipelines/templates/infra-deploy.yml +90 -90
- package/content/.claude/commands/morph-apply.md +221 -158
- package/content/.claude/commands/morph-archive.md +79 -79
- package/content/.claude/commands/morph-infra.md +209 -209
- package/content/.claude/commands/morph-preflight.md +227 -0
- package/content/.claude/commands/morph-proposal.md +122 -101
- package/content/.claude/commands/morph-status.md +86 -86
- package/content/.claude/commands/morph-troubleshoot.md +122 -0
- package/content/.claude/settings.local.json +15 -15
- package/content/.claude/skills/checklists/code-review.md +226 -0
- package/content/.claude/skills/checklists/morph-checklist.md +117 -0
- package/content/.claude/skills/checklists/simulation-checklist.md +77 -0
- package/content/.claude/skills/infra/bicep-architect.md +126 -419
- package/content/.claude/skills/infra/container-specialist.md +131 -437
- package/content/.claude/skills/infra/devops-engineer.md +119 -405
- package/content/.claude/skills/integrations/asaas-financial.md +130 -333
- package/content/.claude/skills/integrations/azure-identity.md +142 -309
- package/content/.claude/skills/integrations/clerk-auth.md +108 -290
- package/content/.claude/skills/integrations/resend-email.md +119 -0
- package/content/.claude/skills/specialists/ai-system-architect.md +192 -604
- package/content/.claude/skills/specialists/azure-architect.md +142 -142
- package/content/.claude/skills/specialists/code-analyzer.md +235 -0
- package/content/.claude/skills/specialists/dotnet-senior.md +287 -0
- package/content/.claude/skills/specialists/ef-modeler.md +113 -200
- package/content/.claude/skills/specialists/hangfire-orchestrator.md +126 -245
- package/content/.claude/skills/specialists/ms-agent-expert.md +109 -263
- package/content/.claude/skills/specialists/po-pm-advisor.md +197 -197
- package/content/.claude/skills/specialists/standards-architect.md +156 -78
- package/content/.claude/skills/specialists/testing-specialist.md +126 -0
- package/content/.claude/skills/specialists/ui-ux-designer.md +191 -1060
- package/content/.claude/skills/stacks/dotnet-blazor.md +210 -588
- package/content/.claude/skills/stacks/dotnet-nextjs.md +154 -402
- package/content/.claude/skills/workflows/morph-replicate.md +213 -0
- package/content/.claude/{commands/morph-clarify.md → skills/workflows/phase-clarify.md} +5 -58
- package/content/.claude/{commands/morph-design.md → skills/workflows/phase-design.md} +16 -86
- package/content/.claude/{commands/morph-setup.md → skills/workflows/phase-setup.md} +9 -17
- package/content/.claude/skills/workflows/phase-tasks.md +164 -0
- package/content/.claude/{commands/morph-uiux.md → skills/workflows/phase-uiux.md} +15 -88
- package/content/.morph/.morphversion +5 -5
- package/content/.morph/archive/.gitkeep +25 -25
- package/content/.morph/config/agents.json +378 -242
- package/content/.morph/config/config.template.json +89 -108
- package/content/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -392
- package/content/.morph/docs/workflows/design-impl.md +37 -0
- package/content/.morph/docs/workflows/fast-track.md +29 -0
- package/content/.morph/docs/workflows/full-morph.md +76 -0
- package/content/.morph/docs/workflows/standard.md +44 -0
- package/content/.morph/docs/workflows/ui-refresh.md +39 -0
- package/content/.morph/examples/api-nextjs/README.md +241 -241
- package/content/.morph/examples/api-nextjs/contracts.ts +307 -307
- package/content/.morph/examples/api-nextjs/spec.md +399 -399
- package/content/.morph/examples/api-nextjs/tasks.md +168 -168
- package/content/.morph/examples/micro-saas/README.md +125 -125
- package/content/.morph/examples/micro-saas/contracts.cs +358 -358
- package/content/.morph/examples/micro-saas/decisions.md +246 -246
- package/content/.morph/examples/micro-saas/spec.md +236 -236
- package/content/.morph/examples/micro-saas/tasks.md +150 -150
- package/content/.morph/examples/multi-agent/README.md +309 -309
- package/content/.morph/examples/multi-agent/contracts.cs +433 -433
- package/content/.morph/examples/multi-agent/spec.md +479 -479
- package/content/.morph/examples/multi-agent/tasks.md +185 -185
- package/content/.morph/examples/scheduled-reports/decisions.md +158 -0
- package/content/.morph/examples/scheduled-reports/proposal.md +95 -0
- package/content/.morph/examples/scheduled-reports/spec.md +267 -0
- package/content/.morph/examples/state-v3.json +188 -0
- package/content/.morph/features/.gitkeep +25 -25
- package/content/.morph/hooks/README.md +190 -239
- package/content/.morph/hooks/pre-commit-agents.sh +24 -24
- package/content/.morph/hooks/pre-commit-all.sh +48 -48
- package/content/.morph/hooks/pre-commit-specs.sh +49 -49
- package/content/.morph/hooks/pre-commit-tests.sh +60 -60
- package/content/.morph/project.md +160 -160
- package/content/.morph/schemas/agent.schema.json +296 -296
- package/content/.morph/schemas/tasks.schema.json +220 -0
- package/content/.morph/specs/.gitkeep +20 -20
- package/content/.morph/standards/agent-framework-blazor-ui.md +359 -0
- package/content/.morph/standards/agent-framework-production.md +410 -0
- package/content/.morph/standards/agent-framework-setup.md +413 -453
- package/content/.morph/standards/agent-framework-workflows.md +349 -0
- package/content/.morph/standards/architecture.md +325 -325
- package/content/.morph/standards/azure.md +605 -379
- package/content/.morph/standards/coding.md +377 -377
- package/content/.morph/standards/dotnet10-migration.md +520 -494
- package/content/.morph/standards/fluent-ui-setup.md +590 -590
- package/content/.morph/standards/migration-guide.md +514 -514
- package/content/.morph/standards/passkeys-auth.md +423 -423
- package/content/.morph/standards/vector-search-rag.md +536 -536
- package/content/.morph/state.json +17 -17
- package/content/.morph/templates/FluentDesignTheme.cs +149 -149
- package/content/.morph/templates/MudTheme.cs +281 -281
- package/content/.morph/templates/agent.cs +163 -172
- package/content/.morph/templates/clarify-questions.md +159 -0
- package/content/.morph/templates/component.razor +239 -239
- package/content/.morph/templates/contracts/Commands.cs +74 -0
- package/content/.morph/templates/contracts/Entities.cs +25 -0
- package/content/.morph/templates/contracts/Queries.cs +74 -0
- package/content/.morph/templates/contracts/README.md +74 -0
- package/content/.morph/templates/contracts.cs +217 -217
- package/content/.morph/templates/decisions.md +123 -106
- package/content/.morph/templates/design-system.css +226 -226
- package/content/.morph/templates/infra/.dockerignore.example +89 -89
- package/content/.morph/templates/infra/Dockerfile.example +82 -82
- package/content/.morph/templates/infra/README.md +286 -286
- package/content/.morph/templates/infra/app-insights.bicep +63 -63
- package/content/.morph/templates/infra/app-service.bicep +164 -164
- package/content/.morph/templates/infra/container-app-env.bicep +49 -49
- package/content/.morph/templates/infra/container-app.bicep +156 -156
- package/content/.morph/templates/infra/deploy-checklist.md +426 -0
- package/content/.morph/templates/infra/deploy.ps1 +229 -229
- package/content/.morph/templates/infra/deploy.sh +208 -208
- package/content/.morph/templates/infra/key-vault.bicep +91 -91
- package/content/.morph/templates/infra/main.bicep +189 -189
- package/content/.morph/templates/infra/parameters.dev.json +29 -29
- package/content/.morph/templates/infra/parameters.prod.json +29 -29
- package/content/.morph/templates/infra/parameters.staging.json +29 -29
- package/content/.morph/templates/infra/sql-database.bicep +103 -103
- package/content/.morph/templates/infra/storage.bicep +106 -106
- package/content/.morph/templates/integrations/asaas-client.cs +387 -387
- package/content/.morph/templates/integrations/asaas-webhook.cs +351 -351
- package/content/.morph/templates/integrations/azure-identity-config.cs +288 -288
- package/content/.morph/templates/integrations/clerk-config.cs +258 -258
- package/content/.morph/templates/job.cs +171 -171
- package/content/.morph/templates/migration.cs +83 -83
- package/content/.morph/templates/proposal.md +141 -155
- package/content/.morph/templates/recap.md +94 -105
- package/content/.morph/templates/repository.cs +141 -141
- package/content/.morph/templates/saas/subscription.cs +347 -347
- package/content/.morph/templates/saas/tenant.cs +338 -338
- package/content/.morph/templates/service.cs +139 -139
- package/content/.morph/templates/simulation.md +353 -0
- package/content/.morph/templates/spec.md +149 -148
- package/content/.morph/templates/sprint-status.yaml +68 -68
- package/content/.morph/templates/state.template.json +222 -222
- package/content/.morph/templates/story.md +143 -143
- package/content/.morph/templates/tasks.md +257 -235
- package/content/.morph/templates/test.cs +239 -239
- package/content/.morph/templates/ui-components.md +362 -276
- package/content/.morph/templates/ui-design-system.md +286 -286
- package/content/.morph/templates/ui-flows.md +336 -336
- package/content/.morph/templates/ui-mockups.md +133 -133
- package/content/.morph/test-infra/example.bicep +59 -59
- package/content/CLAUDE.md +150 -442
- package/content/README.md +79 -79
- package/detectors/config-detector.js +223 -223
- package/detectors/conversation-analyzer.js +163 -163
- package/detectors/index.js +84 -84
- package/detectors/standards-generator.js +275 -275
- package/detectors/structure-detector.js +245 -250
- package/docs/README.md +144 -149
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +977 -977
- package/docs/api/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +1048 -1048
- package/docs/api/scripts/collapse.js +38 -38
- package/docs/api/scripts/commonNav.js +28 -28
- package/docs/api/scripts/linenumber.js +25 -25
- package/docs/api/scripts/nav.js +12 -12
- package/docs/api/scripts/polyfill.js +3 -3
- package/docs/api/scripts/prettify/Apache-License-2.0.txt +202 -202
- package/docs/api/scripts/prettify/lang-css.js +2 -2
- package/docs/api/scripts/prettify/prettify.js +28 -28
- package/docs/api/scripts/search.js +98 -98
- package/docs/api/styles/jsdoc.css +776 -776
- package/docs/api/styles/prettify.css +80 -80
- package/docs/examples.md +328 -328
- package/docs/getting-started.md +301 -302
- package/docs/installation.md +361 -361
- package/docs/templates.md +418 -418
- package/docs/validation-checklist.md +265 -266
- package/package.json +80 -80
- package/scripts/postinstall.js +132 -132
- package/src/commands/advance-phase.js +183 -0
- package/src/commands/analyze-blazor-concurrency.js +193 -0
- package/src/commands/create-story.js +351 -351
- package/src/commands/detect-agents.js +139 -0
- package/src/commands/detect.js +104 -104
- package/src/commands/doctor.js +356 -280
- package/src/commands/generate.js +149 -149
- package/src/commands/init.js +258 -245
- package/src/commands/lint-fluent.js +352 -0
- package/src/commands/rollback-phase.js +185 -0
- package/src/commands/session-summary.js +291 -0
- package/src/commands/shard-spec.js +224 -224
- package/src/commands/sprint-status.js +250 -250
- package/src/commands/state.js +333 -333
- package/src/commands/sync.js +167 -167
- package/src/commands/task.js +78 -0
- package/src/commands/troubleshoot.js +222 -0
- package/src/commands/update.js +192 -159
- package/src/commands/validate-blazor-state.js +210 -0
- package/src/commands/validate-blazor.js +156 -0
- package/src/commands/validate-css.js +84 -0
- package/src/commands/validate-phase.js +221 -0
- package/src/lib/blazor-concurrency-analyzer.js +288 -0
- package/src/lib/blazor-state-validator.js +291 -0
- package/src/lib/blazor-validator.js +374 -0
- package/src/lib/complexity-analyzer.js +441 -292
- package/src/lib/continuous-validator.js +421 -0
- package/src/lib/css-validator.js +352 -0
- package/src/lib/decision-constraint-loader.js +109 -0
- package/src/lib/design-system-generator.js +298 -298
- package/src/lib/learning-system.js +520 -0
- package/src/lib/mockup-generator.js +366 -0
- package/src/lib/recap-generator.js +205 -0
- package/src/lib/state-manager.js +397 -340
- package/src/lib/troubleshoot-grep.js +194 -0
- package/src/lib/troubleshoot-index.js +144 -0
- package/src/lib/ui-detector.js +350 -0
- package/src/lib/validation-runner.js +231 -0
- package/src/lib/validators/architecture-validator.js +387 -0
- package/src/lib/validators/contract-compliance-validator.js +273 -0
- package/src/lib/validators/package-validator.js +360 -0
- package/src/lib/validators/ui-contrast-validator.js +422 -0
- package/src/utils/file-copier.js +179 -139
- package/src/utils/logger.js +32 -32
- package/src/utils/version-checker.js +175 -175
- package/content/.claude/commands/morph-costs.md +0 -206
- package/content/.claude/commands/morph-tasks.md +0 -319
- package/content/.claude/skills/specialists/cost-guardian.md +0 -110
- package/content/.claude/skills/stacks/shopify.md +0 -445
- package/content/.morph/config/azure-pricing.json +0 -70
- package/content/.morph/config/azure-pricing.schema.json +0 -50
- package/content/.morph/hooks/pre-commit-costs.sh +0 -91
- package/docs/api/cost-calculator.js.html +0 -513
- package/docs/api/design-system-generator.js.html +0 -382
- package/docs/api/global.html +0 -5263
- package/docs/api/index.html +0 -96
- package/docs/api/state-manager.js.html +0 -423
- package/src/commands/cost.js +0 -181
- package/src/commands/update-pricing.js +0 -206
- package/src/lib/cost-calculator.js +0 -429
package/content/CLAUDE.md
CHANGED
|
@@ -1,442 +1,150 @@
|
|
|
1
|
-
# MORPH-SPEC - Instruções para Claude Code
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
- .
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
├── .claude/
|
|
152
|
-
│ ├── commands/ # Slash commands
|
|
153
|
-
│ │ ├── morph-proposal.md
|
|
154
|
-
│ │ ├── morph-apply.md
|
|
155
|
-
│ │ ├── morph-status.md
|
|
156
|
-
│ │ ├── morph-archive.md
|
|
157
|
-
│ │ ├── morph-infra.md # (new)
|
|
158
|
-
│ │ └── morph-costs.md # (new)
|
|
159
|
-
│ └── skills/ # Agent skills (new)
|
|
160
|
-
│ ├── specialists/
|
|
161
|
-
│ ├── integrations/
|
|
162
|
-
│ ├── stacks/
|
|
163
|
-
│ └── infra/
|
|
164
|
-
└── infra/ # IaC templates (new)
|
|
165
|
-
├── main.bicep
|
|
166
|
-
└── modules/
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
## AGENTES
|
|
172
|
-
|
|
173
|
-
### Core Agents (Sempre Ativos)
|
|
174
|
-
|
|
175
|
-
| Agente | Responsabilidades |
|
|
176
|
-
|--------|-------------------|
|
|
177
|
-
| **Standards Architect** | Padrões em `.morph/standards/`, nomenclatura, revisão |
|
|
178
|
-
| **Azure Architect** | Infra Azure, Bicep IaC, Container Apps, SQL |
|
|
179
|
-
| **Cost Guardian** | Validar custos, alertar recursos caros, bloquear não aprovados |
|
|
180
|
-
|
|
181
|
-
### Stack Agents (Por Stack)
|
|
182
|
-
|
|
183
|
-
| Agente | Stack | Keywords |
|
|
184
|
-
|--------|-------|----------|
|
|
185
|
-
| **Blazor Builder** | .NET + Blazor | blazor, razor, server-side |
|
|
186
|
-
| **NextJS Expert** | .NET + Next.js | nextjs, react, api, frontend |
|
|
187
|
-
| **Shopify Expert** | Shopify | shopify, hydrogen, liquid |
|
|
188
|
-
|
|
189
|
-
### Specialist Agents (Sob Demanda)
|
|
190
|
-
|
|
191
|
-
| Agente | Keywords de Ativação |
|
|
192
|
-
|--------|---------------------|
|
|
193
|
-
| **EF Modeler** | entity, database, migration, ef core |
|
|
194
|
-
| **MS Agent Expert** | agent, ai, semantic kernel, llm |
|
|
195
|
-
| **Hangfire Orchestrator** | scheduled, job, background, cron |
|
|
196
|
-
| **UI/UX Designer** | wizard, dashboard, complex form, drag-drop |
|
|
197
|
-
| **PO/PM Advisor** | unclear, requirements, priority, ROI |
|
|
198
|
-
|
|
199
|
-
### Integration Agents (Sob Demanda)
|
|
200
|
-
|
|
201
|
-
| Agente | Keywords | Docs |
|
|
202
|
-
|--------|----------|------|
|
|
203
|
-
| **Asaas Financial** | asaas, payment, pix, boleto | [API](https://docs.asaas.com/) |
|
|
204
|
-
| **Clerk Auth** | clerk, auth, login, signup | [SDK](https://clerk.com/) |
|
|
205
|
-
| **Azure Identity** | identity, entra, microsoft auth | [Docs](https://learn.microsoft.com/entra/) |
|
|
206
|
-
|
|
207
|
-
### Infra Agents (Sob Demanda)
|
|
208
|
-
|
|
209
|
-
| Agente | Keywords | Docs |
|
|
210
|
-
|--------|----------|------|
|
|
211
|
-
| **Bicep Architect** | bicep, iac, infra, provision | [Bicep](https://learn.microsoft.com/azure/azure-resource-manager/bicep/) |
|
|
212
|
-
| **DevOps Engineer** | pipeline, ci/cd, deploy, release | [Pipelines](https://learn.microsoft.com/azure/devops/pipelines/) |
|
|
213
|
-
| **Container Specialist** | docker, container, containerize | [Container Apps](https://learn.microsoft.com/azure/container-apps/) |
|
|
214
|
-
|
|
215
|
-
---
|
|
216
|
-
|
|
217
|
-
## LIMITES DE CUSTO
|
|
218
|
-
|
|
219
|
-
| Nível | Limite | Requisito |
|
|
220
|
-
|-------|--------|-----------|
|
|
221
|
-
| Sem aprovação | Free tier apenas | Nenhum |
|
|
222
|
-
| Com aprovação | Até $10/mês | Confirmação |
|
|
223
|
-
| Acima de $10 | Justificativa detalhada | ADR |
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
## INFRASTRUCTURE AS CODE
|
|
228
|
-
|
|
229
|
-
### Princípio: Zero Portal
|
|
230
|
-
|
|
231
|
-
> NUNCA criar recursos Azure manualmente. Tudo via Bicep.
|
|
232
|
-
|
|
233
|
-
### Estrutura IaC
|
|
234
|
-
|
|
235
|
-
```
|
|
236
|
-
infra/
|
|
237
|
-
├── main.bicep # Entry point
|
|
238
|
-
├── parameters.dev.json # Params dev
|
|
239
|
-
├── parameters.prod.json # Params prod
|
|
240
|
-
└── modules/
|
|
241
|
-
├── container-app.bicep
|
|
242
|
-
├── sql-database.bicep
|
|
243
|
-
├── storage.bicep
|
|
244
|
-
├── key-vault.bicep
|
|
245
|
-
└── app-insights.bicep
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
### Quando usar SDK .NET vs Bicep
|
|
249
|
-
|
|
250
|
-
| Recurso | Abordagem |
|
|
251
|
-
|---------|-----------|
|
|
252
|
-
| Infra estática (SQL, Storage, Container Apps) | Bicep |
|
|
253
|
-
| Recursos dinâmicos (Fabric, Azure AI) | SDK .NET |
|
|
254
|
-
| CI/CD | YAML + Bicep |
|
|
255
|
-
|
|
256
|
-
---
|
|
257
|
-
|
|
258
|
-
## TEMPLATES E PLACEHOLDERS
|
|
259
|
-
|
|
260
|
-
### Princípio: Templates Auto-Populáveis
|
|
261
|
-
|
|
262
|
-
> SEMPRE use o CLI `bin/render-template.js` para renderizar templates. NUNCA preencha placeholders manualmente.
|
|
263
|
-
|
|
264
|
-
### Placeholders Padrão
|
|
265
|
-
|
|
266
|
-
Todos os templates usam o formato `{{PLACEHOLDER}}` (duplo-chave). Os placeholders são substituídos automaticamente pelo CLI.
|
|
267
|
-
|
|
268
|
-
| Placeholder | Descrição | Exemplo Input | Exemplo Output |
|
|
269
|
-
|-------------|-----------|---------------|----------------|
|
|
270
|
-
| `{{FEATURE_NAME}}` | Nome kebab-case da feature | `"scheduled-reports"` | `scheduled-reports` |
|
|
271
|
-
| `{{FEATURE_NAME_PASCAL}}` | PascalCase (para C#) | `"scheduled-reports"` | `ScheduledReports` |
|
|
272
|
-
| `{{FEATURE_NAME_CAMEL}}` | camelCase (para JS/TS) | `"scheduled-reports"` | `scheduledReports` |
|
|
273
|
-
| `{{FEATURE_NAME_TITLE}}` | Title Case (para títulos) | `"scheduled-reports"` | `Scheduled Reports` |
|
|
274
|
-
| `{{FEATURE_NAME_UPPER_SNAKE}}` | UPPER_SNAKE_CASE | `"scheduled-reports"` | `SCHEDULED_REPORTS` |
|
|
275
|
-
| `{{FEATURE_NAME_LOWER_SNAKE}}` | lower_snake_case | `"scheduled-reports"` | `scheduled_reports` |
|
|
276
|
-
| `{{STACK}}` | Stack do projeto | (auto) | `Blazor`, `Next.js` |
|
|
277
|
-
| `{{DATE}}` | Data atual (YYYY-MM-DD) | (auto) | `2025-12-08` |
|
|
278
|
-
| `{{YEAR}}` | Ano atual | (auto) | `2025` |
|
|
279
|
-
| `{{AUTHOR}}` | Autor (de config.json) | (auto) | `MORPH-SPEC` |
|
|
280
|
-
| `{{PROJECT_NAME}}` | Nome do projeto | (auto) | `MyProject` |
|
|
281
|
-
| `{{NAMESPACE}}` | Namespace C# | (auto) | `MyProject` |
|
|
282
|
-
|
|
283
|
-
**Transformações Automáticas:**
|
|
284
|
-
- Forneça apenas `FEATURE_NAME` em kebab-case (ex: `"my-feature"`)
|
|
285
|
-
- CLI gera automaticamente todas as variações de case
|
|
286
|
-
- Valores auto-populados (DATE, AUTHOR, etc.) vêm de `config.json`
|
|
287
|
-
|
|
288
|
-
### CLI de Renderização
|
|
289
|
-
|
|
290
|
-
#### Uso Básico
|
|
291
|
-
|
|
292
|
-
```bash
|
|
293
|
-
node bin/render-template.js <template-path> <output-path> <variables-json>
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
#### Exemplos
|
|
297
|
-
|
|
298
|
-
**Renderizar proposal.md:**
|
|
299
|
-
```bash
|
|
300
|
-
node bin/render-template.js \
|
|
301
|
-
content/.morph/templates/proposal.md \
|
|
302
|
-
.morph/project/outputs/scheduled-reports/proposal.md \
|
|
303
|
-
'{"FEATURE_NAME":"scheduled-reports"}'
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
**Renderizar contracts.cs com namespace customizado:**
|
|
307
|
-
```bash
|
|
308
|
-
node bin/render-template.js \
|
|
309
|
-
content/.morph/templates/contracts.cs \
|
|
310
|
-
src/Application/Features/ScheduledReports/Contracts.cs \
|
|
311
|
-
'{"FEATURE_NAME":"scheduled-report","NAMESPACE":"MyProject"}'
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
**Modo verbose (mostra placeholders substituídos):**
|
|
315
|
-
```bash
|
|
316
|
-
node bin/render-template.js \
|
|
317
|
-
content/.morph/templates/spec.md \
|
|
318
|
-
.morph/project/outputs/my-feature/spec.md \
|
|
319
|
-
'{"FEATURE_NAME":"my-feature","STACK":"Blazor"}' \
|
|
320
|
-
--verbose
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
**Dry-run (preview sem escrever arquivo):**
|
|
324
|
-
```bash
|
|
325
|
-
node bin/render-template.js \
|
|
326
|
-
content/.morph/templates/ui-mockups.md \
|
|
327
|
-
/dev/null \
|
|
328
|
-
'{"FEATURE_NAME":"user-dashboard"}' \
|
|
329
|
-
--dry-run
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
#### Flags Disponíveis
|
|
333
|
-
|
|
334
|
-
| Flag | Descrição |
|
|
335
|
-
|------|-----------|
|
|
336
|
-
| `--verbose`, `-v` | Mostra placeholders substituídos e não-substituídos |
|
|
337
|
-
| `--dry-run`, `-d` | Preview sem escrever arquivo |
|
|
338
|
-
| `--help`, `-h` | Mostra ajuda completa |
|
|
339
|
-
|
|
340
|
-
### Templates Disponíveis
|
|
341
|
-
|
|
342
|
-
**Outputs MORPH:**
|
|
343
|
-
- `.morph/templates/proposal.md` - FASE 0 (Proposal)
|
|
344
|
-
- `.morph/templates/ui-design-system.md` - FASE 1.5 (Design System)
|
|
345
|
-
- `.morph/templates/ui-mockups.md` - FASE 1.5 (Wireframes)
|
|
346
|
-
- `.morph/templates/ui-components.md` - FASE 1.5 (Component Specs)
|
|
347
|
-
- `.morph/templates/ui-flows.md` - FASE 1.5 (User Flows)
|
|
348
|
-
- `.morph/templates/spec.md` - FASE 2 (Technical Spec)
|
|
349
|
-
- `.morph/templates/contracts.cs` - FASE 2 (Interfaces/DTOs)
|
|
350
|
-
- `.morph/templates/decisions.md` - FASE 2 (ADRs)
|
|
351
|
-
- `.morph/templates/tasks.md` - FASE 4 (Task Breakdown)
|
|
352
|
-
- `.morph/templates/recap.md` - FASE 5 (Recap)
|
|
353
|
-
|
|
354
|
-
**Templates de Código:**
|
|
355
|
-
- `.morph/templates/service.cs` - Service implementation
|
|
356
|
-
- `.morph/templates/repository.cs` - Repository implementation
|
|
357
|
-
- `.morph/templates/agent.cs` - AI Agent (Microsoft Agent Framework)
|
|
358
|
-
- `.morph/templates/job.cs` - Hangfire background job
|
|
359
|
-
- `.morph/templates/test.cs` - Unit test template
|
|
360
|
-
|
|
361
|
-
### Integração com Slash Commands
|
|
362
|
-
|
|
363
|
-
Os slash commands **devem usar o CLI de renderização** para gerar outputs:
|
|
364
|
-
|
|
365
|
-
```markdown
|
|
366
|
-
# Em morph-proposal.md
|
|
367
|
-
|
|
368
|
-
node bin/render-template.js \
|
|
369
|
-
content/.morph/templates/proposal.md \
|
|
370
|
-
.morph/project/outputs/${FEATURE_NAME}/proposal.md \
|
|
371
|
-
"{\"FEATURE_NAME\":\"${FEATURE_NAME}\"}"
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
**Benefícios:**
|
|
375
|
-
- ✅ **Consistência:** Todos os outputs seguem o mesmo formato
|
|
376
|
-
- ✅ **Economia de tokens:** Claude não precisa preencher manualmente
|
|
377
|
-
- ✅ **Zero erros:** Transformações de case são 100% corretas
|
|
378
|
-
- ✅ **Rapidez:** CLI processa em <100ms
|
|
379
|
-
|
|
380
|
-
---
|
|
381
|
-
|
|
382
|
-
## COMANDOS (Slash Commands)
|
|
383
|
-
|
|
384
|
-
| Comando | Ação |
|
|
385
|
-
|---------|------|
|
|
386
|
-
| `/morph-proposal {feature}` | Criar nova proposta |
|
|
387
|
-
| `/morph-apply {feature}` | Implementar feature aprovada |
|
|
388
|
-
| `/morph-status` | Mostrar status do projeto |
|
|
389
|
-
| `/morph-archive {feature}` | Arquivar feature concluída |
|
|
390
|
-
| `/morph-infra {action}` | Gerenciar infraestrutura (new) |
|
|
391
|
-
| `/morph-costs` | Estimar e reportar custos (new) |
|
|
392
|
-
|
|
393
|
-
---
|
|
394
|
-
|
|
395
|
-
## REFERÊNCIAS
|
|
396
|
-
|
|
397
|
-
Consulte sempre:
|
|
398
|
-
- `.morph/project.md` - Contexto do projeto
|
|
399
|
-
- `.morph/standards/coding.md` - Padrões de código
|
|
400
|
-
- `.morph/standards/architecture.md` - Padrões de arquitetura
|
|
401
|
-
- `.morph/standards/azure.md` - Padrões Azure e IaC
|
|
402
|
-
- `.morph/templates/` - Templates para outputs
|
|
403
|
-
- `.morph/config/agents.json` - Definição dos agentes
|
|
404
|
-
|
|
405
|
-
---
|
|
406
|
-
|
|
407
|
-
## QUICK START
|
|
408
|
-
|
|
409
|
-
```
|
|
410
|
-
1. Usuário: "Quero implementar relatórios agendados"
|
|
411
|
-
|
|
412
|
-
2. Claude: /morph-proposal scheduled-reports
|
|
413
|
-
→ Carrega contexto
|
|
414
|
-
→ Ativa agentes: Hangfire Orchestrator, Blazor Builder
|
|
415
|
-
→ Cria proposta
|
|
416
|
-
|
|
417
|
-
3. Usuário: "Aprovado"
|
|
418
|
-
|
|
419
|
-
4. Claude: Expande spec, contracts, decisions
|
|
420
|
-
→ Aguarda aprovação do design
|
|
421
|
-
|
|
422
|
-
5. Usuário: "Aprovado"
|
|
423
|
-
|
|
424
|
-
6. Claude: Quebra em tasks detalhadas
|
|
425
|
-
→ Aguarda aprovação do breakdown
|
|
426
|
-
|
|
427
|
-
7. Usuário: "Aprovado"
|
|
428
|
-
|
|
429
|
-
8. Claude: /morph-apply scheduled-reports
|
|
430
|
-
→ Implementa task por task
|
|
431
|
-
→ Checkpoints a cada 3 tasks
|
|
432
|
-
|
|
433
|
-
9. Usuário: "Feature concluída"
|
|
434
|
-
|
|
435
|
-
10. Claude: /morph-archive scheduled-reports
|
|
436
|
-
→ Move para archive
|
|
437
|
-
→ Extrai specs
|
|
438
|
-
```
|
|
439
|
-
|
|
440
|
-
---
|
|
441
|
-
|
|
442
|
-
*MORPH-SPEC by Polymorphism Tech © 2024-2025*
|
|
1
|
+
# MORPH-SPEC - Instruções para Claude Code (Consumer)
|
|
2
|
+
|
|
3
|
+
> by Polymorphism Tech
|
|
4
|
+
|
|
5
|
+
Sistema de desenvolvimento orientado por especificações. Hub de agentes especializados em multi-stack (.NET/Blazor, .NET/Next.js) com Infrastructure as Code.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## REGRAS CRÍTICAS
|
|
10
|
+
|
|
11
|
+
### NUNCA:
|
|
12
|
+
- Pular direto para código sem especificação
|
|
13
|
+
- Implementar sem aprovação do design
|
|
14
|
+
- Ignorar padrões em `.morph/standards/`
|
|
15
|
+
- Criar recursos Azure manualmente (use Bicep)
|
|
16
|
+
- Gerar código sem contracts definidos
|
|
17
|
+
|
|
18
|
+
### SEMPRE:
|
|
19
|
+
- Seguir as 5 fases obrigatórias
|
|
20
|
+
- Gerar outputs em `.morph/features/{feature}/`
|
|
21
|
+
- Documentar decisões em `decisions.md`
|
|
22
|
+
- Checkpoint a cada 3 tasks implementadas
|
|
23
|
+
- Usar Infrastructure as Code (Bicep)
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## WORKFLOW (5 Fases)
|
|
28
|
+
|
|
29
|
+
| Fase | Gatilho | Ações | Output | Pausa? |
|
|
30
|
+
|------|---------|-------|--------|--------|
|
|
31
|
+
| **1. SETUP** | Feature request | Ler project.md, identificar stack, ativar agentes, criar pasta | proposal.md | Não |
|
|
32
|
+
| **2. DESIGN** | Setup concluído | Spec + contracts + decisions + custos + Bicep | spec.md, contracts.cs, decisions.md | **Sim** |
|
|
33
|
+
| **3. CLARIFY** | Design aprovado | Ambiguidades, perguntas, edge cases | Spec atualizado | Não |
|
|
34
|
+
| **4. TASKS** | Clarificações resolvidas | Quebrar em tasks, ordem, checkpoints, dependências | tasks.md | **Sim** |
|
|
35
|
+
| **5. IMPLEMENT** | Tasks aprovadas | Task por task, checkpoint a cada 3, recap | Código + recap.md | Não |
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## ESTRUTURA DO PROJETO
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
projeto/
|
|
43
|
+
├── CLAUDE.md
|
|
44
|
+
├── .morph/
|
|
45
|
+
│ ├── project.md # Contexto
|
|
46
|
+
│ ├── config/ # config.json, agents.json
|
|
47
|
+
│ ├── standards/ # coding, architecture, azure
|
|
48
|
+
│ ├── templates/ # Templates para outputs
|
|
49
|
+
│ ├── specs/ # Specs ATIVAS
|
|
50
|
+
│ ├── features/{feature-name}/ # Features EM DESENVOLVIMENTO
|
|
51
|
+
│ │ ├── proposal.md, spec.md, tasks.md
|
|
52
|
+
│ │ ├── contracts.cs, decisions.md, recap.md
|
|
53
|
+
│ └── archive/ # Features CONCLUÍDAS
|
|
54
|
+
├── .claude/skills/ # Agent skills
|
|
55
|
+
└── infra/main.bicep + modules/ # IaC
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## AGENTES
|
|
61
|
+
|
|
62
|
+
### Core (Sempre Ativos)
|
|
63
|
+
|
|
64
|
+
| Agente | Responsabilidades |
|
|
65
|
+
|--------|-------------------|
|
|
66
|
+
| **Standards Architect** | Padrões, nomenclatura, revisão |
|
|
67
|
+
| **Azure Architect** | Infra Azure, Bicep, Container Apps |
|
|
68
|
+
| **Cost Guardian** | Custos, alertas, bloqueios |
|
|
69
|
+
|
|
70
|
+
### Stack, Specialist, Integration, Infra
|
|
71
|
+
|
|
72
|
+
> **Ref:** Root `CLAUDE.md` para tabela completa de agentes e keywords.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## LIMITES DE CUSTO
|
|
77
|
+
|
|
78
|
+
| Nível | Limite | Requisito |
|
|
79
|
+
|-------|--------|-----------|
|
|
80
|
+
| Sem aprovação | Free tier | Nenhum |
|
|
81
|
+
| Com aprovação | Até $10/mês | Confirmação |
|
|
82
|
+
| Acima de $10 | Justificativa | ADR |
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## INFRASTRUCTURE AS CODE
|
|
87
|
+
|
|
88
|
+
> NUNCA criar recursos Azure manualmente. Tudo via Bicep.
|
|
89
|
+
|
|
90
|
+
| Recurso | Abordagem |
|
|
91
|
+
|---------|-----------|
|
|
92
|
+
| Infra estática (SQL, Storage, Container Apps) | Bicep |
|
|
93
|
+
| Recursos dinâmicos (Fabric, Azure AI) | SDK .NET |
|
|
94
|
+
| CI/CD | YAML + Bicep |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## TEMPLATES
|
|
99
|
+
|
|
100
|
+
> SEMPRE use `bin/render-template.js` para renderizar. NUNCA preencha placeholders manualmente.
|
|
101
|
+
|
|
102
|
+
### Placeholders: `{{PLACEHOLDER}}`
|
|
103
|
+
|
|
104
|
+
| Placeholder | Exemplo |
|
|
105
|
+
|-------------|---------|
|
|
106
|
+
| `{{FEATURE_NAME}}` | `scheduled-reports` |
|
|
107
|
+
| `{{FEATURE_NAME_PASCAL}}` | `ScheduledReports` |
|
|
108
|
+
| `{{FEATURE_NAME_CAMEL}}` | `scheduledReports` |
|
|
109
|
+
| `{{STACK}}` | `Blazor` |
|
|
110
|
+
| `{{DATE}}`, `{{AUTHOR}}`, `{{NAMESPACE}}` | Auto from config.json |
|
|
111
|
+
|
|
112
|
+
### CLI
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
node bin/render-template.js <template> <output> <vars-json>
|
|
116
|
+
# --verbose: show replacements | --dry-run: preview only
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Available Templates
|
|
120
|
+
|
|
121
|
+
**MORPH outputs:** proposal, ui-design-system, ui-mockups, ui-components, ui-flows, spec, contracts.cs, decisions, tasks, recap
|
|
122
|
+
|
|
123
|
+
**Code:** service.cs, repository.cs, agent.cs, job.cs, test.cs
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## COMANDOS
|
|
128
|
+
|
|
129
|
+
| Comando | Ação |
|
|
130
|
+
|---------|------|
|
|
131
|
+
| `/morph-proposal {feature}` | Spec pipeline completo (fases 0-4, auto-continuação com pausas) |
|
|
132
|
+
| `/morph-apply {feature}` | Implementar feature (fase 5) |
|
|
133
|
+
| `/morph-status` | Dashboard |
|
|
134
|
+
| `/morph-archive {feature}` | Arquivar feature concluída |
|
|
135
|
+
| `/morph-infra {action}` | Gerenciar infra Bicep |
|
|
136
|
+
| `/morph-preflight` | Validação pre-deploy Azure |
|
|
137
|
+
| `/morph-troubleshoot {error}` | Troubleshooting de erros |
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## REFERÊNCIAS
|
|
142
|
+
|
|
143
|
+
- `.morph/project.md` — Contexto do projeto
|
|
144
|
+
- `.morph/standards/` — coding, architecture, azure
|
|
145
|
+
- `.morph/templates/` — Templates para outputs
|
|
146
|
+
- `.morph/config/agents.json` — Agentes
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
*MORPH-SPEC by Polymorphism Tech*
|