@polymorphism-tech/morph-spec 4.10.0 → 4.10.2

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 (71) hide show
  1. package/README.md +2 -2
  2. package/claude-plugin.json +1 -1
  3. package/docs/CHEATSHEET.md +1 -1
  4. package/docs/QUICKSTART.md +1 -1
  5. package/framework/CLAUDE.md +5 -69
  6. package/framework/agents/backend/api-designer.md +3 -0
  7. package/framework/agents/backend/dotnet-senior.md +3 -0
  8. package/framework/agents/backend/ef-modeler.md +2 -0
  9. package/framework/agents/backend/hangfire-orchestrator.md +2 -0
  10. package/framework/agents/backend/ms-agent-expert.md +2 -0
  11. package/framework/agents/frontend/blazor-builder.md +2 -0
  12. package/framework/agents/frontend/nextjs-expert.md +2 -0
  13. package/framework/agents/infrastructure/azure-architect.md +2 -0
  14. package/framework/agents/infrastructure/azure-deploy-specialist.md +2 -0
  15. package/framework/agents/infrastructure/bicep-architect.md +2 -0
  16. package/framework/agents/infrastructure/container-specialist.md +2 -0
  17. package/framework/agents/infrastructure/devops-engineer.md +3 -0
  18. package/framework/agents/infrastructure/infra-architect.md +3 -0
  19. package/framework/agents/integrations/asaas-financial.md +2 -0
  20. package/framework/agents/integrations/azure-identity.md +2 -0
  21. package/framework/agents/integrations/clerk-auth.md +3 -0
  22. package/framework/agents/integrations/hangfire-integration.md +2 -0
  23. package/framework/agents/integrations/resend-email.md +2 -0
  24. package/framework/commands/morph-apply.md +151 -161
  25. package/framework/commands/morph-archive.md +28 -28
  26. package/framework/commands/morph-infra.md +79 -79
  27. package/framework/commands/morph-preflight.md +92 -56
  28. package/framework/commands/morph-proposal.md +94 -70
  29. package/framework/commands/morph-status.md +31 -31
  30. package/framework/commands/morph-troubleshoot.md +63 -60
  31. package/framework/rules/csharp-standards.md +3 -0
  32. package/framework/rules/frontend-standards.md +2 -0
  33. package/framework/rules/infrastructure-standards.md +3 -0
  34. package/framework/rules/morph-workflow.md +57 -2
  35. package/framework/rules/nextjs-standards.md +2 -0
  36. package/framework/rules/testing-standards.md +3 -0
  37. package/framework/skills/level-0-meta/morph-brainstorming/SKILL.md +54 -49
  38. package/framework/skills/level-0-meta/morph-checklist/SKILL.md +42 -19
  39. package/framework/skills/level-0-meta/morph-code-review/SKILL.md +8 -5
  40. package/framework/skills/level-0-meta/morph-code-review-nextjs/SKILL.md +7 -5
  41. package/framework/skills/level-0-meta/morph-frontend-review/SKILL.md +139 -136
  42. package/framework/skills/level-0-meta/morph-init/SKILL.md +42 -13
  43. package/framework/skills/level-0-meta/morph-post-implementation/SKILL.md +130 -130
  44. package/framework/skills/level-0-meta/morph-replicate/SKILL.md +95 -87
  45. package/framework/skills/level-0-meta/morph-simulation-checklist/SKILL.md +24 -0
  46. package/framework/skills/level-0-meta/morph-tool-usage-guide/SKILL.md +42 -41
  47. package/framework/skills/level-0-meta/morph-verification-before-completion/SKILL.md +22 -11
  48. package/framework/skills/level-1-workflows/morph-phase-clarify/SKILL.md +123 -114
  49. package/framework/skills/level-1-workflows/morph-phase-codebase-analysis/SKILL.md +120 -102
  50. package/framework/skills/level-1-workflows/morph-phase-design/SKILL.md +206 -214
  51. package/framework/skills/level-1-workflows/morph-phase-implement/.morph/logs/activity.json +38 -0
  52. package/framework/skills/level-1-workflows/morph-phase-implement/SKILL.md +241 -360
  53. package/framework/skills/level-1-workflows/morph-phase-plan/SKILL.md +107 -115
  54. package/framework/skills/level-1-workflows/morph-phase-setup/SKILL.md +135 -135
  55. package/framework/skills/level-1-workflows/morph-phase-tasks/.morph/logs/activity.json +14 -0
  56. package/framework/skills/level-1-workflows/morph-phase-tasks/SKILL.md +143 -139
  57. package/framework/skills/level-1-workflows/morph-phase-uiux/SKILL.md +168 -165
  58. package/framework/skills/level-1-workflows/morph-scope-escalation/SKILL.md +57 -8
  59. package/package.json +3 -3
  60. package/src/commands/project/doctor.js +7 -2
  61. package/src/commands/project/update.js +4 -4
  62. package/src/lib/stack-filter.js +58 -0
  63. package/src/scripts/setup-infra.js +53 -18
  64. package/src/utils/agents-installer.js +19 -5
  65. package/src/utils/claude-md-injector.js +90 -0
  66. package/src/utils/hooks-installer.js +1 -4
  67. package/src/utils/skills-installer.js +67 -7
  68. package/CLAUDE.md +0 -98
  69. package/framework/memory/patterns-learned.md +0 -766
  70. package/framework/skills/level-0-meta/morph-terminal-title/SKILL.md +0 -61
  71. package/framework/skills/level-0-meta/morph-terminal-title/scripts/set_title.sh +0 -65
@@ -1,31 +1,31 @@
1
1
  ---
2
2
  name: morph:post-implementation
3
- description: Orquestra o fluxo completo pós-implementação: detecção de stack,
4
- scans automáticos (C#/Next.js), testes, validate-feature, smoke test via
5
- Playwright (obrigatório se dev server ativo), checklist de code review por
6
- stack, checkpoint e geração de recap. Use após concluir todas as tasks.
3
+ description: Orchestrates the complete post-implementation flow: stack detection,
4
+ automated scans (C#/Next.js), tests, validate-feature, smoke test via Playwright
5
+ (mandatory if dev server active), code review checklist by stack, checkpoint, and
6
+ recap generation. Use after completing all tasks.
7
7
  argument-hint: "[feature-name]"
8
8
  user-invocable: true
9
- allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Task,
9
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Task, AskUserQuestion,
10
10
  mcp__playwright__browser_navigate, mcp__playwright__browser_snapshot,
11
11
  mcp__playwright__browser_take_screenshot, mcp__playwright__browser_console_messages
12
12
  ---
13
13
 
14
14
  # Post-Implementation Review
15
15
 
16
- > Orquestrador pós-implementação: executa todos os checks em sequência lógica e bloqueia em caso de falha.
17
- > Use após completar todas as tasks de implementação, antes de criar o PR.
16
+ > Post-implementation orchestrator: runs all checks in logical sequence and blocks on failure.
17
+ > Use after completing all implementation tasks, before creating the PR.
18
18
 
19
19
  ---
20
20
 
21
- ## Pré-requisitos
21
+ ## Prerequisites
22
22
 
23
- - Todas as tasks marcadas como done (`morph-spec task done`)
24
- - Build do projeto compilando sem erros
23
+ - All tasks marked as done (`morph-spec task done`)
24
+ - Project build compiling without errors
25
25
 
26
26
  ---
27
27
 
28
- ## Step 1 — Detectar Stack
28
+ ## Step 1 — Detect Stack
29
29
 
30
30
  ```bash
31
31
  node .claude/skills/morph-post-implementation/scripts/detect-stack.mjs
@@ -33,34 +33,34 @@ node .claude/skills/morph-post-implementation/scripts/detect-stack.mjs
33
33
 
34
34
  Output JSON: `{ stack: "DOTNET" | "NEXTJS" | "FULLSTACK" | "UNKNOWN", frontendPath, backendPath, startCommand }`
35
35
 
36
- Ordem de prioridade (mais confiável primeiro):
36
+ Priority order (most reliable first):
37
37
  1. `.morph/config/config.json` → `config.project.stack` + `frontendPath`/`backendPath`
38
- 2. `.morph/context/README.md` → seção `## Tech Stack`
39
- 3. Fallback: Glob por `*.csproj` e `package.json` com dep `"next"`
38
+ 2. `.morph/context/README.md` → section `## Tech Stack`
39
+ 3. Fallback: Glob for `*.csproj` and `package.json` with dep `"next"`
40
40
 
41
- Guarde o resultadotodos os passos seguintes dependem do `stack` detectado.
41
+ Store the resultall following steps depend on the detected `stack`.
42
42
 
43
43
  ---
44
44
 
45
45
  ## Step 2 — Automated Scans
46
46
 
47
- Execute os scans automáticos conforme o stack detectado.
47
+ Run automated scans based on detected stack.
48
48
 
49
- ### Se DOTNET ou FULLSTACK:
49
+ ### If DOTNET or FULLSTACK:
50
50
 
51
51
  ```bash
52
52
  node .claude/skills/morph-code-review/scripts/scan-csharp.mjs --diff
53
53
  ```
54
54
 
55
- ### Se NEXTJS ou FULLSTACK:
55
+ ### If NEXTJS or FULLSTACK:
56
56
 
57
57
  ```bash
58
58
  node .claude/skills/morph-code-review-nextjs/scripts/scan-nextjs.mjs --diff
59
59
  ```
60
60
 
61
- **🚫 BLOCK se qualquer finding CRITICAL encontrado.**
61
+ **🚫 BLOCK if any CRITICAL finding found.**
62
62
 
63
- Corrija todos os CRITICALs antes de continuar. Para revisar a lista completa de checks:
63
+ Fix all CRITICALs before continuing. To review the full checklist:
64
64
  - .NET: `/morph:code-review`
65
65
  - Next.js: `/morph:code-review-nextjs`
66
66
 
@@ -68,7 +68,7 @@ Corrija todos os CRITICALs antes de continuar. Para revisar a lista completa de
68
68
 
69
69
  ## Step 3 — Test Suite
70
70
 
71
- Execute os testes conforme o stack.
71
+ Run tests based on stack.
72
72
 
73
73
  ### DOTNET:
74
74
 
@@ -84,176 +84,176 @@ npm test -- --watchAll=false
84
84
 
85
85
  ### FULLSTACK:
86
86
 
87
- Execute ambos em paralelo (use Task tool com dois subagents independentes).
87
+ Run both in parallel (use Task tool with two independent subagents).
88
88
 
89
- **🚫 BLOCK se testes falharem.**
89
+ **🚫 BLOCK if tests fail.**
90
90
 
91
- Não prossiga enquanto houver testes falhando. Corrija as falhas e re-execute antes de continuar.
91
+ Do not proceed while tests are failing. Fix failures and re-run before continuing.
92
92
 
93
93
  ---
94
94
 
95
95
  ## Step 4 — Framework Validation
96
96
 
97
97
  ```bash
98
- npx morph-spec validate-feature $ARGUMENTS --phase implement
98
+ npx morph-spec validate-feature $ARGUMENTS
99
99
  ```
100
100
 
101
- **🚫 BLOCK se falhar.**
101
+ **🚫 BLOCK if it fails.**
102
102
 
103
- Leia o output de validação, corrija os issues reportados e re-execute até passar.
103
+ Read validation output, fix reported issues, and re-run until it passes.
104
104
 
105
105
  ---
106
106
 
107
107
  ## Step 5 — Smoke Test (Playwright MCP)
108
108
 
109
- ### 5a. Detectar Dev Server
109
+ ### 5a. Detect Dev Server
110
110
 
111
111
  ```bash
112
112
  node .claude/skills/morph-post-implementation/scripts/detect-dev-server.mjs "<startCommand>"
113
113
  ```
114
114
 
115
- Passe o `startCommand` retornado pelo detect-stack no Step 1.
115
+ Pass the `startCommand` returned by detect-stack in Step 1.
116
116
 
117
- O script:
118
- 1. Varre portas `[3000, 3001, 4200, 5000, 5001, 7000, 8000, 8080]` com `fetch()` timeout 500ms
119
- 2. Se encontrar um servidor ativoretorna `{ found: true, url }`
120
- 3. Se não encontrar e `startCommand` fornecidotenta iniciar automaticamente e aguarda 30s
121
- 4. Retorna exit code 0 (server disponível) ou 1 (não disponível após tentativa)
117
+ The script:
118
+ 1. Scans ports `[3000, 3001, 4200, 5000, 5001, 7000, 8000, 8080]` with `fetch()` timeout 500ms
119
+ 2. If it finds an active server returns `{ found: true, url }`
120
+ 3. If not found and `startCommand` providedtries to start automatically and waits 30s
121
+ 4. Returns exit code 0 (server available) or 1 (not available after attempt)
122
122
 
123
- ### 5b. Se dev server disponível (exit 0):
123
+ ### 5b. If dev server available (exit 0):
124
124
 
125
- **O smoke test é OBRIGATÓRIO.**
125
+ **Smoke test is MANDATORY.**
126
126
 
127
- 1. Leia `spec.md` da feature para identificar os happy paths críticos (máximo 3 flows, seção Functional Requirements)
128
- 2. Execute o smoke test via Playwright MCP:
127
+ 1. Read feature `spec.md` to identify critical happy paths (maximum 3 flows, section Functional Requirements)
128
+ 2. Run the smoke test via Playwright MCP:
129
129
 
130
130
  ```javascript
131
- // Navegar para a feature
132
- await mcp__playwright__browser_navigate({ url: '<url-detectada>' });
131
+ // Navigate to the feature
132
+ await mcp__playwright__browser_navigate({ url: '<detected-url>' });
133
133
 
134
- // Capturar estado da página
134
+ // Capture page state
135
135
  await mcp__playwright__browser_snapshot();
136
136
 
137
- // Verificar erros críticos de console
137
+ // Check for critical console errors
138
138
  await mcp__playwright__browser_console_messages({ level: 'error' });
139
139
 
140
- // Screenshot para documentação
140
+ // Screenshot for documentation
141
141
  await mcp__playwright__browser_take_screenshot({
142
142
  type: 'png',
143
143
  filename: '.morph/features/$ARGUMENTS/5-implement/smoke-screenshots/smoke-<timestamp>.png'
144
144
  });
145
145
  ```
146
146
 
147
- Para cada happy path crítico da spec:
148
- - Navegue até o flow
149
- - Verifique elementos-chave visíveis (`browser_snapshot`)
150
- - Confirme ausência de erros de console críticos
151
- - Capture screenshot do estado final
147
+ For each critical happy path from the spec:
148
+ - Navigate to the flow
149
+ - Verify key elements are visible (`browser_snapshot`)
150
+ - Confirm absence of critical console errors
151
+ - Capture screenshot of final state
152
152
 
153
- **Verificações obrigatórias:**
154
- - [ ] Página carrega sem erro 404/500
155
- - [ ] Elementos principais da feature visíveis (conforme spec)
156
- - [ ] Console sem erros críticos (level: error)
157
- - [ ] Happy path principal funcional
153
+ **Mandatory checks:**
154
+ - [ ] Page loads without 404/500 error
155
+ - [ ] Main feature elements visible (per spec)
156
+ - [ ] Console without critical errors (level: error)
157
+ - [ ] Main happy path functional
158
158
 
159
- **🚫 BLOCK se qualquer verificação falhar.** Não crie PR com smoke test falhando.
159
+ **🚫 BLOCK if any check fails.** Do not create PR with failing smoke test.
160
160
 
161
- ### 5c. Se dev server NÃO disponível (exit 1):
161
+ ### 5c. If dev server NOT available (exit 1):
162
162
 
163
- **⚠️ ATENÇÃO: Dev server não encontrado após tentativa de iniciar.**
163
+ **⚠️ WARNING: Dev server not found after attempt to start.**
164
164
 
165
- Solicite confirmação explícita ao usuário antes de pular o smoke test:
165
+ Request explicit user confirmation before skipping smoke test:
166
166
 
167
167
  ```
168
- Dev server não detectado na porta esperada. O smoke test via Playwright é obrigatório
169
- para garantir que o código funciona no browser antes de criar o PR.
168
+ Dev server not detected on expected port. Smoke test via Playwright is mandatory
169
+ to ensure the code works in the browser before creating the PR.
170
170
 
171
- Opções:
172
- 1. Inicie manualmente o servidor (`npm run dev` / `dotnet run`) e re-execute /post-implementation
173
- 2. Confirme explicitamente que deseja pular o smoke test e por quê
171
+ Options:
172
+ 1. Start the server manually (`npm run dev` / `dotnet run`) and re-run /post-implementation
173
+ 2. Explicitly confirm you want to skip the smoke test and why
174
174
 
175
- Não é possível prosseguir para criação de PR sem smoke test ou confirmação explícita.
175
+ Cannot proceed to PR creation without smoke test or explicit confirmation.
176
176
  ```
177
177
 
178
- **Aguarde resposta antes de continuar.**
178
+ **Wait for response before continuing.**
179
179
 
180
180
  ---
181
181
 
182
182
  ## Step 6 — Code Review Checklist (CRITICAL + HIGH)
183
183
 
184
- > Antes de revisar, leia: `.claude/skills/morph-code-review/references/review-guidelines.md` — aplique confidence ≥ 75, ignore violações pré-existentes, inclua file:line em cada finding.
184
+ > Before reviewing, read: `.claude/skills/morph-code-review/references/review-guidelines.md` — apply confidence ≥ 75, ignore pre-existing violations, include file:line in each finding.
185
185
 
186
- Revise os itens mais importantes por stack. Para review completo, use os skills dedicados.
186
+ Review the most important items by stack. For complete review, use the dedicated skills.
187
187
 
188
- ### Se FULLSTACK:
188
+ ### If FULLSTACK:
189
189
 
190
- Dispatch dois subagents em paralelo (Task tool):
190
+ Dispatch two subagents in parallel (Task tool):
191
191
 
192
192
  **Subagent 1 — Backend Review:**
193
- > Revisor .NET focado. Escopo: APENAS arquivos .cs alterados (git diff main...HEAD).
193
+ > .NET focused reviewer. Scope: ONLY changed .cs files (git diff main...HEAD).
194
194
  > Run: `node .claude/skills/morph-code-review/scripts/scan-csharp.mjs --diff`
195
- > Depois revisar manualmente itens CRITICAL+HIGH do checklist .NET.
196
- > Aplicar review-guidelines.md: confidence ≥ 75, skip pré-existentes.
197
- > Output: findings com file:line, ou "✅ Sem CRITICAL/HIGH em backend alterado."
195
+ > Then manually review CRITICAL+HIGH checklist items for .NET.
196
+ > Apply review-guidelines.md: confidence ≥ 75, skip pre-existing.
197
+ > Output: findings with file:line, or "✅ No CRITICAL/HIGH in changed backend."
198
198
 
199
199
  **Subagent 2 — Frontend Review:**
200
- > Revisor Next.js focado. Escopo: APENAS arquivos .tsx/.ts alterados (git diff main...HEAD).
200
+ > Next.js focused reviewer. Scope: ONLY changed .tsx/.ts files (git diff main...HEAD).
201
201
  > Run: `node .claude/skills/morph-code-review-nextjs/scripts/scan-nextjs.mjs --diff`
202
- > Depois revisar manualmente itens CRITICAL+HIGH do checklist Next.js.
203
- > Aplicar review-guidelines.md: confidence ≥ 75, skip pré-existentes.
204
- > Output: findings com file:line, ou "✅ Sem CRITICAL/HIGH em frontend alterado."
202
+ > Then manually review CRITICAL+HIGH checklist items for Next.js.
203
+ > Apply review-guidelines.md: confidence ≥ 75, skip pre-existing.
204
+ > Output: findings with file:line, or "✅ No CRITICAL/HIGH in changed frontend."
205
205
 
206
- Aguardar ambos. **🚫 BLOCK se algum retornar CRITICAL não resolvido.**
206
+ Wait for both. **🚫 BLOCK if either returns unresolved CRITICAL.**
207
207
 
208
- ### Se DOTNET:
208
+ ### If DOTNET:
209
209
 
210
- **Itens CRITICAL e HIGH — .NET:**
210
+ **CRITICAL and HIGH items — .NET:**
211
211
 
212
212
  ```
213
- [ ] CancellationToken propagado em toda a chain async
214
- [ ] Sem .Result / .Wait() (deadlock risk)
215
- [ ] Domain tem zero refs para Infrastructure ou Web
216
- [ ] Sem circular dependencies
217
- [ ] Sem empty catch blocks
218
- [ ] Background ops usam IDbContextFactory + await using
219
- [ ] Métodos async têm sufixo Async
220
- [ ] Interfaces prefixadas com I
221
- [ ] Sem classes > 300 linhas
222
- [ ] DTOs com nomes descritivos + tipos corretos
213
+ [ ] CancellationToken propagated through the entire async chain
214
+ [ ] No .Result / .Wait() (deadlock risk)
215
+ [ ] Domain has zero refs to Infrastructure or Web
216
+ [ ] No circular dependencies
217
+ [ ] No empty catch blocks
218
+ [ ] Background ops use IDbContextFactory + await using
219
+ [ ] Async methods have Async suffix
220
+ [ ] Interfaces prefixed with I
221
+ [ ] No classes > 300 lines
222
+ [ ] DTOs with descriptive names + correct types
223
223
  ```
224
224
 
225
- > Para lista completa: `/morph:code-review`
225
+ > For full list: `/morph:code-review`
226
226
 
227
- ### Se NEXTJS:
227
+ ### If NEXTJS:
228
228
 
229
- **Itens CRITICAL e HIGH — Next.js:**
229
+ **CRITICAL and HIGH items — Next.js:**
230
230
 
231
231
  ```
232
232
  [ ] node .claude/skills/morph-code-review-nextjs/scripts/scan-nextjs.mjs --diff → 0 CRITICAL
233
- [ ] File names em kebab-case (user-card.tsx, não UserCard.tsx)
234
- [ ] 'use client' apenas em componentes com hooks/event handlers
235
- [ ] Sem useEffect para data fetching → Server Component ou useQuery
236
- [ ] Zod schema definido primeiro, type derivado com z.infer<>
237
- [ ] zodResolver conectado ao useForm, useMutation para submit
238
- [ ] Query key factory usado (userKeys.lists(), não ['users'])
233
+ [ ] File names in kebab-case (user-card.tsx, not UserCard.tsx)
234
+ [ ] 'use client' only in components with hooks/event handlers
235
+ [ ] No useEffect for data fetching → Server Component or useQuery
236
+ [ ] Zod schema defined first, type derived with z.infer<>
237
+ [ ] zodResolver connected to useForm, useMutation for submit
238
+ [ ] Query key factory used (userKeys.lists(), not ['users'])
239
239
  [ ] Feature public API via features/{name}/index.ts
240
- [ ] components/ui/ intocados (shadcn CLI only)
241
- [ ] Sem any type annotation
240
+ [ ] components/ui/ untouched (shadcn CLI only)
241
+ [ ] No any type annotation
242
242
  ```
243
243
 
244
- > Para lista completa: `/morph:code-review-nextjs`
244
+ > For full list: `/morph:code-review-nextjs`
245
245
 
246
- **🚫 BLOCK se qualquer item CRITICAL não estiver resolvido.**
246
+ **🚫 BLOCK if any CRITICAL item is unresolved.**
247
247
 
248
248
  ---
249
249
 
250
250
  ## Step 7 — Checkpoint + Recap
251
251
 
252
252
  ```bash
253
- # Salvar checkpoint pós-review
253
+ # Save post-review checkpoint
254
254
  npx morph-spec checkpoint-save $ARGUMENTS --note "post-implementation review"
255
255
 
256
- # Gerar recap final
256
+ # Generate final recap
257
257
  npx morph-spec generate recap $ARGUMENTS
258
258
  ```
259
259
 
@@ -293,69 +293,69 @@ This skill will:
293
293
 
294
294
  ## Step 9 — Pre-PR Compliance Checklist
295
295
 
296
- Antes de criar o PR, invoque o checklist de compliance:
296
+ Before creating the PR, invoke the compliance checklist:
297
297
 
298
298
  ```
299
299
  Skill(morph:checklist)
300
300
  ```
301
301
 
302
- Este skill verifica: segurança, SEO, performance, acessibilidade e conformidade LGPD.
303
- **🚫 BLOCK se qualquer item CRITICAL não estiver resolvido.**
302
+ This skill checks: security, SEO, performance, accessibility, and LGPD compliance.
303
+ **🚫 BLOCK if any CRITICAL item is unresolved.**
304
304
 
305
305
  ---
306
306
 
307
307
  ## Step 10 — PR Suggestion
308
308
 
309
- Quando todos os steps passarem, sugira o PR:
309
+ When all steps pass, suggest the PR:
310
310
 
311
311
  ```bash
312
312
  gh pr create \
313
- --title "feat($ARGUMENTS): <descrição concisa da feature>" \
313
+ --title "feat($ARGUMENTS): <concise feature description>" \
314
314
  --body "$(cat <<'EOF'
315
315
  ## Summary
316
316
 
317
- - <principais mudanças implementadas>
318
- - <tasks concluídas>
317
+ - <main implemented changes>
318
+ - <completed tasks>
319
319
 
320
320
  ## Test Results
321
321
 
322
- - Build: ✅ passou
323
- - Tests: ✅ X testes passando
324
- - Smoke Test: ✅ happy path verificado via Playwright
322
+ - Build: ✅ passed
323
+ - Tests: ✅ X tests passing
324
+ - Smoke Test: ✅ happy path verified via Playwright
325
325
 
326
326
  ## Screenshots
327
327
 
328
- <!-- Cole os paths dos screenshots salvos em smoke-screenshots/ -->
328
+ <!-- Paste screenshot paths saved in smoke-screenshots/ -->
329
329
 
330
330
  ## Checklist
331
331
 
332
332
  - [ ] Automated scans: 0 CRITICAL findings
333
333
  - [ ] All tests passing
334
334
  - [ ] Smoke test via Playwright: ✅
335
- - [ ] Code review checklist: CRITICAL + HIGH itens verificados
336
- - [ ] validate-feature: ✅ passou
337
- - [ ] Checkpoint salvo
338
- - [ ] recap.md gerado
335
+ - [ ] Code review checklist: CRITICAL + HIGH items verified
336
+ - [ ] validate-feature: ✅ passed
337
+ - [ ] Checkpoint saved
338
+ - [ ] recap.md generated
339
339
  EOF
340
340
  )"
341
341
  ```
342
342
 
343
343
  ---
344
344
 
345
- ## Resumo dos BLOCKs
345
+ ## Block Summary
346
346
 
347
- | Step | Condição de BLOCK |
348
- |------|-------------------|
349
- | Step 2 | Qualquer finding CRITICAL nos scans automáticos |
350
- | Step 3 | Qualquer teste falhando |
351
- | Step 4 | `validate-feature` falhando |
352
- | Step 5 | Dev server ativo + smoke test com falha |
353
- | Step 5 | Dev server não detectado sem confirmação explícita do usuário |
354
- | Step 6 | Qualquer item CRITICAL não resolvido no checklist manual |
347
+ | Step | Block Condition |
348
+ |------|-----------------|
349
+ | Step 2 | Any CRITICAL finding in automated scans |
350
+ | Step 3 | Any test failing |
351
+ | Step 4 | `validate-feature` failing |
352
+ | Step 5 | Dev server active + smoke test failing |
353
+ | Step 5 | Dev server not detected without explicit user confirmation |
354
+ | Step 6 | Any unresolved CRITICAL item in manual checklist |
355
355
  | Step 8 | Tests failing in worktree before merge/PR |
356
- | Step 9 | Item CRITICAL no `morph:checklist` não resolvido |
356
+ | Step 9 | Unresolved CRITICAL item in `morph:checklist` |
357
357
 
358
- **Todos os BLOCKs devem ser resolvidos antes de criar o PR.**
358
+ **All BLOCKs must be resolved before creating the PR.**
359
359
 
360
360
  ---
361
361