| name | dependency-management |
| description | Skill para gerenciamento seguro de dependências npm — auditoria, atualização, lock files e breaking changes. |
| license | MIT |
| compatibility | Node.js 18+, TypeScript 5.x, Chrome Extension Manifest V3 |
| metadata | {"author":"marcusp","version":"1.0","project":"fill-all","category":"maintenance"} |
Skill: Gerenciamento de Dependências
Objetivo
Gerenciar dependências npm do projeto Fill All de forma segura e controlada — auditar vulnerabilidades, atualizar pacotes sem regressão e manter o lock file saudável.
Quando Atualizar
| Situação | Ação | Urgência |
|---|
Vulnerabilidade crítica (npm audit) | Atualizar imediatamente | 🔴 Alta |
| Dependência com breaking change | Planejar migração com skill Refatoração Segura | 🟡 Média |
| Nova versão minor/patch | Atualizar em lote, com validação | 🟢 Baixa |
| Dependência deprecated | Buscar alternativa e migrar | 🟡 Média |
| Nova feature precisa de pacote | Avaliar necessidade, instalar com validação | 🟡 Média |
Verificação de Saúde
Script Automatizado
.github/skills/dependency-management/scripts/check-deps.sh
Verificação Manual
npm audit
npm outdated
du -sh node_modules
grep -r "from \"<pacote>\"" src/ --include="*.ts" -l
Processo de Atualização Segura
1. Capturar Baseline
./scripts/snapshot-health.sh --save
./scripts/validate-step.sh types unit build
2. Atualizar UM Pacote por Vez
npm update
npm install <pacote>@latest
./scripts/validate-step.sh types unit build
3. Validar Após Cada Atualização
npm run type-check
npm test
npm run build
npm run test:e2e
4. Comparar com Baseline
./scripts/snapshot-health.sh --compare
Gerenciamento do Lock File
Regras
| Regra | Detalhe |
|---|
Sempre commitar package-lock.json | Garante builds reproduzíveis |
| Nunca editar manualmente | Usar npm install para atualizar |
| Resolver conflitos com cuidado | Em caso de merge conflict, rodar npm install após resolver package.json |
Usar npm ci em CI | Instalação limpa a partir do lock file |
Resolver Conflitos no Lock File
rm -rf node_modules
rm package-lock.json
npm install
Tratamento de Breaking Changes
Processo
- Identificar as mudanças no CHANGELOG do pacote
- Avaliar impacto usando análise de imports:
grep -r "from \"<pacote>\"" src/ --include="*.ts" -l
- Criar branch dedicada para a migração
- Seguir skill Refatoração Segura para a migração
- Validar completamente antes de merge
Dependências Críticas
| Pacote | Impacto | Cuidados na Atualização |
|---|
vite | Build inteiro | Testar build + extensão no Chrome |
@crxjs/vite-plugin | Manifest + build | Verificar compatibilidade com Vite |
vitest | Todos os testes | Rodar suite completa |
zod | Validators + parsers | Verificar schemas e safeParse |
@playwright/test | Testes E2E | Rodar E2E completo |
@anthropic-ai/sdk | AI features | Verificar API compatibility |
Adicionando Nova Dependência
Checklist
npm install <pacote>
npm install --save-dev <pacote>
./scripts/validate-step.sh types unit build
Comandos Úteis
npm audit
npm audit fix
npm audit fix --force
npm outdated
npm install <pacote>@latest
npm install <pacote>@<versão>
rm -rf node_modules && npm ci
npm dedupe
npm ls --depth=0
npm info <pacote>
npm explain <pacote>
Checklist de Manutenção
### Revisão de Dependências
- [ ] `npm audit` sem vulnerabilidades críticas
- [ ] `npm outdated` revisado — pacotes críticos atualizados
- [ ] `package-lock.json` commitado e atualizado
- [ ] `./scripts/validate-step.sh types unit build` passa
- [ ] Nenhuma dependência deprecated sem plano de migração
- [ ] Bundle size verificado — sem pacotes desnecessários