Files
claude-plugins/dev-tools/skills/dep-audit/SKILL.md
T

5.0 KiB

name, description, disable-model-invocation, layer
name description disable-model-invocation layer
dep-audit Auditoria de dependencias para projectos Node.js e PHP — vulnerabilidades, pacotes desactualizados, seguranca de ambiente e verificacao de tipos. Obrigatoria antes de commits. true wiki

/dep-audit - Dependency Security Audit Pre-Commit

Renomeado de /security-check (12-03-2026). /security-check e agora a skill de auditoria de infraestrutura (plugin infraestrutura).

Auditoria de segurança completa para projectos Node.js e PHP. Obrigatória antes de commits (Regra CLAUDE.md #47).

Contexto NotebookLM

ANTES de executar, consultar notebooks para contexto especializado:

Notebook ID Consultar quando
Programação 24947ffa-0019-448a-a340-2f4a275d2eb1 Para contexto de vulnerabilidades
mcp__notebooklm__notebook_query({
  notebook_id: "24947ffa-0019-448a-a340-2f4a275d2eb1",
  query: "<adaptar ao contexto do pedido do utilizador>"
})

Integrar insights do NotebookLM nas recomendações e decisões.

Procedimentos relacionados


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

# 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:

pnpm audit --json > ~/.claude-work/security-audit.json

PHP:

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:

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:

# 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)

# 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:

# 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:

## 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 F