Files
claude-plugins/project-manager/skills/spec/SKILL.md
T

4.9 KiB

name, description, disable-model-invocation, layer
name description disable-model-invocation layer
spec Spec-driven development — cria e gere SPEC.md como contrato entre utilizador e Claude. Suporta 3 pesos (light/medium/heavy). true wiki

/spec v1.0 - Spec-Driven Development

Contrato bilateral: forca o Emanuel a definir o que quer e forca o Claude a provar que entendeu.

Sem spec aprovado, sem codigo.

Contexto NotebookLM

ANTES de executar, consultar notebooks para contexto especializado:

Notebook ID Consultar quando
Gestão de Projectos e Agile 0c9c079c-a426-486c-99eb-1564d42d37ad Sempre
mcp__notebooklm__notebook_query({
  notebook_id: "0c9c079c-a426-486c-99eb-1564d42d37ad",
  query: "<adaptar ao contexto do pedido do utilizador>"
})

Integrar insights do NotebookLM nas recomendações e decisões.


Comandos

Comando Funcao
/spec Mostrar spec actual ou guiar criacao
/spec create Criar SPEC.md a partir de conversa
/spec create light Spec minimo (<2h)
/spec create heavy Spec completo com milestones e riscos
/spec approve Marcar como aprovado (so Emanuel)
/spec update Alterar spec (track amendments se aprovado)
/spec check Validar trabalho actual vs spec
/spec review Mover draft -> review
/spec bypass Criar bypass temporario (30min) para quick fixes

Pesos

Peso Quando Seccoes
light Quick fix, tarefa simples, <2h Problema, Solucao, Scope
medium Feature, modulo, 2-8h + Criterios de Aceitacao, Decisoes
heavy Projecto novo, >8h + Milestones, Riscos, Dependencias

Auto-deteccao de peso:

  • Conversa com <3 frases de requisitos -> light
  • Feature especifica com decisoes tecnicas -> medium
  • Projecto novo / multiplos componentes -> heavy
  • O utilizador pode sempre forcar o peso

Template SPEC.md

Light

---
spec_version: 1.0
weight: light
status: draft
created: YYYY-MM-DD
updated: YYYY-MM-DD
approved: null
desk_project: null
desk_task: null
---

# SPEC: [Titulo]

## Problema
[O que esta mal ou falta]

## Solucao
[O que se vai fazer]

## Scope
### Faz
- [ ] Item 1
- [ ] Item 2

### Nao Faz
- [Item excluido]

Medium (default)

---
spec_version: 1.0
weight: medium
status: draft
created: YYYY-MM-DD
updated: YYYY-MM-DD
approved: null
desk_project: null
desk_task: null
sprint: null
scope_changes: 0
---

# SPEC: [Titulo]

## Problema
[O que esta mal ou falta. Nas palavras do utilizador.]

## Solucao
[O que se vai fazer. Abordagem escolhida e porque.]

## Scope

### Faz
- [ ] Item 1
- [ ] Item 2

### Nao Faz
- Item excluido 1

## Criterios de Aceitacao
1. DADO [contexto] QUANDO [accao] ENTAO [resultado]
2. ...

## Decisoes Tecnicas

| Decisao | Razao |
|---------|-------|
| [Escolha] | [Porque] |

<!-- APPROVED: YYYY-MM-DD by [nome] -->

Heavy

---
spec_version: 1.0
weight: heavy
status: draft
created: YYYY-MM-DD
updated: YYYY-MM-DD
approved: null
desk_project: null
desk_task: null
sprint: null
scope_changes: 0
---

# SPEC: [Titulo]

## Problema
[Contexto completo do problema]

## Solucao
[Abordagem detalhada]

## Scope

### Faz
- [ ] Item 1
- [ ] Item 2

### Nao Faz
- Item excluido 1

## Criterios de Aceitacao
1. DADO [contexto] QUANDO [accao] ENTAO [resultado]
2. ...

## Decisoes Tecnicas

| Decisao | Razao |
|---------|-------|
| [Escolha] | [Porque] |

## Milestones

| # | Milestone | Data | Criterio |
|---|-----------|------|----------|
| M1 | [Nome] | [Data] | [Como saber que esta feito] |

## Riscos

| Risco | Probabilidade | Impacto | Mitigacao |
|-------|--------------|---------|-----------|
| [Risco] | Alta/Media/Baixa | Alto/Medio/Baixo | [Plano] |

## Dependencias
- [Dependencia externa 1]
- [Componente que precisa estar pronto primeiro]

## Alteracoes (pos-aprovacao)
### [DATA] - [Descricao]
- Adicionado: X
- Removido: Y
- Razao: Z

<!-- APPROVED: YYYY-MM-DD by [nome] -->

Protocolos

/spec (sem argumentos)

1. Procurar SPEC.md no directorio actual (ou pais, max 3 niveis)
2. SE encontrado:
   a. Ler e mostrar resumo:
      - Titulo, peso, status
      - Scope: X/Y items feitos
      - Aprovacao: sim/nao (data)
   b. Sugerir accoes: approve, check, update
3. SE nao encontrado:
   a. "Nenhum spec encontrado nesta pasta."
   b. "Quer criar um? Descreva o que precisa ou use /spec create."

/spec create [weight]

1. mcp__mcp-time__current_time -> data actual
2. Verificar se SPEC.md ja existe
   - Se existe e status != completed:
     "Ja existe um spec activo. Usar /spec update ou apagar o existente?"
     PARAR e esperar resposta.
3. Detectar contexto do projecto:
   a. Ler .desk-project se existe -> project_id, project_name, desk_task
   b. Se nao existe: "Em que projecto estamos? (ou 'novo')"
4. Determinar peso:
   a. Se argumento dado (light/medium/heavy): usar esse
   b. Se nao: analisar conversa anterior