@polymorphism-tech/morph-spec 4.7.1 → 4.8.1

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 (138) hide show
  1. package/.morph/analytics/threads-log.jsonl +54 -0
  2. package/.morph/state.json +198 -0
  3. package/LICENSE +1 -2
  4. package/README.md +379 -414
  5. package/bin/morph-spec.js +57 -403
  6. package/bin/validate.js +2 -26
  7. package/claude-plugin.json +2 -2
  8. package/docs/ARCHITECTURE.md +43 -46
  9. package/docs/CHEATSHEET.md +203 -221
  10. package/docs/COMMAND-FLOWS.md +319 -289
  11. package/docs/QUICKSTART.md +2 -8
  12. package/docs/plans/2026-02-22-claude-docs-morph-alignment-analysis.md +2 -0
  13. package/docs/plans/2026-02-22-claude-settings.md +2 -0
  14. package/docs/plans/2026-02-22-morph-cc-alignment-impl.md +2 -0
  15. package/docs/plans/2026-02-22-morph-spec-next.md +2 -0
  16. package/docs/plans/2026-02-22-native-alignment-design.md +2 -0
  17. package/docs/plans/2026-02-22-native-alignment-impl.md +2 -0
  18. package/docs/plans/2026-02-22-native-enrichment-design.md +2 -0
  19. package/docs/plans/2026-02-22-native-enrichment.md +2 -0
  20. package/docs/plans/2026-02-23-ddd-architecture-refactor.md +2 -0
  21. package/docs/plans/2026-02-23-ddd-nextsteps.md +2 -0
  22. package/docs/plans/2026-02-23-infra-architect-refactor.md +2 -0
  23. package/docs/plans/2026-02-23-nextjs-code-review-design.md +2 -1
  24. package/docs/plans/2026-02-23-nextjs-code-review-impl.md +2 -0
  25. package/docs/plans/2026-02-23-nextjs-standards-design.md +2 -1
  26. package/docs/plans/2026-02-23-nextjs-standards-impl.md +2 -0
  27. package/docs/plans/2026-02-24-cli-radical-simplification.md +592 -0
  28. package/docs/plans/2026-02-24-framework-failure-points.md +125 -0
  29. package/docs/plans/2026-02-24-morph-init-design.md +337 -0
  30. package/docs/plans/2026-02-24-morph-init-impl.md +1269 -0
  31. package/docs/plans/2026-02-24-tutorial-command-design.md +71 -0
  32. package/docs/plans/2026-02-24-tutorial-command.md +298 -0
  33. package/framework/CLAUDE.md +2 -2
  34. package/framework/commands/morph-proposal.md +3 -3
  35. package/framework/hooks/README.md +11 -10
  36. package/framework/hooks/claude-code/notification/approval-reminder.js +2 -0
  37. package/framework/hooks/claude-code/post-tool-use/dispatch.js +1 -1
  38. package/framework/hooks/claude-code/pre-tool-use/protect-readonly-files.js +4 -55
  39. package/framework/hooks/claude-code/session-start/inject-morph-context.js +20 -5
  40. package/framework/hooks/claude-code/statusline.py +6 -1
  41. package/framework/hooks/claude-code/stop/validate-completion.js +1 -1
  42. package/framework/hooks/claude-code/user-prompt/enrich-prompt.js +1 -1
  43. package/framework/hooks/dev/check-sync-health.js +117 -0
  44. package/framework/hooks/dev/guard-version-numbers.js +57 -0
  45. package/framework/hooks/dev/sync-standards-registry.js +60 -0
  46. package/framework/hooks/dev/sync-template-registry.js +60 -0
  47. package/framework/hooks/dev/validate-skill-format.js +70 -0
  48. package/framework/hooks/dev/validate-standard-format.js +73 -0
  49. package/framework/hooks/shared/payload-utils.js +39 -0
  50. package/framework/hooks/shared/state-reader.js +25 -1
  51. package/framework/rules/morph-workflow.md +1 -1
  52. package/framework/skills/level-0-meta/morph-init/SKILL.md +216 -0
  53. package/framework/skills/level-0-meta/morph-replicate/SKILL.md +4 -4
  54. package/framework/skills/level-0-meta/tool-usage-guide/SKILL.md +4 -4
  55. package/framework/skills/level-0-meta/verification-before-completion/SKILL.md +1 -1
  56. package/framework/skills/level-1-workflows/phase-clarify/SKILL.md +192 -191
  57. package/framework/skills/level-1-workflows/phase-codebase-analysis/SKILL.md +181 -180
  58. package/framework/skills/level-1-workflows/phase-design/SKILL.md +339 -338
  59. package/framework/skills/level-1-workflows/phase-implement/SKILL.md +254 -253
  60. package/framework/skills/level-1-workflows/phase-setup/SKILL.md +168 -170
  61. package/framework/skills/level-1-workflows/phase-tasks/SKILL.md +284 -283
  62. package/framework/skills/level-1-workflows/phase-uiux/SKILL.md +246 -245
  63. package/framework/templates/examples/design-system-examples.md +1 -1
  64. package/framework/templates/ui/FluentDesignTheme.cs +1 -1
  65. package/framework/templates/ui/MudTheme.cs +1 -1
  66. package/framework/templates/ui/design-system.css +1 -1
  67. package/package.json +4 -2
  68. package/scripts/bump-version.js +248 -0
  69. package/scripts/install-dev-hooks.js +138 -0
  70. package/src/commands/agents/index.js +1 -2
  71. package/src/commands/index.js +13 -16
  72. package/src/commands/project/doctor.js +100 -14
  73. package/src/commands/project/index.js +7 -10
  74. package/src/commands/project/init.js +398 -555
  75. package/src/commands/project/install-plugin-cmd.js +28 -0
  76. package/src/commands/project/setup-infra-cmd.js +12 -0
  77. package/src/commands/project/tutorial.js +115 -0
  78. package/src/commands/project/update.js +22 -37
  79. package/src/commands/state/approve.js +213 -221
  80. package/src/commands/state/index.js +0 -1
  81. package/src/commands/state/state.js +337 -365
  82. package/src/commands/templates/index.js +0 -4
  83. package/src/commands/trust/trust.js +1 -93
  84. package/src/commands/utils/index.js +1 -5
  85. package/src/commands/validation/index.js +1 -5
  86. package/src/core/registry/command-registry.js +11 -285
  87. package/src/core/state/state-manager.js +5 -2
  88. package/src/lib/detectors/index.js +81 -87
  89. package/src/lib/detectors/structure-detector.js +275 -273
  90. package/src/lib/generators/recap-generator.js +232 -225
  91. package/src/lib/installers/mcp-installer.js +18 -3
  92. package/src/scripts/global-install.js +34 -0
  93. package/src/scripts/install-plugin.js +126 -0
  94. package/src/scripts/setup-infra.js +203 -0
  95. package/src/utils/agents-installer.js +10 -1
  96. package/src/utils/hooks-installer.js +70 -17
  97. package/CLAUDE.md +0 -77
  98. package/docs/claude-alignment-report.md +0 -137
  99. package/docs/examples/order-management/contracts.cs +0 -84
  100. package/docs/examples/order-management/proposal.md +0 -24
  101. package/docs/examples/order-management/spec.md +0 -162
  102. package/src/commands/feature/create-story.js +0 -362
  103. package/src/commands/feature/index.js +0 -6
  104. package/src/commands/feature/shard-spec.js +0 -225
  105. package/src/commands/feature/sprint-status.js +0 -250
  106. package/src/commands/generation/generate-onboarding.js +0 -169
  107. package/src/commands/generation/generate.js +0 -276
  108. package/src/commands/generation/index.js +0 -5
  109. package/src/commands/learning/capture-pattern.js +0 -121
  110. package/src/commands/learning/index.js +0 -5
  111. package/src/commands/learning/search-patterns.js +0 -126
  112. package/src/commands/mcp/mcp.js +0 -102
  113. package/src/commands/project/changes.js +0 -66
  114. package/src/commands/project/cost.js +0 -179
  115. package/src/commands/project/detect.js +0 -114
  116. package/src/commands/project/diff.js +0 -278
  117. package/src/commands/project/revert.js +0 -173
  118. package/src/commands/project/standards.js +0 -80
  119. package/src/commands/project/sync.js +0 -167
  120. package/src/commands/project/update-agents.js +0 -23
  121. package/src/commands/state/rollback-phase.js +0 -185
  122. package/src/commands/templates/template-customize.js +0 -87
  123. package/src/commands/templates/template-list.js +0 -114
  124. package/src/commands/templates/template-show.js +0 -129
  125. package/src/commands/templates/template-validate.js +0 -91
  126. package/src/commands/utils/troubleshoot.js +0 -222
  127. package/src/commands/validation/analyze-blazor-concurrency.js +0 -193
  128. package/src/commands/validation/lint-fluent.js +0 -352
  129. package/src/commands/validation/validate-blazor-state.js +0 -210
  130. package/src/commands/validation/validate-blazor.js +0 -156
  131. package/src/commands/validation/validate-css.js +0 -84
  132. package/src/lib/detectors/conversation-analyzer.js +0 -163
  133. package/src/lib/learning/index.js +0 -7
  134. package/src/lib/learning/learning-system.js +0 -520
  135. package/src/lib/troubleshooting/index.js +0 -8
  136. package/src/lib/troubleshooting/troubleshoot-grep.js +0 -198
  137. package/src/lib/troubleshooting/troubleshoot-index.js +0 -144
  138. package/src/llm/environment-detector.js +0 -43
@@ -1,171 +1,169 @@
1
- ---
2
- name: phase-setup
3
- description: MORPH-SPEC Phase 1 (Setup). Reads project context, detects tech stack, activates relevant agents via detect-agents, and confirms the feature environment. Use at the start of every MORPH-SPEC feature workflow after proposal approval to load standards and initialize the context.
4
- argument-hint: "[feature-name]"
5
- user-invocable: false
6
- allowed-tools: Read, Write, Edit, Bash, Glob, Grep
7
- ---
8
-
9
- # MORPH Setup - FASE 1
10
-
11
- > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
12
-
13
- Inicialize o contexto e prepare o ambiente para uma feature aprovada.
14
-
15
- ## Pré-requisitos
16
-
17
- - [ ] Feature tem `proposal.md` criado (FASE 0 concluída)
18
- - [ ] Proposal foi aprovado pelo usuário
19
- - [ ] Agentes foram detectados e registrados no state
20
-
21
- ## Ferramentas Recomendadas
22
-
23
- > **Ref:** `framework/skills/level-0-meta/tool-usage-guide/SKILL.md` para guia completo.
24
- > **Ref:** `framework/standards/integration/mcp/mcp-tools.md` para referência MCP.
25
-
26
- | Ação | Ferramenta | Alternativa |
27
- |------|------------|-------------|
28
- | Verificar state | **Bash** `npx morph-spec state get` | — |
29
- | Detectar agentes + standards | **Bash** `npx morph-spec detect-agents --json` | — |
30
- | Ler contexto do projeto | **Read** `.morph/context/README.md` | — |
31
- | Ler config | **Read** `.morph/config.json` | — |
32
- | Escanear estrutura do projeto | **Glob** `src/**/*.{ts,tsx,cs}` | — |
33
- | Metadata do repositório | **GitHub MCP** `get_repo()` | **Bash** `gh repo view --json` |
34
- | Atualizar state | **Bash** `npx morph-spec state set` | |
35
-
36
- **MCPs desta fase:** GitHub (opcional — metadata do repo).
37
-
38
- **Anti-padrões:**
39
- - ❌ Task agent para detectar stack (detect-agents CLI já faz isso)
40
- - ❌ WebSearch para info local do projeto (use Read/Glob)
41
- - ❌ Ler agents.json manualmente (detect-agents retorna standards processados)
42
-
43
- ---
44
-
45
- ## Workflow
46
-
47
- ### CHECKPOINT DE ENTRADA: Verificar Pré-requisitos
48
-
49
- **⏸️ Antes de prosseguir com setup:**
50
-
51
- - [ ] `proposal.md` existe em `.morph/features/$ARGUMENTS/`?
52
- - [ ] Proposal foi apresentado e aprovado pelo usuário?
53
- - [ ] Feature foi registrada no state?
54
-
55
- **❌ Se alguma checkbox NÃO estiver marcada:**
56
- Voltar para FASE 0 (Proposal)
57
-
58
- ---
59
-
60
- ### Passo 1: Verificar State
61
-
62
- Confirme que a feature existe no state:
63
-
64
- ```bash
65
- npx morph-spec state get $ARGUMENTS
66
- ```
67
-
68
- Se não existir, volte para FASE 0 (proposal).
69
-
70
- ### Passo 2: Carregar Contexto e Standards Automaticamente
71
-
72
- **Use detect-agents --json para obter standards context:**
73
-
74
- ```bash
75
- npx morph-spec detect-agents --json "{feature description from proposal}"
76
- ```
77
-
78
- O output JSON contém `standardsSummary` com todos os standards relevantes para cada agente ativo:
79
-
80
- ```json
81
- {
82
- "standardsSummary": {
83
- "blazor-builder": {
84
- "standards": ["blazor-lifecycle", "blazor-state", "coding", ...],
85
- "fullContent": "# blazor-lifecycle\n\n...", // Full standards text
86
- "count": 10
87
- }
88
- }
89
- }
90
- ```
91
-
92
- **Standards resolution order** (automático):
93
- 1. `.morph/context/*.md` (project overrides - highest priority)
94
- 2. `.morph/framework/standards/*.md` (AI Agent Framework, Azure)
95
- 3. `framework/standards/*.md` (Blazor, CSS, .NET)
96
- 4. `.morph/context/inferred.md` (always loaded if exists)
97
-
98
- **Contexto geral** (leia manualmente):
99
- - `.morph/context/README.md` - Overview do projeto
100
- - `.morph/config.json` - Configurações
101
-
102
- ### Passo 3: Confirmar Stack
103
-
104
- Baseado no proposal e contexto, confirme:
105
- - Stack tecnológica (Blazor Server, Next.js, etc.)
106
- - Padrões arquiteturais aplicáveis
107
- - Componentes reutilizáveis existentes
108
-
109
- ### Passo 4: Listar Agentes Ativos
110
-
111
- Mostre os agentes detectados no proposal:
112
-
113
- ```bash
114
- npx morph-spec state get $ARGUMENTS
115
- ```
116
-
117
- Parse o JSON e liste os `activeAgents` com seus emojis e responsabilidades (consulte `.morph/framework/agents.json`).
118
-
119
- ### Passo 5: Atualizar State
120
-
121
- Marque a feature como na fase SETUP:
122
-
123
- ```bash
124
- npx morph-spec state set $ARGUMENTS phase setup
125
- npx morph-spec state set $ARGUMENTS status in_progress
126
- ```
127
-
128
- ## Outputs
129
-
130
- **Apresente ao usuário:**
131
-
132
- 1. **Contexto carregado**:
133
- - Nome do projeto
134
- - Stack confirmado
135
- - Standards aplicáveis
136
-
137
- 2. **Agentes ativos**:
138
- - Lista de agentes com emojis
139
- - Responsabilidades de cada um
140
-
141
- ## Critérios de Avanço
142
-
143
- - [x] Contexto do projeto carregado
144
- - [x] Standards identificados (framework + project)
145
- - [x] Stack confirmado
146
- - [x] Agentes listados
147
- - [x] State atualizado para phase: setup
148
-
149
- ---
150
-
151
- ## Integração com Superpowers
152
-
153
- > Disponível quando o plugin `superpowers` está instalado.
154
-
155
- | Skill | Quando Usar | Invocação |
156
- |-------|-------------|-----------|
157
- | `using-git-worktrees` | Se feature requer isolamento do workspace | `Skill(superpowers:using-git-worktrees)` |
158
-
159
- ---
160
-
161
- ## Outputs desta Fase
162
-
163
- <!-- morph:outputs:proposal -->
164
- | Output | Caminho |
165
- |--------|---------|
166
- | `proposal` | `.morph/features/{feature}/0-proposal/proposal.md` |
167
- <!-- /morph:outputs -->
168
-
169
- ---
170
-
1
+ ---
2
+ name: phase-setup
3
+ description: MORPH-SPEC Phase 1 (Setup). Reads project context, detects tech stack, activates relevant agents by reading agents.json, and confirms the feature environment. Use at the start of every MORPH-SPEC feature workflow after proposal approval to load standards and initialize the context.
4
+ argument-hint: "[feature-name]"
5
+ user-invocable: false
6
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
7
+ cliVersion: "4.8.1"
8
+ ---
9
+
10
+ # MORPH Setup - FASE 1
11
+
12
+ > INTERNAL: Workflow skill used by /morph-proposal during automated phase orchestration. Not a user command.
13
+
14
+ Inicialize o contexto e prepare o ambiente para uma feature aprovada.
15
+
16
+ ## Pré-requisitos
17
+
18
+ - [ ] Feature tem `proposal.md` criado (FASE 0 concluída)
19
+ - [ ] Proposal foi aprovado pelo usuário
20
+ - [ ] Agentes foram detectados e registrados no state
21
+
22
+ ## Ferramentas Recomendadas
23
+
24
+ > **Ref:** `framework/skills/level-0-meta/tool-usage-guide/SKILL.md` para guia completo.
25
+ > **Ref:** `framework/standards/integration/mcp/mcp-tools.md` para referência MCP.
26
+
27
+ | Ação | Ferramenta | Alternativa |
28
+ |------|------------|-------------|
29
+ | Verificar state | **Bash** `npx morph-spec state get` | — |
30
+ | Detectar agentes + standards | **Read** `.morph/framework/agents.json` → match keywords → **Bash** `npx morph-spec state add-agent` | — |
31
+ | Ler contexto do projeto | **Read** `.morph/context/README.md` | — |
32
+ | Ler config | **Read** `.morph/config.json` | — |
33
+ | Escanear estrutura do projeto | **Glob** `src/**/*.{ts,tsx,cs}` | |
34
+ | Metadata do repositório | **GitHub MCP** `get_repo()` | **Bash** `gh repo view --json` |
35
+ | Atualizar state | **Bash** `npx morph-spec state set` | — |
36
+
37
+ **MCPs desta fase:** GitHub (opcional — metadata do repo).
38
+
39
+ **Anti-padrões:**
40
+ - ❌ Chamar `detect-agents` CLI (não existe leia `.morph/framework/agents.json` diretamente)
41
+ - ❌ Task agent para detectar stack (leia agents.json e faça o match de keywords inline)
42
+ - ❌ WebSearch para info local do projeto (use Read/Glob)
43
+
44
+ ---
45
+
46
+ ## Workflow
47
+
48
+ ### CHECKPOINT DE ENTRADA: Verificar Pré-requisitos
49
+
50
+ **⏸️ Antes de prosseguir com setup:**
51
+
52
+ - [ ] `proposal.md` existe em `.morph/features/$ARGUMENTS/`?
53
+ - [ ] Proposal foi apresentado e aprovado pelo usuário?
54
+ - [ ] Feature foi registrada no state?
55
+
56
+ **❌ Se alguma checkbox NÃO estiver marcada:**
57
+ → Voltar para FASE 0 (Proposal)
58
+
59
+ ---
60
+
61
+ ### Passo 1: Verificar State
62
+
63
+ Confirme que a feature existe no state:
64
+
65
+ ```bash
66
+ npx morph-spec state get $ARGUMENTS
67
+ ```
68
+
69
+ Se não existir, volte para FASE 0 (proposal).
70
+
71
+ ### Passo 2: Detectar Agentes e Carregar Standards
72
+
73
+ **Leia agents.json diretamente e faça o match de keywords:**
74
+
75
+ 1. Leia `.morph/framework/agents.json`
76
+ 2. Extraia título e descrição da feature de `0-proposal/proposal.md`
77
+ 3. Para cada agente no JSON, verifique se alguma keyword do campo `keywords[]` aparece no texto da proposta
78
+ 4. Adicione os agentes correspondentes ao state:
79
+
80
+ ```bash
81
+ npx morph-spec state add-agent $ARGUMENTS {agent-id}
82
+ # Exemplo:
83
+ npx morph-spec state add-agent $ARGUMENTS dotnet-senior
84
+ npx morph-spec state add-agent $ARGUMENTS ef-modeler
85
+ ```
86
+
87
+ **Para carregar standards dos agentes detectados:**
88
+ - Para cada agente ativo, leia os standards referenciados pelo campo `standards[]` em `agents.json`
89
+ - Os arquivos de standard ficam em `.morph/framework/standards/{path}`
90
+
91
+ **Standards resolution order** (manual):
92
+ 1. `.morph/context/*.md` project overrides (maior prioridade)
93
+ 2. `.morph/framework/standards/` standards instalados pelo morph-spec
94
+ 3. `framework/standards/` standards do pacote npm (fallback)
95
+
96
+ **Contexto geral** (leia sempre):
97
+ - `.morph/context/README.md` — Overview do projeto
98
+ - `.morph/config/config.json` Configurações
99
+
100
+ ### Passo 3: Confirmar Stack
101
+
102
+ Baseado no proposal e contexto, confirme:
103
+ - Stack tecnológica (Blazor Server, Next.js, etc.)
104
+ - Padrões arquiteturais aplicáveis
105
+ - Componentes reutilizáveis existentes
106
+
107
+ ### Passo 4: Listar Agentes Ativos
108
+
109
+ Mostre os agentes detectados no proposal:
110
+
111
+ ```bash
112
+ npx morph-spec state get $ARGUMENTS
113
+ ```
114
+
115
+ Parse o JSON e liste os `activeAgents` com seus emojis e responsabilidades (consulte `.morph/framework/agents.json`).
116
+
117
+ ### Passo 5: Atualizar State
118
+
119
+ Marque a feature como na fase SETUP:
120
+
121
+ ```bash
122
+ npx morph-spec state set $ARGUMENTS phase setup
123
+ npx morph-spec state set $ARGUMENTS status in_progress
124
+ ```
125
+
126
+ ## Outputs
127
+
128
+ **Apresente ao usuário:**
129
+
130
+ 1. **Contexto carregado**:
131
+ - Nome do projeto
132
+ - Stack confirmado
133
+ - Standards aplicáveis
134
+
135
+ 2. **Agentes ativos**:
136
+ - Lista de agentes com emojis
137
+ - Responsabilidades de cada um
138
+
139
+ ## Critérios de Avanço
140
+
141
+ - [x] Contexto do projeto carregado
142
+ - [x] Standards identificados (framework + project)
143
+ - [x] Stack confirmado
144
+ - [x] Agentes listados
145
+ - [x] State atualizado para phase: setup
146
+
147
+ ---
148
+
149
+ ## Integração com Superpowers
150
+
151
+ > Disponível quando o plugin `superpowers` está instalado.
152
+
153
+ | Skill | Quando Usar | Invocação |
154
+ |-------|-------------|-----------|
155
+ | `using-git-worktrees` | Se feature requer isolamento do workspace | `Skill(superpowers:using-git-worktrees)` |
156
+
157
+ ---
158
+
159
+ ## Outputs desta Fase
160
+
161
+ <!-- morph:outputs:proposal -->
162
+ | Output | Caminho |
163
+ |--------|---------|
164
+ | `proposal` | `.morph/features/{feature}/0-proposal/proposal.md` |
165
+ <!-- /morph:outputs -->
166
+
167
+ ---
168
+
171
169
  Continuar automaticamente para próxima fase (UI/UX se detectado, ou Design).