O que shipcheck faz?
Verificação preventiva de PII (Informações Pessoais Identificáveis) e segredos (secrets) para pacotes npm, skills OpenClaw e repositórios locais, com o melhor esforço possível (best-effort).
Visão Geral
O Shipcheck é uma skill auxiliar que escaneia seu código antes da publicação para identificar possíveis vazamentos de dados sensíveis, como:
- Chaves de API e tokens de autenticação
- Senhas e strings de conexão
- Endereços de e-mail e números de telefone
- Documentos de identidade (CPF, RG, etc.)
- URLs internas ou de staging não intencionais
Ela funciona com uma abordagem best-effort, utilizando expressões regulares e heurísticas simples. Não é uma ferramenta de auditoria de segurança completa, mas sim um alerta rápido para evitar erros comuns.
Plataformas Suportadas
- npm packages: analisa o conteúdo a ser publicado no registro npm.
- OpenClaw skills: verifica skills antes do envio para o marketplace.
- Repositórios locais: escaneia qualquer diretório Git local.
Como Usar
Via CLI
# Verificar o diretório atual
npx shipcheck
# Verificar um diretório específico
npx shipcheck ./caminho/para/pacote
# Modo silencioso (apenas exit code)
npx shipcheck --quiet
Via API programática
import { runShipCheck } from '@symbolstar/shipcheck';
const result = await runShipCheck({
path: './meu-pacote',
excludes: ['dist/', 'node_modules/']
});
if (result.hasIssues) {
console.log('⚠️ Possíveis problemas encontrados:');
result.issues.forEach(issue => console.log(` - ${issue.file}: ${issue.detail}`));
} else {
console.log('✅ Nenhum PII ou secret detectado.');
}
Opções de Configuração
| Opção | Tipo | Padrão | Descrição |
|---|---|---|---|
path | string | '.' | Caminho do diretório a ser escaneado |
excludes | string[] | [] | Padrões de arquivos para ignorar (glob) |
quiet | boolean | false | Suprime saída detalhada (apenas exit code) |
threshold | number | 0 | Nível mínimo de severidade (0 = todos) |
Padrões Verificados
AKIA[0-9A-Z]{16}— chaves de acesso AWSghp_[a-zA-Z0-9]{36}— tokens pessoais do GitHubsk-[a-zA-Z0-9]{32,}— chaves de API do OpenAI[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}— e-mails\d{3}\.\d{3}\.\d{3}-\d{2}— CPF (Brasil)
Nota: Esta lista não é exaustiva. Novos padrões podem ser adicionados conforme necessário.
Limitações
- Best-effort: falsos positivos e falsos negativos são possíveis.
- Não substitui ferramentas dedicadas como
git-secrets,truffleHogoudetect-secrets. - Não escaneia binários ou arquivos criptografados.
Licença
Distribuído sob a licença MIT.
SymbolStar/shipcheck — publicado originalmente em GitHub.