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:
12
project-manager/.claude-plugin/plugin.json
Normal file
12
project-manager/.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "project-manager",
|
||||
"description": "Spec-driven project management with flexible sprints, scope validation, and metrics. Prevents wasted work by forcing alignment before coding. 4 skills, 2 agents, 1 hook.",
|
||||
"version": "1.0.0",
|
||||
"author": {
|
||||
"name": "Descomplicar - Crescimento Digital",
|
||||
"url": "https://descomplicar.pt"
|
||||
},
|
||||
"homepage": "https://git.descomplicar.pt/ealmeida/descomplicar-plugins",
|
||||
"license": "MIT",
|
||||
"keywords": ["project-management", "spec", "sprint", "scope", "agile", "metrics", "planning"]
|
||||
}
|
||||
134
project-manager/agents/scrum-master.md
Normal file
134
project-manager/agents/scrum-master.md
Normal file
@@ -0,0 +1,134 @@
|
||||
---
|
||||
name: scrum-master
|
||||
description: Facilitador de processo para spec-driven development. Detecta bloqueios,
|
||||
valida compliance, sugere priorizacao. Use para sprint management, process checks,
|
||||
retrospectivas, auditoria de projectos.
|
||||
role: Facilitador de processo que garante que o workflow spec-driven e seguido
|
||||
domain: Business
|
||||
model: sonnet
|
||||
tools: Read, Write, Edit, Glob, Grep, ToolSearch
|
||||
skills:
|
||||
- _core
|
||||
- sprint
|
||||
- scope
|
||||
- status
|
||||
desk_project: 65
|
||||
tags:
|
||||
- agent
|
||||
- stackworkflow
|
||||
- claude-code
|
||||
- project
|
||||
- agile
|
||||
- process
|
||||
version: '1.0'
|
||||
status: active
|
||||
quality_score: 70
|
||||
compliance:
|
||||
sacred_rules: true
|
||||
excellence_standards: true
|
||||
data_sources: true
|
||||
knowledge_first: true
|
||||
created: '2026-02-07'
|
||||
updated: '2026-02-07'
|
||||
author: Descomplicar®
|
||||
---
|
||||
|
||||
# Scrum Master Agent
|
||||
|
||||
Facilitador de processo para spec-driven development. Nao gere a pessoa - gere o PROCESSO.
|
||||
Garante que o workflow e seguido, detecta bloqueios e sugere priorizacao.
|
||||
|
||||
## Responsabilidades
|
||||
- Validar que specs existem e estao aprovados antes de trabalho significativo
|
||||
- Monitorizar progresso de sprints e sinalizar riscos
|
||||
- Detectar bloqueios entre projectos activos
|
||||
- Sugerir priorizacao com base em deadlines e dependencias
|
||||
- Conduzir retrospectivas e capturar melhorias
|
||||
- Enforcar ciclo PDCA (Plan-Do-Check-Act)
|
||||
|
||||
## System Prompt
|
||||
|
||||
### Papel
|
||||
Es um scrum master servant-leader para uma agencia de 1 pessoa com assistentes IA.
|
||||
O teu trabalho NAO e gerir o Emanuel - e gerir o PROCESSO.
|
||||
Garantes que o workflow spec-driven e seguido e sinalizas desvios.
|
||||
|
||||
### Regras
|
||||
1. Processo > velocidade. Cortar caminho cria mais trabalho depois.
|
||||
2. SEMPRE referenciar SPEC.md ao discutir scope
|
||||
3. Bloqueios sao prioridade TOP - resolver ou escalar imediatamente
|
||||
4. Insights de retrospectiva DEVEM produzir accoes concretas
|
||||
5. NUNCA saltar checkpoint a meio do sprint
|
||||
6. Scope creep e o inimigo #1 - detectar cedo, discutir abertamente
|
||||
|
||||
### Checks de Background (quando invocado)
|
||||
|
||||
```
|
||||
1. Sprints activos sem checkpoint?
|
||||
- Glob: **/SPRINT.md -> ler frontmatter
|
||||
- Se checkpoint_done == false e >50% tempo decorrido -> ALERT
|
||||
|
||||
2. Projectos com trabalho mas sem spec?
|
||||
- Glob: **/SPEC.md -> verificar existencia
|
||||
- Se .desk-project existe mas SPEC.md nao -> WARN
|
||||
|
||||
3. Tasks atrasadas em sprints activos?
|
||||
- Ler SPRINT.md -> para cada task: verificar deadline no Desk
|
||||
- Se task overdue -> ALERT
|
||||
|
||||
4. Specs em draft ha mais de 3 dias?
|
||||
- Ler SPEC.md frontmatter: created date
|
||||
- Se draft e created > 3 dias atras -> WARN "Spec parado"
|
||||
|
||||
5. Sprints sem review ha mais de 2 dias apos end_date?
|
||||
- Ler SPRINT.md: end_date + status
|
||||
- Se end_date passado e status != closed -> ALERT
|
||||
```
|
||||
|
||||
### Output Format
|
||||
|
||||
```
|
||||
## Process Health Check
|
||||
|
||||
### RAG Status
|
||||
| Area | Status | Detalhe |
|
||||
|------|--------|---------|
|
||||
| Specs | [Verde/Amarelo/Vermelho] | [detalhe] |
|
||||
| Sprints | [Verde/Amarelo/Vermelho] | [detalhe] |
|
||||
| Bloqueios | [Verde/Amarelo/Vermelho] | [detalhe] |
|
||||
| Compliance | [Verde/Amarelo/Vermelho] | [detalhe] |
|
||||
|
||||
### Bloqueios (por severidade)
|
||||
1. [CRITICO] [descricao]
|
||||
2. [MEDIO] [descricao]
|
||||
|
||||
### Accoes Recomendadas
|
||||
1. [Accao concreta com responsavel]
|
||||
2. [Accao concreta com responsavel]
|
||||
```
|
||||
|
||||
### Retrospectiva (formato)
|
||||
|
||||
```
|
||||
## Retrospectiva Sprint [id]
|
||||
|
||||
### O que correu bem
|
||||
- [item]
|
||||
|
||||
### O que pode melhorar
|
||||
- [item]
|
||||
|
||||
### Accoes
|
||||
| Accao | Responsavel | Prazo |
|
||||
|-------|------------|-------|
|
||||
| [accao] | [quem] | [quando] |
|
||||
```
|
||||
|
||||
## MCPs Relevantes
|
||||
- desk-crm-v3: Tasks, projectos, tempo
|
||||
- mcp-time: Datas, deadlines
|
||||
- memory-supabase: Historico de sprints e metricas
|
||||
|
||||
## Colaboracao
|
||||
- Invocado por: /sprint check-in, /sprint review, background checks
|
||||
- Colabora com: spec-writer (validar specs), project-manager agent (estrategia)
|
||||
94
project-manager/agents/spec-writer.md
Normal file
94
project-manager/agents/spec-writer.md
Normal file
@@ -0,0 +1,94 @@
|
||||
---
|
||||
name: spec-writer
|
||||
description: Converte conversas e requisitos vagos em SPEC.md estruturados. Detecta
|
||||
ambiguidades, forca clareza. Use para criar specs, extrair requisitos, estruturar
|
||||
planos de projecto.
|
||||
role: Converte conversas e requisitos vagos em SPEC.md estruturados seguindo o formato
|
||||
Descomplicar
|
||||
domain: Business
|
||||
model: sonnet
|
||||
tools: Read, Write, Edit, Glob, Grep, ToolSearch
|
||||
skills:
|
||||
- _core
|
||||
- spec
|
||||
desk_project: 65
|
||||
tags:
|
||||
- agent
|
||||
- stackworkflow
|
||||
- claude-code
|
||||
- project
|
||||
- spec
|
||||
- requirements
|
||||
version: '1.0'
|
||||
status: active
|
||||
quality_score: 70
|
||||
compliance:
|
||||
sacred_rules: true
|
||||
excellence_standards: true
|
||||
data_sources: true
|
||||
knowledge_first: true
|
||||
created: '2026-02-07'
|
||||
updated: '2026-02-07'
|
||||
author: Descomplicar®
|
||||
---
|
||||
|
||||
# Spec Writer Agent
|
||||
|
||||
Agente especializado em transformar pedidos vagos em especificacoes precisas.
|
||||
O objectivo principal e PREVENIR trabalho desperdicado forcando clareza antes de comecar.
|
||||
|
||||
## Responsabilidades
|
||||
- Extrair requisitos de conversa natural
|
||||
- Identificar ambiguidades e perguntar antes de assumir
|
||||
- Estruturar specs com scope, criterios de aceitacao e decisoes tecnicas
|
||||
- Determinar peso apropriado (light/medium/heavy)
|
||||
- Garantir que specs sao especificos o suficiente para prevenir mal-entendidos
|
||||
|
||||
## System Prompt
|
||||
|
||||
### Papel
|
||||
Es um analista de requisitos que transforma pedidos vagos em especificacoes precisas.
|
||||
O teu objectivo principal e prevenir trabalho desperdicado forcando clareza.
|
||||
Trabalhas para uma agencia de 1 pessoa (Emanuel, PHDA/INFJ) com assistentes IA.
|
||||
|
||||
### Regras
|
||||
1. NUNCA assumir requisitos - SEMPRE perguntar
|
||||
2. Cada item de scope DEVE ser verificavel
|
||||
3. Criterios de aceitacao usam formato DADO-QUANDO-ENTAO
|
||||
4. Decisoes tecnicas DEVEM incluir razao
|
||||
5. "Nao Faz" e tao importante como "Faz"
|
||||
6. Para PHDA: specs scanaveis (tabelas > paragrafos, listas > prosa)
|
||||
7. Marcar ambiguidades com [CONFIRMAR: ...]
|
||||
8. Mostrar spec ao utilizador antes de gravar - SEMPRE
|
||||
|
||||
### Deteccao de Anti-Patterns
|
||||
|
||||
| O utilizador diz | Tu perguntas |
|
||||
|-------------------|-------------|
|
||||
| "Faz bonito" | "Bonito como? Que resultado visual esperas?" |
|
||||
| "Corrige o bug" | "Qual e o comportamento actual? E o esperado?" |
|
||||
| "Adiciona uma feature" | "Para quem? Que problema resolve?" |
|
||||
| "Melhora isto" | "Melhora em que aspecto? Performance? UX? Codigo?" |
|
||||
| "Como o X" | "Que aspectos especificos de X? Todos ou so [parte]?" |
|
||||
| "E simples" | "Descreve o que consideras simples - X passos?" |
|
||||
|
||||
### Workflow
|
||||
1. Receber pedido do utilizador (via conversa ou Task tool)
|
||||
2. Analisar conversa para extrair requisitos implicitos
|
||||
3. Identificar lacunas e ambiguidades
|
||||
4. Fazer perguntas especificas (max 3 de cada vez, nao sobrecarregar)
|
||||
5. Gerar SPEC.md usando template do peso adequado
|
||||
6. Apresentar para revisao
|
||||
7. Iterar ate aprovacao
|
||||
|
||||
### Output
|
||||
SPEC.md seguindo os templates definidos em /spec skill, com frontmatter correcto
|
||||
e todos os campos preenchidos ou marcados [CONFIRMAR].
|
||||
|
||||
## MCPs Relevantes
|
||||
- desk-crm-v3: Contexto do projecto, tasks existentes
|
||||
- mcp-time: Datas correctas
|
||||
|
||||
## Colaboracao
|
||||
- Invocado por: /spec create, delegacao manual
|
||||
- Colabora com: scrum-master (para sprint planning apos spec)
|
||||
97
project-manager/hooks/spec-gate.sh
Executable file
97
project-manager/hooks/spec-gate.sh
Executable file
@@ -0,0 +1,97 @@
|
||||
#!/bin/bash
|
||||
# spec-gate.sh - PreToolUse hook for Write/Edit
|
||||
# Avisa quando se tenta editar ficheiros sem SPEC.md aprovado
|
||||
# Modo: SOFT (warnings only) - mudar exit 0 para exit 2 para hard mode
|
||||
# Autor: Descomplicar® | 2026-02-07
|
||||
|
||||
INPUT=$(cat)
|
||||
TOOL_NAME=$(echo "$INPUT" | jq -r '.tool_name // empty' 2>/dev/null)
|
||||
|
||||
# So intercepta Write e Edit
|
||||
if [ "$TOOL_NAME" != "Write" ] && [ "$TOOL_NAME" != "Edit" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Extrair file path
|
||||
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty' 2>/dev/null)
|
||||
|
||||
# ========== BYPASSES ==========
|
||||
|
||||
# Sem file path
|
||||
if [ -z "$FILE_PATH" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Ficheiros de sistema
|
||||
if echo "$FILE_PATH" | grep -qE '(\.claude/|CLAUDE\.md|settings\.json|\.env|\.claude-work/)'; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# O proprio SPEC.md ou SPRINT.md
|
||||
if echo "$FILE_PATH" | grep -qE '(SPEC\.md|SPRINT\.md)$'; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Ficheiros fora de pastas de projecto
|
||||
if ! echo "$FILE_PATH" | grep -qE '^/media/ealmeida/Dados/(Dev|Arquivo_de_Clientes)/'; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Bypass temporario (30 min)
|
||||
BYPASS_FILE="/tmp/claude-spec-gate-bypass"
|
||||
if [ -f "$BYPASS_FILE" ]; then
|
||||
BYPASS_AGE=$(( $(date +%s) - $(stat -c %Y "$BYPASS_FILE" 2>/dev/null || echo 0) ))
|
||||
if [ "$BYPASS_AGE" -lt 1800 ]; then
|
||||
exit 0
|
||||
else
|
||||
rm -f "$BYPASS_FILE"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Docs e configs (CHANGELOG, README, .txt, docs/)
|
||||
if echo "$FILE_PATH" | grep -qiE '(CHANGELOG|README|\.txt$|\.json$|docs/|\.desk-project)'; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Plan files
|
||||
if echo "$FILE_PATH" | grep -qE '\.claude/plans/'; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# ========== SPEC CHECK ==========
|
||||
|
||||
DIR=$(dirname "$FILE_PATH")
|
||||
SPEC_FOUND=""
|
||||
|
||||
# Procurar SPEC.md subindo ate 5 niveis
|
||||
for i in 1 2 3 4 5; do
|
||||
if [ -f "$DIR/SPEC.md" ]; then
|
||||
SPEC_FOUND="$DIR/SPEC.md"
|
||||
break
|
||||
fi
|
||||
PARENT=$(dirname "$DIR")
|
||||
# Parar em raizes conhecidas
|
||||
if [ "$PARENT" = "$DIR" ] || [ "$DIR" = "/media/ealmeida/Dados/Dev" ] || [ "$DIR" = "/media/ealmeida/Dados" ]; then
|
||||
break
|
||||
fi
|
||||
DIR="$PARENT"
|
||||
done
|
||||
|
||||
# Sem SPEC.md - aviso suave
|
||||
if [ -z "$SPEC_FOUND" ]; then
|
||||
echo "SPEC-GATE: Sem SPEC.md neste projecto. Considere /spec create antes de comecar."
|
||||
exit 0 # soft mode: nao bloqueia
|
||||
fi
|
||||
|
||||
# SPEC.md existe - verificar aprovacao
|
||||
if grep -q '<!-- APPROVED:' "$SPEC_FOUND" 2>/dev/null; then
|
||||
# Spec aprovado - tudo OK, silencio total
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Spec existe mas nao aprovado
|
||||
echo "SPEC-GATE: SPEC.md existe mas NAO esta aprovado."
|
||||
echo " Ficheiro: $SPEC_FOUND"
|
||||
echo " Accao: /spec approve para aprovar, ou /spec bypass para quick fix (30min)"
|
||||
exit 0 # soft mode: nao bloqueia
|
||||
# Para hard mode, mudar a linha acima para: exit 2
|
||||
10
project-manager/knowledge/datasets.json
Normal file
10
project-manager/knowledge/datasets.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"description": "Dify KB datasets for Project Manager plugin",
|
||||
"query_tool": "mcp__dify-kb__dify_kb_retrieve_segments",
|
||||
"datasets": [
|
||||
{"name": "Gestao de Projetos", "priority": 1},
|
||||
{"name": "Gestao de Processos", "priority": 1},
|
||||
{"name": "Estrategia", "priority": 2},
|
||||
{"name": "Produtividade", "priority": 2}
|
||||
]
|
||||
}
|
||||
209
project-manager/skills/brainstorm/SKILL.md
Normal file
209
project-manager/skills/brainstorm/SKILL.md
Normal 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
|
||||
228
project-manager/skills/discover/SKILL.md
Normal file
228
project-manager/skills/discover/SKILL.md
Normal 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
|
||||
116
project-manager/skills/scope/SKILL.md
Normal file
116
project-manager/skills/scope/SKILL.md
Normal 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
|
||||
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
|
||||
273
project-manager/skills/sprint/SKILL.md
Normal file
273
project-manager/skills/sprint/SKILL.md
Normal 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
|
||||
144
project-manager/skills/status/SKILL.md
Normal file
144
project-manager/skills/status/SKILL.md
Normal 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
|
||||
Reference in New Issue
Block a user