feat: adiciona 12 plugins Descomplicar ao marketplace
Plugins: automacao, crm-ops, design-media, dev-tools, gestao, infraestrutura, marketing, negocio, perfex-dev, project-manager, wordpress + hello-plugin (existente). Totais: 83 skills, 44 agents, 12 datasets.json Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
426
project-manager/skills/spec/SKILL.md
Normal file
426
project-manager/skills/spec/SKILL.md
Normal file
@@ -0,0 +1,426 @@
|
||||
---
|
||||
name: spec
|
||||
description: >
|
||||
Spec-driven development v1.0. Cria e gere SPEC.md como contrato entre utilizador e Claude.
|
||||
Forca ambos a alinhar antes de codificar. Suporta 3 pesos (light/medium/heavy).
|
||||
Use when "spec", "especificacao", "requisitos", "requirements", "define scope",
|
||||
"approve spec", "check spec", "o que vamos fazer", "antes de comecar".
|
||||
author: Descomplicar® Crescimento Digital
|
||||
version: 1.0.0
|
||||
quality_score: 70
|
||||
user_invocable: true
|
||||
category: productivity
|
||||
tags: [spec, requirements, scope, planning, project, contract]
|
||||
desk_project: 65
|
||||
allowed-tools: Read, Write, Edit, Bash, Glob, mcp__desk-crm-v3, mcp__mcp-time
|
||||
mcps: desk-crm-v3, mcp-time
|
||||
---
|
||||
|
||||
# /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.**
|
||||
|
||||
---
|
||||
|
||||
## 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
|
||||
|
||||
```markdown
|
||||
---
|
||||
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)
|
||||
|
||||
```markdown
|
||||
---
|
||||
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
|
||||
|
||||
```markdown
|
||||
---
|
||||
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
|
||||
- <3 frases de requisitos, sem decisoes tecnicas -> light
|
||||
- Feature com decisoes -> medium
|
||||
- Projecto novo / multiplas fases -> heavy
|
||||
c. CONFIRMAR com utilizador: "Detecto [peso]. Concordas?"
|
||||
5. EXTRAIR da conversa anterior:
|
||||
- Problema: o que o utilizador disse que esta mal ou falta
|
||||
- Solucao: o que foi discutido fazer
|
||||
- Scope items: accoes concretas mencionadas
|
||||
- Exclusoes: o que ficou de fora
|
||||
- Decisoes: escolhas ja feitas
|
||||
- SE info insuficiente: PERGUNTAR (Regra #9)
|
||||
"Preciso entender melhor: [pergunta especifica]"
|
||||
6. GERAR SPEC.md usando template do peso
|
||||
- Preencher frontmatter com dados do projecto
|
||||
- NUNCA inventar requisitos
|
||||
- Se duvida, marcar com "[CONFIRMAR: ...]"
|
||||
7. APRESENTAR ao utilizador:
|
||||
- Mostrar SPEC.md completo no chat
|
||||
- "Este spec captura o que precisa? Que alteracoes?"
|
||||
PARAR e esperar resposta.
|
||||
8. ITERAR ate "esta bem" ou "aprovado"
|
||||
9. Gravar SPEC.md no directorio actual com status: draft
|
||||
10. "Spec criado como draft. Quando quiser aprovar: /spec approve"
|
||||
OU se utilizador ja disse "aprova": executar protocolo approve
|
||||
```
|
||||
|
||||
**Anti-patterns na extracao:**
|
||||
- Pedido vago ("faz bonito") -> PERGUNTAR "bonito como? que resultado visual?"
|
||||
- Scope infinito ("melhora tudo") -> PERGUNTAR "quais os 3 items mais importantes?"
|
||||
- Sem criterio de sucesso -> PERGUNTAR "como saberemos que esta feito?"
|
||||
|
||||
### `/spec approve`
|
||||
|
||||
```
|
||||
1. Ler SPEC.md do directorio actual
|
||||
- Se nao existe: "Nenhum spec para aprovar. Use /spec create."
|
||||
- Se status ja e approved: "Spec ja aprovado em [data]."
|
||||
2. Verificar status e draft ou review
|
||||
3. MOSTRAR resumo ao utilizador:
|
||||
---
|
||||
## Spec para Aprovacao
|
||||
**Titulo:** [titulo]
|
||||
**Peso:** [peso]
|
||||
**Scope:** [N] items a fazer, [M] exclusoes
|
||||
**Criterios:** [K] criterios de aceitacao
|
||||
**Estimativa:** [Xh] (se heavy)
|
||||
---
|
||||
4. Usar AskUserQuestion:
|
||||
"Aprovar este spec? Apos aprovacao, alteracoes serao tracked como scope creep."
|
||||
Opcoes: "Aprovar" / "Preciso de alteracoes"
|
||||
5. SO se "Aprovar":
|
||||
a. mcp__mcp-time__current_time -> data/hora
|
||||
b. Actualizar frontmatter:
|
||||
status: approved
|
||||
approved: YYYY-MM-DD
|
||||
c. Adicionar no final: <!-- APPROVED: YYYY-MM-DD by Emanuel -->
|
||||
d. Se .desk-project existe:
|
||||
- Comentar na task Desk (formato HTML #27):
|
||||
<h4>Spec Aprovado</h4>
|
||||
<p><strong>Titulo:</strong> [titulo]</p>
|
||||
<ul><li>Scope: [N] items</li><li>Peso: [peso]</li></ul>
|
||||
<hr>
|
||||
<p><strong>Skill:</strong> /spec | <strong>Data:</strong> YYYY-MM-DD</p>
|
||||
e. "Spec aprovado. Desenvolvimento pode avancar."
|
||||
6. Se "Preciso de alteracoes":
|
||||
"Que alteracoes? Vou actualizar o draft."
|
||||
```
|
||||
|
||||
### `/spec check`
|
||||
|
||||
```
|
||||
1. Ler SPEC.md
|
||||
- Se nao existe: "Sem spec. A trabalhar sem contrato."
|
||||
- Se nao aprovado: "Spec em draft. Tratando como guia apenas."
|
||||
2. Parse SPEC.md:
|
||||
- Extrair items de Scope (Faz)
|
||||
- Extrair items Nao Faz
|
||||
- Extrair Criterios de Aceitacao
|
||||
3. Analisar trabalho recente:
|
||||
a. Se git repo: git diff --stat + git log --oneline -10
|
||||
b. Ficheiros modificados recentemente (Glob + stat)
|
||||
4. Para cada item de Scope (Faz):
|
||||
- Avaliar se ha evidencia de trabalho (ficheiros, commits)
|
||||
- Marcar: done / in_progress / not_started
|
||||
5. Detectar SCOPE CREEP:
|
||||
- Ficheiros modificados que NAO correspondem a nenhum item do scope
|
||||
- Funcionalidades novas nao previstas
|
||||
- Para cada deteccao: "SCOPE ALERT: [ficheiro/funcao] fora do spec"
|
||||
6. OUTPUT:
|
||||
---
|
||||
## Spec Check: [titulo]
|
||||
|
||||
### Progresso: X/Y scope items
|
||||
- [x] Item 1 (ficheiros: a.php, b.js)
|
||||
- [ ] Item 2 (nao iniciado)
|
||||
- [~] Item 3 (em progresso)
|
||||
|
||||
### Criterios: X/Y verificaveis
|
||||
- [x] Criterio 1: verificado
|
||||
- [ ] Criterio 2: pendente
|
||||
|
||||
### Alertas de Scope
|
||||
- [ficheiro]: modificado mas fora do scope
|
||||
|
||||
### Recomendacao
|
||||
[Continuar / Parar e alinhar / Criar novo spec para extras]
|
||||
---
|
||||
```
|
||||
|
||||
### `/spec update`
|
||||
|
||||
```
|
||||
1. Ler SPEC.md
|
||||
2. SE status == approved ou in_progress:
|
||||
a. AVISAR: "Spec aprovado. Alteracoes serao registadas como scope delta."
|
||||
b. Perguntar: "O que mudou?"
|
||||
c. Adicionar seccao Alteracoes:
|
||||
### [DATA] - [Descricao]
|
||||
- Adicionado: [item]
|
||||
- Removido: [item]
|
||||
- Razao: [porque]
|
||||
d. Incrementar scope_changes no frontmatter
|
||||
e. Actualizar status: amended
|
||||
f. CONFIRMAR com utilizador antes de gravar
|
||||
3. SE status == draft:
|
||||
a. Edicao normal, sem tracking de amendments
|
||||
b. Perguntar o que alterar
|
||||
c. Aplicar e mostrar resultado
|
||||
```
|
||||
|
||||
### `/spec bypass`
|
||||
|
||||
```
|
||||
1. Criar ficheiro /tmp/claude-spec-gate-bypass com timestamp
|
||||
2. "Bypass activo por 30 minutos. O hook spec-gate nao bloqueara."
|
||||
3. "Usar para quick fixes. Para trabalho significativo, criar spec."
|
||||
```
|
||||
|
||||
### `/spec review`
|
||||
|
||||
```
|
||||
1. Ler SPEC.md
|
||||
2. Verificar status == draft
|
||||
3. Actualizar status: review
|
||||
4. "Spec movido para review. Leia e use /spec approve quando pronto."
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Lifecycle dos Status
|
||||
|
||||
```
|
||||
draft -> review -> approved -> in_progress -> completed
|
||||
|
|
||||
v
|
||||
amended (alteracoes pos-aprovacao)
|
||||
```
|
||||
|
||||
- **draft**: Criado, nao validado
|
||||
- **review**: Pronto para revisao do Emanuel
|
||||
- **approved**: Contrato aceite, trabalho pode comecar
|
||||
- **in_progress**: Trabalho em curso (auto, quando primeiro ficheiro editado)
|
||||
- **amended**: Aprovado mas com alteracoes (scope creep tracked)
|
||||
- **completed**: Todos os items de scope e criterios verificados
|
||||
|
||||
---
|
||||
|
||||
## Integracao Phase Gates
|
||||
|
||||
| Gate | Equivalencia |
|
||||
|------|-------------|
|
||||
| G1: Scope aprovado | SPEC.md approved |
|
||||
| G2: Prototipo funcional | Sprint mid-checkpoint |
|
||||
| G3: Testes passam | /spec check -> todos criterios OK |
|
||||
| G4: Docs completa | SPEC.md status -> completed |
|
||||
|
||||
---
|
||||
|
||||
## Regras de Ouro
|
||||
|
||||
1. **NUNCA** comecar codigo significativo sem spec (hook garante isto)
|
||||
2. **NUNCA** auto-aprovar spec - so o Emanuel aprova
|
||||
3. **NUNCA** inventar requisitos no spec - se falta info, PERGUNTAR
|
||||
4. **SEMPRE** mostrar spec ao utilizador antes de gravar
|
||||
5. **SEMPRE** marcar `[CONFIRMAR: ...]` quando ha ambiguidade
|
||||
6. **SEMPRE** linkar ao Desk CRM quando .desk-project existe
|
||||
7. Spec e contrato bilateral - ambos comprometem-se
|
||||
8. Alteracoes apos aprovacao sao legtimas mas devem ser tracked
|
||||
Reference in New Issue
Block a user