feat: sync all plugins, skills, agents updates
New plugins: core-tools New skills: auto-expense, ticket-triage, design, security-check, aiktop-tasks, daily-digest, imap-triage, index-update, mindmap, notebooklm, proc-creator, tasks-overview, validate-component, perfex-module, report, calendar-manager New agents: design-critic, design-generator, design-lead, design-prompt-architect, design-researcher, compliance-auditor, metabase-analyst, gitea-integration-specialist Updated: all plugin configs, knowledge datasets, existing skills Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -5,6 +5,15 @@ role: Especialista em arquitectura de bases de dados
|
||||
domain: Dev
|
||||
model: sonnet
|
||||
tools: Read, Write, Edit, Bash, Glob, Grep, ToolSearch
|
||||
|
||||
# Dependencies
|
||||
primary_mcps:
|
||||
- desk-crm-v3
|
||||
- ssh-unified
|
||||
recommended_mcps:
|
||||
- gitea
|
||||
- context7
|
||||
- filesystem
|
||||
skills:
|
||||
- _core
|
||||
desk_task: 1498
|
||||
@@ -49,7 +58,16 @@ Especialista em arquitectura de bases de dados, entregando solucoes eficientes,
|
||||
- Backup e disaster recovery com testes automatizados
|
||||
- Migracao de dados e integracao multi-sistema
|
||||
|
||||
## Datasets Dify (Consultar SEMPRE)
|
||||
## Knowledge Sources (Consultar SEMPRE)
|
||||
|
||||
### NotebookLM (Primario - usar PRIMEIRO)
|
||||
|
||||
```
|
||||
mcp__notebooklm__notebook_query notebook_id:"f9a79b5a-649f-4443-afaf-7ff562b6c2e7" query:"database SQL optimizacao"
|
||||
mcp__notebooklm__notebook_query notebook_id:"24947ffa-0019-448a-a340-2f4a275d2eb1" query:"arquitectura dados"
|
||||
```
|
||||
|
||||
### Dify KB (Secundario - se NotebookLM insuficiente)
|
||||
|
||||
```
|
||||
mcp__dify-kb__dify_kb_retrieve_segments dataset:"TI" query:"database SQL optimizacao"
|
||||
@@ -106,7 +124,7 @@ Especialista em arquitectura de bases de dados, entregando solucoes eficientes,
|
||||
## MCPs Relevantes
|
||||
- `desk-crm-v3`: Acesso directo à BD Perfex para análise
|
||||
- `ssh-unified`: Acesso MySQL em servidores
|
||||
- `dify-kb`: KB TI (SQL, optimização), AWS (RDS)
|
||||
- `notebooklm`: KB primaria (Gemini 2.5 RAG) | `dify-kb`: KB TI (SQL, optimização), AWS (RDS)
|
||||
|
||||
## Colaboracao
|
||||
|
||||
|
||||
@@ -5,6 +5,16 @@ role: Assistente de desenvolvimento generalista
|
||||
domain: Dev
|
||||
model: sonnet
|
||||
tools: Read, Write, Edit, Bash, Glob, Grep, ToolSearch
|
||||
|
||||
# Dependencies
|
||||
primary_mcps:
|
||||
- desk-crm-v3
|
||||
- gitea
|
||||
- filesystem
|
||||
recommended_mcps:
|
||||
- context7
|
||||
- ssh-unified
|
||||
- memory-supabase
|
||||
skills:
|
||||
- _core
|
||||
desk_task: 1500
|
||||
@@ -16,14 +26,15 @@ tags:
|
||||
- claude-code
|
||||
- dev-helper
|
||||
- code-review
|
||||
version: "2.0"
|
||||
version: "2.1"
|
||||
status: active
|
||||
quality_score: 70
|
||||
quality_score: 75
|
||||
compliance:
|
||||
sacred_rules: true
|
||||
excellence_standards: true
|
||||
data_sources: true
|
||||
knowledge_first: true
|
||||
security_audit: true
|
||||
reports_to: Development Lead
|
||||
collaborates_with:
|
||||
- All development specialists
|
||||
@@ -34,7 +45,7 @@ escalates_to:
|
||||
- Development Lead (decisões arquitectura complexas)
|
||||
- Security Compliance Specialist (vulnerabilidades críticas)
|
||||
created: "2025-01-13"
|
||||
updated: "2026-02-04"
|
||||
updated: "2026-02-14"
|
||||
author: "Descomplicar®"
|
||||
---
|
||||
|
||||
@@ -57,6 +68,7 @@ Você é um desenvolvedor experiente generalista responsável por:
|
||||
- [ ] **Entender Contexto**: Ler código existente ANTES de sugerir mudanças
|
||||
- [ ] **Boas Práticas**: Seguir SOLID, DRY, KISS
|
||||
- [ ] **Segurança Primeiro**: Identificar vulnerabilidades (SQL injection, XSS)
|
||||
- [ ] **Security Audit**: Se commit pendente, executar `pnpm audit` - 0 vulnerabilidades ou documentar
|
||||
- [ ] **Performance**: Considerar impacto em escala
|
||||
- [ ] **Manutenibilidade**: Código legível > código "clever"
|
||||
- [ ] **Testar**: Validar sugestões quando possível
|
||||
@@ -153,6 +165,36 @@ Você é um desenvolvedor experiente generalista responsável por:
|
||||
4. Manter actualizada (parte do PR)
|
||||
```
|
||||
|
||||
### 5. Pre-Commit Security Check
|
||||
```
|
||||
OBRIGATÓRIO antes de git commit:
|
||||
|
||||
1. Security Audit
|
||||
pnpm audit # Node.js
|
||||
composer audit # PHP
|
||||
|
||||
2. Verificar dependências desactualizadas
|
||||
pnpm outdated # Priorizar AI SDKs (langchain, together-ai)
|
||||
|
||||
3. Environment Safety
|
||||
git diff .env.local # Garantir placeholders, NUNCA keys reais
|
||||
|
||||
4. Type Safety (se TypeScript)
|
||||
pnpm type
|
||||
|
||||
5. Decisão
|
||||
- 0 vulnerabilidades → ✅ Commit safe
|
||||
- Vulnerabilidades transitivas → Usar pnpm.overrides
|
||||
- Vulnerabilidades críticas → Corrigir ou invocar /security-check
|
||||
|
||||
6. Documentar
|
||||
- Se há vulnerabilidades conhecidas → Mencionar no commit message
|
||||
- Criar flag: touch ~/.claude-work/.last-security-audit
|
||||
|
||||
NUNCA fazer commit sem executar este workflow.
|
||||
Ver: PROC-DEV-SEC-001 no Hub para detalhes completos.
|
||||
```
|
||||
|
||||
## Princípios SOLID
|
||||
|
||||
| Princípio | Descrição | Exemplo Anti-Pattern |
|
||||
@@ -172,7 +214,17 @@ Você é um desenvolvedor experiente generalista responsável por:
|
||||
- **Nomes Vagos**: `data`, `temp`, `x` → Nomes descritivos
|
||||
- **Comentários Excessivos**: Código deve ser auto-explicativo
|
||||
|
||||
## Datasets Dify (Consultar SEMPRE)
|
||||
## Knowledge Sources (Consultar SEMPRE)
|
||||
|
||||
### NotebookLM (Primario - usar PRIMEIRO)
|
||||
|
||||
```
|
||||
mcp__notebooklm__notebook_query notebook_id:"24947ffa-0019-448a-a340-2f4a275d2eb1" query:"boas praticas SOLID clean code"
|
||||
mcp__notebooklm__notebook_query notebook_id:"f9a79b5a-649f-4443-afaf-7ff562b6c2e7" query:"debugging arquitectura troubleshooting"
|
||||
mcp__notebooklm__notebook_query notebook_id:"2876d1fe-5cea-4d98-8140-b0e1a81c6bc4" query:"desenvolvimento assistente workflow"
|
||||
```
|
||||
|
||||
### Dify KB (Secundario - se NotebookLM insuficiente)
|
||||
|
||||
```
|
||||
mcp__dify-kb__dify_kb_retrieve_segments dataset:"Desenvolvimento de Software" query:"boas praticas SOLID clean code"
|
||||
|
||||
@@ -5,6 +5,16 @@ role: Líder de desenvolvimento e arquitectura
|
||||
domain: Dev
|
||||
model: sonnet
|
||||
tools: Read, Write, Edit, Bash, Glob, Grep, ToolSearch
|
||||
|
||||
# Dependencies
|
||||
primary_mcps:
|
||||
- desk-crm-v3
|
||||
- gitea
|
||||
- ssh-unified
|
||||
recommended_mcps:
|
||||
- context7
|
||||
- google-workspace
|
||||
- memory-supabase
|
||||
skills:
|
||||
- _core
|
||||
desk_task: 1499
|
||||
@@ -49,7 +59,17 @@ Lider de desenvolvimento responsavel por liderar equipas, garantir qualidade de
|
||||
- Decisoes tecnicas e definicao de standards
|
||||
- Integracao e colaboracao cross-team
|
||||
|
||||
## Datasets Dify (Consultar SEMPRE)
|
||||
## Knowledge Sources (Consultar SEMPRE)
|
||||
|
||||
### NotebookLM (Primario - usar PRIMEIRO)
|
||||
|
||||
```
|
||||
mcp__notebooklm__notebook_query notebook_id:"24947ffa-0019-448a-a340-2f4a275d2eb1" query:"lideranca tecnica"
|
||||
mcp__notebooklm__notebook_query notebook_id:"0c9c079c-a426-486c-99eb-1564d42d37ad" query:"coordenacao equipas"
|
||||
mcp__notebooklm__notebook_query notebook_id:"79d43410-0e29-4be1-881d-84db6bdc239a" query:"arquitectura solucoes"
|
||||
```
|
||||
|
||||
### Dify KB (Secundario - se NotebookLM insuficiente)
|
||||
|
||||
```
|
||||
mcp__dify-kb__dify_kb_retrieve_segments dataset:"Desenvolvimento de Software" query:"lideranca tecnica"
|
||||
@@ -107,7 +127,7 @@ Lider de desenvolvimento responsavel por liderar equipas, garantir qualidade de
|
||||
- `desk-crm-v3`: Gestão de tarefas e projectos
|
||||
- `gitea`: Gestão de repositórios e PRs
|
||||
- `memory-supabase`: Histórico de decisões técnicas
|
||||
- `dify-kb`: KB Desenvolvimento, Gestão Projectos
|
||||
- `notebooklm`: KB primaria (Gemini 2.5 RAG) | `dify-kb`: KB Desenvolvimento, Gestão Projectos
|
||||
|
||||
## Colaboracao
|
||||
|
||||
|
||||
@@ -7,6 +7,16 @@ role: Especialista em desenvolvimento JavaScript fullstack com expertise em fram
|
||||
domain: Dev
|
||||
model: sonnet
|
||||
tools: Read, Write, Edit, Bash, Glob, Grep, ToolSearch
|
||||
|
||||
# Dependencies
|
||||
primary_mcps:
|
||||
- desk-crm-v3
|
||||
- gitea
|
||||
recommended_mcps:
|
||||
- context7
|
||||
- filesystem
|
||||
- ssh-unified
|
||||
- n8n
|
||||
skills:
|
||||
- _core
|
||||
desk_task: 1504
|
||||
@@ -42,7 +52,17 @@ Especialista em desenvolvimento JavaScript fullstack, coordenando frontend e bac
|
||||
- Implementacao de testes automatizados (Jest, Cypress, Playwright)
|
||||
- Optimizacao de performance e Core Web Vitals
|
||||
|
||||
## Datasets Dify (Consultar SEMPRE)
|
||||
## Knowledge Sources (Consultar SEMPRE)
|
||||
|
||||
### NotebookLM (Primario - usar PRIMEIRO)
|
||||
|
||||
```
|
||||
mcp__notebooklm__notebook_query notebook_id:"24947ffa-0019-448a-a340-2f4a275d2eb1" query:"javascript typescript react node"
|
||||
mcp__notebooklm__notebook_query notebook_id:"f9a79b5a-649f-4443-afaf-7ff562b6c2e7" query:"fullstack web development modern frameworks"
|
||||
```
|
||||
|
||||
### Dify KB (Secundario - se NotebookLM insuficiente)
|
||||
|
||||
```
|
||||
mcp__dify-kb__dify_kb_retrieve_segments dataset:"Desenvolvimento de Software" query:"javascript typescript react node"
|
||||
mcp__dify-kb__dify_kb_retrieve_segments dataset:"TI" query:"fullstack web development modern frameworks"
|
||||
@@ -97,7 +117,7 @@ Especialista em desenvolvimento JavaScript fullstack, coordenando frontend e bac
|
||||
## MCPs Relevantes
|
||||
- `gitea`: Gestão de repositórios e PRs
|
||||
- `desk-crm-v3`: Tracking de tarefas
|
||||
- `dify-kb`: KB Desenvolvimento Software, TI
|
||||
- `notebooklm`: KB primaria (Gemini 2.5 RAG) | `dify-kb`: KB Desenvolvimento Software, TI
|
||||
- `memory-supabase`: Padrões e decisões técnicas
|
||||
|
||||
## Colaboracao
|
||||
@@ -115,7 +135,8 @@ Especialista em desenvolvimento JavaScript fullstack, coordenando frontend e bac
|
||||
- Repositórios Git, issues, PRs
|
||||
- Usage: `mcp__gitea__*`
|
||||
|
||||
✓ **dify-kb** (knowledge)
|
||||
✓ **notebooklm** (knowledge primaria)
|
||||
✓ **dify-kb** (knowledge fallback)
|
||||
- Knowledge base AI
|
||||
- Usage: `mcp__dify-kb__*`
|
||||
|
||||
|
||||
@@ -5,6 +5,15 @@ role: Especialista em desenvolvimento Next.js moderno
|
||||
domain: Dev
|
||||
model: sonnet
|
||||
tools: Read, Write, Edit, Bash, Glob, Grep, ToolSearch
|
||||
|
||||
# Dependencies
|
||||
primary_mcps:
|
||||
- desk-crm-v3
|
||||
- gitea
|
||||
recommended_mcps:
|
||||
- context7
|
||||
- filesystem
|
||||
- stitch
|
||||
skills:
|
||||
- _core
|
||||
- nextjs
|
||||
@@ -79,7 +88,18 @@ Especialista em desenvolvimento Next.js - App Router, Server Components, e arqui
|
||||
- Route Handlers
|
||||
- Middleware
|
||||
|
||||
## Datasets Dify
|
||||
## Knowledge Sources (Consultar SEMPRE)
|
||||
|
||||
### NotebookLM (Primario - usar PRIMEIRO)
|
||||
|
||||
- Cloud e Infraestrutura TI (`f9a79b5a`)
|
||||
|
||||
```
|
||||
mcp__notebooklm__notebook_query notebook_id:"f9a79b5a-649f-4443-afaf-7ff562b6c2e7" query:"<tema>"
|
||||
```
|
||||
|
||||
### Dify KB (Secundario)
|
||||
|
||||
- Desenvolvimento Software
|
||||
- TI
|
||||
- React
|
||||
@@ -146,7 +166,7 @@ Especialista em desenvolvimento Next.js moderno com App Router, React Server Com
|
||||
## MCPs Relevantes
|
||||
- `gitea`: Gestão de repositórios Next.js
|
||||
- `desk-crm-v3`: Tracking de desenvolvimento
|
||||
- `dify-kb`: KB Desenvolvimento Software, React, TI
|
||||
- `notebooklm`: KB primaria (Gemini 2.5 RAG) | `dify-kb`: KB Desenvolvimento Software, React, TI
|
||||
- `ssh-unified`: Deploy (Docker ou Node.js)
|
||||
|
||||
## Colaboracao
|
||||
|
||||
@@ -95,7 +95,18 @@ Especialista senior em desenvolvimento PHP fullstack com expertise em frameworks
|
||||
- Implementar seguranca OWASP e validacao de dados
|
||||
- Integrar sistemas WordPress, WooCommerce e PerfexCRM
|
||||
|
||||
## Datasets Dify (Consultar SEMPRE)
|
||||
## Knowledge Sources (Consultar SEMPRE)
|
||||
|
||||
### NotebookLM (Primario - usar PRIMEIRO)
|
||||
|
||||
```
|
||||
mcp__notebooklm__notebook_query notebook_id:"24947ffa-0019-448a-a340-2f4a275d2eb1" query:"PHP Laravel Symfony APIs"
|
||||
mcp__notebooklm__notebook_query notebook_id:"5be0d1a6-00f2-4cd9-b835-978cb7721601" query:"PHP WordPress WooCommerce"
|
||||
mcp__notebooklm__notebook_query notebook_id:"f9a79b5a-649f-4443-afaf-7ff562b6c2e7" query:"backend MySQL PostgreSQL arquitectura"
|
||||
```
|
||||
|
||||
### Dify KB (Secundario - se NotebookLM insuficiente)
|
||||
|
||||
```
|
||||
mcp__dify-kb__dify_kb_retrieve_segments dataset:"Desenvolvimento de Software" query:"PHP Laravel Symfony APIs"
|
||||
mcp__dify-kb__dify_kb_retrieve_segments dataset:"WordPress" query:"PHP WordPress WooCommerce"
|
||||
|
||||
@@ -1,13 +1,111 @@
|
||||
{
|
||||
"description": "Dify KB datasets for Development Tools domain",
|
||||
"query_tool": "mcp__dify-kb__dify_kb_retrieve_segments",
|
||||
"datasets": [
|
||||
{"id": "98e74ec7-4b4d-4876-8321-7f26ae66c3a6", "name": "Claude Code", "priority": 1, "document_count": 53, "word_count": 1241283},
|
||||
{"id": "02ca690a-a901-4034-9165-5ef42830f91e", "name": "MCP Servers", "priority": 1, "document_count": 22, "word_count": 158091},
|
||||
{"id": "eafd864e-5331-4a1d-a7e2-603ec263e2e1", "name": "VS Code", "priority": 2, "document_count": 52, "word_count": 10450973},
|
||||
{"id": "66ce30ab-a630-402b-8ae8-c3f44312e228", "name": "Windsurf", "priority": 2, "document_count": 5, "word_count": 98903},
|
||||
{"id": "2e68ac58-12cc-4c6f-b000-2bfff8fe6fcb", "name": "Claude Computer Use", "priority": 2, "document_count": 4, "word_count": 17078},
|
||||
{"id": "e7c7decc-0ded-4351-ab14-b110b3c38ec9", "name": "Desenvolvimento de Software", "priority": 1, "document_count": 2, "word_count": 534153},
|
||||
{"id": "e38a510f-ca93-4407-8b44-c4c66efe01f8", "name": "Obsidian + Claude Code", "priority": 2, "document_count": 121, "word_count": 2292847}
|
||||
]
|
||||
}
|
||||
"description": "Knowledge sources (NotebookLM + Dify KB) for Development Tools domain",
|
||||
"sources": {
|
||||
"notebooklm": {
|
||||
"description": "NotebookLM - conhecimento curado profundo via Gemini 2.5 RAG (PRIMARIO)",
|
||||
"query_tool": "mcp__notebooklm__notebook_query",
|
||||
"notebooks": [
|
||||
{
|
||||
"id": "2876d1fe-5cea-4d98-8140-b0e1a81c6bc4",
|
||||
"title": "Claude Code",
|
||||
"topics": [
|
||||
"claude",
|
||||
"code"
|
||||
],
|
||||
"maps_from_dify": "Claude Code"
|
||||
},
|
||||
{
|
||||
"id": "73102308-70ef-403e-9be9-eae0cfc62d55",
|
||||
"title": "Desenvolvimento de MCPs",
|
||||
"topics": [
|
||||
"mcp",
|
||||
"servers"
|
||||
],
|
||||
"maps_from_dify": "MCP Servers"
|
||||
},
|
||||
{
|
||||
"id": "57d9c6c9-48ba-4d83-8f71-cc890f348a53",
|
||||
"title": "AI Code Editors",
|
||||
"topics": [
|
||||
"code"
|
||||
],
|
||||
"maps_from_dify": "VS Code"
|
||||
},
|
||||
{
|
||||
"id": "24947ffa-0019-448a-a340-2f4a275d2eb1",
|
||||
"title": "Programacao",
|
||||
"topics": [
|
||||
"desenvolvimento",
|
||||
"software"
|
||||
],
|
||||
"maps_from_dify": "Desenvolvimento de Software"
|
||||
},
|
||||
{
|
||||
"id": "ebee9fe1-78fd-4f85-8938-f19f3ea32131",
|
||||
"title": "Obsidian + Claude",
|
||||
"topics": [
|
||||
"obsidian",
|
||||
"claude",
|
||||
"code"
|
||||
],
|
||||
"maps_from_dify": "Obsidian + Claude Code"
|
||||
}
|
||||
]
|
||||
},
|
||||
"dify_kb": {
|
||||
"description": "Dify KB - datasets tematicos (FALLBACK)",
|
||||
"query_tool": "mcp__dify-kb__dify_kb_retrieve_segments",
|
||||
"datasets": [
|
||||
{
|
||||
"id": "98e74ec7-4b4d-4876-8321-7f26ae66c3a6",
|
||||
"name": "Claude Code",
|
||||
"priority": 1,
|
||||
"document_count": 53,
|
||||
"word_count": 1241283
|
||||
},
|
||||
{
|
||||
"id": "02ca690a-a901-4034-9165-5ef42830f91e",
|
||||
"name": "MCP Servers",
|
||||
"priority": 1,
|
||||
"document_count": 22,
|
||||
"word_count": 158091
|
||||
},
|
||||
{
|
||||
"id": "eafd864e-5331-4a1d-a7e2-603ec263e2e1",
|
||||
"name": "VS Code",
|
||||
"priority": 2,
|
||||
"document_count": 52,
|
||||
"word_count": 10450973
|
||||
},
|
||||
{
|
||||
"id": "66ce30ab-a630-402b-8ae8-c3f44312e228",
|
||||
"name": "Windsurf",
|
||||
"priority": 2,
|
||||
"document_count": 5,
|
||||
"word_count": 98903
|
||||
},
|
||||
{
|
||||
"id": "2e68ac58-12cc-4c6f-b000-2bfff8fe6fcb",
|
||||
"name": "Claude Computer Use",
|
||||
"priority": 2,
|
||||
"document_count": 4,
|
||||
"word_count": 17078
|
||||
},
|
||||
{
|
||||
"id": "e7c7decc-0ded-4351-ab14-b110b3c38ec9",
|
||||
"name": "Desenvolvimento de Software",
|
||||
"priority": 1,
|
||||
"document_count": 2,
|
||||
"word_count": 534153
|
||||
},
|
||||
{
|
||||
"id": "e38a510f-ca93-4407-8b44-c4c66efe01f8",
|
||||
"name": "Obsidian + Claude Code",
|
||||
"priority": 2,
|
||||
"document_count": 121,
|
||||
"word_count": 2292847
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
name: chrome
|
||||
description: Chrome browser integration for Claude Code. Navigate pages, fill forms, debug console, extract data, test web apps, automate tasks. Use when user mentions "chrome", "browser", "navegar site", "abrir pagina", "testar site", "preencher formulario", "extrair dados", "screenshot site", "google docs", "authenticated site", "gravar gif", "console errors".
|
||||
author: Descomplicar® Crescimento Digital
|
||||
version: 1.0.0
|
||||
version: 2.0.0
|
||||
quality_score: 80
|
||||
user_invocable: true
|
||||
allowed-tools: Bash, Read, Write, Glob
|
||||
@@ -10,9 +10,13 @@ allowed-tools: Bash, Read, Write, Glob
|
||||
|
||||
# /chrome - Chrome Browser Integration
|
||||
|
||||
Integra Claude Code com o Chrome para automacao browser, testes, debug e extraccao de dados.
|
||||
Integra Claude Code com o Chrome para automacao browser, testes, debug, performance e extraccao de dados. Suporta dois backends: **Claude in Chrome** (extensao) e **Chrome DevTools MCP** (npm).
|
||||
|
||||
## Pre-Requisitos
|
||||
## Backends Disponiveis
|
||||
|
||||
### Backend A: Claude in Chrome (Extensao)
|
||||
|
||||
Extensao oficial Anthropic. Requer instalacao manual no browser.
|
||||
|
||||
| Requisito | Minimo | Verificar |
|
||||
|-----------|--------|-----------|
|
||||
@@ -24,29 +28,59 @@ Integra Claude Code com o Chrome para automacao browser, testes, debug e extracc
|
||||
|
||||
**Limitacoes:** Apenas Google Chrome (nao Brave/Arc). Nao suportado em WSL.
|
||||
|
||||
## Activacao
|
||||
|
||||
### Por sessao
|
||||
**Activacao:**
|
||||
```bash
|
||||
# Por sessao
|
||||
claude --chrome
|
||||
```
|
||||
|
||||
### Por defeito (aliases .bashrc)
|
||||
```bash
|
||||
# Por defeito (alias .bashrc)
|
||||
alias cc="claude --permission-mode bypassPermissions --chrome"
|
||||
```
|
||||
|
||||
### Dentro de sessao activa
|
||||
```
|
||||
/chrome
|
||||
# Seleccionar "Enabled by default"
|
||||
```
|
||||
# Dentro de sessao activa
|
||||
/chrome -> "Enabled by default"
|
||||
|
||||
### Ver ferramentas disponiveis
|
||||
```
|
||||
# Ver ferramentas
|
||||
/mcp -> seleccionar claude-in-chrome
|
||||
```
|
||||
|
||||
### Backend B: Chrome DevTools MCP (npm)
|
||||
|
||||
Pacote oficial Google (`chrome-devtools-mcp`). Controla Chrome via DevTools Protocol. Nao requer extensao.
|
||||
|
||||
| Requisito | Minimo | Verificar |
|
||||
|-----------|--------|-----------|
|
||||
| Google Chrome | Instalado | `google-chrome --version` |
|
||||
| Node.js | v18+ | `node --version` |
|
||||
| chrome-devtools-mcp | latest | `claude mcp list` |
|
||||
|
||||
**Instalacao:**
|
||||
```bash
|
||||
claude mcp add chrome-devtools --scope user -- npx -y chrome-devtools-mcp@latest
|
||||
```
|
||||
|
||||
**Activacao:**
|
||||
```bash
|
||||
# Lancar Chrome com remote debugging
|
||||
google-chrome --remote-debugging-port=9222
|
||||
|
||||
# Reiniciar sessao Claude Code para carregar ferramentas
|
||||
```
|
||||
|
||||
**Ferramentas disponibilizadas:**
|
||||
- `page_navigate`, `page_go_back`, `page_go_forward` - Navegacao
|
||||
- `page_screenshot` - Captura de ecra
|
||||
- `page_click`, `page_type`, `page_select_option` - Interaccao
|
||||
- `page_execute_javascript` - Executar JS no contexto da pagina
|
||||
- `page_wait_for_selector` - Esperar por elementos
|
||||
- `console_get_logs` - Ler consola (logs, errors, warnings)
|
||||
- `network_get_requests`, `network_get_response_body` - Inspeccionar rede
|
||||
- `dom_get_element`, `dom_query_selector` - Inspeccionar DOM
|
||||
- `css_get_computed_styles`, `css_get_matched_styles` - Inspeccionar CSS
|
||||
- `performance_start_trace`, `performance_stop_trace` - Gravar traces
|
||||
- `performance_analyze_insight` - Metricas automaticas (LCP, TBT, CLS)
|
||||
- `accessibility_get_tree` - Arvore de acessibilidade
|
||||
- `storage_get_cookies`, `storage_get_local_storage` - Inspecionar storage
|
||||
|
||||
## Capacidades
|
||||
|
||||
### 1. Navegacao e Interaccao
|
||||
@@ -58,32 +92,47 @@ alias cc="claude --permission-mode bypassPermissions --chrome"
|
||||
|
||||
### 2. Debug e Diagnostico
|
||||
- Ler console logs, errors, warnings
|
||||
- Inspeccionar DOM state
|
||||
- Verificar network requests
|
||||
- Inspeccionar DOM state e CSS computado
|
||||
- Verificar network requests e response bodies
|
||||
- Ler JavaScript errors em tempo real
|
||||
- Inspeccionar cookies, localStorage, sessionStorage
|
||||
|
||||
### 3. Extraccao de Dados
|
||||
### 3. Performance (DevTools MCP)
|
||||
- Gravar performance traces completos
|
||||
- Metricas automaticas: LCP, TBT, CLS, FCP, TTFB
|
||||
- Identificar JavaScript nao utilizado
|
||||
- Analise de recursos (tamanho, tempo de carga)
|
||||
- Equivalente a Lighthouse audit on-demand
|
||||
|
||||
### 4. Acessibilidade (DevTools MCP)
|
||||
- Arvore de acessibilidade completa
|
||||
- Verificar roles ARIA, labels, estados
|
||||
- Identificar elementos sem texto alternativo
|
||||
|
||||
### 5. Extraccao de Dados
|
||||
- Extrair texto estruturado de paginas
|
||||
- Scraping de tabelas, listas, precos
|
||||
- Guardar dados como CSV/JSON local
|
||||
- Ler conteudo de paginas autenticadas
|
||||
- Ler conteudo de paginas autenticadas (Chrome extensao)
|
||||
- Query DOM com selectores CSS/XPath
|
||||
|
||||
### 4. Testes Web
|
||||
### 6. Testes Web
|
||||
- Testar forms com dados invalidos
|
||||
- Verificar UI contra mocks
|
||||
- Validar user flows completos
|
||||
- Testar responsividade
|
||||
- Monitorizar network requests durante testes
|
||||
|
||||
### 5. Sites Autenticados
|
||||
### 7. Sites Autenticados (Chrome extensao)
|
||||
- Google Docs, Gmail, Sheets
|
||||
- Notion, Slack web
|
||||
- CRMs, dashboards
|
||||
- Qualquer site com sessao activa no Chrome
|
||||
|
||||
### 6. Automacao
|
||||
### 8. Automacao
|
||||
- Data entry repetitivo
|
||||
- Multi-site workflows
|
||||
- Gravar demos como GIF
|
||||
- Gravar demos como GIF (Chrome extensao)
|
||||
- Preencher CRMs a partir de CSV
|
||||
|
||||
## Workflows Comuns
|
||||
@@ -124,35 +173,77 @@ Verifica o meu calendario para reunioes amanha, depois para cada
|
||||
reuniao com participante externo, pesquisa o site da empresa.
|
||||
```
|
||||
|
||||
### Gravar demo GIF
|
||||
### Gravar demo GIF (Chrome extensao)
|
||||
```
|
||||
Grava um GIF mostrando o fluxo de checkout, desde adicionar item
|
||||
ao carrinho ate a pagina de confirmacao.
|
||||
```
|
||||
|
||||
## Chrome vs Puppeteer vs WebFetch
|
||||
### Performance audit (DevTools MCP)
|
||||
```
|
||||
Abre a pagina example.com, grava um performance trace durante 5 segundos
|
||||
e analisa LCP, TBT e CLS. Sugere melhorias.
|
||||
```
|
||||
|
||||
| Feature | Chrome (`--chrome`) | Puppeteer MCP | WebFetch |
|
||||
|---------|-------------------|---------------|----------|
|
||||
| Sessoes autenticadas | Sim | Nao | Nao |
|
||||
| Janela visivel | Sim | Opcional | N/A |
|
||||
| Sites privados | Sim (se logado) | Nao | Nao |
|
||||
| Headless | Nao | Sim | Sim |
|
||||
| Interaccao UI | Completa | Completa | Nao |
|
||||
| Screenshots | Sim | Sim | Nao |
|
||||
| Gravar GIF | Sim | Nao | Nao |
|
||||
| Console logs | Sim | Sim | Nao |
|
||||
| Sem Chrome | N/A | Funciona | Funciona |
|
||||
| Context usage | Alto (tools loaded) | Medio | Baixo |
|
||||
### Debug network (DevTools MCP)
|
||||
```
|
||||
Abre a pagina do dashboard, monitoriza os requests de API
|
||||
e identifica quais estao a falhar ou demorar mais de 2 segundos.
|
||||
```
|
||||
|
||||
### Inspeccionar acessibilidade (DevTools MCP)
|
||||
```
|
||||
Abre a pagina de contacto e verifica a arvore de acessibilidade.
|
||||
Identifica elementos sem labels ou roles ARIA incorrectos.
|
||||
```
|
||||
|
||||
### Debug CSS (DevTools MCP)
|
||||
```
|
||||
Abre a landing page e inspecciona os estilos computados do hero section.
|
||||
Verifica se o layout esta correcto em diferentes larguras.
|
||||
```
|
||||
|
||||
## Comparacao de Backends
|
||||
|
||||
| Feature | Chrome Extensao | DevTools MCP | Puppeteer MCP | WebFetch |
|
||||
|---------|----------------|--------------|---------------|----------|
|
||||
| Sessoes autenticadas | Sim | Sim (se Chrome aberto) | Nao | Nao |
|
||||
| Janela visivel | Sim | Sim | Opcional | N/A |
|
||||
| Sites privados | Sim (se logado) | Sim (se logado) | Nao | Nao |
|
||||
| Headless | Nao | Opcional | Sim | Sim |
|
||||
| Interaccao UI | Completa | Completa | Completa | Nao |
|
||||
| Screenshots | Sim | Sim | Sim | Nao |
|
||||
| Gravar GIF | Sim | Nao | Nao | Nao |
|
||||
| Console logs | Sim | Sim (filtrados) | Sim | Nao |
|
||||
| Network requests | Nao | Sim (detalhado) | Limitado | Nao |
|
||||
| Performance traces | Nao | Sim (LCP/TBT/CLS) | Nao | Nao |
|
||||
| Acessibilidade | Nao | Sim (a11y tree) | Nao | Nao |
|
||||
| DOM/CSS inspection | Basico | Completo | Basico | Nao |
|
||||
| Storage inspection | Nao | Sim (cookies/LS) | Nao | Nao |
|
||||
| Requer extensao | Sim | Nao | Nao | Nao |
|
||||
| Requer Chrome aberto | Sim | Sim (porta 9222) | Nao | Nao |
|
||||
| Context usage | Alto | Medio | Medio | Baixo |
|
||||
|
||||
**Regra de decisao:**
|
||||
- Precisa de login/sessao? -> **Chrome**
|
||||
- Automacao headless? -> **Puppeteer MCP**
|
||||
- Precisa de login/sessao + GIF? -> **Chrome Extensao**
|
||||
- Debug/performance/network? -> **DevTools MCP**
|
||||
- Automacao headless CI/CD? -> **Puppeteer MCP**
|
||||
- Apenas ler conteudo publico? -> **WebFetch**
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Extensao nao detectada
|
||||
### DevTools MCP nao conecta
|
||||
1. Verificar Chrome lancado com `--remote-debugging-port=9222`
|
||||
2. Testar: `curl http://localhost:9222/json/version`
|
||||
3. Verificar MCP registado: `claude mcp list`
|
||||
4. Reiniciar sessao Claude Code
|
||||
|
||||
### DevTools MCP sem ferramentas
|
||||
1. Verificar: `claude mcp list | grep chrome-devtools`
|
||||
2. Se nao aparece: `claude mcp add chrome-devtools --scope user -- npx -y chrome-devtools-mcp@latest`
|
||||
3. Reiniciar sessao Claude Code
|
||||
|
||||
### Extensao nao detectada (Chrome extensao)
|
||||
1. Verificar extensao em `chrome://extensions`
|
||||
2. Verificar versao Claude Code: `claude --version` (>= 2.0.73)
|
||||
3. Confirmar Chrome aberto
|
||||
@@ -183,12 +274,20 @@ ao carrinho ate a pagina de confirmacao.
|
||||
# Chrome instalado?
|
||||
google-chrome --version
|
||||
|
||||
# Native host configurado?
|
||||
cat ~/.config/google-chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json
|
||||
|
||||
# Claude Code compativel?
|
||||
claude --version
|
||||
|
||||
# --- DevTools MCP ---
|
||||
# MCP registado?
|
||||
claude mcp list | grep chrome-devtools
|
||||
|
||||
# Chrome com debugging activo?
|
||||
curl -s http://localhost:9222/json/version | head -5
|
||||
|
||||
# --- Chrome Extensao ---
|
||||
# Native host configurado?
|
||||
cat ~/.config/google-chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json
|
||||
|
||||
# Host script existe?
|
||||
ls -la ~/.claude/chrome/chrome-native-host
|
||||
```
|
||||
|
||||
@@ -196,7 +196,7 @@ Em caso de dúvidas ou para aprofundar conhecimento, consultar os seguintes data
|
||||
|
||||
```javascript
|
||||
// Pesquisar optimização MySQL
|
||||
mcp__dify-kb__dify_kb_retrieve_segments({
|
||||
mcp__notebooklm__notebook_query, mcp__dify-kb__dify_kb_retrieve_segments({
|
||||
dataset_id: "7f63ec0c-6321-488c-b107-980140199850",
|
||||
query: "mysql index optimization slow query"
|
||||
})
|
||||
|
||||
@@ -14,6 +14,25 @@ allowed-tools: Glob
|
||||
|
||||
Desenvolvimento Next.js moderno (13+) com App Router e Server Components.
|
||||
|
||||
## Regra #48 - Dev Container (OBRIGATORIO)
|
||||
|
||||
**TODOS os projectos Next.js devem ser desenvolvidos no container dev.**
|
||||
|
||||
```
|
||||
SSH: server="dev" (mcp__ssh-unified__ssh_execute)
|
||||
Path: /root/Dev/<projecto>
|
||||
Sync: auto -> /media/ealmeida/Dados/Dev/<projecto> (Syncthing)
|
||||
```
|
||||
|
||||
**Workflow:**
|
||||
1. `mcp__ssh-unified__ssh_execute server:"dev" command:"mkdir -p /root/Dev/<projecto>"`
|
||||
2. Desenvolver e testar no container
|
||||
3. `npm run build` no container antes de deploy
|
||||
4. Deploy via EasyPanel a partir do container
|
||||
5. Syncthing propaga automaticamente para PC local e colegas
|
||||
|
||||
**NUNCA:** `npx create-next-app` directamente no PC local para projectos colaborativos.
|
||||
|
||||
## Quando Usar
|
||||
|
||||
- Criar aplicações Next.js
|
||||
|
||||
@@ -9,7 +9,7 @@ version: 1.2.0
|
||||
user_invocable: true
|
||||
tags: [php, laravel, symfony, api, backend, jwt, oauth, rest]
|
||||
desk_task: 1477
|
||||
allowed-tools: Read, Write, Edit, Bash, mcp__memory-supabase__search_memories, mcp__context7__get-library-docs, mcp__dify-kb__dify_kb_retrieve_segments
|
||||
allowed-tools: Read, Write, Edit, Bash, mcp__memory-supabase__search_memories, mcp__context7__get-library-docs, mcp__notebooklm__notebook_query, mcp__dify-kb__dify_kb_retrieve_segments
|
||||
category: dev
|
||||
quality_score: 80
|
||||
updated: "2026-02-04T18:00:00Z"
|
||||
@@ -19,6 +19,8 @@ updated: "2026-02-04T18:00:00Z"
|
||||
|
||||
Skill para desenvolvimento PHP moderno seguindo padrões Descomplicar®.
|
||||
|
||||
> **Regra #48:** Projectos PHP/Laravel/Symfony devem ser desenvolvidos no **container dev** (`server:"dev"`, path `/root/Dev/<projecto>`). Sincroniza automaticamente com o PC local via Syncthing.
|
||||
|
||||
## Quando Usar
|
||||
|
||||
- Criar APIs RESTful
|
||||
@@ -339,6 +341,14 @@ Em caso de dúvidas ou para aprofundar conhecimento, consultar os seguintes data
|
||||
### Como Consultar
|
||||
|
||||
```javascript
|
||||
# PRIMARIO: NotebookLM (Gemini 2.5 RAG)
|
||||
# mcp__notebooklm__notebook_query({notebook_id: "2876d1fe-5cea-4d98-8140-b0e1a81c6bc4", query: "<tema>"}) // Claude Code
|
||||
# mcp__notebooklm__notebook_query({notebook_id: "73102308-70ef-403e-9be9-eae0cfc62d55", query: "<tema>"}) // Desenvolvimento de MCPs
|
||||
# mcp__notebooklm__notebook_query({notebook_id: "57d9c6c9-48ba-4d83-8f71-cc890f348a53", query: "<tema>"}) // AI Code Editors
|
||||
# mcp__notebooklm__notebook_query({notebook_id: "24947ffa-0019-448a-a340-2f4a275d2eb1", query: "<tema>"}) // Programacao
|
||||
# mcp__notebooklm__notebook_query({notebook_id: "ebee9fe1-78fd-4f85-8938-f19f3ea32131", query: "<tema>"}) // Obsidian + Claude
|
||||
# FALLBACK: Dify KB (se NotebookLM insuficiente)
|
||||
|
||||
// Pesquisar padrões Laravel
|
||||
mcp__dify-kb__dify_kb_retrieve_segments({
|
||||
dataset_id: "e7c7decc-0ded-4351-ab14-b110b3c38ec9",
|
||||
|
||||
@@ -14,6 +14,8 @@ desk_task: 1478
|
||||
|
||||
Skill para desenvolvimento React seguindo padrões modernos (React 18+/19).
|
||||
|
||||
> **Regra #48:** Projectos React (incluindo Next.js) devem ser desenvolvidos no **container dev** (`server:"dev"`, path `/root/Dev/<projecto>`). Sincroniza automaticamente com o PC local via Syncthing.
|
||||
|
||||
## Quando Usar
|
||||
|
||||
- Desenvolver componentes React
|
||||
@@ -492,7 +494,7 @@ Em caso de dúvidas ou para aprofundar conhecimento, consultar os seguintes data
|
||||
|
||||
```javascript
|
||||
// Pesquisar padrões React
|
||||
mcp__dify-kb__dify_kb_retrieve_segments({
|
||||
mcp__notebooklm__notebook_query, mcp__dify-kb__dify_kb_retrieve_segments({
|
||||
dataset_id: "e7c7decc-0ded-4351-ab14-b110b3c38ec9",
|
||||
query: "react hooks state management"
|
||||
})
|
||||
|
||||
448
dev-tools/skills/security-check/SKILL.md
Normal file
448
dev-tools/skills/security-check/SKILL.md
Normal file
@@ -0,0 +1,448 @@
|
||||
---
|
||||
name: security-check
|
||||
description: Comprehensive security audit for Node.js/PHP projects - dependency vulnerabilities, outdated packages, environment safety, type checking. Use before git commits.
|
||||
domain: Dev
|
||||
model: sonnet
|
||||
priority: high
|
||||
tags:
|
||||
- security
|
||||
- audit
|
||||
- vulnerabilities
|
||||
- npm
|
||||
- composer
|
||||
- mandatory
|
||||
---
|
||||
|
||||
# /security-check - Security Audit Pre-Commit
|
||||
|
||||
Auditoria de segurança completa para projectos Node.js e PHP. **Obrigatória antes de commits** (Regra CLAUDE.md #47).
|
||||
|
||||
---
|
||||
|
||||
## Quando Usar
|
||||
|
||||
### OBRIGATÓRIO:
|
||||
- Antes de `git commit`
|
||||
- Antes de `git push`
|
||||
- Antes de criar Pull Request
|
||||
- Antes de deploy para produção
|
||||
|
||||
### RECOMENDADO:
|
||||
- Após `pnpm add <package>` (especialmente AI SDKs)
|
||||
- Semanalmente em projectos activos
|
||||
- Após actualizar dependências major
|
||||
|
||||
---
|
||||
|
||||
## Workflow Completo
|
||||
|
||||
### 1. Detectar Tipo de Projecto
|
||||
|
||||
```bash
|
||||
# Verificar package managers
|
||||
if [ -f "package.json" ]; then
|
||||
# Node.js detected
|
||||
MANAGER="pnpm" # ou npm/yarn
|
||||
elif [ -f "composer.json" ]; then
|
||||
# PHP detected
|
||||
MANAGER="composer"
|
||||
fi
|
||||
```
|
||||
|
||||
### 2. Dependency Security Audit
|
||||
|
||||
**Node.js:**
|
||||
```bash
|
||||
pnpm audit --json > ~/.claude-work/security-audit.json
|
||||
```
|
||||
|
||||
**PHP:**
|
||||
```bash
|
||||
composer audit --format=json > ~/.claude-work/security-audit.json
|
||||
```
|
||||
|
||||
**Parse resultados:**
|
||||
- Contar: critical, high, moderate, low
|
||||
- Identificar se são directas ou transitivas
|
||||
- Listar pacotes afectados
|
||||
|
||||
### 3. Outdated Dependencies
|
||||
|
||||
**Node.js:**
|
||||
```bash
|
||||
pnpm outdated --json > ~/.claude-work/security-outdated.json
|
||||
```
|
||||
|
||||
**Priorizar:**
|
||||
- AI SDKs: langchain, together-ai, @tavily/core, @langchain/core
|
||||
- Security packages: @auth/*, axios, form-data
|
||||
- Framework core: next, react, prisma
|
||||
|
||||
### 4. Environment Safety Check
|
||||
|
||||
**Verificar ficheiros:**
|
||||
```bash
|
||||
# Lista de ficheiros a verificar
|
||||
FILES=(.env .env.local .env.production .env.development)
|
||||
|
||||
for file in "${FILES[@]}"; do
|
||||
if [ -f "$file" ]; then
|
||||
# Verificar se tem placeholders ou keys reais
|
||||
grep -E "(API_KEY|SECRET|TOKEN|PASSWORD)" "$file"
|
||||
fi
|
||||
done
|
||||
```
|
||||
|
||||
**Validação:**
|
||||
- ✅ `API_KEY=placeholder` (safe)
|
||||
- ❌ `API_KEY=sk-proj-abc123...` (UNSAFE - real key)
|
||||
|
||||
### 5. Type Safety (se TypeScript)
|
||||
|
||||
```bash
|
||||
# Verificar se é TypeScript
|
||||
if [ -f "tsconfig.json" ]; then
|
||||
pnpm type # ou tsc --noEmit
|
||||
fi
|
||||
```
|
||||
|
||||
### 6. Análise de Risco AI SDKs
|
||||
|
||||
**Padrões conhecidos:**
|
||||
|
||||
| Pacote | Risco | Acção |
|
||||
|--------|-------|-------|
|
||||
| `langchain` | Alto | Verificar @langchain/core |
|
||||
| `together-ai` | Alto | form-data transitiva |
|
||||
| `@tavily/core` | Alto | axios transitiva |
|
||||
| `@platejs/ai` | Médio | lodash transitiva |
|
||||
|
||||
**Workflow AI SDKs:**
|
||||
```bash
|
||||
# 1. Verificar se @langchain/core está desactualizado
|
||||
pnpm list @langchain/core
|
||||
|
||||
# 2. Se versão < 0.3.80 (vulnerável)
|
||||
pnpm add @langchain/core@latest
|
||||
|
||||
# 3. Re-audit
|
||||
pnpm audit
|
||||
```
|
||||
|
||||
### 7. Gerar Relatório
|
||||
|
||||
**Formato output:**
|
||||
|
||||
```markdown
|
||||
## Security Audit Report
|
||||
|
||||
**Status:** [✅ SAFE | ⚠️ ISSUES FOUND | ❌ CRITICAL]
|
||||
**Data:** YYYY-MM-DD HH:MM
|
||||
|
||||
| Category | Status |
|
||||
|----------|--------|
|
||||
| Vulnerabilities | [N critical, M high, P moderate, Q low] |
|
||||
| Outdated Packages | N total (M major updates) |
|
||||
| Environment Safety | ✅ Placeholders only / ❌ Real keys found |
|
||||
| Type Safety | ✅ 0 errors / ❌ N errors |
|
||||
|
||||
### Vulnerabilities Detail
|
||||
|
||||
#### Critical (N)
|
||||
- package@version (via path) - description
|
||||
- **Patched:** >=safe-version
|
||||
- **Action:** [Override | Update | Replace]
|
||||
|
||||
#### High (M)
|
||||
[...]
|
||||
|
||||
### Outdated Packages (Priority)
|
||||
|
||||
**AI SDKs:**
|
||||
- langchain: current → latest
|
||||
- @langchain/core: current → latest (SECURITY UPDATE)
|
||||
|
||||
**Framework:**
|
||||
- next: current → latest
|
||||
|
||||
### Action Required
|
||||
|
||||
**Priority 1 (Critical):**
|
||||
1. [Acção específica]
|
||||
|
||||
**Priority 2 (High):**
|
||||
1. [Acção específica]
|
||||
|
||||
**Priority 3 (Maintenance):**
|
||||
1. [Acção específica]
|
||||
|
||||
### Safe to Commit?
|
||||
|
||||
[✅ YES | ⚠️ YES (with documentation) | ❌ NO (fix critical first)]
|
||||
|
||||
**If YES with documentation:**
|
||||
```
|
||||
git commit -m "feat: feature X
|
||||
|
||||
Known vulnerabilities (will be resolved):
|
||||
- package@version (severity) - waiting for upstream update
|
||||
|
||||
Mitigation: [explanation]
|
||||
"
|
||||
```
|
||||
|
||||
**If NO:**
|
||||
Fix critical/high vulnerabilities first. See PROC-DEV-SEC-001 for guidance.
|
||||
```
|
||||
|
||||
### 8. Criar Flag
|
||||
|
||||
```bash
|
||||
touch ~/.claude-work/.last-security-audit
|
||||
```
|
||||
|
||||
**Propósito:** Hook pre-git-commit verifica esta flag. Se existe e < 1h, permite commit.
|
||||
|
||||
---
|
||||
|
||||
## Recomendações Específicas
|
||||
|
||||
### Para Vulnerabilidades Transitivas
|
||||
|
||||
**Exemplo: form-data via together-ai**
|
||||
|
||||
```json
|
||||
// package.json
|
||||
{
|
||||
"pnpm": {
|
||||
"overrides": {
|
||||
"form-data": ">=4.0.4"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Depois:
|
||||
```bash
|
||||
pnpm install
|
||||
pnpm audit # Verificar se resolveu
|
||||
```
|
||||
|
||||
### Para Dependências Incompatíveis
|
||||
|
||||
**Exemplo: @langchain/core desactualizado**
|
||||
|
||||
```bash
|
||||
# langchain pina versão antiga
|
||||
# Solução: instalar como dependência explícita
|
||||
pnpm add @langchain/core@latest
|
||||
```
|
||||
|
||||
### Para Vulnerabilidades Críticas
|
||||
|
||||
**Workflow:**
|
||||
1. Verificar se há fix disponível
|
||||
2. Se sim: actualizar
|
||||
3. Se não: avaliar alternativas ao package
|
||||
4. Se nenhuma: escalar para Security Compliance Specialist
|
||||
|
||||
---
|
||||
|
||||
## Output Examples
|
||||
|
||||
### Exemplo 1: Clean (0 vulnerabilities)
|
||||
|
||||
```
|
||||
## Security Audit Report
|
||||
|
||||
**Status:** ✅ SAFE
|
||||
**Data:** 2026-02-14 03:00
|
||||
|
||||
| Category | Status |
|
||||
|----------|--------|
|
||||
| Vulnerabilities | 0 (all categories) ✅ |
|
||||
| Outdated Packages | 3 (1 major) |
|
||||
| Environment Safety | ✅ Placeholders only |
|
||||
| Type Safety | ✅ 0 errors |
|
||||
|
||||
### Outdated Packages
|
||||
|
||||
**Framework:**
|
||||
- next: 16.1.6 → 16.2.0 (minor)
|
||||
|
||||
**Action Required:** Optional - update at convenience
|
||||
|
||||
### Safe to Commit?
|
||||
|
||||
✅ **YES** - No security issues found
|
||||
|
||||
Created flag: ~/.claude-work/.last-security-audit
|
||||
```
|
||||
|
||||
### Exemplo 2: Transitivas (precisa overrides)
|
||||
|
||||
```
|
||||
## Security Audit Report
|
||||
|
||||
**Status:** ⚠️ ISSUES FOUND (transitivas)
|
||||
**Data:** 2026-02-14 03:00
|
||||
|
||||
| Category | Status |
|
||||
|----------|--------|
|
||||
| Vulnerabilities | 0 critical, 0 high, 2 moderate, 1 low |
|
||||
| Outdated Packages | 5 (2 major) |
|
||||
| Environment Safety | ✅ Placeholders only |
|
||||
| Type Safety | ✅ 0 errors |
|
||||
|
||||
### Vulnerabilities Detail
|
||||
|
||||
#### Moderate (2)
|
||||
- lodash@4.17.21 (via @platejs/ai)
|
||||
- **Issue:** Prototype pollution
|
||||
- **Patched:** >=4.17.23
|
||||
- **Action:** Override
|
||||
|
||||
- undici@6.22.0 (via @platejs/juice → cheerio)
|
||||
- **Issue:** Resource exhaustion
|
||||
- **Patched:** >=6.23.0
|
||||
- **Action:** Override
|
||||
|
||||
#### Low (1)
|
||||
- cookie@0.6.0 (via @auth/core)
|
||||
- **Issue:** Out of bounds characters
|
||||
- **Patched:** >=0.7.0
|
||||
- **Action:** Override
|
||||
|
||||
### Recommended Fix
|
||||
|
||||
Add to package.json:
|
||||
```json
|
||||
{
|
||||
"pnpm": {
|
||||
"overrides": {
|
||||
"lodash": ">=4.17.23",
|
||||
"undici": ">=6.23.0",
|
||||
"cookie": ">=0.7.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Then run: `pnpm install && pnpm audit`
|
||||
|
||||
### Safe to Commit?
|
||||
|
||||
⚠️ **YES (with documentation)**
|
||||
|
||||
Document in commit message:
|
||||
- 3 moderate/low vulnerabilities (all transitivas)
|
||||
- Fixed with pnpm.overrides
|
||||
```
|
||||
|
||||
### Exemplo 3: Critical (bloquear commit)
|
||||
|
||||
```
|
||||
## Security Audit Report
|
||||
|
||||
**Status:** ❌ CRITICAL
|
||||
**Data:** 2026-02-14 03:00
|
||||
|
||||
| Category | Status |
|
||||
|----------|--------|
|
||||
| Vulnerabilities | 1 critical, 0 high, 0 moderate, 0 low |
|
||||
| Outdated Packages | 8 (3 major) |
|
||||
| Environment Safety | ✅ Placeholders only |
|
||||
| Type Safety | ✅ 0 errors |
|
||||
|
||||
### Vulnerabilities Detail
|
||||
|
||||
#### Critical (1)
|
||||
- form-data@4.0.3 (via together-ai → @types/node-fetch)
|
||||
- **Issue:** Unsafe random function in boundary selection
|
||||
- **Patched:** >=4.0.4
|
||||
- **Action:** Override OR replace together-ai
|
||||
|
||||
### Immediate Action Required
|
||||
|
||||
**Option 1: Override (quick fix)**
|
||||
```json
|
||||
{
|
||||
"pnpm": {
|
||||
"overrides": {
|
||||
"form-data": ">=4.0.4"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Option 2: Evaluate alternatives**
|
||||
- Check if together-ai is essential
|
||||
- Evaluate alternative AI SDKs
|
||||
- Contact Security Compliance Specialist
|
||||
|
||||
### Safe to Commit?
|
||||
|
||||
❌ **NO** - Fix critical vulnerability first
|
||||
|
||||
DO NOT create flag. DO NOT commit.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Integration
|
||||
|
||||
### Com Hook pre-git-commit
|
||||
|
||||
Hook verifica:
|
||||
```bash
|
||||
~/.claude-work/.last-security-audit
|
||||
```
|
||||
|
||||
Se ficheiro existe e < 1h → permite commit
|
||||
Se não existe ou > 1h → **BLOQUEIA** commit
|
||||
|
||||
### Com /time
|
||||
|
||||
```bash
|
||||
# Workflow típico
|
||||
/time start 1446 # Tarefa Desk
|
||||
# ... fazer alterações ...
|
||||
/security-check # Antes de commit
|
||||
git commit
|
||||
/time stop
|
||||
```
|
||||
|
||||
### Com /worklog
|
||||
|
||||
```bash
|
||||
# No worklog, mencionar se audit foi executado
|
||||
/worklog
|
||||
# → Incluirá "Security audit: ✅ 0 vulnerabilities"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Escalação
|
||||
|
||||
| Situação | Escalar Para |
|
||||
|----------|--------------|
|
||||
| Vulnerabilidades críticas não corrigíveis | Security Compliance Specialist |
|
||||
| Dúvidas sobre overrides | Development Lead |
|
||||
| Múltiplas vulnerabilidades altas | /security-check + manual review |
|
||||
| Alternativas a packages | Research Analyst |
|
||||
|
||||
---
|
||||
|
||||
## Referências
|
||||
|
||||
- [CLAUDE.md Regra #47](/home/ealmeida/.claude/CLAUDE.md)
|
||||
- [PROC-DEV-SEC-001](/media/ealmeida/Dados/Hub/06-Operacoes/Procedimentos/D7-Tecnologia/Seguranca/PROC-DEV-SEC-001-Security-Audit.md)
|
||||
- [Agent dev-helper v2.1](/home/ealmeida/.claude/plugins/marketplaces/descomplicar-plugins/dev-tools/agents/dev-helper.md)
|
||||
- [NPM Audit](https://docs.npmjs.com/cli/v10/commands/npm-audit)
|
||||
- [PNPM Audit](https://pnpm.io/cli/audit)
|
||||
- [Composer Audit](https://getcomposer.org/doc/03-cli.md#audit)
|
||||
|
||||
---
|
||||
|
||||
**Skill v1.0** | 2026-02-14 | Descomplicar®
|
||||
**Security First** - Zero vulnerabilities ou documentadas
|
||||
Reference in New Issue
Block a user