Receber por email
← Voltar para o catálogo

Spec

Fase 2 - Protocolo de Especificação. Lê o PRD.md, aplica Análise de Dependência de Sistema (S.D.A) completa mapeando todas as dependências, define mudanças cirúrgicas linha por linha e gera o Spec.md. Preserva a lógica existente com mudanças mínimas e focadas.

556estrelas
Atualizado há 2 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add majiayu000/claude-skill-registry

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/spec/svg)](https://www.skillteca.com.br/skills/spec)

Skills relacionadas

Ver todas de Pesquisa e Web →

Alerta por categoria

Receba novas skills de Pesquisa e Web toda segunda

1 email curto, só com as skills novas de Pesquisa e Web. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

FASE 2: SPECIFICATION (SURGICAL PLANNING)

Objetivo

Transformar PRD em especificacao tecnica precisa com mudancas cirurgicas linha por linha.

INPUT OBRIGATORIO

Carregar PRD

# Localizar PRD gerado na Fase 1
ls -la .claude/docs/PRD-*.md

# Ler PRD completo
cat .claude/docs/PRD-[nome-tarefa].md

PROTOCOLO S.D.A COMPLETO

FASE 1: SOLICITACAO (Arquivos Originais)

1.1 Solicitar Todos os Arquivos do PRD

# Para cada arquivo listado no PRD, solicitar COMPLETO
# (Nunca trabalhar com snippets)

# Exemplo do PRD:
# "Arquivos a modificar: controllers/extratoController.js"

cat controllers/extratoController.js  # VER TUDO

1.2 Analisar Linha por Linha

  • Identificar funcoes principais
  • Mapear variaveis usadas
  • Entender fluxo de dados
  • Detectar dependencias internas

FASE 2: MAPEAMENTO DE DEPENDENCIAS

2.1 Links Diretos (HTML)

grep -r "href=.*[nome-arquivo]" . --include="*.html"

2.2 JavaScript Imports

grep -r "require.*[nome-arquivo]\|import.*[nome-arquivo]" . --include="*.js"

2.3 IDs e Classes CSS

grep -r "#[id-elemento]" . --include="*.js" --include="*.css"
grep -r "\.[classe]" . --include="*.js" --include="*.css"

2.4 Formularios e Rotas

grep -r "fetch.*[endpoint]\|action=.*[endpoint]" public/

FASE 3: VERIFICACAO CRUZADA

3.1 Solicitar Arquivos Dependentes

# Para cada dependencia encontrada, solicitar arquivo
cat [arquivo-que-importa].js
cat [arquivo-com-link].html

3.2 Documentar Impactos

  • Arquivo A usa funcao X -> Precisa atualizar importacao
  • Arquivo B tem link para Y -> Precisa ajustar href

FASE 4: IMPLEMENTACAO SEGURA

4.1 Propor Alteracoes Minimas

// ERRADO: Reescrever funcao inteira
async function calcularSaldo() {
  // ... 50 linhas de codigo novo
}

// CORRETO: Mudanca cirurgica
async function calcularSaldo() {
  // ... [codigo existente preservado]

  // [LINHA 45] ADICIONAR:
  const saldoAcertos = await calcularSaldoAcertos(participanteId);

  // ... [restante do codigo preservado]
  return saldoTotal + saldoAcertos; // [LINHA 78] MODIFICAR
}

GERAR SPEC.MD

Estrutura Obrigatoria

# SPEC - [Nome da Funcionalidade]

**Data:** [data atual]
**Baseado em:** PRD-[nome].md
**Status:** Especificacao Tecnica

---

## Resumo da Implementacao
[1 paragrafo: O que sera feito tecnicamente]

---

## Arquivos a Modificar (Ordem de Execucao)

### 1. [Arquivo Principal] - Mudanca Primaria

**Path:** `[caminho completo]`
**Tipo:** Modificacao | Criacao | Delecao
**Impacto:** Alto | Medio | Baixo
**Dependentes:** [Arquivo X, Y, Z]

#### Mudancas Cirurgicas:

**Linha [num]: ADICIONAR**

[codigo a adicionar]

**Motivo:** [Explicacao]

**Linha [num]: MODIFICAR**

// ANTES: [codigo antigo]

// DEPOIS: [codigo novo]

**Motivo:** [Explicacao]

---

### 2. [Arquivo Dependente] - Ajuste de Integracao

**Path:** `[caminho completo]`
**Tipo:** Modificacao
**Impacto:** Baixo

#### Mudancas Cirurgicas:

**Linha [num]: ATUALIZAR IMPORTACAO**

// ANTES: import { funcaoAntiga } from './modulo';

// DEPOIS: import { funcaoAntiga, funcaoNova } from './modulo';


---

## Mapa de Dependencias

Arquivo Principal (controllers/extratoController.js) |-> routes/extrato-routes.js [MODIFICAR linha 23] |-> public/js/extrato/core.js [MODIFICAR linha 45] |-> public/participante/fronts/extrato.html [ADICIONAR botao]


---

## Validacoes de Seguranca

### Multi-Tenant
- [ ] Todas queries incluem `liga_id`
- [ ] Verificado isolamento entre ligas

**Queries Afetadas:**

// [Arquivo] - Linha [num] Model.find({ liga_id: ligaId, // VALIDADO // ... });


### Autenticacao
- [ ] Rotas protegidas com middleware
- [ ] Verificacao de permissoes

**Middlewares Aplicados:**

router.post('/endpoint', verificarAdmin, // Protecao validarLigaId, // Multi-tenant controller.acao );


---

## Casos de Teste

### Teste 1: [Cenario Positivo]
**Setup:** [Condicao inicial]
**Acao:** [Passo a passo]
**Resultado Esperado:** [O que deve acontecer]

### Teste 2: [Cenario Negativo]
**Setup:** [Condicao inicial]
**Acao:** [Passo a passo com erro]
**Resultado Esperado:** [Tratamento de erro]

---

## Rollback Plan

### Em Caso de Falha
**Passos de Reversao:**
1. Reverter commit: `git revert [hash]`
2. Restaurar banco (se aplicavel)
3. Limpar cache

---

## Checklist de Validacao

### Antes de Implementar
- [ ] Todos os arquivos dependentes identificados
- [ ] Mudancas cirurgicas definidas linha por linha
- [ ] Impactos mapeados
- [ ] Testes planejados
- [ ] Rollback documentado

---

## Ordem de Execucao (Critico)

1. **Backend primeiro:**
   - Models (schema)
   - Controllers (logica)
   - Routes (endpoints)

2. **Frontend depois:**
   - JS (logica cliente)
   - HTML (UI)
   - CSS (estilos)

3. **Testes:**
   - Unitarios (se existirem)
   - Integracao
   - E2E (manual)

---

## Proximo Passo

**Comando para Fase 3:**

LIMPAR CONTEXTO e executar: /code .claude/docs/SPEC-[nome].md


---

**Gerado por:** Spec Protocol v1.0

Onde Salvar

path=".claude/docs/SPEC-[nome-tarefa-kebab-case].md"

Checklist S.D.A (Verificacao Final)

Arquivos Solicitados

  • [ ] Arquivo original completo (nao snippet)
  • [ ] Todos os dependentes identificados
  • [ ] Arquivos relacionados analisados

Dependencias Mapeadas

  • [ ] JavaScript imports verificados
  • [ ] Links HTML checados
  • [ ] IDs e classes CSS validados
  • [ ] Formularios e rotas mapeados

Mudancas Documentadas

  • [ ] Linha por linha especificada
  • [ ] Codigo antes/depois claramente definido
  • [ ] Motivo de cada mudanca explicado
  • [ ] Impacto documentado

Seguranca e Validacoes

  • [ ] Multi-tenant validado (liga_id)
  • [ ] Autenticacao verificada
  • [ ] Rollback plan documentado
  • [ ] Testes planejados

Anti-Patterns (NAO FAZER)

Modificar Sem Ver Original

ERRADO: "Vou adicionar linha 45 sem ver o arquivo"

CORRETO: cat [arquivo].js primeiro
         Analisar contexto da linha 45
         Garantir que mudanca nao quebra logica adjacente

Ignorar Dependencias

ERRADO: "Modifico apenas o controller, o resto se resolve"

CORRETO: Mapear TODOS os arquivos que usam o controller
         Ajustar rotas, frontend, testes
         Verificar importacoes

Reescrever Tudo

ERRADO: function novaFuncao() { /* 100 linhas novas */ }

CORRETO: Preservar funcao existente
         Adicionar apenas 2-3 linhas necessarias
         Manter compatibilidade

STATUS: SPEC PROTOCOL - SURGICAL & PRECISE Versao: 1.0 (High Senior Edition)

Compartilhar X LinkedIn