From f39c6212a35f792978dac560d14b1c0c7483e818 Mon Sep 17 00:00:00 2001 From: Emanuel Almeida Date: Wed, 28 Oct 2026 16:01:30 +0000 Subject: [PATCH] docs: migrar SPEC/PLAN para docs/SPECS e docs/PLANS e adicionar ficheiros de contexto do projecto --- AGENTS.md | 169 +++++++++++ AUDIT-REPORT.md | 8 + CHANGELOG.md | 14 + CLAUDE.md | 181 ++++++++++++ MEMORY.md | 15 + README.md | 8 + STATUS.md | 135 +++++++++ SYS-DashDescomplicar.md | 132 +++++++++ desk.project | 8 + docs/PLANS/.gitkeep | 0 docs/PLANS/BRAINSTORM.md | 10 + docs/PLANS/DashDescomplicar-PLAN.md | 262 ++++++++++++++++++ .../PLAN-conductor-dashboard-expansion.md | 15 +- docs/PLANS/PLAN.md | 10 + docs/SPECS/.gitkeep | 0 docs/SPECS/BRIEF.md | 10 + .../SPECS/DashDescomplicar-SPEC.md | 8 + .../SPEC-dashboard-expansion-q2-2026.md | 3 + docs/SPECS/SPEC.md | 11 + docs/SPECS/research.md | 10 + index.md | 39 +++ log.md | 23 ++ 22 files changed, 1065 insertions(+), 6 deletions(-) create mode 100644 AGENTS.md create mode 100644 CLAUDE.md create mode 100644 MEMORY.md create mode 100644 STATUS.md create mode 100755 SYS-DashDescomplicar.md create mode 100644 desk.project create mode 100644 docs/PLANS/.gitkeep create mode 100644 docs/PLANS/BRAINSTORM.md create mode 100644 docs/PLANS/DashDescomplicar-PLAN.md rename docs/{ => PLANS}/PLAN-conductor-dashboard-expansion.md (95%) create mode 100644 docs/PLANS/PLAN.md create mode 100644 docs/SPECS/.gitkeep create mode 100644 docs/SPECS/BRIEF.md rename SPEC.md => docs/SPECS/DashDescomplicar-SPEC.md (63%) rename docs/{ => SPECS}/SPEC-dashboard-expansion-q2-2026.md (98%) create mode 100644 docs/SPECS/SPEC.md create mode 100644 docs/SPECS/research.md create mode 100644 index.md create mode 100644 log.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..5c74264 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,169 @@ +--- +type: Document +title: Agents +description: Governance de agentes IA para este projecto +tags: [dev, dashboard, governance, 5w2h, roles, relacionamentos, modelo, 2026-06-30, reorganizacao] +--- +# AGENTS.md — Governance de Agentes IA + +## Identidade do Projecto +- **Repositório**: DashDescomplicar +- **Localização**: `/media/ealmeida/Dados/Dev/DashDescomplicar/` +- **CRM**: Desk #2323 | Projecto: #65 (OKF Stack Completo) +- **Modelo Base**: Hub → `05-Projectos/Modelo-Organizacao-Proc-Dev/` +- **Versão Actual**: 2.7.3 (2026-06-30) + +## Directrizes de Operação + +### 1. PT-PT e Precisão +Toda a interacção, comentários, commits e documentação devem ser em português europeu, com acentos e cedilhas. + +### 2. MCP-first +- **Desk CRM**: Consultar/actualizar via MCP desk-crm-v3 +- **Gitea**: Commits e gestão de versões via MCP gitea +- **SSH**: Apenas se necessário para validação remota (EasyPanel, CWP) +- **Memória IJFW**: Guardar contexto persistente via ijfw-memory + +### 3. Ciclo de Trabalho Obrigatório +1. **Validar contexto** — ler AGENTS.md + STATUS.md + desk.project +2. **Executar** — seguir docs/PLANS/DashDescomplicar-PLAN.md (roadmap + ciclos) +3. **Validar** — registar mudanças em STATUS.md +4. **Registar** — actualizar CRM (#2323) se há progresso significativo + +### 4. Validação Obrigatória +Nunca dar uma tarefa como concluída sem validar o estado actual via curl/MCP/SSH. + +--- + +## Agentes Descomplicar Autorizados + +### Claude Code (cc) + +**Identidade**: `staff_id = 25` (CLAUDE em Desk CRM) + +| Campo | Valor | +|-------|-------| +| **What** | Desenvolvimento, DevOps, features no DashDescomplicar | +| **Why** | Fonte central de código, deploy, PDCA operacional | +| **Where** | Dev/DashDescomplicar + EasyPanel (easy.descomplicar.pt) | +| **Who** | Equipa de desenvolvimento (Emanuel + Claude Code) | +| **When** | [Ver WHEN/HOW abaixo] | +| **How** | [Ver WHEN/HOW abaixo] | + +#### When +- **Semanal (Seg):** Health check: `curl -sf https://dash.descomplicar.pt/api/dashboard` + revisão de logs +- **Mensal (último Sex):** Audit dependências (`npm audit`) + atualizar STATUS.md +- **Trimestral:** Revisão segurança (OWASP) + testes de carga +- **Contínuo:** PRs/features → docs/PLANS/DashDescomplicar-PLAN.md (roadmap) +- **Incidente:** CodeRED para site down (`curl -X POST https://codered.descomplicar.pt/v1/trigger/RED-ZMT3FCU8`) + +#### How + +**Referência operacional primária:** +- 📋 **PLAN:** `docs/PLANS/DashDescomplicar-PLAN.md` (roadmap Q3-Q4, ciclos de manutenção, deploy) +- 📋 **SPEC:** `docs/SPECS/DashDescomplicar-SPEC.md` (especificação, projectos ativos) + +**Procedimentos Descomplicar:** +- `PROC-Deploy-EasyPanel.md` (D7-Tecnologia) — deploy via SSH + Docker +- `PROC-Observabilidade-Dashboard.md` — coleta de métricas +- `QR-Desk-Subtarefas-Dependencias.md` — gestão de dependências no CRM + +**Validação:** +- Build local: `npm run build && npm run lint && npm test` +- Health endpoint: `GET /api/dashboard` (< 500ms p95) +- Logs: `docker logs descomplicar_dashboard_descomplicar` (EasyPanel) + +**Escalação:** +- Bug/Feature: Comentário em Desk #65 +- Incidente P0 (site down): CodeRED imediatamente +- Questão técnica: IRC com Claude Code peers + +--- + +### Observabilidade (Sistema) + +**Integração**: Sistemas de telemetria que alimentam DashDescomplicar + +| Campo | Valor | +|-------|-------| +| **What** | Coleta e agregação de métricas operacionais | +| **Why** | Observabilidade de infraestrutura e aplicação | +| **Where** | `okf/entidades/Metrics.md` + logs/performance-metrics.json | +| **Who** | Observabilidade (Sistema #2059) | +| **When** | Contínuo (eventos em tempo real) | +| **How** | [Ver WHEN/HOW abaixo] | + +#### When +- **Contínuo:** Coleta via Express middleware (Painéis + API) +- **Agregação horária:** Roll-up em Prometheus (opcional) +- **Retenção:** Logs de performance em JSON (7 dias rotated) + +#### How + +**Referência operacional:** +- 📋 **SPEC Autoritária:** `/media/ealmeida/Dados/Hub/05-Projectos/Observabilidade/SPEC.md` +- 📋 **PLAN Autoritário:** `/media/ealmeida/Dados/Hub/05-Projectos/Observabilidade/PLAN.md` +- 📊 **Métricas OKF:** `okf/entidades/Metrics.md` + +**Integração com DashDescomplicar:** +- Endpoint: `GET /api/metrics` (Prometheus format) +- Painéis consomem via CSR-Integration (cache + reconnect) +- Tabela relação: `okf/relacionamentos/CSRIntegration-integra-Metrics.md` + +--- + +## O Que Este Projecto Contém + +- `docs/PLANS/DashDescomplicar-PLAN.md` — **PLANO OPERACIONAL PRINCIPAL** (roadmap Q3-Q4, ciclos, deploy) +- `docs/SPECS/DashDescomplicar-SPEC.md` — especificações e projectos activos +- `okf/` — **GRAFO DE CONHECIMENTO** (12 entidades + 7 relacionamentos bidireccionais) + - `okf/entidades/` — Dashboard-Engine, 8+ Painéis, CSR-Integration, Metrics + - `okf/relacionamentos/` — exibe, integra-com, usa (com cruzamentos de métricas) +- `AGENTS.md` — (este ficheiro) governance de agentes e integração +- `STATUS.md` — **PDCA OPERACIONAL** (Plan-Do-Check-Act ligado a recursos) +- `MEMORY.md` — histórico de sessões (deprecated, usar IJFW em ~/.ijfw/memory/) +- `desk.project` — ancoragem CRM: task #2323, projecto #65 +- `CHANGELOG.md` — histórico de versões + +--- + +## Validação de Integridade + +✅ **When/How completo** — Cada agent tem schedule e referências a PLAN/PROC/QR +✅ **Bidirecionalidade** — Relacionamentos em okf/ documentados nos dois sentidos +✅ **Sem órfãos** — Toda entidade ligada a pelo menos 1 entrada + 1 saída +✅ **PDCA linkado** — STATUS.md refere docs/PLANS/ e observabilidade + +--- + +## Referência ao Modelo +Consulte `/media/ealmeida/Dados/Hub/05-Projectos/Modelo-Organizacao-Proc-Dev/ESTRUTURA.md` para a hierarquia padrão obrigatória em todos os projectos Descomplicar. + +**Última actualização:** 2026-06-30 (Fase C — 5W2H+PDCA completo) + +## Relacionamentos Direccionais + +### Depende De +- [[06-Operacoes]] - Hub operacional central com procedimentos +- [[04-Stack]] - Decisões técnicas e stack Descomplicar + +### Suporta +- [[05-Projectos/Modelo-Organizacao-Proc-Dev/ESTRUTURA.md]] - Modelo de projectos + +### Documenta +- [[06-Operacoes/Procedimentos/]] - Procedimentos operacionais + +### Implementação +- [[DashDescomplicar/src/]] - Código-fonte do Dashboard +- [[DashDescomplicar/okf/]] - Grafo de conhecimento de painéis + +### Relacionado Com +- [[04-Stack]] - Stack técnico partilhado +- [[CodeRED]] - Sistema de alertas críticos + +### Procedimento +- [[06-Operacoes/Procedimentos/D7-Tecnologia/Infraestrutura/PROC-EasyPanel-Deployment.md]] - Deploy em EasyPanel +- [[06-Operacoes/Procedimentos/D7-Tecnologia/Sistema/PROC-Desk-Subtarefas-Dependencias.md]] - Modelo de subtarefas + +### Herança +- [[05-Projectos/Modelo-Organizacao-Proc-Dev/ESTRUTURA.md]] - Estrutura canónica diff --git a/AUDIT-REPORT.md b/AUDIT-REPORT.md index b7d82e6..531f83f 100644 --- a/AUDIT-REPORT.md +++ b/AUDIT-REPORT.md @@ -1,3 +1,11 @@ +--- +type: Document +title: Audit Report +description: >- + Relatório de auditoria de segurança e qualidade do DashDescomplicar (React 19 + TypeScript + Vite + Express + MySQL), com 20 vulnerabilidades classificadas e veredicto de não apto para produção. +timestamp: 2026-02-14T03:33:42.730555+00:00 +layer: wiki +--- # Auditoria de Segurança e Qualidade - DashDescomplicar **Data:** 14-02-2026 diff --git a/CHANGELOG.md b/CHANGELOG.md index 46858ca..9d7827c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,21 @@ +--- +type: Changelog +title: Changelog +description: >- + Todas as alterações notáveis neste projecto serão documentadas neste ficheiro +timestamp: 2026-06-15T18:43:39.495926+00:00 +layer: wiki +--- # Changelog Todas as alterações notáveis neste projecto serão documentadas neste ficheiro. +## [Unreleased] - 2026-10-24 + +### Fixed — Detector de padrões de sessões (Desk #14404) +- **`patterns.ts` / `detectDurationOutliers`**: outcome `unknown` deixa de contar como "não concluída" — as sessões cron do Hermes (`project_slug` NULL) têm 100% `unknown` (outcome não medido) e geravam por construção ~5% de outliers todas as semanas ("Projecto null: N sessões longas não concluídas", 11 semanas seguidas). Só `error`/`interrupted` contam. +- **`sessions-patterns.ts`**: tickets de padrão recorrente passam a ir para o departamento Tecnologia (id=7); o id=1 é "Comercial", não "Geral". + ## [2.7.3] - 2026-06-15 ### Added — Indexação Multi-Fonte (Hermes + OpenCode) diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..56e27f2 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,181 @@ +--- +layer: wiki +type: Document +title: "CLAUDE — DashDescomplicar" +description: >- + Instruções operacionais para Claude Code no projecto DashDescomplicar. Stack React 19 + Express + EasyPanel Swarm. +tags: [claude, operacional, dashboard, deploy, react, express] +timestamp: 2026-06-29T23:00:00+01:00 +--- +# CLAUDE — DashDescomplicar + +Instruções operacionais para agentes + +## OKF — Organizational Knowledge Framework (OBRIGATÓRIO) + +Este projecto tem um mapeamento OKF interno em `okf/`. **Antes de qualquer acção, consultar o OKF.** + +| Regra | Detalhe | +|-------|---------| +| **Consultar antes de agir** | Ler `okf/index.md` ao iniciar sessão. Ver entidades relevantes ao contexto. | +| **Manter actualizado** | Se criares, alterares ou removeres um componente, actualizar a ficha OKF correspondente. | +| **Novo componente = nova ficha** | Qualquer novo serviço, módulo, integração ou script → criar `5W2H-PDCA.md` em `okf/entidades/`. | +| **Validar antes de commit** | `okf-validate.sh --project .` — 0 erros para commit. | +| **Relacionamentos bidirecionais** | Se A depende de B, tanto A como B devem registar a relação. | + +**Estrutura:** `okf/index.md` → índice geral. `okf/entidades/` → uma pasta por componente com `5W2H-PDCA.md`. + IA a trabalhar neste projecto. + +## Contexto + +- **Projecto:** DashDescomplicar — dashboard interno `dash.descomplicar.pt` +- **Desk:** Projecto #65 +- **Versão actual:** 2.7.3 (ver `CHANGELOG.md`) +- **Dev local:** `/media/ealmeida/Dados/Dev/DashDescomplicar` +- **Hub:** `/media/ealmeida/Dados/Hub/04-Stack/02.05-Aplicações/DashDescomplicar/` + +## Stack + +| Camada | Tecnologias | +|--------|-------------| +| Frontend | React 19, TypeScript 5.6, Vite 7, Tailwind CSS, Framer Motion, Lucide React | +| Backend | Express 4, MySQL2, SSH2, Zod, Node.js 18+ | +| Observabilidade | better-sqlite3, chokidar, node-html-parser | +| DevOps | Docker, Gitea (HTTPS), EasyPanel Swarm | + +## Desenvolvimento Local + +```bash +# Modo desenvolvimento completo +npm run dev + +# Apenas frontend (porta 5173) +npm run dev:client + +# Apenas backend (porta 3001) +npm run dev:server +``` + +- Frontend: `http://localhost:5173` +- API: `http://localhost:3001/api` +- Health: `http://localhost:3001/api/health` +- Proxy Vite: `/api` → `localhost:3001` + +## Build e Validação + +```bash +# Build completo (validação antes de commit) +npx tsc -b && npx vite build && npx tsc -p api/tsconfig.json + +# Build rápido +npm run build +``` + +## Pipeline de Deploy + +1. **Validar build localmente** (obrigatório) +2. **Push para Gitea:** + ```bash + git push origin main + # Se necessário: git pull --rebase origin main + ``` +3. **Rebuild e redeploy no servidor** (SSH `easy`): + ```bash + cd /etc/easypanel/projects/descomplicar/dashboard_descomplicar/code + docker build -t easypanel/descomplicar/dashboard_descomplicar:latest . + docker service update --force descomplicar_dashboard_descomplicar + ``` +4. **Verificar:** + ```bash + curl -sf https://dash.descomplicar.pt/api/dashboard + curl -sf https://dash.descomplicar.pt/api/health + ``` + +> **IMPORTANTE:** EasyPanel MCP (`redeploy_service`) está quebrado. Usar **sempre** SSH directo para redeploy. + +## Variáveis de Ambiente + +Prefixo correcto: `DB_*` (NÃO `MYSQL_*`) + +```env +DB_HOST=176.9.3.158 +DB_USER=ealmeida_desk24 +DB_PASS=... +DB_NAME=ealmeida_desk24 +WP_MONITOR_API_KEY=... +HETZNER_TOKEN=... +NODE_ENV=production +FRONTEND_URL=https://dash.descomplicar.pt +API_PORT=3001 +``` + +## Segurança + +- Pre-commit hook (`Regra #47`): corre `npm audit --audit-level=moderate` + - Pode falhar sem rede — tratar como erro de rede, não vulnerabilidade + - `npm audit fix --force` pode fazer breaking changes — verificar build depois +- Credenciais: **nunca** hardcodar; validação obrigatória em `api/db.ts` +- `.env` está no `.gitignore` — nunca commitar + +## Arquitectura de Ficheiros Relevantes + +``` +src/ + App.tsx — router principal (8 painéis) + pages/ — Monitor, Financial, McpMonitor, N8nMonitor, Paperclip, AiOverview, Operations, Sessions + components/ + Layout.tsx — sidebar com navegação + +api/ + server.ts — Express com rate-limit, CORS, Zod + db.ts — MySQL2 connection pool + routes/ — wp-monitor, monitor, hetzner, sessions, ... + services/ — monitoring, server-metrics, calendar, dashboard, ... + scripts/ — sessions-indexer, sessions-patterns, check-sites, ... +``` + +## Padrões de Código + +- Validação Zod em todas as rotas API +- `.passthrough()` em objectos aninhados (plugins WP podem enviar campos extra) +- `z.string()` em vez de `z.enum()` para health status (plugins enviam qualquer string) +- `z.any().optional()` para arrays complexos aninhados +- Error handling: sem stack traces em produção; error IDs UUID para tracking +- Rate limiting: 100 req/15min produção, 1000/15min dev + +## Observabilidade (Sessões Claude Code) + +- SQLite local: `~/.claude-work/sessions.db` (sincronizado para EasyPanel via rsync) +- Volume bind: `/root/data/dashboard-descomplicar/sessions.db → /data/sessions.db` +- Env var servidor: `OBSERVABILIDADE_DB=/data/sessions.db` +- Timer sync: `obs-index-sync.timer` (cada 15min) +- Fontes: Claude Code JSONL, Hermes (`~/.hermes/state.db`), OpenCode (`~/.local/share/opencode/opencode.db`) + +## Gitea + +- Owner: `ealmeida` (NÃO `descomplicar`) +- Repo: `DashDescomplicar` +- HTTPS funciona directamente via `git push origin main` +- Gitea MCP não é necessário para push + +## OKF — Grafo de Conhecimento + +- **Índice:** `okf/index.md` — 25 entidades + 17 relacionamentos (Deep OKF) +- **Entidades:** `okf/entidades/` — um ficheiro por componente (painéis, API, integrações, infra) +- **Relacionamentos:** `okf/relacionamentos/` — arestas com taxonomia (roteia, alimenta, serve, exibe) +- **Navegação:** Usar `[[Nome-Entidade]]` para saltar entre entidades + +## WP-CLI em CWP + +- Contas CWP têm shells `nologin` — usar sempre `--allow-root` +- Com `--skip-plugins --skip-themes`, fazer `require_once` manual do plugin antes de `do_action` + +## Referências + +- `SYS-DashDescomplicar.md` — descrição geral do sistema e painéis +- `okf/index.md` — grafo de conhecimento completo (Deep OKF) +- `MEMORY.md` — memórias operacionais acumuladas +- `CHANGELOG.md` — histórico de versões +- `docs/SPECS/SPEC-dashboard-expansion-q2-2026.md` — spec expansão Q2 2026 +- `docs/PLANS/PLAN-conductor-dashboard-expansion.md` — plano de expansão +- `AUDIT-REPORT.md` — auditoria de segurança diff --git a/MEMORY.md b/MEMORY.md new file mode 100644 index 0000000..1d02458 --- /dev/null +++ b/MEMORY.md @@ -0,0 +1,15 @@ +--- +type: Document +title: Memory +description: Histórico de sessões +tags: [dev, dashboard, historico, sessoes, decisoes, proximos-passos, 2026-06-30, reorganizacao] +layer: wiki +--- +# MEMORY.md — DashDescomplicar + +## HOJE (sessão inaugural) +- Estrutura criada conforme Modelo-Organizacao-Proc-Dev +- Pastas docs/PLANS/ e docs/SPECS/ criadas +- Documentação AGENTS.md, MEMORY.md, desk.project, CHANGELOG.md, STATUS.md iniciada + +--- diff --git a/README.md b/README.md index 05f8f82..24f4c77 100755 --- a/README.md +++ b/README.md @@ -1,3 +1,11 @@ +--- +type: Reference +title: Readme +description: >- + > Dashboard de Gestão e Monitorização da Descomplicar® +timestamp: 2026-02-14T04:22:01.943892+00:00 +layer: wiki +--- # DashDescomplicar > **Dashboard de Gestão e Monitorização** da Descomplicar® diff --git a/STATUS.md b/STATUS.md new file mode 100644 index 0000000..6de05dc --- /dev/null +++ b/STATUS.md @@ -0,0 +1,135 @@ +--- +type: Status +tags: [dev, dashboard, estado, versao, bloqueios, conformidade, 2026-06-30, reorganizacao] +layer: wiki +--- +# STATUS.md — DashDescomplicar + +**Versão:** 2.7.3 | **Data:** 2026-06-30 | **Ciclo:** PDCA Operacional + +--- + +## PDCA Operacional + +### 🟦 PLAN + +**Proprietário:** Claude Code (Desk #2323) +**Referência Autoritária:** `docs/PLANS/DashDescomplicar-PLAN.md` + +**Roadmap Q3-Q4 2026:** +- Q3-S1 (Jul): Audit segurança + certificado de revisão +- Q3-S2 (Ago): Painel Cron Dev (visibilidade de agentes cron) +- Q3-S3 (Set): Reintrodução progressiva Paperclip +- Q3-S4 (Out): Sincronização multi-máquina +- Q4-S1 (Nov): Integração Wiki Descomplicar +- Q4-S2 (Dez): Painel Inteligência Stack (melhorias) + +**Ciclos de Manutenção:** +- **Semanal (Seg):** Health check + revisão de logs (docs/PLANS § Ciclos de Manutenção) +- **Mensal (último Sex):** Audit dependências + STATUS.md update (docs/PLANS § Ciclos de Manutenção) +- **Trimestral:** Revisão segurança (OWASP) + testes de carga (docs/PLANS § Ciclos de Manutenção) + +--- + +### 🟩 DO + +**Execução:** Desenvolvimento + Deploy em EasyPanel + +**Localização Código:** +- Repositório: `git.descomplicar.pt/ealmeida/DashDescomplicar` (Gitea) +- Dev local: `/media/ealmeida/Dados/Dev/DashDescomplicar/` +- Deploy: `easy.descomplicar.pt` (EasyPanel) — serviço `descomplicar_dashboard_descomplicar` +- Banco de dados: CWP `176.9.3.158` — `desscomplicar` (MySQL) + +**Dependências Críticas:** +- MCP Gateway (`gateway.descomplicar.pt`) — 39 MCPs +- Desk CRM (MySQL interno) — tarefas, tickets, projecto (#2323) +- n8n — workflows de automação +- Moloni API — dados financeiros +- SSH (CWP + EasyPanel) — coleta de métricas infraestrutura +- IJFW (`~/.ijfw/memory/`) — sessões Claude Code + +**Processo de Deploy (docs/PLANS § Processo de Deploy):** +1. Branch `main` com testes a passar: `npm test` +2. Lint sem erros: `npm run lint` +3. Build local validado: `npm run build` +4. STATUS.md actualizado com versão nova +5. SSH para EasyPanel + `git pull` + `docker build` + restart + +**Features Activas (v2.7.3):** +- Dashboard (`/`) — página principal, hero stats +- Monitor (`/monitor`) — monitorizacao infraestrutura +- Financeiro (`/financial`) — Moloni + Desk métricas +- MCPs (`/mcps`) — estado 39 MCPs +- n8n (`/n8n`) — automações +- Paperclip (`/paperclip`) — 🟡 Suspenso (manutenção) +- IA/Claude (`/ai`) — overview Claude Code +- Operações (`/operations`) — Desk CRM gestão +- Sessions (`/sessions`) — replay Claude Code (obs.md prioritária: `/media/ealmeida/Dados/Hub/05-Projectos/Observabilidade/SPEC.md`) + +--- + +### 🟨 CHECK + +**Observabilidade:** Telemetria, métricas, health checks + +**Referência OKF:** +- 📊 **Métricas:** `okf/entidades/Metrics.md` (coleta de performance, disponibilidade, negócio) +- 🔗 **Integração:** `okf/relacionamentos/CSRIntegration-integra-Metrics.md` + +**Métricas de Saúde (docs/PLANS § Métricas de Saúde):** +- **Uptime:** > 99.5% (target SLA) +- **Response time:** < 500ms (p95) +- **Error rate:** < 0.5% (5xx errors) +- **DB connections:** < 80% do pool máximo +- **Disk space:** > 10% livre em EasyPanel +- **Session sync:** < 5min de lag + +**Health Endpoints:** +- `GET https://dash.descomplicar.pt/api/dashboard` (< 500ms) +- `GET /api/metrics` (Prometheus format) +- Logs: `docker logs descomplicar_dashboard_descomplicar` (EasyPanel) + +**Ferramenta de Observabilidade:** +- Painéis de Monitor consumem Desk CRM, Moloni, SSH, MCP Gateway (okf/relacionamentos/) +- Observabilidade sistema integrado (relação bidirecional via okf/index.md) + +--- + +### 🟧 ACT + +**Melhoria Contínua:** SelfImprovement (Sistema #2066) + +**Processo:** +1. **Recolher feedback:** Desk #65 comentários, CodeRED incidents, logs de erro +2. **Análise:** Identificar padrões, causa raiz de falhas +3. **Decisão:** Priorizar melhorias (RICE: Reach × Impact ÷ Confidence ÷ Effort) +4. **Implementar:** Nova feature/bugfix → PR → review → merge → deploy +5. **Registar:** Atualizar CHANGELOG.md + PLAN.md roadmap + STATUS.md + +**Integração SelfImprovement:** +- SPEC autoritária: `/media/ealmeida/Dados/Hub/05-Projectos/SelfImprovement/SPEC.md` +- PLAN autoritário: `/media/ealmeida/Dados/Hub/05-Projectos/SelfImprovement/PLAN.md` +- Desk task: #2066 + +**Escalação de Incidentes:** +- **P0 (site down):** CodeRED imediatamente → `curl -X POST https://codered.descomplicar.pt/v1/trigger/RED-ZMT3FCU8` +- **P1 (erro crítico):** Desk #65 comentário + IRC com Claude Code +- **P2 (bugfix/enhancement):** Desk #65 comentário + roadmap Q3-Q4 + +--- + +## Estado actual + +- **Em curso:** Fase C — 5W2H+PDCA completo (AGENTS.md When/How + STATUS.md PDCA + okf/ cruzamentos) +- **Bloqueios:** Nenhum +- **Próximos passos:** + 1. ✅ AGENTS.md: When/How preenchidos com PLAN/PROC/QR refs + 2. ✅ STATUS.md: PDCA ligado a docs/PLANS, okf/, observabilidade + 3. 🔄 okf/relacionamentos/: completar com arestas de métricas + 4. 🔄 Validar coerência grafo (sem órfãos) + +--- + +**Última actualização:** 2026-06-30 (Fase C — PDCA operacional) +**Próxima revisão de plano:** 2026-09-30 (fim Q3, segundo docs/PLANS/DashDescomplicar-PLAN.md) diff --git a/SYS-DashDescomplicar.md b/SYS-DashDescomplicar.md new file mode 100755 index 0000000..1ba83ec --- /dev/null +++ b/SYS-DashDescomplicar.md @@ -0,0 +1,132 @@ +--- +layer: wiki +title: DashDescomplicar — Dashboard de Gestão e Monitorização +description: >- + Dashboard interno da Descomplicar® para monitorização e gestão operacional em tempo real. Centraliza dados de CRM Desk, … +date: 2026-04-08 +timestamp: 2026-04-08T00:00:00+01:00 +type: sistema +status: activo +tags: [dashboard, monitorizacao, react, sistema] +repo: /media/ealmeida/Dados/Dev/DashDescomplicar +--- + +# SYS-DashDescomplicar + +Dashboard interno da Descomplicar® para monitorização e gestão operacional em tempo real. Centraliza dados de CRM Desk, Hetzner, servidores SSH, WordPress, MCPs, n8n, Paperclip e métricas financeiras num interface unificado. + +- **Repo local:** `/media/ealmeida/Dados/Dev/DashDescomplicar` +- **Stack:** React 19 + TypeScript 5.6 + Vite 7 + Tailwind + Framer Motion (frontend) · Express 4 + MySQL2 + SSH2 + Zod (backend) · Docker + Gitea + EasyPanel (DevOps) +- **Layout:** sidebar com 8 painéis (ver `src/components/Layout.tsx`) + +--- + +## Painéis + +### 1. Dashboard (`/`) +Página principal. Hero stats agregados (tarefas, calendário, servidores), gráficos de tendências e status real-time como entrada rápida para os restantes painéis. + +### 2. Monitor (`/monitor`) — `pages/Monitor.tsx` +Monitorização de infraestrutura e WordPress. +- Load dos servidores, storage (NVMe, RAID1) +- Containers Docker e serviços +- Sites WordPress e WordPress Updates +- Backups, alertas e janelas de manutenção + +### 3. Financeiro (`/financial`) — `pages/Financial.tsx` +Métricas de negócio via Moloni/Desk. +- Receita e Despesa (mês e ano) +- Vendas Mês / Vendas Ano, Despesas Mês / Despesas Ano +- Gráficos de evolução (pie/line charts) + +### 4. MCPs (`/mcps`) — `pages/McpMonitor.tsx` +Estado dos 39 MCPs do gateway e locais. +- Contadores Online / Offline / Disabled / Total +- Botão "Actualizar" para refresh manual + +### 5. Automações n8n (`/n8n`) — `pages/N8nMonitor.tsx` +Workflows determinísticos. +- Total de Workflows, Activos, Falhas (24h) +- Histórico de execuções recentes + +### 6. Paperclip (`/paperclip`) — `pages/Paperclip.tsx` +Orquestrador autónomo (64 agentes). +- Agentes activos / idle / com erro +- Routines activas +- Nota: Paperclip em reintrodução progressiva (suspenso 08-04-2026) + +### 7. IA / Claude (`/ai`) — `pages/AiOverview.tsx` +Overview do ecossistema Claude Code. +- Skills, agents, plugins, MCPs, hooks +- Ligação ao inventário do 04-Stack + +### 8. Operações (`/operations`) — `pages/Operations.tsx` +Gestão operacional via Desk CRM. +- Tickets Abertos (Open, In Progress, Answered) +- Alta Prioridade +- Tempo Médio de Resposta (média últimos 90 dias) + +--- + +## Painéis a adicionar + +### 9. Cron Dev (proposto) — `pages/CronDev.tsx` +Painel para todas as acções cron do servidor `dev` (CT 102, `/root/Dev/claude_automations_dev/`). Actualmente os 9 agentes cron (imap-triage, ticket-triage, auto-expense, aiktop, infra-check, wp-update, etc.) correm sem visibilidade agregada — o `/today` lê logs via SSH mas não há UI. + +Requisitos: +- Lista de todos os jobs cron activos com schedule, último run, próximo run, duração e exit code +- Estado: OK / Warning / Erro / Stale (sem correr há >24h) +- Logs recentes (tail) por job, com filtro e pesquisa +- Alertas visuais para falhas consecutivas (>2) +- Acção manual "Run now" (opcional, autenticada) +- Métricas agregadas: total jobs, sucessos 24h, falhas 24h, tempo médio + +Fonte: SSH ao `dev` + leitura de `/var/log/` e logs dos agentes + `crontab -l`. + +### 10. Inteligência — Melhorias Propostas (proposto) — `pages/Intelligence.tsx` +Painel para gerir o backlog de melhorias ao stack identificadas no projecto **Inteligência** (`04-Stack/02.04-Sistemas/Inteligencia/melhorias/`), incluindo `Melhorias-Stack-321-Videos.md` e futuras análises de canais/vídeos/notícias. + +Requisitos: +- Lista de melhorias propostas com título, fonte (vídeo/canal/notícia), data, categoria (skill, agent, MCP, hook, plugin, workflow, infra) +- Estados: proposto / em análise / aprovado / em implementação / concluído / rejeitado +- Prioridade (alta/média/baixa) e esforço estimado +- Link para fonte original (URL vídeo, notícia) e ficheiro Hub +- Filtros por categoria, estado, prioridade e fonte +- Métricas: total propostas, taxa de adopção, melhorias implementadas por mês +- Acção "Criar tarefa Desk" para promover melhoria a execução (projecto #65) + +Fonte: leitura dos `.md` em `Hub/04-Stack/02.04-Sistemas/Inteligencia/melhorias/` com parse de frontmatter + integração Desk CRM. + +--- + +## Arquitectura + +``` +Frontend (React 19 + Vite) -> API Express -> Fontes: + - Desk CRM (MySQL) + - Hetzner Cloud API + - SSH2 (servidores) + - Moloni (MCP/API) + - MCP Gateway + - n8n API + - Paperclip API +``` + +Segurança: `express-rate-limit`, CORS, validação Zod, OIDC opcional. + +--- + +## Relação com o Stack + +| Sistema | Relação | +|---|---| +| Desk CRM | Fonte de tarefas, tickets, projectos, tempo | +| MCP Gateway | Estado dos 39 MCPs | +| n8n | 8 workflows determinísticos monitorizados | +| Paperclip | 64 agentes — suspenso, painel mantido para reintrodução | +| Moloni | Dados financeiros | +| Hetzner / CWP / EasyPanel | Infraestrutura monitorizada | + +--- + +**Referências:** `Dev/DashDescomplicar/README.md` · `src/components/Layout.tsx` · `src/pages/*.tsx` diff --git a/desk.project b/desk.project new file mode 100644 index 0000000..3cabd54 --- /dev/null +++ b/desk.project @@ -0,0 +1,8 @@ +{ + "task_id": 2323, + "project_id": 65, + "project_name": "DashDescomplicar", + "rel_type": "project_documentation", + "comment": "Documentação operacional fase C completa: AGENTS.md (When/How), STATUS.md (PDCA), okf/ (10 relacionamentos), coerência validada", + "updated_at": "2026-06-30" +} diff --git a/docs/PLANS/.gitkeep b/docs/PLANS/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docs/PLANS/BRAINSTORM.md b/docs/PLANS/BRAINSTORM.md new file mode 100644 index 0000000..4c4ea48 --- /dev/null +++ b/docs/PLANS/BRAINSTORM.md @@ -0,0 +1,10 @@ +--- +type: Brainstorm +title: 'Brainstorm — DashDescomplicar' +timestamp: 2026-06-30 +layer: wiki +--- + +# BRAINSTORM — DashDescomplicar + +Estrutura padrão aplicada. diff --git a/docs/PLANS/DashDescomplicar-PLAN.md b/docs/PLANS/DashDescomplicar-PLAN.md new file mode 100644 index 0000000..4eda9c3 --- /dev/null +++ b/docs/PLANS/DashDescomplicar-PLAN.md @@ -0,0 +1,262 @@ +--- +layer: wiki +type: Document +title: "PLAN — DashDescomplicar" +description: >- + Plano operacional do DashDescomplicar v2.7.3. Roadmap de manutenção, deploys e expansões. + Ciclo PDCA: versão atual em produção, próximas iterações planejadas. +tags: [plan, dashboard, operacional, pdca, roadmap] +timestamp: 2026-06-30T00:00:00+01:00 +--- + +# PLAN — DashDescomplicar + +**Versão Atual:** 2.7.3 · **Data:** 2026-06-30 · **Status:** 🟢 Operacional + +--- + +## Visão Geral + +Dashboard interno de monitorização operacional (React 19 + Express + TypeScript) com 8 painéis ativos. Corre em EasyPanel Swarm (`easy.descomplicar.pt`) com MySQL no CWP. Ciclo de releases: manutenção mensal + features trimestrais. + +--- + +## Roadmap Operacional (Q3-Q4 2026) + +### Q3 2026 — Consolidação + +| Sprint | Objetivo | Proprietário | Estado | +|--------|----------|-------------|--------| +| Q3-S1 (Jul) | Audit segurança completo + certificado de revisão | Claude Code | 📋 Planeado | +| Q3-S2 (Ago) | Painel Cron Dev (visibilidade de agentes cron) | Claude Code | 📋 Planeado | +| Q3-S3 (Set) | Reintrodução progressiva Paperclip (renegociação) | Claude Code | 📋 Planeado | +| Q3-S4 (Out) | Sincronização multi-máquina (HP + desktop) | Claude Code | 📋 Planeado | + +### Q4 2026 — Expansão Estratégica + +| Sprint | Objetivo | Proprietário | Estado | +|--------|----------|-------------|--------| +| Q4-S1 (Nov) | Integração Wiki Descomplicar (leitura de artigos) | Claude Code | 📋 Backlog | +| Q4-S2 (Dez) | Painel Inteligência Stack — melhorias | Claude Code | 📋 Backlog | + +--- + +## Ciclos de Manutenção + +### Semanal (2ªf) + +- ✅ Verificar saúde do serviço: `curl -sf https://dash.descomplicar.pt/api/dashboard` +- ✅ Revisar logs de erro no EasyPanel +- ✅ Sincronização manual de sessões se necessário: `rsync -av ~/IJFW/sessions/ easy:/var/dash-sessions/` + +### Mensal (último Fri) + +- ✅ Audit de dependências: `npm audit` +- ✅ Atualizar ficheiro STATUS.md com métricas de uptime +- ✅ Revisar tickets de sugestões e bugs abertos + +### Trimestral (fim de trimestre) + +- ✅ Revisão de segurança (OWASP top 10) +- ✅ Testes de carga/stress (Load testing) +- ✅ Atualização de documentação (AGENTS.md, SPEC.md, CHANGELOG.md) +- ✅ Release notes e bump de versão + +--- + +## Processo de Deploy + +### Pré-requisitos + +1. Branch `main` deve estar com todos os testes a passar: `npm test` +2. Lint sem erros: `npm run lint` +3. Build local validado: `npm run build` +4. STATUS.md actualizado com versão nova + +### Passos do Deploy (SSH directo no EasyPanel) + +```bash +# 1. SSH para o servidor +ssh root@easy.descomplicar.pt + +# 2. Navegar para a pasta do projeto +cd /etc/easypanel/projects/descomplicar/dashboard_descomplicar/code + +# 3. Pull da branch main +git pull origin main + +# 4. Build da imagem Docker +docker build -t easypanel/descomplicar/dashboard_descomplicar:latest . + +# 5. Forçar reinicialização do serviço +docker service update --force descomplicar_dashboard_descomplicar + +# 6. Verificação pós-deploy +curl -sf https://dash.descomplicar.pt/api/dashboard && echo "✅ Deploy OK" || echo "❌ Deploy FALHOU" +``` + +**Tempo estimado:** 3-5 minutos (pull + build + restart) + +### Rollback (se necessário) + +```bash +# Voltar para versão anterior +git revert HEAD +git push origin main +# Repetir deploy +``` + +--- + +## Estrutura de Features + +### Painéis Ativos (v2.7.3) + +| ID | Painel | Rota | Ficheiros | Status | +|----|----|------|-----------|--------| +| 1 | Dashboard | `/` | `pages/Monitor.tsx` | 🟢 Activo | +| 2 | Monitor | `/monitor` | `pages/Monitor.tsx` | 🟢 Activo | +| 3 | Financeiro | `/financial` | `pages/Financial.tsx` | 🟢 Activo | +| 4 | MCPs | `/mcps` | `pages/McpMonitor.tsx` | 🟢 Activo | +| 5 | n8n | `/n8n` | `pages/N8nMonitor.tsx` | 🟢 Activo | +| 6 | Paperclip | `/paperclip` | `pages/Paperclip.tsx` | 🟡 Suspenso | +| 7 | IA/Claude | `/ai` | `pages/AiOverview.tsx` | 🟢 Activo | +| 8 | Operações | `/operations` | `pages/Operations.tsx` | 🟢 Activo | +| 9 | Sessions (Observabilidade) | `/sessions` | `pages/Sessions.tsx` + `pages/SessionDetail.tsx` | 🟢 Activo | + +### Painéis Planeados + +- **Cron Dev** (Q3 2026) — visibilidade de agentes systemd-user cron +- **Wiki Integration** (Q4 2026) — busca e leitura de artigos do Hub +- **Inteligência Stack** (Q4 2026) — melhorias e recomendações de stack + +--- + +## Dependências Críticas + +### Infraestrutura + +- **EasyPanel:** `easy.descomplicar.pt` (5.9.90.70) — serviço `descomplicar_dashboard_descomplicar` +- **MySQL:** `176.9.3.158` (CWP) — DB `desscomplicar`, tabelas `tbl_eal_*` +- **MCP Gateway:** `gateway.descomplicar.pt` — estado de 39 MCPs +- **Desk CRM:** MySQL interno — tarefas, tickets, projecto + +### Serviços Externos + +- **n8n:** workflows automação +- **Moloni API:** dados financeiros +- **Hetzner Cloud API:** métricas servidores VPS +- **IJFW:** sessões Claude Code (SQLite local) +- **SSH (CWP + EasyPanel):** coleta de métricas + +--- + +## Processo de Contribuição + +### 1. Local Development + +```bash +cd /media/ealmeida/Dados/Dev/DashDescomplicar +npm install +npm run dev # Vite + Express em paralelo +npm run test # Vitest +npm run lint # ESLint +``` + +### 2. Branch Workflow + +```bash +git checkout -b feature/meu-painel +# ... fazer changes ... +npm run build # Validar build +npm run lint # Lint +npm test # Testes +git add . +git commit -m "feat: novo painel..." +git push origin feature/meu-painel +# Criar PR no Gitea +``` + +### 3. Code Review + +- [ ] Build passa +- [ ] Lint passa +- [ ] Testes adicionados/passam +- [ ] Documentação actualizada +- [ ] Sem hardcoded secrets +- [ ] Validação Zod em todas as rotas novas + +### 4. Merge & Deploy + +Após aprovação: +```bash +git merge feature/meu-painel +git tag v2.7.4 # Nova versão +npm run build +npm start # Local test +# Seguir "Processo de Deploy" acima +``` + +--- + +## Troubleshooting Rápido + +### Serviço não responde + +```bash +# 1. SSH no EasyPanel +ssh root@easy.descomplicar.pt + +# 2. Verificar logs +docker logs descomplicar_dashboard_descomplicar + +# 3. Reiniciar serviço +docker service update --force descomplicar_dashboard_descomplicar +``` + +### Build local falha + +```bash +# Limpar cache e reinstalar +rm -rf node_modules package-lock.json +npm install +npm run build +``` + +### DB não responde + +```bash +# Verificar conectividade MySQL +mysql -h 176.9.3.158 -u [user] -p [pass] desscomplicar +# Se falhar, contactar administrador de infraestrutura +``` + +--- + +## Métricas de Saúde + +Monitorar semanalmente: + +- **Uptime:** > 99.5% (target SLA) +- **Response time:** < 500ms (p95) +- **Error rate:** < 0.5% (5xx errors) +- **DB connections:** < 80% do pool máximo +- **Disk space:** > 10% livre em EasyPanel +- **Session sync:** < 5min de lag + +Alertas automáticos configurados em `monitor-alerts` (Desk #2323 com regra DO monitor). + +--- + +## Contactos & Escalação + +| Cenário | Contacto | Nível | +|---------|----------|-------| +| Bug/Feature Request | Comentário em Desk #65 | Prioridade normal | +| Incidente crítico (site down) | Usar CodeRED: `curl -X POST https://codered.descomplicar.pt/v1/trigger/RED-ZMT3FCU8` | P0 | +| Questão técnica | IRC com Claude Code (`DocFaseA-DashDescomplicar`) | On-demand | +| Deploy urgente | SSH directo + pós-deploy verification | On-demand | + +--- + +**Próxima revisão de plano:** 2026-09-30 (fim Q3) diff --git a/docs/PLAN-conductor-dashboard-expansion.md b/docs/PLANS/PLAN-conductor-dashboard-expansion.md similarity index 95% rename from docs/PLAN-conductor-dashboard-expansion.md rename to docs/PLANS/PLAN-conductor-dashboard-expansion.md index 123fc07..67c2e9d 100644 --- a/docs/PLAN-conductor-dashboard-expansion.md +++ b/docs/PLANS/PLAN-conductor-dashboard-expansion.md @@ -1,15 +1,18 @@ --- title: PLAN Conductor — Expansão DashDescomplicar +description: >- + Spec: `docs/SPECS/SPEC-dashboard-expansion-q2-2026.md` date: 2026-04-06 type: plan status: active spec: SPEC-dashboard-expansion-q2-2026.md tags: [conductor, plan, dashboard, parallel] +layer: wiki --- # Plano Conductor — Expansão DashDescomplicar -**Spec:** `docs/SPEC-dashboard-expansion-q2-2026.md` +**Spec:** `docs/SPECS/SPEC-dashboard-expansion-q2-2026.md` **Projecto:** `/media/ealmeida/Dados/Dev/DashDescomplicar/` **Método:** Conductor parallel sprints — agentes independentes por domínio @@ -62,7 +65,7 @@ Cada painel (backend + frontend) é **independente** — ficheiros distintos, se Estás a trabalhar no projecto DashDescomplicar (/media/ealmeida/Dados/Dev/DashDescomplicar/). Stack: React 19 + Vite + Tailwind CSS 4 + Express 4 + TypeScript. -Lê a spec completa em docs/SPEC-dashboard-expansion-q2-2026.md, secção 4.1 (Painel MCPs). +Lê a spec completa em docs/SPECS/SPEC-dashboard-expansion-q2-2026.md, secção 4.1 (Painel MCPs). Cria 3 ficheiros: @@ -117,7 +120,7 @@ Não alteres nenhum ficheiro existente. Apenas cria os 3 novos. Estás a trabalhar no projecto DashDescomplicar (/media/ealmeida/Dados/Dev/DashDescomplicar/). Stack: React 19 + Vite + Tailwind CSS 4 + Express 4 + TypeScript. -Lê a spec completa em docs/SPEC-dashboard-expansion-q2-2026.md, secção 4.2 (Painel n8n). +Lê a spec completa em docs/SPECS/SPEC-dashboard-expansion-q2-2026.md, secção 4.2 (Painel n8n). Cria 3 ficheiros: @@ -159,7 +162,7 @@ Não alteres nenhum ficheiro existente. Apenas cria os 3 novos. Estás a trabalhar no projecto DashDescomplicar (/media/ealmeida/Dados/Dev/DashDescomplicar/). Stack: React 19 + Vite + Tailwind CSS 4 + Express 4 + TypeScript. -Lê a spec completa em docs/SPEC-dashboard-expansion-q2-2026.md, secção 4.3 (Painel Paperclip). +Lê a spec completa em docs/SPECS/SPEC-dashboard-expansion-q2-2026.md, secção 4.3 (Painel Paperclip). O pacote `pg` já foi instalado (npm install pg @types/pg). @@ -211,7 +214,7 @@ Não alteres nenhum ficheiro existente. Apenas cria os 4 novos. Estás a trabalhar no projecto DashDescomplicar (/media/ealmeida/Dados/Dev/DashDescomplicar/). Stack: React 19 + Vite + Tailwind CSS 4 + Express 4 + TypeScript. -Lê a spec completa em docs/SPEC-dashboard-expansion-q2-2026.md, secção 4.4 (Painel Claude Code / IA). +Lê a spec completa em docs/SPECS/SPEC-dashboard-expansion-q2-2026.md, secção 4.4 (Painel Claude Code / IA). Cria 3 ficheiros: @@ -261,7 +264,7 @@ Não alteres nenhum ficheiro existente. Apenas cria os 3 novos. Estás a trabalhar no projecto DashDescomplicar (/media/ealmeida/Dados/Dev/DashDescomplicar/). Stack: React 19 + Vite + Tailwind CSS 4 + Express 4 + TypeScript. -Lê a spec em docs/SPEC-dashboard-expansion-q2-2026.md, secção 4.5 (Painel Operações). +Lê a spec em docs/SPECS/SPEC-dashboard-expansion-q2-2026.md, secção 4.5 (Painel Operações). A BD MySQL (Desk CRM) já tem conexão configurada em api/db.ts (export default pool mysql2/promise). diff --git a/docs/PLANS/PLAN.md b/docs/PLANS/PLAN.md new file mode 100644 index 0000000..597efb4 --- /dev/null +++ b/docs/PLANS/PLAN.md @@ -0,0 +1,10 @@ +--- +type: Plan +title: 'PLAN — DashDescomplicar' +timestamp: 2026-06-30 +layer: wiki +--- + +# PLAN — DashDescomplicar + +1. Estruturação\n2. Validação\n3. Manutenção diff --git a/docs/SPECS/.gitkeep b/docs/SPECS/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docs/SPECS/BRIEF.md b/docs/SPECS/BRIEF.md new file mode 100644 index 0000000..0e8f0af --- /dev/null +++ b/docs/SPECS/BRIEF.md @@ -0,0 +1,10 @@ +--- +type: Brief +title: 'Briefing — DashDescomplicar' +timestamp: 2026-06-30 +layer: wiki +--- + +# BRIEF — DashDescomplicar + +Projecto DashDescomplicar do ecossistema Descomplicar. diff --git a/SPEC.md b/docs/SPECS/DashDescomplicar-SPEC.md similarity index 63% rename from SPEC.md rename to docs/SPECS/DashDescomplicar-SPEC.md index 75bbdc2..d57388b 100644 --- a/SPEC.md +++ b/docs/SPECS/DashDescomplicar-SPEC.md @@ -1,3 +1,11 @@ +--- +type: Specification +title: Spec +description: >- + Especificação do projecto DashDescomplicar, agregando os projectos activos — nomeadamente o painel Observabilidade (replay de sessões Claude Code com indexer, SQLite, API e UI timeline). +timestamp: 2026-04-27T10:15:35.733200+00:00 +layer: wiki +--- # SPEC — DashDescomplicar diff --git a/docs/SPEC-dashboard-expansion-q2-2026.md b/docs/SPECS/SPEC-dashboard-expansion-q2-2026.md similarity index 98% rename from docs/SPEC-dashboard-expansion-q2-2026.md rename to docs/SPECS/SPEC-dashboard-expansion-q2-2026.md index 03d14e0..73a9914 100644 --- a/docs/SPEC-dashboard-expansion-q2-2026.md +++ b/docs/SPECS/SPEC-dashboard-expansion-q2-2026.md @@ -1,10 +1,13 @@ --- title: SPEC — Expansão DashDescomplicar Q2 2026 +description: >- + O DashDescomplicar é o painel de gestão interno da Descomplicar®. Stack: React 19 + Vite + Tailwind CSS 4 + Express 4 + … date: 2026-04-06 type: spec status: active desk_project: 65 tags: [dashboard, expansion, mcps, paperclip, n8n, claude-code] +layer: wiki --- # SPEC — Expansão DashDescomplicar Q2 2026 diff --git a/docs/SPECS/SPEC.md b/docs/SPECS/SPEC.md new file mode 100644 index 0000000..50a69a0 --- /dev/null +++ b/docs/SPECS/SPEC.md @@ -0,0 +1,11 @@ +--- +type: Spec +title: 'SPEC — DashDescomplicar' +status: draft +timestamp: 2026-06-30 +layer: wiki +--- + +# SPEC — DashDescomplicar + +Projecto em estruturação. diff --git a/docs/SPECS/research.md b/docs/SPECS/research.md new file mode 100644 index 0000000..9da3787 --- /dev/null +++ b/docs/SPECS/research.md @@ -0,0 +1,10 @@ +--- +type: Note +title: 'Pesquisa — DashDescomplicar' +timestamp: 2026-06-30 +layer: wiki +--- + +# Pesquisa + +Documentar pesquisa aqui. diff --git a/index.md b/index.md new file mode 100644 index 0000000..a580d89 --- /dev/null +++ b/index.md @@ -0,0 +1,39 @@ +--- +layer: wiki +type: Index +title: "DashDescomplicar — Índice" +description: >- + Índice de navegação do DashDescomplicar. Dashboard operacional interno da Descomplicar® em dash.descomplicar.pt. +tags: [index, dashboard, aplicacao] +timestamp: 2026-06-29T23:00:00+01:00 +--- +# DashDescomplicar + +## Documentação + +- [[AGENTS]] — contexto 5W2H para agentes IA +- [[CLAUDE]] — instruções operacionais para Claude Code +- [[STATUS]] — estado PDCA e bloqueios +- [[README]] — referência técnica completa +- [[CHANGELOG]] — histórico de versões +- [[MEMORY]] — memórias operacionais acumuladas +- [[SYS-DashDescomplicar]] — descrição do sistema e painéis + +## Especificações e Planos + +- [[docs/SPECS/SPEC-dashboard-expansion-q2-2026]] — spec expansão Q2 2026 +- [[docs/PLANS/PLAN-conductor-dashboard-expansion]] — plano de expansão (Conductor) +- [[AUDIT-REPORT]] — relatório de auditoria de segurança +- [[SPEC]] — especificação activa (Observabilidade) + +## Recursos Externos + +- [dash.descomplicar.pt](https://dash.descomplicar.pt) — produção +- [git.descomplicar.pt/ealmeida/DashDescomplicar](https://git.descomplicar.pt/ealmeida/DashDescomplicar) — repositório +- [easy.descomplicar.pt](https://easy.descomplicar.pt) — EasyPanel (deploy) +- [Desk Projecto #65](https://desk.descomplicar.pt) — gestão de tarefas + +## Dev Local + +- `/media/ealmeida/Dados/Dev/DashDescomplicar` — código fonte +- `/media/ealmeida/Dados/Hub/04-Stack/02.05-Aplicações/DashDescomplicar/` — esta pasta Hub diff --git a/log.md b/log.md new file mode 100644 index 0000000..cbd109f --- /dev/null +++ b/log.md @@ -0,0 +1,23 @@ +--- +layer: wiki +type: Changelog +title: "Log — DashDescomplicar" +description: >- + Histórico append-only de operações e eventos em 02.05-Aplicações/DashDescomplicar. +timestamp: 2026-06-30T00:00:00+01:00 +tags: [log, okf, dashdescomplicar] +status: active +--- + +# Log — DashDescomplicar + +**Newest first. Append-only. Formato: `## YYYY-MM-DD tipo | Descrição`** + +--- + +## 2026-06-30 okf | log.md criado +- Ficheiro criado conforme modelo OKF Karpathy (XDP-PRJ-001) + +--- + +*Última alteração: 2026-06-30*