@polymorphism-tech/morph-spec 6.0.0 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/README.md +367 -366
  2. package/docs/CHEATSHEET.md +3 -3
  3. package/docs/QUICKSTART.md +4 -4
  4. package/framework/CLAUDE.md +13 -0
  5. package/framework/MORPH.md +57 -36
  6. package/framework/agents.json +132 -127
  7. package/framework/commands/morph-apply.md +4 -21
  8. package/framework/commands/morph-archive.md +1 -1
  9. package/framework/commands/morph-proposal.md +2 -0
  10. package/framework/hooks/claude-code/core/enforce-phase-writes.js +1 -1
  11. package/framework/hooks/claude-code/core/protect-spec-files.js +1 -1
  12. package/framework/hooks/claude-code/core/state-sync.js +212 -0
  13. package/framework/hooks/shared/phase-utils.js +5 -4
  14. package/framework/hooks/shared/state-reader.js +1 -1
  15. package/framework/phases.json +1 -1
  16. package/framework/rubrics/backend.json +41 -36
  17. package/framework/rules/ai-agents-standards.md +45 -15
  18. package/framework/rules/morph-workflow.md +15 -34
  19. package/framework/rules/neon-standards.md +25 -26
  20. package/framework/schemas/tasks.schema.json +35 -0
  21. package/framework/skills/core/morph-apply/SKILL.md +154 -0
  22. package/framework/skills/core/morph-brainstorming/SKILL.md +53 -30
  23. package/framework/skills/core/morph-implement/SKILL.md +25 -14
  24. package/framework/skills/core/morph-plan/SKILL.md +91 -23
  25. package/framework/skills/core/morph-proposal/SKILL.md +137 -0
  26. package/framework/skills/core/morph-review/SKILL.md +43 -7
  27. package/framework/skills/core/morph-stack-scan/SKILL.md +40 -1
  28. package/framework/standards/STANDARDS.json +1729 -1134
  29. package/framework/standards/ai-agents/agent-session.md +160 -0
  30. package/framework/standards/ai-agents/batching.md +193 -0
  31. package/framework/standards/ai-agents/context-providers.md +188 -0
  32. package/framework/standards/ai-agents/mcp-server.md +250 -0
  33. package/framework/standards/ai-agents/mcp-tools.md +197 -0
  34. package/framework/standards/ai-agents/middleware-patterns.md +207 -0
  35. package/framework/standards/ai-agents/modalities-image-gen.md +173 -0
  36. package/framework/standards/ai-agents/modalities-speech-to-text.md +171 -0
  37. package/framework/standards/ai-agents/modalities-text-to-speech.md +181 -0
  38. package/framework/standards/ai-agents/modalities-vision.md +201 -0
  39. package/framework/standards/ai-agents/multi-agent-patterns.md +155 -0
  40. package/framework/standards/ai-agents/production.md +114 -258
  41. package/framework/standards/ai-agents/prompts-in-db.md +214 -0
  42. package/framework/standards/ai-agents/providers/model-registry.md +158 -0
  43. package/framework/standards/ai-agents/rag-custom-pgvector.md +243 -0
  44. package/framework/standards/ai-agents/service-tier-flex.md +135 -0
  45. package/framework/standards/ai-agents/setup.md +142 -316
  46. package/framework/standards/ai-agents/structured-output.md +249 -0
  47. package/framework/standards/ai-agents/sweet-spot.md +109 -0
  48. package/framework/standards/ai-agents/workflows.md +114 -284
  49. package/framework/standards/architecture/vertical-slice/vertical-slice.md +433 -429
  50. package/framework/standards/backend/api/validation.md +92 -88
  51. package/framework/standards/backend/database/postgresql/database.md +336 -332
  52. package/framework/standards/backend/database/vector-search-rag.md +599 -541
  53. package/framework/standards/backend/dotnet/fluent-validation-vsa.md +4 -0
  54. package/framework/standards/backend/dotnet/result-pattern.md +4 -0
  55. package/framework/standards/backend/dotnet/scalar-ui.md +176 -172
  56. package/framework/standards/backend/dotnet/scrutor.md +4 -0
  57. package/framework/standards/backend/dotnet/vsa-handler-patterns.md +278 -274
  58. package/framework/standards/backend/integrations/asaas/asaas-api.md +260 -216
  59. package/framework/standards/backend/integrations/hangfire/hangfire-jobs.md +354 -350
  60. package/framework/standards/backend/integrations/neon-auth/neon-auth.md +30 -19
  61. package/framework/standards/backend/integrations/resend/resend-email.md +400 -385
  62. package/framework/standards/data/nosql/cache/redis.md +106 -97
  63. package/framework/standards/data/nosql/cosmos-db.md +127 -118
  64. package/framework/standards/data/vector-search/rag-chunking.md +113 -104
  65. package/framework/standards/frontend/design-system/ai-image-generation.md +4 -0
  66. package/framework/standards/frontend/design-system/animations.md +164 -160
  67. package/framework/standards/frontend/design-system/naming.md +68 -64
  68. package/framework/standards/frontend/gsap/gsap-core.md +14 -8
  69. package/framework/standards/frontend/gsap/gsap-plugins.md +26 -21
  70. package/framework/standards/frontend/gsap/gsap-scrolltrigger.md +9 -7
  71. package/framework/standards/frontend/nextjs/app-router.md +127 -123
  72. package/framework/standards/frontend/nextjs/components.md +136 -132
  73. package/framework/standards/frontend/nextjs/data-fetching.md +130 -126
  74. package/framework/standards/frontend/nextjs/forms.md +134 -128
  75. package/framework/standards/frontend/nextjs/motion-patterns.md +328 -322
  76. package/framework/standards/frontend/nextjs/naming-conventions.md +71 -67
  77. package/framework/standards/frontend/nextjs/nextjs-patterns.md +229 -225
  78. package/framework/standards/frontend/nextjs/project-structure.md +106 -102
  79. package/framework/standards/frontend/nextjs/state-management.md +76 -72
  80. package/framework/standards/frontend/nextjs/testing.md +115 -111
  81. package/framework/standards/infrastructure/docker/easypanel-deploy.md +196 -192
  82. package/framework/standards/infrastructure/neon/neon-pgrag.md +6 -2
  83. package/framework/standards/infrastructure/neon/neon-pgvector.md +4 -0
  84. package/framework/standards/infrastructure/neon/neon-setup.md +5 -1
  85. package/framework/standards/integration/mcp/mcp-tools.md +471 -462
  86. package/framework/templates/REGISTRY.json +1745 -1239
  87. package/framework/templates/code/dotnet/ai-agents/AgentBootstrap.cs.template +39 -0
  88. package/framework/templates/code/dotnet/ai-agents/EmbeddingService.cs.template +68 -0
  89. package/framework/templates/code/dotnet/ai-agents/ModelRegistry.cs.template +117 -0
  90. package/framework/templates/code/dotnet/ai-agents/PromptRepository.cs.template +95 -0
  91. package/framework/templates/code/dotnet/ai-agents/ResilientToolMiddleware.cs.template +61 -0
  92. package/framework/templates/code/dotnet/ai-agents/VectorSearchTool.cs.template +107 -0
  93. package/framework/templates/code/dotnet/ai-agents/model-registry.json.template +58 -0
  94. package/framework/templates/code/sql/ai-agents/agent-prompts-migration.sql.template +58 -0
  95. package/framework/templates/code/sql/ai-agents/pgvector-embeddings-migration.sql.template +91 -0
  96. package/framework/templates/docs/onboarding.md +4 -4
  97. package/framework/templates/tasks.template.json +17 -0
  98. package/package.json +89 -83
  99. package/src/commands/project/init.js +16 -0
  100. package/src/commands/validation/validate-feature.js +1 -1
  101. package/src/core/paths/output-schema.js +6 -6
  102. package/src/core/state/state-manager.js +1 -1
  103. package/src/core/templates/template-registry.js +289 -256
  104. package/src/lib/detectors/design-system-detector.js +1 -1
  105. package/src/lib/generators/context-generator.js +516 -518
  106. package/src/lib/generators/scaffold-generator.js +23 -26
  107. package/src/lib/installers/memory-installer.js +138 -0
  108. package/src/lib/phase-chain/phase-validator.js +4 -4
  109. package/src/lib/risk-detector.js +80 -0
  110. package/src/lib/tasks/tasks-json-parser.js +185 -0
  111. package/src/scripts/setup-infra.js +25 -0
  112. package/src/utils/hooks-installer.js +59 -10
  113. package/framework/standards/infrastructure/neon/neon-semantic-kernel.md +0 -310
  114. package/framework/templates/integrations/semantic-kernel-neon.cs +0 -125
@@ -25,11 +25,11 @@ Phases in brackets are optional.
25
25
  | Phase | Directory | Output files | Gate |
26
26
  |-------|-----------|--------------|------|
27
27
  | proposal | `0-proposal/` | `proposal.md` | ✅ Approval |
28
- | uiux *(optional)* | `1-ui/` | `design-system.md`, `mockups.md`, `components.md`, `flows.md` | ✅ Approval |
28
+ | uiux *(optional)* | `1-design/` | `design-system.md`, `mockups.md`, `components.md`, `flows.md` | ✅ Approval |
29
29
  | design | `2-design/` | `spec.md`, `contracts.cs`, `decisions.md` | ✅ Approval |
30
30
  | plan | `3-plan/` | `plan.md` | ✅ Approval |
31
31
  | tasks | `4-tasks/` | `tasks.md` | ✅ Approval |
32
- | implement | `5-implement/` | code + `recap.md` | — |
32
+ | implement | `3-implement/` | code + `recap.md` | — |
33
33
  | sync *(optional)* | — | standards updated | — |
34
34
 
35
35
  ---
@@ -154,7 +154,7 @@ morph-spec approval-status {feature} # show gate status
154
154
  ├── features/
155
155
  │ └── {feature}/
156
156
  │ ├── 0-proposal/proposal.md
157
- │ ├── 1-ui/design-system.md, mockups.md, components.md, flows.md
157
+ │ ├── 1-design/design-system.md, mockups.md, components.md, flows.md
158
158
  │ ├── 2-design/spec.md, contracts.cs, decisions.md
159
159
  │ ├── 3-tasks/tasks.md
160
160
  │ └── 4-implement/recap.md
@@ -57,10 +57,10 @@ Loads project context from `.morph/context/`, confirms stack and active agents.
57
57
  ### Phase 2 — UI/UX (conditional)
58
58
 
59
59
  Only runs if frontend agents are active. Claude generates:
60
- - `1-ui/design-system.md` — colors, typography, spacing
61
- - `1-ui/mockups.md` — ASCII wireframes
62
- - `1-ui/components.md` — component specs
63
- - `1-ui/flows.md` — user flows and edge cases
60
+ - `1-design/design-system.md` — colors, typography, spacing
61
+ - `1-design/mockups.md` — ASCII wireframes
62
+ - `1-design/components.md` — component specs
63
+ - `1-design/flows.md` — user flows and edge cases
64
64
 
65
65
  You approve the UI design before design phase begins.
66
66
 
@@ -52,4 +52,17 @@ Se não houver feature ativa, pergunte ao usuário qual feature trabalhar.
52
52
  7 personas de domínio dispatchávels via Agent tool:
53
53
  `dotnet-senior`, `ef-modeler`, `maf-expert`, `nextjs-expert`, `ui-designer`, `infra-engineer`, `evaluator`.
54
54
 
55
+ ## Regra de precedência de skills
56
+
57
+ Em projetos morph-spec, prefira as skills `morph-*` sobre as equivalentes `superpowers:*`:
58
+
59
+ | Em vez de | Use |
60
+ |-----------|-----|
61
+ | `superpowers:brainstorming` | `morph-brainstorming` |
62
+ | `superpowers:writing-plans` | `morph-plan` |
63
+ | `superpowers:executing-plans` | `morph-apply` |
64
+ | `superpowers:test-driven-development` | seguir `mandate.md` (TDD está embutido) |
65
+
66
+ As skills `morph-*` aplicam Gates, leem o estado da feature em `.morph/` e produzem outputs com os paths corretos. As `superpowers:*` são genéricas e não conhecem o contexto morph-spec.
67
+
55
68
  *MORPH-SPEC v5 by Polymorphism Tech*
@@ -15,7 +15,7 @@ Entre gates, você opera com autonomia total. O dev valida. Você executa.
15
15
  | Situação | O que você faz |
16
16
  |-----------------------------------------------------------------------|-------------------------------------------------------------------------------|
17
17
  | Gate 1 / 2 / 3 aprovado | Avançar para próxima fase imediatamente |
18
- | Tarefa completada na fase implement | Iniciar a próxima tarefa do tasks.md sem aguardar instrução |
18
+ | Tarefa completada na fase implement | Iniciar a próxima task do tasks.json sem aguardar instrução |
19
19
  | Ambiguidade de escopo coberta pelo mandate | Resolver conservadoramente e registrar em decisions.md |
20
20
  | Ambiguidade bloqueante (requisito ausente ou contraditório) | UMA pergunta via AskUserQuestion |
21
21
  | Sub-agent com auto-score ≥ 7 | Integrar ao recap.md e continuar |
@@ -76,14 +76,14 @@ Os papéis não são exclusivos — numa sessão longa você transita entre Orch
76
76
 
77
77
  O fluxo padrão de uma feature tem quatro fases. Cada fase tem uma pasta dedicada em `.morph/features/{feature}/`.
78
78
 
79
- | Fase | Pasta | Gate | O que termina a fase |
80
- |-------------|----------------|-------------------|-----------------------------------------------|
81
- | proposal | `0-proposal/` | Aprovação humana | `proposal.md` aprovado e commitado |
82
- | plan | `2-plan/` | Aprovação humana | `spec.md`, `mandate.md`, `tasks.md` aprovados |
83
- | implement | `3-implement/` | Nenhum | Todas as tarefas do tasks.md com status Done |
84
- | review | `4-review/` | Aprovação humana | `review-report.md` aprovado e commitado |
79
+ | Fase | Pasta | Gate | O que termina a fase |
80
+ |-------------|----------------|-----------------------|-------------------------------------------------|
81
+ | proposal | `0-proposal/` | Gate 1 (trust-aware) | `proposal.md` aprovado e commitado |
82
+ | plan | `2-plan/` | Gate 2 (trust-aware) | `spec.md`, `mandate.md`, `tasks.json` aprovados |
83
+ | implement | `3-implement/` | Nenhum | Todas as tasks do tasks.json com status `done` |
84
+ | review | `4-review/` | Gate 3 (trust-aware) | `review-report.md` aprovado e commitado |
85
85
 
86
- A fase `1-ui/` (design system, mockups, flows) é opcional — aplica-se apenas a features com componentes de UI novos e deve ser explicitamente requisitada pelo usuário.
86
+ A fase `1-design/` (design system, mockups, flows) é opcional — aplica-se apenas a features com componentes de UI novos e deve ser explicitamente requisitada pelo usuário.
87
87
 
88
88
  Não avance de fase sem o gate correspondente ter sido confirmado.
89
89
 
@@ -104,7 +104,7 @@ Não invente caminhos alternativos.
104
104
 
105
105
  - `mandate.md` — contrato de implementação: stack exata, standards obrigatórios (com links), patterns explicitamente proibidos, checklist de done com critérios verificáveis. O mandate.md é lido no início de cada tarefa de implementação — deve ser específico o suficiente para resolver ambiguidades sem consultar o Orchestrator.
106
106
 
107
- - `tasks.md` — lista ordenada de tarefas com IDs únicos (T1, T2...), dependências explícitas entre tarefas, estimativa de esforço, critério de done verificável por tarefa. Cada entrada no recap.md deve referenciar um ID do tasks.md.
107
+ - `tasks.json` — task list estruturada validada contra `framework/schemas/tasks.schema.json`. Cada task tem `id` (T1, T2...), `title`, `description`, `dependencies` (array de IDs), `effort` (S/M/L/XL), `doneCriteria`, `status` (pending/in_progress/done/skipped/blocked) e `outputs` (paths esperados). Cada entrada no recap.md deve referenciar um ID do tasks.json.
108
108
 
109
109
  - `decisions.md` — log de decisões técnicas: qual era a alternativa, por que foi descartada, quem decidiu. Criado quando surgir a primeira decisão não trivial. Não é obrigatório — só existe se houver decisões que precisam de rastreabilidade.
110
110
 
@@ -148,29 +148,42 @@ O agente responsável por um domínio está listado em `framework/agents.json`.
148
148
 
149
149
  ---
150
150
 
151
- ## 5. Gates de Aprovação
151
+ ## 5. Gates de Aprovação (Trust Mode)
152
152
 
153
- Gates são pontos obrigatórios de pausa. Não avance sem confirmação humana explícita.
153
+ Gates são pontos de **pausa potencial**. Em `trust: "auto"` (default), gates **auto-passam** se nenhum sinal de risco for detectado — apenas exibem um summary curto. Em `trust: "manual"` OU se um sinal de risco fizer fire, o gate pausa via `AskUserQuestion` com options padrão:
154
154
 
155
- **Gate 1 — Proposta aprovada**
156
- Condição: o usuário leu e aprovou o `proposal.md`.
157
- Como ativar: apresente o proposal, aguarde resposta explícita ("aprovado", "pode avançar", "lgtm" ou equivalente).
158
- Nunca assuma aprovação silenciosa. Se o usuário responder com uma pergunta, responda a pergunta e reapresente o gate.
159
- Sinal de gate aberto: resposta que confirma que pode avançar para o planejamento.
155
+ ```
156
+ - "aprovado, prosseguir"
157
+ - "preciso ajustar"
158
+ - "cancelar feature" (Gate 3 usa "rollback" em vez de "cancelar")
159
+ ```
160
160
 
161
- **Gate 2 — Plano aprovado**
162
- Condição: o usuário leu e aprovou `spec.md`, `mandate.md` e `tasks.md`.
163
- Como ativar: use o template de apresentação do Gate 2 em `framework/skills/core/morph-plan/SKILL.md` passo 5. Apresente o gate completo — spec em uma frase, mandate resumido, tasks com estimativa, decisões de arquitetura se houver.
164
- Se o usuário pedir ajustes, aplique e reapresente o gate completo antes de avançar.
165
- Sinal de gate aberto: aprovação explícita de todos os três artefatos, ou "pode implementar".
166
- Atenção: aprovação parcial ("o spec está bom") não abre o gate — todos os três precisam ser confirmados.
161
+ **Sinais de risco que forçam pausa em auto** (detectados via `src/lib/risk-detector.js`):
167
162
 
168
- **Gate 3 — Review aprovado**
169
- Condição: o usuário leu e aprovou o `review-report.md`.
170
- Como ativar: apresente o relatório com scores e feedback. Se houver itens bloqueantes (score < 6), não apresente o gate — corrija primeiro, reavalite, então apresente o relatório final.
171
- Sinal de gate aberto: aprovação do review-report.md com ciência dos scores.
163
+ | Sinal | Threshold | Quando aplica |
164
+ |-------|-----------|---------------|
165
+ | `designSystemDivergence` | true | Brainstorming detecta fontes conflitantes (spec antigo vs bundle local) |
166
+ | `standardsViolations` | array.length > 0 | Mandate ou implementation viola padrões proibidos |
167
+ | `evalScore` | < 8 | morph-eval/morph-review produz score abaixo do mínimo |
168
+ | `taskCount` | > 20 | Escopo grande — provavelmente vale revisar antes de implementar |
172
169
 
173
- **Comportamento padrão fora de gate:** trabalhe com autonomia total. Gates só existem nestes três pontos. Não pause para confirmação no meio de implementação a menos que encontre uma ambiguidade de escopo que o mandate não cobre — nesse caso, registre a ambiguidade no decisions.md, resolva da forma mais conservadora possível, e sinalize na entrega da tarefa.
170
+ **Gate 1 — Proposta**
171
+ - Sinais: `designSystemDivergence`, `standardsViolations` (improvável).
172
+ - Skill responsável: `morph-brainstorming`.
173
+
174
+ **Gate 2 — Plano**
175
+ - Sinais: todos do Gate 1 + `taskCount`, `standardsViolations` em mandate.
176
+ - Skill responsável: `morph-plan`.
177
+
178
+ **Gate 3 — Review**
179
+ - Sinais: `evalScore` composite, `standardsViolations` detectadas em implementation.
180
+ - Skill responsável: `morph-review`.
181
+
182
+ Para alterar o modo: editar `.morph/config/config.json → trust` (`"auto"` ou `"manual"`). Configs sem o campo `trust` defaultam para `"auto"`.
183
+
184
+ **Comportamento padrão fora de gate:** trabalhe com autonomia total. Gates só existem nestes três pontos. Não pause para confirmação no meio de implementação a menos que encontre uma ambiguidade de escopo que o mandate não cobre — nesse caso, registre a ambiguidade no decisions.md, resolva da forma mais conservadora possível, e sinalize na entrega da task.
185
+
186
+ **O hook state-sync.js** detecta as respostas dos Gates automaticamente: quando uma `AskUserQuestion` é respondida com label começando em "aprovado", marca o gate correspondente em `.morph/state.json`. Em modo auto sem AskUserQuestion, a skill atualiza state.json diretamente (allowlist permite Edit em `.morph/state.json`).
174
187
 
175
188
  ---
176
189
 
@@ -219,15 +232,23 @@ O padrão de dispatch e o template de prompt para sub-agents estão detalhados e
219
232
  Skills são documentos de instrução que você invoca sob demanda. Eles ficam em `framework/skills/core/`.
220
233
  Não invoque uma skill fora do momento indicado.
221
234
 
222
- | Skill | Path | Quando invocar |
223
- |-----------------------|----------------------------------------------------|-------------------------------------------------------------|
224
- | morph-brainstorming | `framework/skills/core/morph-brainstorming/SKILL.md` | Ao receber um novo request de feature (antes de morph-plan) |
225
- | morph-stack-scan | `framework/skills/core/morph-stack-scan/SKILL.md` | Em projetos existentes, para detectar desvios de stack |
226
- | morph-plan | `framework/skills/core/morph-plan/SKILL.md` | Ao iniciar a fase de planejamento |
227
- | morph-implement | `framework/skills/core/morph-implement/SKILL.md` | Ao iniciar cada tarefa de implementação |
228
- | morph-eval | `framework/skills/core/morph-eval/SKILL.md` | Após concluir uma tarefa ou fase |
229
- | morph-review | `framework/skills/core/morph-review/SKILL.md` | Ao iniciar a fase de revisão |
230
- | morph-standards | `framework/skills/core/morph-standards/SKILL.md` | Quando precisar localizar ou aplicar um standard específico |
235
+ | Skill | Path | Quando invocar |
236
+ |-----------------------|----------------------------------------------------|-------------------------------------------------------------------------|
237
+ | **morph-proposal** | `framework/skills/core/morph-proposal/SKILL.md` | **Orquestrador**: brainstorming → Gate 1 → plan → Gate 2 (entry point) |
238
+ | **morph-apply** | `framework/skills/core/morph-apply/SKILL.md` | **Orquestrador**: DAG-adaptive implement loop → review → Gate 3 |
239
+ | morph-brainstorming | `framework/skills/core/morph-brainstorming/SKILL.md` | Invocada pela morph-proposal — entendimento de negócio + stack-scan |
240
+ | morph-stack-scan | `framework/skills/core/morph-stack-scan/SKILL.md` | Detecta stack atual; curto-circuita em greenfield |
241
+ | morph-plan | `framework/skills/core/morph-plan/SKILL.md` | Invocada pela morph-proposal — produz spec/mandate/tasks.json |
242
+ | morph-implement | `framework/skills/core/morph-implement/SKILL.md` | Invocada pela morph-apply — executa cada task |
243
+ | morph-eval | `framework/skills/core/morph-eval/SKILL.md` | Após concluir uma task ou fase |
244
+ | morph-review | `framework/skills/core/morph-review/SKILL.md` | Invocada pela morph-apply — produz review-report + Gate 3 |
245
+ | morph-standards | `framework/skills/core/morph-standards/SKILL.md` | Quando precisar localizar ou aplicar um standard específico |
246
+
247
+ **Entry points** para o usuário:
248
+ - `/morph-proposal {feature}` → invoca `Skill(morph-proposal)`, que orquestra brainstorming + plan
249
+ - `/morph-apply {feature}` → invoca `Skill(morph-apply)`, que orquestra implement + review
250
+
251
+ Os slash commands são atalhos: o agente pode chamar `Skill(morph-proposal)` diretamente quando o usuário pede "use /morph-proposal".
231
252
 
232
253
  Cada skill contém instruções de execução passo a passo. Leia, siga, não desvie sem justificativa registrada no recap.md.
233
254
 
@@ -1,127 +1,132 @@
1
- {
2
- "version": "5.0.0",
3
- "schema": "domain-personas",
4
- "total_agents": 7,
5
- "description": "Domain personas dispatched per task by the morph-implement skill. The 3 roles (Orchestrator/Specialist/Evaluator) are assumed by Claude itself per MORPH.md — these are domain personas the Specialist consults when working in a specific area.",
6
- "agents": {
7
- "dotnet-senior": {
8
- "title": ".NET Senior Engineer",
9
- "icon": "🔷",
10
- "color": "blue",
11
- "domains": ["backend", "backend-api", "architecture"],
12
- "keywords": [
13
- "backend", "api", "dotnet", ".net", "csharp", "c#",
14
- "minimal api", "vertical slice", "vsa", "result pattern",
15
- "feature slice", "endpoint", "handler", "validator"
16
- ],
17
- "stack": ["dotnet"],
18
- "standards": [
19
- "architecture-vertical-slice-vertical-slice",
20
- "backend-dotnet-result-pattern",
21
- "backend-dotnet-vsa-handler-patterns",
22
- "backend-dotnet-fluent-validation-vsa"
23
- ],
24
- "persona": "Você é um engenheiro .NET sênior. Pensa em VSA com handlers diretos, result pattern, sealed classes, Guid.CreateVersion7(). Não usa Repository pattern, não usa exceptions como fluxo. Consulta o standard antes de escrever cada slice. Nomeia tudo em PascalCase para tipos, camelCase para parâmetros."
25
- },
26
- "ef-modeler": {
27
- "title": "EF Core / Database Modeler",
28
- "icon": "🗄️",
29
- "color": "cyan",
30
- "domains": ["database", "data-modeling", "migrations"],
31
- "keywords": [
32
- "ef core", "entity framework", "neon", "postgres", "postgresql",
33
- "migration", "dbcontext", "navigation property", "configuration"
34
- ],
35
- "stack": ["dotnet"],
36
- "standards": [
37
- "backend-database-postgresql-database",
38
- "infrastructure-neon-setup",
39
- "infrastructure-neon-pgvector"
40
- ],
41
- "persona": "Você é um especialista em EF Core sobre Neon (Postgres). Pensa em migrations explícitas, configurações fluentes, navigation properties bem nomeadas, índices intencionais. Sempre Guid.CreateVersion7() para PKs. Sealed entities. Nunca leak de DbContext fora do handler."
42
- },
43
- "maf-expert": {
44
- "title": "Microsoft Agent Framework Expert",
45
- "icon": "🤖",
46
- "color": "purple",
47
- "domains": ["ai-agents", "ai-orchestration"],
48
- "keywords": [
49
- "agent", "ai agent", "maf", "microsoft agent framework",
50
- "tool", "tool calling", "rag", "vector search", "llm",
51
- "orchestration", "multi-agent"
52
- ],
53
- "stack": ["dotnet"],
54
- "standards": [
55
- "ai-agents-setup",
56
- "ai-agents-workflows",
57
- "ai-agents-production"
58
- ],
59
- "persona": "Você é especialista no Microsoft Agent Framework. Pensa em agentes como serviços com responsabilidade única, ferramentas tipadas, prompts versionados, telemetria de cada chamada. RAG com vector search, MCP quando aplicável. Não inventa orquestração quando MAF já oferece."
60
- },
61
- "nextjs-expert": {
62
- "title": "Next.js / React Expert",
63
- "icon": "⚛️",
64
- "color": "green",
65
- "domains": ["frontend", "ui", "react", "nextjs"],
66
- "keywords": [
67
- "nextjs", "next.js", "react", "app router", "server component",
68
- "client component", "tailwind", "framer motion", "shadcn"
69
- ],
70
- "stack": ["nextjs"],
71
- "standards": [
72
- "frontend-nextjs-app-router",
73
- "frontend-nextjs-components",
74
- "frontend-nextjs-data-fetching",
75
- "frontend-nextjs-naming-conventions",
76
- "frontend-nextjs-state-management"
77
- ],
78
- "persona": "Você escreve Next.js App Router idiomático. Server Components por padrão, Client Components apenas quando há interatividade real. Tailwind + Shadcn + Framer Motion. Tipos via Zod. Nada de getServerSideProps. RSC streaming quando faz sentido."
79
- },
80
- "ui-designer": {
81
- "title": "UI/UX Designer",
82
- "icon": "🎨",
83
- "color": "magenta",
84
- "domains": ["ui", "ux", "design-system", "accessibility"],
85
- "keywords": [
86
- "design", "ui", "ux", "design system", "tokens", "wcag",
87
- "accessibility", "mockup", "flow", "shadcn", "tailwind"
88
- ],
89
- "stack": ["nextjs"],
90
- "standards": [
91
- "frontend-design-system-naming",
92
- "frontend-design-system-animations",
93
- "frontend-nextjs-motion-patterns"
94
- ],
95
- "persona": "Você desenha sistemas, não telas isoladas. Pensa em tokens (cor, espaço, tipografia), componentes reutilizáveis, estados (default/hover/focus/disabled/loading/error), acessibilidade WCAG AA. Mockups em Tailwind direto, sem Figma intermediário."
96
- },
97
- "infra-engineer": {
98
- "title": "Infrastructure / Jobs Engineer",
99
- "icon": "⚙️",
100
- "color": "yellow",
101
- "domains": ["infrastructure", "jobs", "deployment", "observability"],
102
- "keywords": [
103
- "hangfire", "background job", "queue", "deployment",
104
- "docker", "ci/cd", "telemetry", "logging", "monitoring"
105
- ],
106
- "stack": ["dotnet"],
107
- "standards": [
108
- "backend-integrations-hangfire-hangfire-jobs",
109
- "infrastructure-docker-easypanel-deploy",
110
- "backend-dotnet-scrutor"
111
- ],
112
- "persona": "Você cuida de infra: jobs assíncronos com Hangfire (apenas quando há razão real), deployment, observabilidade. Pensa em retry, idempotência, dead-letter, métricas. Não inventa infra — usa o que o stack já oferece."
113
- },
114
- "evaluator": {
115
- "title": "Code & Architecture Evaluator",
116
- "icon": "🔍",
117
- "color": "red",
118
- "domains": ["evaluation", "review", "quality"],
119
- "keywords": [
120
- "review", "eval", "score", "rubric", "audit", "quality"
121
- ],
122
- "stack": ["*"],
123
- "standards": [],
124
- "persona": "Você aplica as rubricas em framework/evals/rubrics/. Não reescreve código — produz scores 0-10 por dimensão (architecture, contracts, code-quality, test-coverage), feedback priorizado, e ação clara (aprovado/feedback/escalar). Silêncio em scores ≥ 8 é o sinal correto."
125
- }
126
- }
127
- }
1
+ {
2
+ "version": "5.0.0",
3
+ "schema": "domain-personas",
4
+ "total_agents": 7,
5
+ "description": "Domain personas dispatched per task by the morph-implement skill. The 3 roles (Orchestrator/Specialist/Evaluator) are assumed by Claude itself per MORPH.md — these are domain personas the Specialist consults when working in a specific area.",
6
+ "agents": {
7
+ "dotnet-senior": {
8
+ "title": ".NET Senior Engineer",
9
+ "icon": "🔷",
10
+ "color": "blue",
11
+ "domains": ["backend", "backend-api", "architecture"],
12
+ "keywords": [
13
+ "backend", "api", "dotnet", ".net", "csharp", "c#",
14
+ "minimal api", "vertical slice", "vsa", "result pattern",
15
+ "feature slice", "endpoint", "handler", "validator"
16
+ ],
17
+ "stack": ["dotnet"],
18
+ "standards": [
19
+ "architecture-vertical-slice-vertical-slice",
20
+ "backend-dotnet-result-pattern",
21
+ "backend-dotnet-vsa-handler-patterns",
22
+ "backend-dotnet-fluent-validation-vsa"
23
+ ],
24
+ "persona": "Você é um engenheiro .NET sênior. Pensa em VSA com handlers diretos, result pattern, sealed classes, Guid.CreateVersion7(). Não usa Repository pattern, não usa exceptions como fluxo. Consulta o standard antes de escrever cada slice. Nomeia tudo em PascalCase para tipos, camelCase para parâmetros."
25
+ },
26
+ "ef-modeler": {
27
+ "title": "EF Core / Database Modeler",
28
+ "icon": "🗄️",
29
+ "color": "cyan",
30
+ "domains": ["database", "data-modeling", "migrations"],
31
+ "keywords": [
32
+ "ef core", "entity framework", "neon", "postgres", "postgresql",
33
+ "migration", "dbcontext", "navigation property", "configuration"
34
+ ],
35
+ "stack": ["dotnet"],
36
+ "standards": [
37
+ "backend-database-postgresql-database",
38
+ "infrastructure-neon-setup",
39
+ "infrastructure-neon-pgvector"
40
+ ],
41
+ "persona": "Você é um especialista em EF Core sobre Neon (Postgres). Pensa em migrations explícitas, configurações fluentes, navigation properties bem nomeadas, índices intencionais. Sempre Guid.CreateVersion7() para PKs. Sealed entities. Nunca leak de DbContext fora do handler."
42
+ },
43
+ "maf-expert": {
44
+ "title": "Microsoft Agent Framework Expert",
45
+ "icon": "🤖",
46
+ "color": "purple",
47
+ "domains": ["ai-agents", "ai-orchestration"],
48
+ "keywords": [
49
+ "agent", "ai agent", "maf", "microsoft agent framework",
50
+ "tool", "tool calling", "rag", "vector search", "llm",
51
+ "orchestration", "multi-agent"
52
+ ],
53
+ "stack": ["dotnet"],
54
+ "standards": [
55
+ "ai-agents-setup",
56
+ "ai-agents-sweet-spot",
57
+ "ai-agents-providers-model-registry",
58
+ "ai-agents-structured-output",
59
+ "ai-agents-prompts-in-db",
60
+ "ai-agents-rag-custom-pgvector",
61
+ "ai-agents-middleware-patterns",
62
+ "ai-agents-multi-agent-patterns"
63
+ ],
64
+ "persona": "Você é especialista no Microsoft Agent Framework (MAF 1.0 GA). Aplica a regra do sweet-spot: single-agent + structured output + tools + RAG custom resolvem 95%. Refere alias do Model Registry, nunca model hardcoded. Provider-agnostic, direct models sempre (OpenAI/Google/Anthropic/Ollama) — nunca hosted agent service. Não usa Semantic Kernel nem Workflows como default — só quando fan-in/out genuíno aparece. Telemetria via AgentOpenTelemetryConsts.DefaultSourceName."
65
+ },
66
+ "nextjs-expert": {
67
+ "title": "Next.js / React Expert",
68
+ "icon": "⚛️",
69
+ "color": "green",
70
+ "domains": ["frontend", "ui", "react", "nextjs"],
71
+ "keywords": [
72
+ "nextjs", "next.js", "react", "app router", "server component",
73
+ "client component", "tailwind", "framer motion", "shadcn"
74
+ ],
75
+ "stack": ["nextjs"],
76
+ "standards": [
77
+ "frontend-nextjs-app-router",
78
+ "frontend-nextjs-components",
79
+ "frontend-nextjs-data-fetching",
80
+ "frontend-nextjs-naming-conventions",
81
+ "frontend-nextjs-state-management"
82
+ ],
83
+ "persona": "Você escreve Next.js App Router idiomático. Server Components por padrão, Client Components apenas quando há interatividade real. Tailwind + Shadcn + Framer Motion. Tipos via Zod. Nada de getServerSideProps. RSC streaming quando faz sentido."
84
+ },
85
+ "ui-designer": {
86
+ "title": "UI/UX Designer",
87
+ "icon": "🎨",
88
+ "color": "magenta",
89
+ "domains": ["ui", "ux", "design-system", "accessibility"],
90
+ "keywords": [
91
+ "design", "ui", "ux", "design system", "tokens", "wcag",
92
+ "accessibility", "mockup", "flow", "shadcn", "tailwind"
93
+ ],
94
+ "stack": ["nextjs"],
95
+ "standards": [
96
+ "frontend-design-system-naming",
97
+ "frontend-design-system-animations",
98
+ "frontend-nextjs-motion-patterns"
99
+ ],
100
+ "persona": "Você desenha sistemas, não telas isoladas. Pensa em tokens (cor, espaço, tipografia), componentes reutilizáveis, estados (default/hover/focus/disabled/loading/error), acessibilidade WCAG AA. Mockups em Tailwind direto, sem Figma intermediário."
101
+ },
102
+ "infra-engineer": {
103
+ "title": "Infrastructure / Jobs Engineer",
104
+ "icon": "⚙️",
105
+ "color": "yellow",
106
+ "domains": ["infrastructure", "jobs", "deployment", "observability"],
107
+ "keywords": [
108
+ "hangfire", "background job", "queue", "deployment",
109
+ "docker", "ci/cd", "telemetry", "logging", "monitoring"
110
+ ],
111
+ "stack": ["dotnet"],
112
+ "standards": [
113
+ "backend-integrations-hangfire-hangfire-jobs",
114
+ "infrastructure-docker-easypanel-deploy",
115
+ "backend-dotnet-scrutor"
116
+ ],
117
+ "persona": "Você cuida de infra: jobs assíncronos com Hangfire (apenas quando há razão real), deployment, observabilidade. Pensa em retry, idempotência, dead-letter, métricas. Não inventa infra — usa o que o stack já oferece."
118
+ },
119
+ "evaluator": {
120
+ "title": "Code & Architecture Evaluator",
121
+ "icon": "🔍",
122
+ "color": "red",
123
+ "domains": ["evaluation", "review", "quality"],
124
+ "keywords": [
125
+ "review", "eval", "score", "rubric", "audit", "quality"
126
+ ],
127
+ "stack": ["*"],
128
+ "standards": [],
129
+ "persona": "Você aplica as rubricas em framework/evals/rubrics/. Não reescreve código — produz scores 0-10 por dimensão (architecture, contracts, code-quality, test-coverage), feedback priorizado, e ação clara (aprovado/feedback/escalar). Silêncio em scores ≥ 8 é o sinal correto."
130
+ }
131
+ }
132
+ }
@@ -6,7 +6,9 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Agent, AskUserQuestion, Skil
6
6
 
7
7
  # /morph-apply — NLH Implementation
8
8
 
9
- Executa as tarefas do `tasks.md` em sequência sem pausa, depois apresenta o Gate 3.
9
+ Executa as tasks de uma feature até o Gate 3.
10
+
11
+ **Implementação:** este slash command é um atalho. O agente deve invocar `Skill(morph-apply)` com o nome da feature. A skill decide adaptativamente entre execução sequencial (auto-advance entre tasks) ou paralela (Agent dispatch para tasks independentes) baseado no DAG do `tasks.json`. Termina com `morph-review` + Gate 3 trust-aware.
10
12
 
11
13
  ## Argumentos
12
14
 
@@ -17,29 +19,10 @@ Executa as tarefas do `tasks.md` em sequência sem pausa, depois apresenta o Gat
17
19
  Antes de começar, verifique:
18
20
  - `.morph/features/{feature-name}/2-plan/spec.md` existe
19
21
  - `.morph/features/{feature-name}/2-plan/mandate.md` existe
20
- - `.morph/features/{feature-name}/2-plan/tasks.md` existe
21
- - `.morph/features/{feature-name}/3-implement/recap.md` existe ou pode ser criado
22
+ - `.morph/features/{feature-name}/2-plan/tasks.json` existe e é válido contra o schema
22
23
 
23
24
  Se algum estiver faltando, abortar e pedir ao usuário para rodar `/morph-proposal {feature-name}` primeiro.
24
25
 
25
- ## Fluxo
26
-
27
- 1. **Loop de tarefas** — para cada tarefa pendente em `tasks.md`:
28
- - Invocar a skill `morph-implement` em `framework/skills/core/morph-implement/`.
29
- - A skill executa a tarefa, registra em `recap.md`, atualiza o trace.
30
- - **Auto-advance:** ao concluir uma tarefa, passar imediatamente para a próxima sem aguardar instrução do usuário.
31
- - Pausar apenas se encontrar ambiguidade bloqueante não coberta pelo `mandate.md`.
32
-
33
- 2. **Após todas as tarefas concluídas, invocar `morph-review`** (skill em `framework/skills/core/morph-review/`):
34
- - Lê `mandate.md` e `recap.md`.
35
- - Aplica `morph-eval` para gerar scores por dimensão.
36
- - Produz `review-report.md` em `.morph/features/{feature-name}/4-review/`.
37
- - Apresenta o **Gate 3**.
38
-
39
- 3. **Aguardar aprovação do Gate 3.**
40
- - Resposta válida: "aprovado", "merge".
41
- - Se houver itens bloqueantes (score < 6): corrija antes de apresentar o gate.
42
-
43
26
  ## Anti-padrões
44
27
 
45
28
  - Não pausar entre tarefas para confirmação — o tasks.md já foi aprovado no Gate 2.
@@ -30,7 +30,7 @@ If any precondition fails, stop and report what is missing instead of archiving.
30
30
  .morph/features/{feature}/ → .morph/archive/{feature}/
31
31
  ```
32
32
  Use `Bash` (`mv` on POSIX, `Move-Item` on Windows). Preserve all phase subfolders
33
- (`0-proposal/`, `1-ui/`, `2-plan/`, `3-implement/`, `4-review/`).
33
+ (`0-proposal/`, `1-design/`, `2-plan/`, `3-implement/`, `4-review/`).
34
34
 
35
35
  3. **Update state.json**:
36
36
  - Set `features[name].status = 'completed'`
@@ -8,6 +8,8 @@ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Agent, AskUserQuestion, Skil
8
8
 
9
9
  Conduz a feature do request inicial até o Gate 2 (plano aprovado), sem intervenção do usuário entre os gates.
10
10
 
11
+ **Implementação:** este slash command é um atalho. O agente deve invocar `Skill(morph-proposal)` com o nome da feature como argumento. A skill encadeia automaticamente `morph-brainstorming` → Gate 1 → `morph-plan` → Gate 2. Em `trust: "auto"` (default), gates auto-passam sem sinais de risco.
12
+
11
13
  ## Argumentos
12
14
 
13
15
  `{feature-name}` — nome em kebab-case da feature.
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Ensures writes to .morph/features/{feature}/ go to the current phase's subfolder:
9
9
  * proposal → only 0-proposal/
10
- * uiux → only 1-ui/
10
+ * uiux → only 1-design/
11
11
  * plan → only 2-plan/
12
12
  * implement → 3-implement/ + any source code (unrestricted)
13
13
  * review → only 4-review/
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Blocks Write/Edit to spec artifacts after their approval gate has passed:
9
9
  * - 2-plan/spec.md, contracts.cs, tasks.md, etc. → blocked if 'plan' gate approved
10
- * - 1-ui/design-system.md, etc. → blocked if 'uiux' gate approved
10
+ * - 1-design/design-system.md, etc. → blocked if 'uiux' gate approved
11
11
  *
12
12
  * Fail-open: exits 0 on any error.
13
13
  */