| name | Code |
| description | Fase 3 - Implementation Protocol. Le Spec.md, solicita arquivos originais, aplica mudancas CIRURGICAS linha por linha, valida multi-tenant, testa e documenta. Preserva logica, zero improviso. |
FASE 3: IMPLEMENTATION (SURGICAL EXECUTION)
Objetivo
Executar especificacao tecnica com precisao cirurgica, sem improviso, preservando logica existente.
INPUT OBRIGATORIO
Carregar Spec
ls -la .claude/docs/SPEC-*.md
cat .claude/docs/SPEC-[nome-tarefa].md
PROTOCOLO DE IMPLEMENTACAO
FASE 1: VALIDACAO PRE-EXECUCAO
1.1 Checklist de Seguranca
1.2 Preparar Ambiente
PASSO 0 — BRANCHING (NAO PULAR)
git branch --show-current
git checkout -b feat/[nome-tarefa]
git checkout feat/[nome-tarefa]
Backup de arquivos criticos (apenas se refatoracao destrutiva)
cp [arquivo-critico].js [arquivo-critico].js.backup
FASE 2: SOLICITAR ARQUIVOS ORIGINAIS
2.1 NUNCA Modificar Sem Ver
cat [caminho/completo/arquivo.js]
2.2 Principio da Preservacao
- Ler arquivo completo
- Identificar logica de negocio
- Preservar fluxo existente
- Mudanca cirurgica APENAS onde especificado
FASE 3: EXECUTAR MUDANCAS (Ordem do Spec)
3.1 Seguir Ordem Exata
1. Models (estrutura de dados)
|
2. Controllers (logica backend)
|
3. Routes (endpoints)
|
4. Services (se houver)
|
5. Frontend JS (logica cliente)
|
6. Frontend HTML (UI)
|
7. Frontend CSS (estilos)
3.2 Executar Mudanca Cirurgica
3.3 Validar Apos Cada Arquivo
node --check [arquivo-modificado].js
grep -n "console.log\|debugger" [arquivo].js
grep -n "require\|import" [arquivo].js
FASE 4: VALIDACOES CRITICAS
4.1 Multi-Tenant (OBRIGATORIO)
grep -n "\.find\|\.findOne\|\.updateMany" [arquivo].js
Model.find({
liga_id: ligaId, // OBRIGATORIO
temporada: temporada
})
4.2 Seguranca
grep -n "router\.\(post\|put\|delete\)" routes/[arquivo].js
router.post('/endpoint',
verificarAdmin, // Protecao
validarLigaId, // Multi-tenant
controller.acao
)
4.3 Performance
grep -n "\.find\|\.findOne" [arquivo].js | grep -v "lean"
Model.find({ ... }).lean() // Economia de memoria
FASE 5: TESTES
5.1 Testes Unitarios (se existirem)
npm test -- [modulo]
5.2 Teste Manual (obrigatorio)
- Seguir casos de teste do Spec
- Validar cenarios positivos
- Validar cenarios negativos
- Testar edge cases
5.3 Validacao Multi-Liga
PADRAO DE COMMITS
Mensagem Estruturada
git commit -m "tipo(escopo): descricao curta
- Mudanca 1 especifica
- Mudanca 2 especifica
- Mudanca 3 especifica
Ref: SPEC-[nome].md
"
Tipos de Commit
feat: Nova funcionalidade
fix: Correcao de bug
refactor: Refatoracao sem mudar comportamento
perf: Melhoria de performance
style: Mudancas de formatacao
docs: Apenas documentacao
test: Adicionar/corrigir testes
PROTOCOLO DE TESTES
Teste 1: Funcionalidade Basica
async function testar() {
const ligaId = '684cb1c8af923da7c7df51de';
const participanteId = 'test-id';
const resultado = await controller.novaFuncao(participanteId, ligaId);
console.assert(resultado.saldoTotal !== undefined, 'Saldo deve existir');
console.log('Teste 1 passou');
}
Teste 2: Multi-Tenant Isolation
async function testarMultiTenant() {
const liga1 = '684cb1c8af923da7c7df51de';
const liga2 = '684d821cf1a7ae16d1f89572';
await Model.create({ liga_id: liga1, dados: 'teste1' });
const resultado = await Model.find({ liga_id: liga2 });
console.assert(resultado.length === 0, 'Isolamento multi-tenant OK');
console.log('Teste Multi-Tenant passou');
}
CHECKLIST FINAL
Codigo
Seguranca
Performance
Testes
Documentacao
ANTI-PATTERNS (NAO FAZER)
Improvisar Mudancas
Modificar Sem Ver Original
str_replace(old_str: "linha que eu acho que existe")
cat arquivo.js
str_replace(old_str: "linha exata copiada do arquivo")
Quebrar Logica Existente
grep -r "funcaoAntiga" .
Ignorar Multi-Tenant
Model.find({})
Model.find({ liga_id: ligaId })
FINALIZACAO
Marcar Tarefa como Concluida
# pending-tasks.md
## Concluidas
- [x] Implementar [nome da funcionalidade]
- **Concluido:** [data]
- **Arquivos:** [lista]
- **Commits:** [hashes]
- **Branch:** feat/[nome]
- **Testes:** Passaram
- **Deploy:** Pendente
Preparar para Review/Merge
git fetch origin
git rebase origin/main
git push origin feat/[nome]
git checkout main
git merge feat/[nome]
git push origin main
STATUS: CODE PROTOCOL - SURGICAL & TESTED
Versao: 1.0 (High Senior Edition)