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:
2026-02-07 21:41:24 +00:00
parent bcce928beb
commit 2cb3210962
209 changed files with 50869 additions and 0 deletions

View File

@@ -0,0 +1,209 @@
---
name: brainstorm
description: >
Brainstorming estruturado v1.0. Explora ideias de multiplos angulos antes de criar spec.
Consulta datasets Dify KB para opinioes de especialistas por dominio.
Use when "brainstorm", "ideia", "pensar", "explorar", "debater",
"o que achas", "como farias", "vale a pena", "pros e contras".
author: Descomplicar® Crescimento Digital
version: 1.0.0
quality_score: 70
user_invocable: true
category: productivity
tags: [brainstorm, ideacao, debate, explorar, dify, especialistas, decisao]
desk_project: 65
allowed-tools: Read, Write, Glob, Grep, mcp__dify-kb, mcp__mcp-time, mcp__memory-supabase
mcps: dify-kb, mcp-time, memory-supabase
---
# /brainstorm v1.0 - Ideacao Estruturada
Explora ideias de multiplos angulos antes de formalizar num spec.
Consulta especialistas via Dify KB para enriquecer a discussao.
**Flow:** brainstorm -> /spec create -> /sprint plan -> codigo
---
## Comandos
| Comando | Funcao |
|---------|--------|
| `/brainstorm` | Brainstorm interactivo sobre ideia |
| `/brainstorm <tema>` | Brainstorm focado num tema |
| `/brainstorm decide` | Resumir opcoes e ajudar a decidir |
| `/brainstorm save` | Guardar resultado para usar no /spec |
---
## Protocolo Principal
```
1. mcp__mcp-time__current_time
2. RECEBER ideia do utilizador:
- Se argumento dado: usar como tema
- Se nao: "Qual e a ideia que queres explorar?"
3. FASE 1 - Entender a Ideia
a. Repetir a ideia nas proprias palavras:
"Se entendo bem, queres [X] para resolver [Y]. Correcto?"
b. Perguntar contexto se faltar:
- Para quem e? (cliente, interno, produto)
- Que problema resolve?
- Ha restricoes (tempo, budget, tecnicas)?
4. FASE 2 - Consultar Especialistas (Dify KB)
Escolher 2-4 datasets relevantes com base no tema:
| Tema | Datasets a Consultar |
|------|---------------------|
| Negocio/estrategia | "Estrategia", "Marketing Digital" |
| Desenvolvimento | "Desenvolvimento de Software", "Arquitectura" |
| Marketing | "Marketing Digital", "SEO", "Content Marketing" |
| Gestao | "Gestao de Projetos", "Gestao de Processos" |
| Produto | "Product Management", "UX/UI" |
| Infraestrutura | "DevOps", "Seguranca" |
| E-commerce | "E-commerce", "Marketing Digital" |
| Generico | "Estrategia", "Produtividade" |
Para cada dataset relevante:
```
mcp__dify-kb__dify_kb_retrieve_segments({
dataset: "[nome]",
query: "[tema + palavras-chave]"
})
```
Extrair insights relevantes e apresentar como "perspectiva do especialista".
5. FASE 3 - Explorar Angulos
Apresentar a ideia de MULTIPLAS perspectivas:
### Perspectiva Tecnica
- Viabilidade, complexidade, stack
- [Insight do dataset de Desenvolvimento/Arquitectura]
### Perspectiva de Negocio
- ROI, valor para cliente, diferenciacao
- [Insight do dataset de Estrategia/Marketing]
### Perspectiva Pratica
- Tempo, recursos, dependencias
- [Insight do dataset de Gestao]
### Riscos e Alternativas
- O que pode correr mal
- Abordagens alternativas
- "E se em vez de X, fizessemos Y?"
6. FASE 4 - Pros e Contras
| Aspecto | Pro | Contra |
|---------|-----|--------|
| [aspecto 1] | [vantagem] | [desvantagem] |
7. FASE 5 - Interaccao
"O que ressoa mais? Queres explorar algum angulo em detalhe?"
ITERAR com o utilizador ate:
- A ideia estar clara
- As decisoes principais estarem tomadas
- O scope estiver delineado
8. PERGUNTAR: "Pronto para formalizar? Posso criar o /spec com base nesta discussao."
```
---
## `/brainstorm decide`
Para quando ha multiplas opcoes e o utilizador precisa escolher:
```
1. Listar opcoes identificadas na discussao
2. Para cada opcao:
- Resumo em 1-2 frases
- Score por criterio (tecnico, negocio, pratico)
- Recomendacao: "Melhor para [cenario]"
3. Consultar datasets para argumentos adicionais
4. Apresentar comparacao:
## Decisao: [tema]
| Criterio | Opcao A | Opcao B | Opcao C |
|----------|---------|---------|---------|
| Complexidade | Baixa | Media | Alta |
| Valor | Medio | Alto | Alto |
| Tempo | 2h | 8h | 20h |
| Risco | Baixo | Medio | Alto |
**Recomendacao:** Opcao [X] porque [razao]
**Mas se [condicao]:** Opcao [Y]
5. "Qual escolhes? Ou queres explorar mais alguma?"
```
---
## `/brainstorm save`
Guarda o resultado da sessao para uso posterior:
```
1. Compilar resumo da discussao:
- Ideia original
- Angulos explorados
- Decisoes tomadas
- Opcao escolhida (se aplicavel)
- Insights dos datasets
2. Guardar em memory-supabase:
save_memory({
content: "[resumo estruturado]",
tags: ["brainstorm", "ideia", tema, projecto],
metadata: { type: "brainstorm", outcome: "spec_ready|needs_more|parked" }
})
3. "Brainstorm guardado. Usar /spec create para formalizar."
```
---
## Datasets Dify - Mapeamento
Os datasets sao consultados AUTOMATICAMENTE com base no tema.
O utilizador nao precisa de saber quais existem - o brainstorm descobre.
**Estrategia de query:**
- Usar 2-3 palavras-chave extraidas do tema
- Se primeiro resultado vazio, reformular query
- Apresentar insights como "especialistas sugerem..." (nao como "dataset diz...")
- Se nao houver resultados relevantes: ser honesto, nao inventar
**Exemplo de apresentacao:**
```
### Perspectiva de Marketing
Com base em boas praticas documentadas, para este tipo de projecto
recomenda-se [X] porque [Y]. Especificamente, [insight do dataset].
```
---
## Integracao
| Skill | Como integra |
|-------|-------------|
| `/spec create` | Brainstorm alimenta o spec com decisoes ja tomadas |
| `/brainstorm save` | Guarda em Supabase para contexto futuro |
| `/knowledge` | Pode ser invocado durante brainstorm para pesquisa adicional |
---
## Regras
1. **NUNCA** cortar o brainstorm curto - deixar o utilizador explorar
2. **SEMPRE** consultar pelo menos 2 datasets Dify relevantes
3. **NUNCA** inventar insights - se dataset nao tem info, dizer
4. Apresentar perspectivas como "especialistas" nao como "base de dados"
5. O brainstorm e livre - nao forcar estrutura prematuramente
6. Sugerir /spec create quando a ideia amadurecer, nao impor
7. Para PHDA: manter cada fase curta, perguntar antes de avancar
8. Alternativas sao valiosas - nao descartar ideias cedo demais

View File

@@ -0,0 +1,228 @@
---
name: discover
description: >
Pesquisa e discovery v1.0. Investiga viabilidade, abordagens e estado da arte antes de brainstorm.
Pesquisa web, Dify KB, codebase existente e Context7 para docs de libraries.
Use when "pesquisar", "investigar", "discover", "como funciona", "existe algo para",
"alternativas", "estado da arte", "viabilidade", "research", "antes de comecar".
author: Descomplicar® Crescimento Digital
version: 1.0.0
quality_score: 70
user_invocable: true
category: productivity
tags: [research, discovery, pesquisa, viabilidade, alternativas, estado-arte]
desk_project: 65
allowed-tools: Read, Glob, Grep, WebSearch, WebFetch, mcp__dify-kb, mcp__mcp-time, mcp__memory-supabase, mcp__plugin_context7_context7
mcps: dify-kb, mcp-time, memory-supabase, context7
---
# /discover v1.0 - Pesquisa e Discovery
Investiga antes de opinar. Recolhe factos, abordagens e estado da arte para alimentar o brainstorm.
**Flow:** ideia -> **discover** -> brainstorm -> spec -> sprint -> codigo
---
## Comandos
| Comando | Funcao |
|---------|--------|
| `/discover` | Pesquisa interactiva sobre tema |
| `/discover <tema>` | Pesquisa focada |
| `/discover tech <tema>` | Foco em abordagens tecnicas e libraries |
| `/discover market <tema>` | Foco em mercado, concorrentes, tendencias |
| `/discover internal <tema>` | Foco no que ja temos (codebase, KB, projectos) |
| `/discover save` | Guardar findings para brainstorm |
---
## Protocolo Principal
```
1. mcp__mcp-time__current_time
2. RECEBER tema:
- Se argumento dado: usar como query base
- Se nao: "O que queres investigar?"
3. CLARIFICAR objectivo:
"Queres saber:"
a) Se e viavel tecnicamente?
b) Que abordagens/ferramentas existem?
c) O que a concorrencia faz?
d) O que ja temos que pode ajudar?
e) Tudo acima?
4. FASE 1 - Pesquisa Interna (o que ja sabemos)
a. Dify KB - Pesquisar em TODOS os datasets relevantes:
mcp__dify-kb__dify_kb_retrieve_segments({
dataset: "[relevante]",
query: "[tema]"
})
Repetir para 3-5 datasets que possam ter info.
b. Codebase local - Procurar implementacoes existentes:
Grep/Glob por termos relacionados em:
- /media/ealmeida/Dados/Dev/
- ~/.claude/plugins/
c. Memory Supabase - Experiencias anteriores:
mcp__memory-supabase__search_memories({
query: "[tema]"
})
d. Projectos Desk - Trabalho anterior relacionado:
Se tema se relaciona com projecto existente,
verificar tasks e discussoes relevantes.
5. FASE 2 - Pesquisa Externa (o que o mundo sabe)
a. Web Search - Estado da arte:
WebSearch("[tema] best practices 2026")
WebSearch("[tema] alternatives comparison")
b. Context7 - Documentacao de libraries:
SE tema e tecnico:
mcp__plugin_context7_context7__resolve-library-id({
libraryName: "[library relevante]"
})
Depois: query-docs para detalhes
c. WebFetch - Artigos especificos:
Se WebSearch encontra artigos relevantes,
buscar detalhes com WebFetch.
6. FASE 3 - Compilar Findings
---
## Discovery: [tema]
_Data: YYYY-MM-DD_
### O Que Ja Temos
- [Codigo/skills/MCPs existentes relevantes]
- [Experiencias anteriores (memoria)]
- [Knowledge base interna]
### Estado da Arte
- [O que o mercado/industria faz]
- [Ferramentas e abordagens populares]
- [Tendencias 2026]
### Abordagens Possiveis
| Abordagem | Descricao | Complexidade | Exemplo |
|-----------|-----------|-------------|---------|
| A | [desc] | Baixa/Media/Alta | [ref] |
| B | [desc] | Baixa/Media/Alta | [ref] |
### Documentacao Relevante
- [Links e refs encontrados]
### Lacunas
- [O que NAO encontrei e precisamos investigar mais]
### Recomendacao Inicial
[Baseada nos factos recolhidos, nao em opiniao]
---
7. PERGUNTAR:
"Queres aprofundar algum ponto? Ou avancar para /brainstorm?"
```
---
## Variantes
### `/discover tech <tema>`
Foco tecnico - ignora mercado, concentra-se em:
```
1. Libraries e frameworks (Context7)
2. Padroes de implementacao (WebSearch)
3. Codigo existente no projecto (Grep/Glob)
4. Benchmarks e comparacoes
5. Documentacao oficial
```
### `/discover market <tema>`
Foco mercado - ignora tecnico, concentra-se em:
```
1. Concorrentes e alternativas (WebSearch)
2. Pricing e modelos de negocio
3. Tendencias e previsoes
4. Datasets de Marketing e Estrategia (Dify KB)
5. Opiniao de mercado
```
### `/discover internal <tema>`
So fontes internas - nao pesquisa web:
```
1. Dify KB (todos os datasets)
2. Memory Supabase (experiencias)
3. Codebase (implementacoes)
4. Projectos Desk (historico)
5. Hub Obsidian (documentacao)
```
---
## `/discover save`
```
1. Compilar todos os findings da sessao
2. Guardar em memory-supabase:
save_memory({
content: "[findings compilados]",
tags: ["discover", tema, "research"],
metadata: {
type: "discovery",
sources_count: N,
approaches_found: M,
outcome: "brainstorm_ready|needs_more|dead_end"
}
})
3. "Discovery guardado. Usar /brainstorm para debater as opcoes."
```
---
## Fontes de Pesquisa (por prioridade)
| # | Fonte | Tool | Quando |
|---|-------|------|--------|
| 1 | Dify KB | mcp__dify-kb | Sempre (conhecimento interno) |
| 2 | Memory Supabase | mcp__memory-supabase | Sempre (experiencia passada) |
| 3 | Codebase local | Grep, Glob | Quando tema e tecnico |
| 4 | Web Search | WebSearch | Quando precisa estado da arte |
| 5 | Context7 | mcp__plugin_context7_context7 | Quando envolve libraries especificas |
| 6 | WebFetch | WebFetch | Para artigos especificos encontrados |
| 7 | Desk CRM | mcp__desk-crm-v3 | Quando tema se relaciona com projecto |
**Regra:** Pesquisa interna PRIMEIRO, externa DEPOIS. O que ja sabemos e mais fiavel.
---
## Integracao
| Skill | Como integra |
|-------|-------------|
| `/brainstorm` | Findings alimentam perspectivas e argumentos |
| `/spec create` | Decisoes tecnicas informadas pela pesquisa |
| `/knowledge` | Pode ser invocado para pesquisa KB mais profunda |
| `/research` (marketing) | Complementar para analise competitiva formal |
---
## Regras
1. **FACTOS antes de opinioes** - reportar o que encontrou, nao o que acha
2. **SEMPRE** pesquisar internamente antes de ir a web
3. **NUNCA** inventar fontes ou resultados
4. Se nao encontrar nada: dizer "nao encontrei info sobre X"
5. **Lacunas sao valiosas** - saber o que NAO sabemos e importante
6. Manter fontes rastreavies - incluir links quando disponivel
7. Para PHDA: resumos curtos primeiro, detalhes a pedido
8. **NUNCA** fazer pesquisa infinita - max 3-4 queries por fonte, depois compilar

View File

@@ -0,0 +1,116 @@
---
name: scope
description: >
Validacao de scope v1.0. Verifica rapidamente se o trabalho esta dentro do spec.
Detecta scope creep. Sugere criar novo spec para trabalho fora do scope.
Use when "scope", "scope creep", "estou dentro do spec", "am I on track",
"fora do scope", "alinhado", "derrapagem".
author: Descomplicar® Crescimento Digital
version: 1.0.0
quality_score: 70
user_invocable: true
category: productivity
tags: [scope, validation, spec, creep, alignment, check]
desk_project: 65
allowed-tools: Read, Bash, Glob, Grep, mcp__mcp-time
mcps: mcp-time
dependencies:
skills: [spec]
---
# /scope v1.0 - Validacao de Scope
Check rapido: "o trabalho que estou a fazer esta dentro do que combinámos?"
---
## Comandos
| Comando | Funcao |
|---------|--------|
| `/scope` | Check rapido (1-3 linhas) |
| `/scope detail` | Analise detalhada com mapeamento ficheiros-scope |
---
## Protocolos
### `/scope` (check rapido)
```
1. Procurar SPEC.md:
- Directorio actual, depois pais (max 5 niveis)
- Parar em /media/ealmeida/Dados/Dev ou /media/ealmeida/Dados
2. SE nao encontrado:
"Sem SPEC.md. A trabalhar sem contrato de scope."
PARAR.
3. SE encontrado mas nao aprovado:
"Spec em draft (nao aprovado). Tratando como guia."
4. Parse SPEC.md:
- Items "Faz" (scope in)
- Items "Nao Faz" (scope out)
5. Analisar trabalho recente:
a. Se git repo:
- git diff --stat (uncommitted changes)
- git diff --stat HEAD~3..HEAD (ultimos 3 commits)
b. Se nao git: ficheiros modificados nas ultimas 2h (via stat)
6. Classificar cada ficheiro modificado:
- Corresponde a item do scope -> OK
- Mencionado em "Nao Faz" -> ALERTA
- Nao mencionado -> WARN (potencial creep)
7. Output rapido:
SE tudo OK:
"Dentro do spec. X/Y scope items em progresso."
SE ha alertas:
"SCOPE ALERT: [N] ficheiros modificados fora do spec."
" - [ficheiro1]: nao mencionado no spec"
" - [ficheiro2]: esta em 'Nao Faz'"
"Considere /spec update ou criar novo spec."
```
### `/scope detail`
```
1. Executar tudo de /scope
2. ADICIONAR mapeamento detalhado:
---
## Scope Detail: [titulo do spec]
### Mapeamento Scope -> Ficheiros
| Scope Item | Ficheiros Associados | Status |
|-----------|---------------------|--------|
| Item 1 | a.php, b.js | Em progresso |
| Item 2 | - | Nao iniciado |
### Ficheiros Fora do Scope
| Ficheiro | Tipo Alteracao | Possivel Motivo |
|----------|---------------|-----------------|
| c.css | Modificado | Refactoring nao planeado? |
| d.php | Novo | Feature nova? |
### Criterios de Aceitacao
| Criterio | Verificavel? | Estado |
|----------|-------------|--------|
| DADO X QUANDO Y ENTAO Z | Sim | Pendente |
### Recomendacao
- [O que fazer com o trabalho fora do scope]
- [Criar novo spec? Actualizar existente? Reverter?]
---
```
---
## Regras
1. `/scope` deve ser RAPIDO (segundos, nao minutos)
2. Nao modificar nenhum ficheiro - apenas leitura e analise
3. Ser factual - reportar o que ve, nao julgar
4. Scope creep nao e mau por si - e mau quando nao e detectado
5. Sugerir solucoes (update spec, criar novo) nao apenas reportar problemas

View 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

View File

@@ -0,0 +1,273 @@
---
name: sprint
description: >
Sprints flexiveis v1.0. Le tasks do Desk CRM, agrupa em sprints com checkpoints.
Duracao flexivel por projecto. Checkpoint a meio e review no final.
Use when "sprint", "planning", "planeamento", "sprint plan", "sprint review",
"check-in", "o que fazer a seguir", "prioridades".
author: Descomplicar® Crescimento Digital
version: 1.0.0
quality_score: 70
user_invocable: true
category: productivity
tags: [sprint, planning, agile, desk, tasks, checkpoint, review]
desk_project: 65
allowed-tools: Read, Write, Edit, Bash, Glob, mcp__desk-crm-v3, mcp__mcp-time, mcp__memory-supabase
mcps: desk-crm-v3, mcp-time, memory-supabase
dependencies:
skills: [spec]
mcps: [desk-crm-v3, mcp-time]
---
# /sprint v1.0 - Sprints Flexiveis
Sprints com duracao flexivel, Desk CRM como fonte de verdade, checkpoints obrigatorios.
---
## Comandos
| Comando | Funcao |
|---------|--------|
| `/sprint` | Mostrar sprint activo |
| `/sprint plan` | Criar sprint a partir de tasks Desk |
| `/sprint check-in` | Checkpoint a meio do sprint |
| `/sprint review` | Review final do sprint |
| `/sprint close` | Fechar sprint e calcular metricas |
| `/sprint add <task_id>` | Adicionar task ao sprint activo |
| `/sprint remove <task_id>` | Remover task do sprint |
---
## SPRINT.md Template
```markdown
---
sprint_id: YYYY-WNN-[projecto]
project_id: null
start_date: YYYY-MM-DD
end_date: YYYY-MM-DD
status: active
checkpoint_done: false
spec_refs: []
tasks_planned: 0
tasks_added_after: 0
---
# Sprint: [Goal em 1 frase]
## Tasks
| Desk ID | Task | Prioridade | Estimativa | Status | Tempo Real |
|---------|------|-----------|-----------|--------|-----------|
## Checkpoint (Meio do Sprint)
_Data: [a preencher]_
- On track: [sim/nao]
- Bloqueios: [lista]
- Scope changes: [lista]
- Accao: [continuar/ajustar]
## Review (Final do Sprint)
_Data: [a preencher]_
- Tasks completadas: X/Y
- Tasks adicionadas pos-planeamento: N
- Tempo estimado: Xh
- Tempo real: Yh
- Scope changes: N
- Licoes aprendidas: [lista]
- Proximos passos: [lista]
```
---
## Protocolos
### `/sprint` (sem argumentos)
```
1. Procurar SPRINT.md no directorio actual (ou pais, max 3 niveis)
2. SE encontrado e status == active:
a. Ler SPRINT.md
b. Buscar estado actual das tasks no Desk CRM:
Para cada task_id na tabela:
mcp__desk-crm-v3__get_task({ id: task_id })
c. Mostrar:
---
## Sprint Activo: [goal]
**Projecto:** [nome] (#id)
**Periodo:** [start] -> [end] (dia X de Y)
**Checkpoint:** [feito/pendente]
| Task | Status Desk | Sprint |
|------|------------|--------|
**Progresso:** X/Y tasks (Z%)
---
3. SE nao encontrado:
"Sem sprint activo. Usar /sprint plan para criar."
```
### `/sprint plan`
```
1. mcp__mcp-time__current_time -> data actual
2. Detectar contexto:
a. Ler .desk-project se existe -> project_id
b. Se nao: perguntar projecto
3. Buscar tasks abertas do Desk CRM:
mcp__desk-crm-v3__get_tasks({ project_id: X, status: [1, 4] })
(status 1=Not Started, 4=In Progress)
4. Verificar SPEC.md:
- Se existe e aprovado: incluir referencia no sprint
- Se nao existe: WARN "Sem spec aprovado. Considere /spec create."
- Nao bloquear por isto (gradual adoption)
5. Apresentar tasks ao Emanuel por prioridade:
## Tasks Disponiveis para Sprint
### Urgente / Alta
- #1450: Implement API (4h estimado)
- #1451: Fix login bug (1h estimado)
### Normal
- #1448: Write docs (2h estimado)
### Baixa
- #1452: Refactor CSS (3h estimado)
6. Perguntar:
"Que tasks incluir neste sprint? E data limite?"
(pode ser: "todas as urgentes", "#1450 e #1448", etc.)
7. Calcular estimativa total
8. GERAR SPRINT.md:
- sprint_id: YYYY-WNN-[projecto] (semana ISO actual)
- tasks_planned: contagem
- Preencher tabela de tasks
9. CONFIRMAR: "Sprint com [N] tasks, ~[X]h, ate [data]. Criar?"
10. Gravar SPRINT.md
11. Guardar em memory-supabase:
save_memory({
content: "Sprint [id] iniciado: [N] tasks, [X]h, ate [data]",
tags: ["sprint", "project-[id]", sprint_id]
})
12. "Sprint criado. Check-in recomendado em [data_meio]."
```
### `/sprint check-in`
```
1. Ler SPRINT.md
- Se nao existe ou status != active: "Sem sprint activo."
2. Se checkpoint_done == true:
"Checkpoint ja realizado. Para novo check-in, usar /sprint review."
3. mcp__mcp-time__current_time -> calcular dia actual vs periodo
4. Para cada task do sprint:
mcp__desk-crm-v3__get_task({ id: task_id })
- Comparar status actual vs planeado
5. Calcular:
- % tempo decorrido
- % tasks completadas
- Tasks adicionadas apos planeamento (comparar com tasks_planned)
6. Detectar alertas:
- >50% tempo decorrido mas <40% tasks feitas -> "ATRASADO"
- Tasks novas adicionadas -> "SCOPE CREEP: [N] tasks nao planeadas"
- Tasks bloqueadas -> "BLOQUEIO: [task]"
7. Apresentar:
---
## Checkpoint Sprint [id]
**Progresso:** X/Y tasks (Z%)
**Tempo:** dia M de N (W% decorrido)
**Alerta:** [verde/amarelo/vermelho]
### Tasks
| Task | Planeado | Actual |
|------|----------|--------|
### Problemas Detectados
- [lista ou "nenhum"]
### Recomendacao
[Continuar como esta / Ajustar scope / Pedir ajuda]
---
8. Perguntar: "Algum ajuste? Notas?"
9. Actualizar SPRINT.md:
- Preencher seccao Checkpoint
- checkpoint_done: true
```
### `/sprint review`
```
1. Ler SPRINT.md
- Se status != active: "Sprint nao activo."
2. mcp__mcp-time__current_time
3. Estado final de todas as tasks:
Para cada task: mcp__desk-crm-v3__get_task({ id })
4. Buscar tempo real:
mcp__desk-crm-v3__get_task_time_logs({ task_id }) para cada task
5. Calcular metricas:
- Completion rate: tasks_done / tasks_total
- Scope creep: tasks_added_after (comparar lista actual vs original)
- Tempo: soma estimativas vs soma real
- Precisao: |estimado - real| / estimado * 100
6. Apresentar review:
---
## Sprint Review: [id]
### Resultado: [X/Y tasks completadas]
| Task | Estimativa | Tempo Real | Status |
|------|-----------|-----------|--------|
### Metricas
- Completion rate: Z%
- Scope changes: N tasks adicionadas/removidas
- Tempo: Xh estimado vs Yh real (precisao: W%)
### Retrospectiva
- O que correu bem?
- O que pode melhorar?
- Accoes para proximo sprint?
---
7. Perguntar retrospectiva ao Emanuel
8. Actualizar SPRINT.md seccao Review
9. Registar metricas:
a. memory-supabase:
save_memory({
content: "Sprint [id] review: [X/Y] tasks, [scope_changes] changes, [Yh] real vs [Xh] estimado",
tags: ["sprint", "metrics", sprint_id, "project-[id]"]
})
b. Se .desk-project existe: comentar na task Desk (formato HTML #27)
10. Perguntar: "Planear proximo sprint? /sprint plan"
### `/sprint close`
```
1. Executar /sprint review se review nao feito
2. Actualizar SPRINT.md: status -> closed
3. "Sprint fechado. Metricas registadas."
```
### `/sprint add <task_id>`
```
1. Ler SPRINT.md activo
2. Verificar se task_id ja esta no sprint
3. Buscar task do Desk: mcp__desk-crm-v3__get_task({ id: task_id })
4. Adicionar a tabela de tasks
5. Incrementar tasks_added_after no frontmatter
6. WARN: "Task adicionada apos planeamento. Isto conta como scope change."
```
---
## Regras
1. **NUNCA** criar sprint sem consultar Desk CRM
2. **SEMPRE** perguntar ao Emanuel que tasks incluir (nao decidir sozinho)
3. Checkpoint e recomendado mas nao obrigatorio
4. Review e obrigatorio antes de fechar sprint
5. Metricas sao factuais - nao ajustar para "parecer bem"
6. Sprint nao tem cadencia fixa - dura o que o projecto precisa

View File

@@ -0,0 +1,144 @@
---
name: status
description: >
Dashboard de projecto v1.0. Agrega spec, sprint, desk, git e timer num unico view.
Use when "status", "project status", "estado do projecto", "como estamos",
"progress", "overview", "dashboard", "resumo projecto".
author: Descomplicar® Crescimento Digital
version: 1.0.0
quality_score: 70
user_invocable: true
category: productivity
tags: [status, dashboard, project, progress, overview, aggregator]
desk_project: 65
allowed-tools: Read, Bash, Glob, mcp__desk-crm-v3, mcp__mcp-time
mcps: desk-crm-v3, mcp-time
dependencies:
skills: [spec, sprint, scope]
mcps: [desk-crm-v3, mcp-time]
---
# /status v1.0 - Dashboard de Projecto
Agrega todas as fontes num unico painel: SPEC.md + SPRINT.md + Desk CRM + git + timer.
---
## Comandos
| Comando | Funcao |
|---------|--------|
| `/status` | Status completo do projecto actual |
| `/status quick` | Resumo em 1-2 linhas |
| `/status all` | Status de todos os projectos activos |
---
## Protocolos
### `/status`
```
1. mcp__mcp-time__current_time
2. Detectar contexto:
a. Ler .desk-project se existe -> project_id, project_name
b. Se nao: usar directorio actual como contexto
3. RECOLHER em paralelo:
a. SPEC: Ler SPEC.md (status, peso, scope items, aprovacao)
b. SPRINT: Ler SPRINT.md (progresso, checkpoint, periodo)
c. DESK: mcp__desk-crm-v3__get_tasks({ project_id, status: [1,2,4,5] })
d. TIMER: Ler ~/.claude-work/active-timer.json
e. GIT: git log --oneline -5 && git status --short (se git repo)
4. COMPOR dashboard:
---
## Projecto: [nome] (#id)
### Spec
[Se existe:]
- **Status:** [draft/approved/in_progress/amended]
- **Titulo:** [titulo]
- **Progresso:** X/Y scope items
- **Amendments:** N alteracoes pos-aprovacao
[Se nao existe:]
- **Sem spec.** Considere `/spec create`
### Sprint
[Se activo:]
- **Sprint:** [id] | [start] -> [end]
- **Tasks:** X/Y completadas (Z%)
- **Checkpoint:** [feito em DATA / pendente]
[Se nao activo:]
- **Sem sprint activo.** Use `/sprint plan`
### Desk CRM
- **Tasks abertas:** N (U urgentes, H alta prioridade)
- **Tasks bloqueadas:** N
- **Tempo esta semana:** Xh
### Timer
[Se activo:]
- **Timer:** #[task_id] - [nome] (Xh Xm)
[Se nao:]
- **Sem timer activo**
### Git
[Se repo:]
- **Ultimos commits:** N (7 dias)
- **Changes nao committed:** N ficheiros
[Se nao repo:]
- **Sem repositorio git**
### Bloqueios
- [bloqueio 1]
- [Nenhum detectado]
---
```
### `/status quick`
```
1. Mesma recolha mas output compacto:
[nome] (#id) | Spec: [status] | Sprint: [X/Y tasks] | Desk: [N open] | Timer: [activo/off]
Exemplo:
"Stack (#65) | Spec: approved (3/5) | Sprint W06: 2/4 tasks | Desk: 8 open | Timer: off"
```
### `/status all`
```
1. Encontrar todos os .desk-project:
Glob: /media/ealmeida/Dados/Dev/**/.desk-project
2. Para cada projecto encontrado:
a. Ler .desk-project -> project_id, project_name
b. Quick fetch Desk: mcp__desk-crm-v3__get_tasks({ project_id, status: [1,4] })
c. Verificar existencia de SPEC.md e SPRINT.md
3. Compilar tabela:
---
## Projectos Activos
| Projecto | Spec | Sprint | Tasks Abertas | Bloqueios |
|----------|------|--------|--------------|-----------|
| Stack (#65) | approved | W06 (2/4) | 8 | 0 |
| SFV (#80) | draft | - | 12 | 2 |
| Hub (#90) | - | - | 3 | 0 |
**Total:** N projectos, M tasks abertas, K bloqueios
---
NOTA: /status all pode demorar ~30s por projecto.
Limitar a projectos com .desk-project (nao todos os do Desk CRM).
```
---
## Regras
1. **NUNCA** modificar dados - apenas leitura
2. Dados em falta = mostrar sugestao (nao esconder)
3. Bloqueios devem saltar a vista (primeiro destaque)
4. Se falhar alguma fonte (MCP offline): mostrar as restantes com nota
5. `/status quick` para uso em `/today`; `/status` para analise