fix(project-manager): remover Dify KB das descriptions, marcar nota TODO
Dify foi removido 06-03-2026. Skills brainstorm/discover ainda referenciam-no no corpo. Bump v1.2 + nota top-of-file. Reescrita workflow para próxima sessão. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "gestao",
|
||||
"description": "Project management, time tracking, daily checkups, worklogs, reflections, knowledge management, archiving and compliance auditing. Backed by NotebookLM notebooks.",
|
||||
"version": "1.3.0",
|
||||
"version": "1.4.0",
|
||||
"author": {
|
||||
"name": "Descomplicar - Crescimento Digital",
|
||||
"url": "https://descomplicar.pt"
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
# Changelog — Plugin gestao
|
||||
|
||||
Todas as alterações relevantes a este plugin. Segue [Semantic Versioning](https://semver.org/).
|
||||
|
||||
---
|
||||
|
||||
## [1.4.0] — 2026-04-07
|
||||
|
||||
### Adicionado
|
||||
|
||||
- **Nova skill `/clip-instructions`** — gerir AGENTS.md de agentes Paperclip por nome: ver, editar, criar, rever histórico de versões e rollback via API config revisions
|
||||
|
||||
### Corrigido
|
||||
|
||||
- **`/clip-health`** — check 1 reescrito: `systemctl` substituído por `ps aux` (Paperclip não usa systemd); check 6 reescrito: `npx paperclipai doctor` substituído por `curl http://localhost:3100/health`; adicionado check de memória partilhada POSIX (`/dev/shm/PostgreSQL.*`) — causa raiz do bug pós-reboot; score actualizado 21→22; 2 entradas no Healing Log
|
||||
- **`/clip-agent`** — curl de atribuição de skills corrigido: adicionado `-H "Authorization: Bearer $PAPERCLIP_API_KEY"` (sem header dava 401); documentadas notas sobre agentes analyst (`process` adapter, `claude-sonnet-4-6`, heartbeat desactivado); checklist "Criar agente novo" actualizada com `instructionsBundleMode: "external"`, `instructionsRootPath`, `instructionsEntryFile`; 3 entradas no Healing Log
|
||||
- **`/clip-issue`** — `author_user_id` corrigido: `'board'` → `'v1N5OccPn9DGq6iog7qW9nEvnXYFT3iO'` (ID real de Emanuel); adicionado modo checkout/release com endpoints API e fallback SQL; entrada no Healing Log
|
||||
- **`/clip-skill`** — modelo mental corrigido: "ephemeral/symlinks" → "injecção de contexto em runtime a cada heartbeat"; adicionado `-H "Authorization: Bearer $PAPERCLIP_API_KEY"` aos dois curls de API (`/skills/import` e `/skills/sync`); nota sobre adapter `process` para agentes analyst; entrada no Healing Log
|
||||
|
||||
### Notas técnicas
|
||||
|
||||
- Todas as correcções baseadas em aprendizagens dos vídeos Paperclip (sessão 07-04-2026)
|
||||
- Chave de autenticação Paperclip: `Authorization: Bearer $PAPERCLIP_API_KEY` obrigatória em todos os endpoints da API local
|
||||
- Agentes criados via SQL directamente (fora do fluxo OpenClaw) **não** recebem `company_memberships` automaticamente — inserção manual obrigatória
|
||||
|
||||
---
|
||||
|
||||
## [1.3.0] — anterior
|
||||
|
||||
- Versão base (sem changelog registado)
|
||||
@@ -4,7 +4,7 @@ description: Auto-reflexão e melhoria contínua do sistema. Analisa sessões, i
|
||||
padrões, sugere optimizações. Auto-trigger >20 tool calls.
|
||||
role: Auto-reflexão e melhoria contínua do sistema
|
||||
domain: Dev
|
||||
model: sonnet
|
||||
model: haiku
|
||||
tools: Read, Write, Edit, Glob, ToolSearch
|
||||
|
||||
# Dependencies
|
||||
|
||||
@@ -132,3 +132,15 @@ exit $EXIT_CODE
|
||||
---
|
||||
|
||||
*Skill v1.0.0 | 04-03-2026 | Descomplicar®*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -221,3 +221,15 @@ Output: [resultado esperado]
|
||||
Input: [caso complexo]
|
||||
Output: [resultado detalhado]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -175,3 +175,15 @@ mcp__google_workspace__create_event({
|
||||
|
||||
- **Workflows detalhados:** `references/workflows-detalhados.md`
|
||||
- **MCP tools e constantes:** `references/mcp-tools-referencia.md`
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
---
|
||||
name: cleanup-downloads
|
||||
description: Limpeza e triagem da pasta Transferências (Downloads). Verifica cada ficheiro individualmente, apaga descartáveis, classifica o restante por categoria. Usar quando "transferências", "downloads", "limpar downloads", "cleanup", "limpeza pasta".
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
# Cleanup Downloads
|
||||
@@ -105,3 +104,15 @@ Após mover documentos financeiros (regra 3), lançar despesas via `/expense`:
|
||||
## Integração /today
|
||||
|
||||
Incluir contagem de ficheiros na pasta quando >10 ficheiros.
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -168,7 +168,7 @@ echo "Tunnel: $TUNNEL_PORT | Servidor: $ACTUAL_PORT"
|
||||
|
||||
### Check 11: Agentes sem permissoes bash
|
||||
|
||||
Invocar tool MCP: `mcp__paperclip__diag_agents_missing_permissions`
|
||||
Invocar tool MCP: `mcp__paperclip__diag_agents_without_skip_permissions`
|
||||
|
||||
- 0 = OK
|
||||
- 1+ = CRITICO (agentes vao ficar bloqueados ao executar bash — corrigir com `/clip-agent`)
|
||||
|
||||
@@ -122,3 +122,15 @@ Gerar alertas se:
|
||||
---
|
||||
|
||||
*Skill v1.0.0 | 04-03-2026 | Descomplicar®*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
---
|
||||
name: deep-research
|
||||
description: >
|
||||
Pesquisa profunda em 3 layers: Hub Obsidian (Layer 1) + NotebookLM análise (Layer 2) +
|
||||
Web/LightRAG externo (Layer 3). Para questões complexas que requerem síntese de múltiplas fontes.
|
||||
Upgrade do /research com NotebookLM integrado e RAG trinity completo.
|
||||
Usar quando: análise competitiva profunda, pesquisa mercado, due diligence, relatório estratégico.
|
||||
---
|
||||
|
||||
# /deep-research — Pesquisa Profunda com RAG Trinity
|
||||
|
||||
Pesquisa em 3 camadas com síntese final. Mais profundo que `/research`, mais estruturado que `/hub-search`.
|
||||
|
||||
---
|
||||
|
||||
## Quando Usar
|
||||
|
||||
| Situação | Skill Correcta |
|
||||
|---------|----------------|
|
||||
| "Onde está X no Hub?" | `/hub-search` |
|
||||
| "Analisa este documento" | `/research` |
|
||||
| "Pesquisa profunda + síntese de múltiplas fontes" | `/deep-research` ← este |
|
||||
| "Análise competitiva completa" | `/deep-research` + `/research competitive` |
|
||||
|
||||
---
|
||||
|
||||
## Protocolo (3 Layers)
|
||||
|
||||
### Layer 1 — Hub Obsidian (conhecimento interno)
|
||||
|
||||
```bash
|
||||
# 1a. Busca full-text no Hub
|
||||
obsidian search query="<TERMO>" format=json limit=10
|
||||
|
||||
# 1b. Se Obsidian não responde (offline), fallback via Grep
|
||||
grep -r "<TERMO>" /media/ealmeida/Dados/Hub/ --include="*.md" -l | head -20
|
||||
|
||||
# 1c. Verificar LightRAG para contexto interno
|
||||
mcp__lightrag__lightrag_query({
|
||||
query: "<TERMO>",
|
||||
mode: "hybrid"
|
||||
})
|
||||
```
|
||||
|
||||
**Critério de suficiência Layer 1:** Encontrou 3+ documentos relevantes com contexto concreto.
|
||||
- SE suficiente para questão simples → responder + registar fonte
|
||||
- SE questão requer análise profunda → continuar para Layer 2
|
||||
|
||||
### Layer 2 — NotebookLM (análise profunda)
|
||||
|
||||
Seleccionar notebook relevante com base no domínio:
|
||||
|
||||
| Domínio | Notebook ID |
|
||||
|---------|-------------|
|
||||
| Estratégia e Empreendedorismo | 79d43410-0e29-4be1-881d-84db6bdc239a |
|
||||
| Stack Tecnológico | [consultar mcp__notebooklm__ lista] |
|
||||
| Marketing e Vendas | [consultar mcp__notebooklm__ lista] |
|
||||
|
||||
```javascript
|
||||
// Consultar notebook relevante
|
||||
mcp__notebooklm__notebook_query({
|
||||
notebook_id: "<ID>",
|
||||
query: "<QUESTÃO ESPECÍFICA — mais precisa que a geral>"
|
||||
})
|
||||
```
|
||||
|
||||
**Critério de suficiência Layer 2:** NotebookLM retornou análise com citações específicas.
|
||||
- SE suficiente → sintetizar com Layer 1 + responder
|
||||
- SE requer dados externos → continuar para Layer 3
|
||||
|
||||
### Layer 3 — Web + LightRAG (conhecimento externo)
|
||||
|
||||
```javascript
|
||||
// 3a. LightRAG para KB externa (PDFs, transcripts)
|
||||
mcp__lightrag__lightrag_query({
|
||||
query: "<QUESTÃO>",
|
||||
mode: "global" // para análise de padrões amplos
|
||||
})
|
||||
|
||||
// 3b. Web search para dados actuais
|
||||
mcp__web-search__search({
|
||||
query: "<QUESTÃO> site:scholar.google.com OR filetype:pdf",
|
||||
num_results: 10
|
||||
})
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Síntese Final
|
||||
|
||||
Após recolher de 2+ layers, sintetizar:
|
||||
|
||||
```markdown
|
||||
## Síntese — [Tópico]
|
||||
|
||||
**Fontes consultadas:** Layer 1 (Hub), Layer 2 (NotebookLM [Notebook X]), Layer 3 (Web/LightRAG)
|
||||
|
||||
### O que sabemos (interno)
|
||||
[Resumo Layer 1 — conhecimento já documentado]
|
||||
|
||||
### Análise profunda
|
||||
[Resumo Layer 2 — análise NotebookLM com citações]
|
||||
|
||||
### Contexto externo
|
||||
[Resumo Layer 3 — se consultado]
|
||||
|
||||
### Síntese e Recomendação
|
||||
[Cruzamento das layers — resposta directa à questão]
|
||||
|
||||
### Próximos Passos
|
||||
- [ ] Acção 1 derivada da pesquisa
|
||||
- [ ] Acção 2
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Self-Improving Loop
|
||||
|
||||
Após cada execução, registar preferências para melhorar futuras pesquisas:
|
||||
|
||||
```bash
|
||||
# Guardar aprendizagem em Hub
|
||||
echo "$(date '+%Y-%m-%d') — deep-research — [TÓPICO] — [O QUE FUNCIONOU/NÃO FUNCIONOU]" \
|
||||
>> /media/ealmeida/Dados/Hub/00-Inbox/research-preferences.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*Skill /deep-research v1.0 | 06-04-2026 | Eixo 7B — RAG Trinity + NotebookLM integrado*
|
||||
@@ -339,3 +339,15 @@ Output: [resultado esperado]
|
||||
Input: [caso complexo]
|
||||
Output: [resultado detalhado]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -440,3 +440,15 @@ Após concluir o documento:
|
||||
---
|
||||
|
||||
**Versão**: 1.0.0 | **Data**: 2026-03-06 | **Autor**: Descomplicar®
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
---
|
||||
name: hub-search
|
||||
description: >
|
||||
Pesquisa no vault Hub Obsidian com relevance scoring e backlinks.
|
||||
Layer 1 da arquitectura RAG trinity (CLI → NotebookLM → LightRAG).
|
||||
Usar quando: (1) pesquisar conteúdo no Hub por termo ou conceito,
|
||||
(2) encontrar notas relacionadas via backlinks, (3) localizar PROCs/QR/docs
|
||||
antes de executar tarefas, (4) verificar se existe documentação antes de criar.
|
||||
---
|
||||
|
||||
# /hub-search — Pesquisa no Hub (Layer 1 RAG)
|
||||
|
||||
Pesquisa rápida no vault Hub via Obsidian CLI. Requer Obsidian aberto.
|
||||
Fallback automático para Grep se Obsidian não estiver a correr.
|
||||
|
||||
---
|
||||
|
||||
## Uso
|
||||
|
||||
```
|
||||
/hub-search "termo"
|
||||
/hub-search "LightRAG configuração" --backlinks
|
||||
/hub-search "PROC-MCP" --files
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Workflow
|
||||
|
||||
### Passo 1 — Tentar via Obsidian CLI
|
||||
|
||||
```bash
|
||||
# Pesquisa básica
|
||||
obsidian search query="TERMO" format=json
|
||||
|
||||
# Com backlinks (recomendado para conceitos)
|
||||
obsidian search query="TERMO" format=json
|
||||
obsidian backlinks file="NOTA"
|
||||
|
||||
# Limitar resultados
|
||||
obsidian search query="TERMO" limit=10 format=json
|
||||
```
|
||||
|
||||
**Indicador de sucesso:** saída JSON com `results` array.
|
||||
**Indicador de falha:** mensagem `unable to find Obsidian` → ir para fallback.
|
||||
|
||||
### Passo 2 — Fallback: Grep no Hub
|
||||
|
||||
Se CLI falhar (Obsidian fechado):
|
||||
|
||||
```
|
||||
Grep "TERMO" /media/ealmeida/Dados/Hub/ --type md
|
||||
```
|
||||
|
||||
Adicionar contexto ao utilizador: "Obsidian não está a correr — usando busca directa nos ficheiros."
|
||||
|
||||
### Passo 3 — Apresentar resultados
|
||||
|
||||
**Formato de output:**
|
||||
|
||||
```markdown
|
||||
## Resultados: "[termo]"
|
||||
|
||||
**Fonte:** Obsidian CLI v1.12.7 | **Backlinks:** Sim/Não
|
||||
|
||||
### Encontrado em N notas
|
||||
|
||||
| Nota | Path | Relevância |
|
||||
|------|------|-----------|
|
||||
| [título] | `path/relativo.md` | Alta/Média/Baixa |
|
||||
|
||||
### Notas com backlinks para este termo
|
||||
- `nota-a.md` → referencia `nota-b.md`
|
||||
|
||||
### Relacionados sugeridos
|
||||
- [links relevantes encontrados nos resultados]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Regras
|
||||
|
||||
1. **Sempre tentar CLI primeiro** — é mais preciso (scoring semântico)
|
||||
2. **--include-backlinks por defeito** quando o termo é um conceito (não um comando)
|
||||
3. **Fallback silencioso** — não perguntar, só mencionar que usou Grep
|
||||
4. **Max 10 resultados** — se mais, mostrar top 10 por relevância
|
||||
5. **Paths relativos** na apresentação (ex: `04-Stack/02.03-IA/` não path absoluto)
|
||||
|
||||
---
|
||||
|
||||
## Integração com RAG Trinity
|
||||
|
||||
```
|
||||
/hub-search "termo" → Layer 1: Obsidian CLI (este skill)
|
||||
/knowledge "termo" → Layer 2: NotebookLM (58 notebooks)
|
||||
mcp__lightrag__lightrag_query → Layer 3: LightRAG (conteúdo externo)
|
||||
```
|
||||
|
||||
**Quando escalar para Layer 2 ou 3:**
|
||||
- Resultado CLI score < 50% ou 0 resultados → sugerir `/knowledge`
|
||||
- Conteúdo externo (PDFs, transcripts) → sugerir LightRAG diretamente
|
||||
|
||||
---
|
||||
|
||||
## Referência CLI
|
||||
|
||||
```bash
|
||||
# Sintaxe correcta: parâmetros com = (não flags com --)
|
||||
obsidian search query="TERMO" format=json
|
||||
obsidian search query="TERMO" limit=10 format=json
|
||||
obsidian backlinks file="NOTA"
|
||||
obsidian tags sort=count counts
|
||||
obsidian tasks daily todo
|
||||
obsidian version
|
||||
obsidian help # lista todos os comandos disponíveis
|
||||
```
|
||||
|
||||
**Nota:** A skill oficial kepano (`obsidian-cli`) tem referência completa de todos os comandos.
|
||||
|
||||
**Requer:** Obsidian aberto + CLI activado em Settings → General → Advanced
|
||||
**Wrapper:** `~/.local/bin/obsidian` (define XDG_RUNTIME_DIR Flatpak)
|
||||
**Docs:** `04-Stack/02.03-IA/Obsidian-CLI.md`
|
||||
|
||||
---
|
||||
|
||||
*Skill v1.0.0 | 06-04-2026 | Descomplicar®*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
@@ -234,3 +234,15 @@ Quando invocado directamente (sem /today):
|
||||
---
|
||||
|
||||
*Skill v1.0.0 | 04-03-2026 | Descomplicar®*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -391,3 +391,15 @@ Checklist automática:
|
||||
---
|
||||
|
||||
*Skill v1.0.0 | 2026-02-13 | Plugin gestao | Descomplicar®*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -288,3 +288,15 @@ if (resultado.score < 50 || !resultado.encontrado) {
|
||||
|
||||
- `references/routing-guide.md` - Mapeamento detalhado com codigo de routing
|
||||
- Inventario completo: `~/.claude/projects/-media-ealmeida-Dados-Hub/memory/notebooklm-inventory.md`
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -150,3 +150,15 @@ Ou abrir a app e usar File > Open para navegar ate ao ficheiro.
|
||||
- **Texto curto:** 2-5 palavras por node (mindmap, nao documento)
|
||||
- **Template adequado:** Fish-bone para causa/efeito, structure para hierarquias, right para processos
|
||||
- **Nome descritivo:** Usar nome do topico no ficheiro (nao "mindmap1.km")
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -392,3 +392,15 @@ Auth guardada em: `~/.notebooklm-mcp-cli/profiles/<name>/auth.json`
|
||||
---
|
||||
|
||||
**Versão**: 1.0.0 | **Data**: 24-02-2026 | **Autor**: Descomplicar®
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
---
|
||||
name: office-hours
|
||||
description: >
|
||||
Persona YC que reframe problemas antes de escrever código. Desafia pressupostos,
|
||||
faz as perguntas difíceis que um investidor faria. Usar ANTES de qualquer implementação
|
||||
significativa. Baseado no gstack /office-hours. Eixo 2B.
|
||||
---
|
||||
|
||||
# /office-hours — Consulta YC antes de Codar
|
||||
|
||||
Persona: sócio de uma YC top-tier que passou 20 anos a ver startups falharem por resolver o problema errado.
|
||||
Objetivo: garantir que o que vais construir é o que deve ser construído.
|
||||
|
||||
---
|
||||
|
||||
## Quando Usar (OBRIGATÓRIO)
|
||||
|
||||
- Antes de implementar uma feature nova
|
||||
- Antes de refactoring significativo
|
||||
- Quando a solução parece óbvia demais
|
||||
- Quando o problema está mal definido
|
||||
- Quando o utilizador pediu X mas pode precisar de Y
|
||||
|
||||
**Anti-pattern:** Saltar para o código sem office-hours = construir a coisa certa de forma errada, ou a coisa errada certo.
|
||||
|
||||
---
|
||||
|
||||
## Protocolo
|
||||
|
||||
### Passo 1 — Escutar sem julgar
|
||||
|
||||
"O que estás a tentar resolver? Conta-me como se eu não soubesse nada do teu negócio."
|
||||
|
||||
Deixar o utilizador descrever o problema completamente. Não interromper. Tomar notas mentais dos seguintes sinais:
|
||||
- Soluções disfarçadas de problemas ("preciso de um botão que...")
|
||||
- Pressupostos não verificados ("os utilizadores querem...")
|
||||
- Scope excessivo ("e depois também...")
|
||||
- Urgência artificial ("precisa de estar pronto até...")
|
||||
|
||||
### Passo 2 — As 5 Perguntas
|
||||
|
||||
```
|
||||
1. "Por que é que este problema existe agora? O que mudou?"
|
||||
→ Detecta se é problema real ou hipotético
|
||||
|
||||
2. "Quem perde o emprego se este problema não for resolvido?"
|
||||
→ Identifica o owner real e urgência verdadeira
|
||||
|
||||
3. "O que acontece se não fizermos nada?"
|
||||
→ Valida se é crítico ou nice-to-have
|
||||
|
||||
4. "Já tentaste resolver isto de forma mais simples? O que aconteceu?"
|
||||
→ Evita over-engineering, descobre tentativas anteriores
|
||||
|
||||
5. "Se tivesses de demonstrar que isto funciona em 24h, o que farias?"
|
||||
→ Força a pensar em MVP mínimo viável
|
||||
```
|
||||
|
||||
### Passo 3 — Reframe (se necessário)
|
||||
|
||||
SE o problema apresentado é uma solução disfarçada:
|
||||
```
|
||||
"Percebo que queres [solução X]. Mas o problema que describes é [problema Y].
|
||||
Podemos resolver [Y] de forma mais simples: [alternativa Z].
|
||||
Queres explorar Z antes de construir X?"
|
||||
```
|
||||
|
||||
### Passo 4 — Aprovação ou Alternativa
|
||||
|
||||
```
|
||||
APROVADO se:
|
||||
- Problema claramente definido
|
||||
- Solução proposta é a mais simples
|
||||
- ROI claro (tempo poupado, receita gerada, risco eliminado)
|
||||
- Utilizador entende o trade-off
|
||||
|
||||
ALTERNATIVA se:
|
||||
- Há solução mais simples não considerada
|
||||
- O problema não está suficientemente validado
|
||||
- Scope excessivo para o valor gerado
|
||||
```
|
||||
|
||||
### Passo 5 — Output
|
||||
|
||||
```markdown
|
||||
## Office Hours — [Data]
|
||||
|
||||
**Problema original:** [o que o utilizador apresentou]
|
||||
**Problema real:** [reframe se necessário]
|
||||
**Decisão:** AVANÇAR | REFRAMED | ADIAR
|
||||
**Justificação:** [1-2 frases]
|
||||
**Próximo passo:** [acção concreta]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Exemplos de Reframe
|
||||
|
||||
| Pedido original | Reframe YC |
|
||||
|----------------|-----------|
|
||||
| "Preciso de um dashboard de métricas" | "O que decides diferente com o dashboard? Se nada, não precisas dele." |
|
||||
| "Quero migrar para microserviços" | "Qual é o problema do monolito actual? Quantos utilizadores tens?" |
|
||||
| "Refactoring completo do código" | "O que não consegues fazer agora por causa do código? Isso é o problema." |
|
||||
| "Automatizar este processo" | "Quanto tempo demora? Quantas vezes por semana? Vale a automação?" |
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*Skill /office-hours v1.0 | 06-04-2026 | Eixo 2B — gstack pattern*
|
||||
@@ -0,0 +1,111 @@
|
||||
---
|
||||
name: onboarding
|
||||
category: gestao
|
||||
description: "Checklist e automacao de onboarding de novo colaborador. Criacao de contas, documentacao, equipamento. Usar quando 'onboarding', 'novo colaborador', 'contratar', 'integrar pessoa', 'RH novo'."
|
||||
version: "1.0.0"
|
||||
created: 2026-04-07
|
||||
tools: [mcp__desk-crm-v3__create_task, mcp__desk-crm-v3__add_task_checklist_item, mcp__google-workspace__gmail_send_email]
|
||||
---
|
||||
|
||||
# Skill: /onboarding
|
||||
|
||||
Checklist e automacao de onboarding de novo colaborador. Baseado em PROC-Onboarding.md (RH-001).
|
||||
|
||||
---
|
||||
|
||||
## Referencia
|
||||
|
||||
Procedimento completo em: `Hub/06-Operacoes/Procedimentos/D4-RH/PROC-Onboarding.md`
|
||||
Esta skill executa os passos — o PROC define as regras.
|
||||
|
||||
---
|
||||
|
||||
## Processo
|
||||
|
||||
### 1. Recolher dados do novo colaborador
|
||||
|
||||
Perguntar ao utilizador:
|
||||
- **Nome completo**
|
||||
- **Email pessoal**
|
||||
- **Funcao/cargo**
|
||||
- **Data de inicio**
|
||||
- **Tipo:** colaborador / freelancer / estagiario
|
||||
- **Departamento:** D1-D7
|
||||
|
||||
### 2. Criar tarefa no Desk CRM
|
||||
|
||||
```
|
||||
mcp__desk-crm-v3__create_task({
|
||||
name: "Onboarding — [Nome]",
|
||||
project_id: 65,
|
||||
startdate: [data inicio],
|
||||
duedate: [data inicio + 5 dias uteis],
|
||||
priority: 2,
|
||||
description: "Onboarding de [Nome] como [Funcao] no departamento [Dept]"
|
||||
})
|
||||
```
|
||||
|
||||
### 3. Adicionar checklist de onboarding
|
||||
|
||||
Items obrigatorios (adicionar via `add_task_checklist_item`):
|
||||
|
||||
**Contas e acessos:**
|
||||
- [ ] Email @descomplicar.pt criado
|
||||
- [ ] Conta Desk CRM criada (staff)
|
||||
- [ ] Acesso Gitea (se tecnico)
|
||||
- [ ] Acesso Google Workspace
|
||||
- [ ] Password manager configurado
|
||||
|
||||
**Documentacao:**
|
||||
- [ ] Contrato assinado
|
||||
- [ ] NIF e dados fiscais recolhidos
|
||||
- [ ] Ficha de colaborador preenchida
|
||||
- [ ] RGPD — consentimento assinado
|
||||
|
||||
**Equipamento:**
|
||||
- [ ] PC/portatil atribuido
|
||||
- [ ] Acessos VPN/SSH (se aplicavel)
|
||||
- [ ] Ferramentas de trabalho instaladas
|
||||
|
||||
**Integracao:**
|
||||
- [ ] Reuniao de boas-vindas agendada
|
||||
- [ ] Apresentacao a equipa
|
||||
- [ ] Acesso a documentacao interna (Hub)
|
||||
- [ ] Mentor atribuido (primeiras 2 semanas)
|
||||
|
||||
### 4. Enviar email de boas-vindas (opcional)
|
||||
|
||||
Se o utilizador aprovar, enviar email via Google Workspace:
|
||||
|
||||
```
|
||||
Assunto: Bem-vindo(a) a Descomplicar — [Nome]
|
||||
Corpo: Template de boas-vindas com:
|
||||
- Data de inicio
|
||||
- Links uteis (Desk, email, Git)
|
||||
- Contacto do mentor
|
||||
- Primeiros passos
|
||||
```
|
||||
|
||||
### 5. Resumo
|
||||
|
||||
Apresentar ao utilizador:
|
||||
- Tarefa Desk criada (ID + link)
|
||||
- Checklist com N items
|
||||
- Proximos passos manuais (contrato, equipamento)
|
||||
|
||||
---
|
||||
|
||||
## Regras
|
||||
|
||||
- **Nunca criar contas automaticamente** — apenas checklist para lembrar
|
||||
- **Contrato e dados fiscais sao responsabilidade do Emanuel** — skill so lembra
|
||||
- **Email de boas-vindas requer aprovacao** antes de enviar
|
||||
- **Tipo freelancer** tem checklist reduzida (sem equipamento, sem VPN)
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
@@ -364,3 +364,15 @@ Checklist automática:
|
||||
---
|
||||
|
||||
*Skill v1.0.0 | 2026-02-13 | Plugin gestao | Descomplicar®*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -183,3 +183,15 @@ Gera revisao mensal completa e publica como comentario na tarefa Desk do cliente
|
||||
---
|
||||
|
||||
*Skill v1.0.0 | 2026-03-10 | Descomplicar®*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -214,3 +214,15 @@ Relatórios podem ser guardados em:
|
||||
---
|
||||
|
||||
*Skill v1.0.0 | 2026-02-05 | Descomplicar®*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -0,0 +1,153 @@
|
||||
---
|
||||
name: research-pipeline
|
||||
description: >
|
||||
Pipeline de pesquisa RAG trinity: Layer 1 (Obsidian CLI Hub), Layer 2 (NotebookLM),
|
||||
Layer 3 (LightRAG externo). Orquestra as 3 camadas em sequência para pesquisas
|
||||
profundas. Usar quando /hub-search ou /knowledge isolados não são suficientes,
|
||||
quando o tema cruza conteúdo interno+externo, ou para research antes de executar
|
||||
tarefas complexas (Eixo 7B, Stack Q2 2026).
|
||||
---
|
||||
|
||||
# /research-pipeline — Pipeline Trinity de Pesquisa
|
||||
|
||||
Orquestra as 3 camadas RAG em sequência para obter contexto completo antes de executar tarefas.
|
||||
|
||||
```
|
||||
Layer 1: Obsidian CLI → conteúdo Hub (notas, PROCs, docs internas)
|
||||
Layer 2: NotebookLM → análise profunda (58 notebooks temáticos)
|
||||
Layer 3: LightRAG → conteúdo externo (1612 docs, PDFs, transcripts)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Uso
|
||||
|
||||
```
|
||||
/research-pipeline "tema ou pergunta"
|
||||
/research-pipeline "LightRAG configuração" --layers 1,2
|
||||
/research-pipeline "PROC-MCP" --quick (só Layer 1)
|
||||
/research-pipeline "n8n webhook setup" --deep (todas as layers)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Workflow
|
||||
|
||||
### Passo 1 — Layer 1: Hub via Obsidian CLI
|
||||
|
||||
```bash
|
||||
obsidian search "TERMO" --include-backlinks --format json
|
||||
```
|
||||
|
||||
**Se CLI offline:** fallback para Grep no Hub.
|
||||
|
||||
Registar: `L1_results`, `L1_score` (0-100, baseado em nº resultados).
|
||||
|
||||
### Passo 2 — Avaliar se Layer 2 é necessária
|
||||
|
||||
```
|
||||
SE L1_score >= 80 E query é operacional (PROC, QR, path):
|
||||
→ PARAR — resultado suficiente, retornar L1
|
||||
SE L1_score < 80 OU query é conceptual/analítica:
|
||||
→ Avançar para Layer 2
|
||||
```
|
||||
|
||||
### Passo 3 — Layer 2: NotebookLM (análise profunda)
|
||||
|
||||
Usar routing da skill `/knowledge` para seleccionar notebooks relevantes.
|
||||
|
||||
```javascript
|
||||
// Max 2 notebooks para performance
|
||||
mcp__notebooklm__notebook_query({ notebook_id, query })
|
||||
```
|
||||
|
||||
Registar: `L2_results`, `L2_confidence`.
|
||||
|
||||
### Passo 4 — Avaliar se Layer 3 é necessária
|
||||
|
||||
```
|
||||
SE query menciona PDFs, vídeos, transcripts, conteúdo externo:
|
||||
→ Avançar para Layer 3
|
||||
SE L2_confidence >= 70:
|
||||
→ PARAR — retornar L1+L2 combinados
|
||||
```
|
||||
|
||||
### Passo 5 — Layer 3: LightRAG (conteúdo externo)
|
||||
|
||||
```javascript
|
||||
mcp__lightrag__lightrag_query({
|
||||
query: "TERMO",
|
||||
mode: "hybrid" // combina vector + graph
|
||||
})
|
||||
```
|
||||
|
||||
### Passo 6 — Síntese e output
|
||||
|
||||
```markdown
|
||||
## Research: "[termo]"
|
||||
|
||||
### Hub (Layer 1) — [N notas encontradas]
|
||||
[Resultados mais relevantes com paths]
|
||||
|
||||
### NotebookLM (Layer 2) — [notebook usado]
|
||||
[Insights e contexto analítico]
|
||||
|
||||
### Externo (Layer 3) — [N docs]
|
||||
[Conteúdo complementar de fontes externas]
|
||||
|
||||
### Síntese
|
||||
[Resposta integrada das 3 camadas]
|
||||
|
||||
### Qualidade
|
||||
- L1: [N resultados]
|
||||
- L2: [confidence%] via [notebook]
|
||||
- L3: [N docs]
|
||||
- Tempo: ~[X]s
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Modos rápidos
|
||||
|
||||
| Flag | Layers activas | Uso |
|
||||
|------|---------------|-----|
|
||||
| `--quick` | L1 apenas | PROCs, paths, comandos |
|
||||
| (default) | L1 + L2 | Maioria das queries |
|
||||
| `--deep` | L1 + L2 + L3 | Investigação completa |
|
||||
|
||||
---
|
||||
|
||||
## Integração com outras skills
|
||||
|
||||
```
|
||||
Antes de /wp-dev → /research-pipeline --quick "PROC-WordPress"
|
||||
Antes de /cwp-* → /research-pipeline --quick "PROC-CWP"
|
||||
Antes de design → /research-pipeline "design guidelines descomplicar"
|
||||
Para /deep-research → /research-pipeline --deep (base de contexto)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Regras
|
||||
|
||||
1. **Layer 1 sempre primeiro** — mais rápido e frequentemente suficiente
|
||||
2. **Max 2 notebooks NotebookLM** por query (performance)
|
||||
3. **L3 só para conteúdo externo** — não duplicar com L1
|
||||
4. **Timeout L3:** 30s — se exceder, retornar L1+L2
|
||||
5. **Citar fonte** de cada resultado no output
|
||||
|
||||
---
|
||||
|
||||
*Skill v1.0.0 | 06-04-2026 | Descomplicar®*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
@@ -0,0 +1,131 @@
|
||||
---
|
||||
name: review-corrections
|
||||
description: >
|
||||
Analisa correcções feitas pelo utilizador nas últimas sessões e gera sugestões
|
||||
de regras para CLAUDE.md. Lê ~/.claude-work/corrections.jsonl, agrupa por padrão,
|
||||
e propõe melhorias concretas. Usar semanalmente (via /schedule) ou quando há >5
|
||||
correcções acumuladas. Faz parte do loop de auto-melhoria (Eixo 3, Stack Q2 2026).
|
||||
---
|
||||
|
||||
# /review-corrections — Análise de Correcções e Auto-melhoria
|
||||
|
||||
Analisa padrões de correcção do utilizador para melhorar o CLAUDE.md autonomamente.
|
||||
|
||||
---
|
||||
|
||||
## Workflow
|
||||
|
||||
### Passo 1 — Ler ficheiro de correcções
|
||||
|
||||
```bash
|
||||
cat ~/.claude-work/corrections.jsonl
|
||||
```
|
||||
|
||||
Cada linha é um JSON:
|
||||
```json
|
||||
{"ts":"2026-04-06T14:30:00","type":"correction","prompt":"não assim, usa grep","session":"abc","cwd":"/Hub/"}
|
||||
```
|
||||
|
||||
### Passo 2 — Agrupar por padrão
|
||||
|
||||
Categorias de correcção:
|
||||
|
||||
| Padrão | Keywords | Acção sugerida |
|
||||
|--------|---------|----------------|
|
||||
| **Ferramenta errada** | "usa grep", "não uses bash", "usa read" | Regra de preferência de ferramenta |
|
||||
| **Língua/formato** | "em português", "sem emojis", "com acentos" | Regra de output |
|
||||
| **Abordagem** | "não assim", "de outra forma", "mais simples" | Regra de heurística |
|
||||
| **Scope** | "não faças isso", "não toques em", "só X" | Regra de limites |
|
||||
| **Verificação** | "verifica primeiro", "não inventar", "confirma" | Regra anti-alucinação |
|
||||
|
||||
### Passo 3 — Gerar sugestões de regras
|
||||
|
||||
Para cada padrão com ≥2 ocorrências, propor regra no formato:
|
||||
|
||||
```markdown
|
||||
**Regra candidata:**
|
||||
> [Padrão detectado N vezes] → Sugestão: "Nunca [X], sempre [Y]"
|
||||
|
||||
**Evidência:**
|
||||
- "prompt1" (data)
|
||||
- "prompt2" (data)
|
||||
|
||||
**Proposta CLAUDE.md:**
|
||||
| NN | [Texto da regra concisa] |
|
||||
```
|
||||
|
||||
### Passo 4 — Apresentar ao utilizador
|
||||
|
||||
```markdown
|
||||
## Revisão de Correcções — [data]
|
||||
|
||||
**Total analisado:** N correcções em M sessões
|
||||
**Padrões encontrados:** P
|
||||
|
||||
### Regras candidatas (aprovação necessária)
|
||||
|
||||
[lista de propostas]
|
||||
|
||||
### Limpar ficheiro?
|
||||
[ ] Sim — arquivar em ~/.claude-work/corrections-archive-YYYY-MM.jsonl
|
||||
[ ] Não — manter para próxima revisão
|
||||
```
|
||||
|
||||
### Passo 5 — Aplicar regras aprovadas
|
||||
|
||||
Se o utilizador aprovar uma regra:
|
||||
1. Abrir `~/.claude/CLAUDE.md`
|
||||
2. Adicionar na tabela de REGRAS CORE com número sequencial
|
||||
3. Confirmar: "Regra #NN adicionada."
|
||||
|
||||
Se o utilizador recusar:
|
||||
- Arquivar correcção com tag `rejected`
|
||||
- Não propor de novo
|
||||
|
||||
---
|
||||
|
||||
## Quando usar
|
||||
|
||||
- **Semanal** (via `/schedule` às segundas-feiras com `/today`)
|
||||
- **Manual** quando corrections.jsonl tem >5 entradas
|
||||
- **Após incidente** (mesmo erro 2+ vezes consecutivos)
|
||||
|
||||
---
|
||||
|
||||
## Integração auto-trigger
|
||||
|
||||
O hook `capture-corrections.sh` regista automaticamente em `~/.claude-work/corrections.jsonl`.
|
||||
Esta skill consome esse ficheiro e fecha o loop de auto-melhoria.
|
||||
|
||||
**Loop completo:**
|
||||
```
|
||||
Correcção utilizador
|
||||
→ capture-corrections.sh (regista)
|
||||
→ /review-corrections (analisa)
|
||||
→ CLAUDE.md (actualiza)
|
||||
→ Comportamento melhora
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Anti-patterns
|
||||
|
||||
- Nunca aplicar regras sem aprovação explícita do utilizador
|
||||
- Nunca propor regras com <2 ocorrências (pode ser caso isolado)
|
||||
- Nunca eliminar regras existentes — apenas adicionar ou reformular
|
||||
|
||||
---
|
||||
|
||||
*Skill v1.0.0 | 06-04-2026 | Descomplicar®*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
@@ -338,3 +338,15 @@ mcp__desk-crm-v3__create_task ou update_task:
|
||||
---
|
||||
|
||||
*Skill v1.0.0 | 2026-03-10 | Plugin gestao | Descomplicar®*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -0,0 +1,124 @@
|
||||
---
|
||||
name: task-state
|
||||
description: Gestão de estado persistente de tarefas entre sessões. Cria, actualiza e lê .task-state.md para tarefas complexas. Usar quando tarefa tem >2 sessões, múltiplos ficheiros, ou risco de perder contexto por compaction.
|
||||
context: fork
|
||||
---
|
||||
|
||||
# /task-state — Gestão de Estado de Tarefa
|
||||
|
||||
Persiste decisões, ficheiros e checkpoints entre sessões. Sobrevive a context compaction.
|
||||
|
||||
---
|
||||
|
||||
## Quando usar
|
||||
|
||||
**Usar quando:**
|
||||
- Tarefa com >1 sessão de trabalho
|
||||
- Múltiplos ficheiros a modificar (>3)
|
||||
- Risco de context compaction apagar contexto crítico
|
||||
- Tarefas que requerem aprovação por checkpoint
|
||||
|
||||
**Não usar quando:**
|
||||
- Tarefas de <30 minutos
|
||||
- Edições simples de 1-2 ficheiros
|
||||
- Respostas a perguntas
|
||||
|
||||
---
|
||||
|
||||
## Comandos
|
||||
|
||||
### /task-state init
|
||||
|
||||
Cria `.task-state.md` no directório actual baseado no template.
|
||||
|
||||
```bash
|
||||
# Verificar se já existe
|
||||
[ -f ".task-state.md" ] && echo "AVISO: já existe — usar /task-state update" && exit 1
|
||||
|
||||
# Copiar template
|
||||
cp ~/.claude-work/task-state-template.md .task-state.md
|
||||
echo "Criado: .task-state.md"
|
||||
```
|
||||
|
||||
Após criar, preencher os campos de Identificação manualmente.
|
||||
|
||||
### /task-state read
|
||||
|
||||
Lê e apresenta o estado actual — útil ao retomar uma tarefa interrompida:
|
||||
|
||||
```bash
|
||||
cat .task-state.md
|
||||
```
|
||||
|
||||
Ao retomar: ler "Próximo passo imediato" e "Bloqueantes actuais" primeiro.
|
||||
|
||||
### /task-state checkpoint N
|
||||
|
||||
Marca checkpoint N como concluído:
|
||||
|
||||
```bash
|
||||
# Exemplo: marcar checkpoint 2 como feito
|
||||
sed -i "s/- \[ \] Sub-issue 2:/- [x] Sub-issue 2:/" .task-state.md
|
||||
```
|
||||
|
||||
### /task-state update
|
||||
|
||||
Actualizar campos específicos ao longo do trabalho:
|
||||
- Adicionar ficheiros modificados à lista
|
||||
- Registar decisões tomadas
|
||||
- Actualizar "Próximo passo imediato"
|
||||
- Adicionar bloqueantes encontrados
|
||||
|
||||
---
|
||||
|
||||
## Padrão Vertical Plans
|
||||
|
||||
Diferença para planos monolíticos:
|
||||
|
||||
| Monolítico | Vertical Plans |
|
||||
|------------|----------------|
|
||||
| Lê o plano completo | Divide em sub-issues com checkpoint |
|
||||
| Implementa tudo | Implementa 1 sub-issue |
|
||||
| Verifica no final | Testa + valida antes de avançar |
|
||||
| Falha tarde | Falha cedo e barato |
|
||||
|
||||
**Regra:** Nunca avançar para sub-issue N+1 sem N estar testado e marcado.
|
||||
|
||||
---
|
||||
|
||||
## Integração com writing-plans
|
||||
|
||||
1. `/writing-plans` → cria plano com sub-issues e critérios de sucesso
|
||||
2. `/task-state init <nome>` → cria ficheiro de estado
|
||||
3. A cada sub-issue: implementar → testar → `/task-state checkpoint N` → commit
|
||||
4. Se sessão interromper: ler `.task-state.md` → continuar no "Próximo passo imediato"
|
||||
|
||||
---
|
||||
|
||||
## Template
|
||||
|
||||
O template está em `~/.claude-work/task-state-template.md`.
|
||||
Actualizar o template para reflectir necessidades do projecto actual.
|
||||
|
||||
---
|
||||
|
||||
## Contexto crítico — o que documentar
|
||||
|
||||
Documentar TUDO que está só na cabeça do Emanuel e que o agente precisa:
|
||||
- "Este servidor é produção — não tocar sem aprovação"
|
||||
- "O cliente X é sensível a preços — nunca mencionar concorrentes"
|
||||
- "A BD usa UTF-8 mas tem registos ISO-8859 antigos — cuidado com migrações"
|
||||
|
||||
**Fonte:** Regra #361 — agente apagou BD de produção porque "é live" estava só na cabeça do humano.
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
@@ -108,3 +108,15 @@ Apos listar tarefas, sugerir ate 6 accoes concretas:
|
||||
---
|
||||
|
||||
*Skill v1.0.0 | 04-03-2026 | Descomplicar®*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -250,3 +250,15 @@ const ALERT_HOURS = 4; // Alertar após 4h
|
||||
---
|
||||
|
||||
*Skill v2.0.0 | 2026-02-05 | Descomplicar®*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -233,6 +233,24 @@ Filename: `DD-MM-YYYY-checkup.md` (Regra #45: formato DD-MM-YYYY)
|
||||
|
||||
Repo agentes: `git.descomplicar.pt/ealmeida/claude_automations_dev`
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
## Self-Healing
|
||||
|
||||
Antes de executar, ler `~/.claude-work/healing/today.jsonl` (se existir). Cada linha é um padrão de erro conhecido:
|
||||
|
||||
```json
|
||||
{"date":"YYYY-MM-DD","issue":"descrição do problema","fix":"como evitar","source":"user|auto"}
|
||||
```
|
||||
|
||||
Se encontrares um padrão relevante ao contexto actual, aplica o fix preventivamente. Após cada erro ou correcção do utilizador nesta skill, **adicionar nova linha** ao healing log com o padrão aprendido.
|
||||
|
||||
---
|
||||
|
||||
*Skill v10.0.0 | 05-03-2026 | Descomplicar®*
|
||||
|
||||
|
||||
## Healing Log
|
||||
<!-- Registo automático de erros e correcções nesta skill -->
|
||||
|
||||
@@ -363,3 +363,15 @@ Ver secção "Referências e Documentação" em:
|
||||
---
|
||||
|
||||
*Skill v1.0.0 | 2026-02-13 | Plugin gestao | Descomplicar®*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
@@ -327,6 +327,32 @@ Perguntas ao analisar sessão:
|
||||
- Auto-trigger ao parar timer
|
||||
- Formato HTML alinhado com Regra #27
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
## Self-Healing
|
||||
|
||||
Antes de executar, ler `~/.claude-work/healing/worklog.jsonl` (se existir). Cada linha é um padrão de erro conhecido:
|
||||
|
||||
```json
|
||||
{"date":"YYYY-MM-DD","issue":"descrição do problema","fix":"como evitar","source":"user|auto"}
|
||||
```
|
||||
|
||||
Se encontrares um padrão relevante ao contexto actual, aplica o fix preventivamente. Após cada erro ou correcção do utilizador nesta skill, **adicionar nova linha** ao healing log com o padrão aprendido.
|
||||
|
||||
---
|
||||
|
||||
*Skill v4.2.0 | 2026-03-12 | Descomplicar(R)*
|
||||
|
||||
---
|
||||
|
||||
## Healing Log
|
||||
|
||||
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
||||
|
||||
```jsonl
|
||||
{"date":"","issue":"","fix":"","source":"user|auto"}
|
||||
```
|
||||
|
||||
*Adicionar nova linha após cada erro corrigido.*
|
||||
|
||||
Reference in New Issue
Block a user