@polymorphism-tech/morph-spec 2.4.0 → 3.0.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 +158 -26
- package/LICENSE +72 -72
- package/bin/detect-agents.js +225 -225
- package/bin/morph-spec.js +8 -0
- package/bin/render-template.js +302 -302
- package/bin/semantic-detect-agents.js +246 -246
- package/bin/validate-agents-skills.js +251 -251
- package/bin/validate-agents.js +69 -69
- package/bin/validate-phase.js +263 -263
- 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-archive.md +79 -79
- package/content/.claude/commands/morph-deploy.md +529 -0
- package/content/.claude/commands/morph-infra.md +209 -209
- package/content/.claude/commands/morph-preflight.md +227 -227
- package/content/.claude/commands/morph-troubleshoot.md +122 -122
- package/content/.claude/settings.local.json +15 -15
- package/content/.claude/skills/infra/azure-deploy-specialist.md +699 -0
- package/content/.claude/skills/level-0-meta/README.md +7 -0
- package/content/.claude/skills/{checklists → level-0-meta}/morph-checklist.md +117 -117
- package/content/.claude/skills/level-1-workflows/README.md +7 -0
- package/content/.claude/skills/{workflows → level-1-workflows}/morph-replicate.md +213 -213
- package/content/.claude/skills/{workflows → level-1-workflows}/phase-clarify.md +131 -131
- package/content/.claude/skills/{workflows → level-1-workflows}/phase-design.md +213 -205
- package/content/.claude/skills/{workflows → level-1-workflows}/phase-setup.md +106 -92
- package/content/.claude/skills/{workflows → level-1-workflows}/phase-tasks.md +164 -164
- package/content/.claude/skills/{workflows → level-1-workflows}/phase-uiux.md +169 -138
- package/content/.claude/skills/level-2-domains/README.md +14 -0
- package/content/.claude/skills/{specialists → level-2-domains/quality}/testing-specialist.md +126 -126
- package/content/.claude/skills/level-3-technologies/README.md +7 -0
- package/content/.claude/skills/level-4-patterns/README.md +7 -0
- package/content/.claude/skills/specialists/prompt-engineer.md +189 -0
- package/content/.claude/skills/specialists/seo-growth-hacker.md +320 -0
- package/content/.morph/.morphversion +5 -5
- package/content/.morph/archive/.gitkeep +25 -25
- package/content/.morph/config/agents.json +742 -358
- package/content/.morph/config/config.template.json +33 -0
- package/content/.morph/docs/STORY-DRIVEN-DEVELOPMENT.md +392 -392
- package/content/.morph/docs/workflows/enforcement-pipeline.md +668 -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 -158
- package/content/.morph/examples/scheduled-reports/proposal.md +95 -95
- package/content/.morph/examples/scheduled-reports/spec.md +267 -267
- package/content/.morph/examples/state-v3.json +188 -188
- package/content/.morph/features/.gitkeep +25 -25
- package/content/.morph/hooks/README.md +158 -0
- 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/hooks/task-completed.js +73 -0
- package/content/.morph/hooks/teammate-idle.js +68 -0
- package/content/.morph/project.md +160 -160
- package/content/.morph/schemas/agent.schema.json +296 -296
- package/content/.morph/schemas/tasks.schema.json +220 -220
- package/content/.morph/specs/.gitkeep +20 -20
- package/content/.morph/standards/agent-teams-workflow.md +474 -0
- package/content/.morph/standards/coding.md +377 -377
- 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/CONTEXT-FEATURE.md +276 -0
- package/content/.morph/templates/CONTEXT.md +170 -0
- package/content/.morph/templates/FluentDesignTheme.cs +149 -149
- package/content/.morph/templates/MudTheme.cs +281 -281
- package/content/.morph/templates/clarify-questions.md +159 -159
- package/content/.morph/templates/component.razor +239 -239
- package/content/.morph/templates/contracts/Commands.cs +74 -74
- package/content/.morph/templates/contracts/Entities.cs +25 -25
- package/content/.morph/templates/contracts/Queries.cs +74 -74
- package/content/.morph/templates/contracts/README.md +74 -74
- package/content/.morph/templates/contracts.cs +217 -217
- 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/azure-pipelines-deploy.yml +480 -0
- 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 -426
- 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/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/sprint-status.yaml +68 -68
- package/content/.morph/templates/story.md +143 -143
- package/content/.morph/templates/test.cs +239 -239
- 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/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/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/templates.md +418 -418
- package/package.json +1 -1
- package/scripts/postinstall.js +132 -132
- package/src/commands/advance-phase.js +83 -0
- package/src/commands/analyze-blazor-concurrency.js +193 -193
- package/src/commands/create-story.js +351 -351
- package/src/commands/deploy.js +780 -0
- package/src/commands/detect-agents.js +34 -6
- package/src/commands/detect.js +104 -104
- package/src/commands/generate-context.js +40 -0
- package/src/commands/generate.js +149 -149
- package/src/commands/lint-fluent.js +352 -352
- package/src/commands/rollback-phase.js +185 -185
- package/src/commands/session-summary.js +291 -291
- 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/troubleshoot.js +222 -222
- package/src/commands/validate-blazor-state.js +210 -210
- package/src/commands/validate-blazor.js +156 -156
- package/src/commands/validate-css.js +84 -84
- package/src/commands/validate-phase.js +221 -221
- package/src/lib/blazor-concurrency-analyzer.js +288 -288
- package/src/lib/blazor-state-validator.js +291 -291
- package/src/lib/blazor-validator.js +374 -374
- package/src/lib/context-generator.js +513 -0
- package/src/lib/css-validator.js +352 -352
- package/src/lib/design-system-detector.js +187 -0
- package/src/lib/design-system-generator.js +298 -298
- package/src/lib/design-system-scaffolder.js +299 -0
- package/src/lib/hook-executor.js +256 -0
- package/src/lib/learning-system.js +520 -520
- package/src/lib/mockup-generator.js +366 -366
- package/src/lib/spec-validator.js +258 -0
- package/src/lib/standards-context-injector.js +287 -0
- package/src/lib/team-orchestrator.js +322 -0
- package/src/lib/troubleshoot-grep.js +194 -194
- package/src/lib/troubleshoot-index.js +144 -144
- package/src/lib/ui-detector.js +350 -350
- package/src/lib/validation-runner.js +65 -13
- package/src/lib/validators/architecture-validator.js +387 -387
- package/src/lib/validators/design-system-validator.js +231 -0
- package/src/lib/validators/package-validator.js +360 -360
- package/src/lib/validators/ui-contrast-validator.js +422 -422
- package/src/utils/file-copier.js +9 -1
- package/src/utils/logger.js +32 -32
- package/src/utils/version-checker.js +175 -175
- /package/content/.claude/skills/{checklists → level-0-meta}/code-review.md +0 -0
- /package/content/.claude/skills/{checklists → level-0-meta}/simulation-checklist.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/ai-agents}/ai-system-architect.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/architecture}/po-pm-advisor.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/architecture}/standards-architect.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/backend}/dotnet-senior.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/backend}/ef-modeler.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/backend}/hangfire-orchestrator.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/backend}/ms-agent-expert.md +0 -0
- /package/content/.claude/skills/{stacks/dotnet-blazor.md → level-2-domains/frontend/blazor-builder.md} +0 -0
- /package/content/.claude/skills/{stacks/dotnet-nextjs.md → level-2-domains/frontend/nextjs-expert.md} +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/frontend}/ui-ux-designer.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/infrastructure}/azure-architect.md +0 -0
- /package/content/.claude/skills/{infra → level-2-domains/infrastructure}/bicep-architect.md +0 -0
- /package/content/.claude/skills/{infra → level-2-domains/infrastructure}/container-specialist.md +0 -0
- /package/content/.claude/skills/{infra → level-2-domains/infrastructure}/devops-engineer.md +0 -0
- /package/content/.claude/skills/{integrations → level-2-domains/integrations}/asaas-financial.md +0 -0
- /package/content/.claude/skills/{integrations → level-2-domains/integrations}/azure-identity.md +0 -0
- /package/content/.claude/skills/{integrations → level-2-domains/integrations}/clerk-auth.md +0 -0
- /package/content/.claude/skills/{integrations → level-2-domains/integrations}/resend-email.md +0 -0
- /package/content/.claude/skills/{specialists → level-2-domains/quality}/code-analyzer.md +0 -0
|
@@ -1,131 +1,131 @@
|
|
|
1
|
-
# MORPH Clarify - FASE 3
|
|
2
|
-
|
|
3
|
-
> INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
|
|
4
|
-
|
|
5
|
-
Identifique ambiguidades na especificação e faça perguntas de clarificação para garantir que todos os edge cases estão cobertos.
|
|
6
|
-
|
|
7
|
-
## Pré-requisitos
|
|
8
|
-
|
|
9
|
-
- [ ] FASE 2 (Design) concluída
|
|
10
|
-
- [ ] `spec.md` aprovado pelo usuário
|
|
11
|
-
- [ ] `contracts.cs` definidos
|
|
12
|
-
|
|
13
|
-
## Workflow
|
|
14
|
-
|
|
15
|
-
### Passo 1: Analisar Spec
|
|
16
|
-
|
|
17
|
-
Leia `.morph/project/outputs/{feature}/spec.md` em detalhes e identifique:
|
|
18
|
-
|
|
19
|
-
#### 1.1. Ambiguidades
|
|
20
|
-
- Requisitos vagos ou genéricos
|
|
21
|
-
- Termos sem definição clara
|
|
22
|
-
- Comportamentos não especificados
|
|
23
|
-
|
|
24
|
-
#### 1.2. Edge Cases Não Documentados
|
|
25
|
-
- O que acontece se...?
|
|
26
|
-
- Como lidar com entradas inválidas?
|
|
27
|
-
- Comportamento em caso de erro?
|
|
28
|
-
- Estados intermediários (loading, empty)
|
|
29
|
-
|
|
30
|
-
#### 1.3. Requisitos Conflitantes
|
|
31
|
-
- Duas funcionalidades que parecem incompatíveis
|
|
32
|
-
- Prioridades não claras (o que vem primeiro?)
|
|
33
|
-
|
|
34
|
-
#### 1.4. Dados Faltantes
|
|
35
|
-
- Validações de negócio não especificadas
|
|
36
|
-
- Limites e constraints (tamanhos, quantidades)
|
|
37
|
-
- Formatos de dados (datas, moedas, etc.)
|
|
38
|
-
|
|
39
|
-
### Passo 2: Gerar Perguntas de Clarificação
|
|
40
|
-
|
|
41
|
-
Com base na análise, gere **3-7 perguntas** focadas e específicas:
|
|
42
|
-
|
|
43
|
-
**Formato de pergunta:**
|
|
44
|
-
```markdown
|
|
45
|
-
### Q{N}: {Categoria} - {Título}
|
|
46
|
-
|
|
47
|
-
**Context:** {Por que esta pergunta é importante}
|
|
48
|
-
|
|
49
|
-
**Question:** {Pergunta clara e objetiva}
|
|
50
|
-
|
|
51
|
-
**Options (if applicable):**
|
|
52
|
-
- A) {Opção 1}
|
|
53
|
-
- B) {Opção 2}
|
|
54
|
-
- C) {Deixar em aberto/usuário decidir}
|
|
55
|
-
|
|
56
|
-
**Impact:** {Como a resposta afeta a implementação}
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Passo 3: Categorizar Perguntas
|
|
60
|
-
|
|
61
|
-
Organize perguntas por categoria:
|
|
62
|
-
|
|
63
|
-
| Categoria | Descrição | Exemplos |
|
|
64
|
-
|-----------|-----------|----------|
|
|
65
|
-
| **Validação** | Regras de negócio, constraints | Limites de tamanho, formatos aceitos |
|
|
66
|
-
| **Comportamento** | O que acontece quando... | Error handling, estados vazios |
|
|
67
|
-
| **Prioridade** | O que é must-have vs nice-to-have | MVP vs futuras iterações |
|
|
68
|
-
| **Integração** | Como interage com sistemas externos | APIs, webhooks, formato de dados |
|
|
69
|
-
| **Performance** | Requisitos de velocidade/volume | Quantos registros? Tempo de resposta? |
|
|
70
|
-
| **UX** | Experiência do usuário | Feedback visual, mensagens de erro |
|
|
71
|
-
|
|
72
|
-
### Passo 4: Apresentar Perguntas ao Usuário
|
|
73
|
-
|
|
74
|
-
Liste todas as perguntas de forma clara e estruturada.
|
|
75
|
-
|
|
76
|
-
**IMPORTANTE:** Não prossiga para próxima fase até ter respostas!
|
|
77
|
-
|
|
78
|
-
### Passo 5: Atualizar `spec.md` com Respostas
|
|
79
|
-
|
|
80
|
-
Após receber respostas do usuário, atualize o spec com:
|
|
81
|
-
|
|
82
|
-
1. **Seção de Clarificações** no início do spec:
|
|
83
|
-
```markdown
|
|
84
|
-
## Clarifications (FASE 3)
|
|
85
|
-
|
|
86
|
-
### Q1: {Título}
|
|
87
|
-
**Answer:** {Resposta do usuário}
|
|
88
|
-
**Date:** {YYYY-MM-DD}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
2. **Atualizar seções relevantes** com detalhes adicionados
|
|
92
|
-
|
|
93
|
-
### Passo 6: Validar Edge Cases
|
|
94
|
-
|
|
95
|
-
Documente no spec como lidar com cada edge case identificado:
|
|
96
|
-
|
|
97
|
-
```markdown
|
|
98
|
-
## Edge Cases
|
|
99
|
-
|
|
100
|
-
### EC001: {Nome do Edge Case}
|
|
101
|
-
**Scenario:** {Quando acontece}
|
|
102
|
-
**Expected Behavior:** {Como o sistema deve reagir}
|
|
103
|
-
**Implementation Notes:** {Dicas para implementação}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### Passo 7: Atualizar State
|
|
107
|
-
|
|
108
|
-
```bash
|
|
109
|
-
npx morph-spec state set {feature-name} phase clarify
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
## Outputs Gerados/Atualizados
|
|
113
|
-
|
|
114
|
-
- `.morph/project/outputs/{feature}/spec.md` - Atualizado com:
|
|
115
|
-
- Seção "Clarifications" com perguntas e respostas
|
|
116
|
-
- Edge cases documentados
|
|
117
|
-
- Requisitos mais específicos
|
|
118
|
-
|
|
119
|
-
## Critérios de Avanço
|
|
120
|
-
|
|
121
|
-
- [x] Perguntas de clarificação identificadas (3-7)
|
|
122
|
-
- [x] Perguntas apresentadas ao usuário
|
|
123
|
-
- [x] Respostas do usuário recebidas
|
|
124
|
-
- [x] `spec.md` atualizado com clarificações
|
|
125
|
-
- [x] Edge cases documentados
|
|
126
|
-
- [x] State atualizado
|
|
127
|
-
- [x] Nenhuma ambiguidade crítica remanescente
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
Continuar automaticamente para FASE 4 (Tasks) após clarificações resolvidas.
|
|
1
|
+
# MORPH Clarify - FASE 3
|
|
2
|
+
|
|
3
|
+
> INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
|
|
4
|
+
|
|
5
|
+
Identifique ambiguidades na especificação e faça perguntas de clarificação para garantir que todos os edge cases estão cobertos.
|
|
6
|
+
|
|
7
|
+
## Pré-requisitos
|
|
8
|
+
|
|
9
|
+
- [ ] FASE 2 (Design) concluída
|
|
10
|
+
- [ ] `spec.md` aprovado pelo usuário
|
|
11
|
+
- [ ] `contracts.cs` definidos
|
|
12
|
+
|
|
13
|
+
## Workflow
|
|
14
|
+
|
|
15
|
+
### Passo 1: Analisar Spec
|
|
16
|
+
|
|
17
|
+
Leia `.morph/project/outputs/{feature}/spec.md` em detalhes e identifique:
|
|
18
|
+
|
|
19
|
+
#### 1.1. Ambiguidades
|
|
20
|
+
- Requisitos vagos ou genéricos
|
|
21
|
+
- Termos sem definição clara
|
|
22
|
+
- Comportamentos não especificados
|
|
23
|
+
|
|
24
|
+
#### 1.2. Edge Cases Não Documentados
|
|
25
|
+
- O que acontece se...?
|
|
26
|
+
- Como lidar com entradas inválidas?
|
|
27
|
+
- Comportamento em caso de erro?
|
|
28
|
+
- Estados intermediários (loading, empty)
|
|
29
|
+
|
|
30
|
+
#### 1.3. Requisitos Conflitantes
|
|
31
|
+
- Duas funcionalidades que parecem incompatíveis
|
|
32
|
+
- Prioridades não claras (o que vem primeiro?)
|
|
33
|
+
|
|
34
|
+
#### 1.4. Dados Faltantes
|
|
35
|
+
- Validações de negócio não especificadas
|
|
36
|
+
- Limites e constraints (tamanhos, quantidades)
|
|
37
|
+
- Formatos de dados (datas, moedas, etc.)
|
|
38
|
+
|
|
39
|
+
### Passo 2: Gerar Perguntas de Clarificação
|
|
40
|
+
|
|
41
|
+
Com base na análise, gere **3-7 perguntas** focadas e específicas:
|
|
42
|
+
|
|
43
|
+
**Formato de pergunta:**
|
|
44
|
+
```markdown
|
|
45
|
+
### Q{N}: {Categoria} - {Título}
|
|
46
|
+
|
|
47
|
+
**Context:** {Por que esta pergunta é importante}
|
|
48
|
+
|
|
49
|
+
**Question:** {Pergunta clara e objetiva}
|
|
50
|
+
|
|
51
|
+
**Options (if applicable):**
|
|
52
|
+
- A) {Opção 1}
|
|
53
|
+
- B) {Opção 2}
|
|
54
|
+
- C) {Deixar em aberto/usuário decidir}
|
|
55
|
+
|
|
56
|
+
**Impact:** {Como a resposta afeta a implementação}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Passo 3: Categorizar Perguntas
|
|
60
|
+
|
|
61
|
+
Organize perguntas por categoria:
|
|
62
|
+
|
|
63
|
+
| Categoria | Descrição | Exemplos |
|
|
64
|
+
|-----------|-----------|----------|
|
|
65
|
+
| **Validação** | Regras de negócio, constraints | Limites de tamanho, formatos aceitos |
|
|
66
|
+
| **Comportamento** | O que acontece quando... | Error handling, estados vazios |
|
|
67
|
+
| **Prioridade** | O que é must-have vs nice-to-have | MVP vs futuras iterações |
|
|
68
|
+
| **Integração** | Como interage com sistemas externos | APIs, webhooks, formato de dados |
|
|
69
|
+
| **Performance** | Requisitos de velocidade/volume | Quantos registros? Tempo de resposta? |
|
|
70
|
+
| **UX** | Experiência do usuário | Feedback visual, mensagens de erro |
|
|
71
|
+
|
|
72
|
+
### Passo 4: Apresentar Perguntas ao Usuário
|
|
73
|
+
|
|
74
|
+
Liste todas as perguntas de forma clara e estruturada.
|
|
75
|
+
|
|
76
|
+
**IMPORTANTE:** Não prossiga para próxima fase até ter respostas!
|
|
77
|
+
|
|
78
|
+
### Passo 5: Atualizar `spec.md` com Respostas
|
|
79
|
+
|
|
80
|
+
Após receber respostas do usuário, atualize o spec com:
|
|
81
|
+
|
|
82
|
+
1. **Seção de Clarificações** no início do spec:
|
|
83
|
+
```markdown
|
|
84
|
+
## Clarifications (FASE 3)
|
|
85
|
+
|
|
86
|
+
### Q1: {Título}
|
|
87
|
+
**Answer:** {Resposta do usuário}
|
|
88
|
+
**Date:** {YYYY-MM-DD}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
2. **Atualizar seções relevantes** com detalhes adicionados
|
|
92
|
+
|
|
93
|
+
### Passo 6: Validar Edge Cases
|
|
94
|
+
|
|
95
|
+
Documente no spec como lidar com cada edge case identificado:
|
|
96
|
+
|
|
97
|
+
```markdown
|
|
98
|
+
## Edge Cases
|
|
99
|
+
|
|
100
|
+
### EC001: {Nome do Edge Case}
|
|
101
|
+
**Scenario:** {Quando acontece}
|
|
102
|
+
**Expected Behavior:** {Como o sistema deve reagir}
|
|
103
|
+
**Implementation Notes:** {Dicas para implementação}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Passo 7: Atualizar State
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
npx morph-spec state set {feature-name} phase clarify
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Outputs Gerados/Atualizados
|
|
113
|
+
|
|
114
|
+
- `.morph/project/outputs/{feature}/spec.md` - Atualizado com:
|
|
115
|
+
- Seção "Clarifications" com perguntas e respostas
|
|
116
|
+
- Edge cases documentados
|
|
117
|
+
- Requisitos mais específicos
|
|
118
|
+
|
|
119
|
+
## Critérios de Avanço
|
|
120
|
+
|
|
121
|
+
- [x] Perguntas de clarificação identificadas (3-7)
|
|
122
|
+
- [x] Perguntas apresentadas ao usuário
|
|
123
|
+
- [x] Respostas do usuário recebidas
|
|
124
|
+
- [x] `spec.md` atualizado com clarificações
|
|
125
|
+
- [x] Edge cases documentados
|
|
126
|
+
- [x] State atualizado
|
|
127
|
+
- [x] Nenhuma ambiguidade crítica remanescente
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
Continuar automaticamente para FASE 4 (Tasks) após clarificações resolvidas.
|