Quality Gates — SkillBrain Automation
Available Scripts
All scripts in ~/.config/skillbrain/hooks/. Executable directly.
1. Secrets Scanner (secrets-scan.sh)
Scansiona per token, password, API keys esposti nel codice.
# Scansiona file staged (pre-commit)
bash ~/.config/skillbrain/hooks/secrets-scan.sh
# Scansiona tutto il progetto
bash ~/.config/skillbrain/hooks/secrets-scan.sh --all
Patterns rilevati:
- Stripe keys (
sk_live_,pk_live_,sk_test_) - AWS keys (
AKIA...) - Telegram bot tokens
- GitHub tokens (
ghp_,gho_) - Private keys (PEM)
- Connection strings con password
- JWT tokens hardcoded
- Resend keys (
re_...) - Sentry DSN con secret
- Slack webhook URLs
- Generic
password=,secret=,token=assignments
2. Env Validation (env-check.sh)
Valida le environment variables di un progetto.
bash ~/.config/skillbrain/hooks/env-check.sh /path/to/project
Cosa controlla:
.env.localesiste- Confronta con
.env.template(variabili mancanti/vuote) - Auto-detect dipendenze da
package.json:- Next.js →
NEXT_PUBLIC_APP_URL - Payload →
DATABASE_URL,PAYLOAD_SECRET - Stripe →
STRIPE_SECRET_KEY,NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY - Auth.js →
AUTH_SECRET - Resend →
RESEND_API_KEY - Sentry →
NEXT_PUBLIC_SENTRY_DSN,SENTRY_AUTH_TOKEN - Supabase →
NEXT_PUBLIC_SUPABASE_URL,NEXT_PUBLIC_SUPABASE_ANON_KEY - Upstash →
UPSTASH_REDIS_REST_URL,UPSTASH_REDIS_REST_TOKEN
- Next.js →
3. New Project Bootstrap (new-project.sh)
Crea .env.local per un nuovo progetto con secrets generati e valori copiati dal master.
bash ~/.config/skillbrain/hooks/new-project.sh /path/to/project "ProjectName"
Cosa fa:
- Genera
AUTH_SECRET,PAYLOAD_SECRET,REVALIDATION_SECRETconopenssl rand - Crea
.env.localcon tutte le sezioni standard - Crea
.env.template(committabile, senza valori) - Aggiorna
.gitignorese necessario - Copia valori condivisi dal master
~/.config/skillbrain/.env(Stripe, Resend, Sentry, etc.)
4. Pre-Deploy Checklist (pre-deploy.sh)
Verifica tutto prima di mandare in produzione.
bash ~/.config/skillbrain/hooks/pre-deploy.sh /path/to/project
Checks:
- Git: working tree clean, on main branch
- Dependencies: lock file exists, version field
- Build:
pnpm buildpassa senza errori - Lint:
pnpm lintclean - Types:
tsc --noEmitclean - Tests:
pnpm testpassa - Env: file esiste, variabili critiche settate
- Security: nessun secret hardcoded, console.log count
- Performance: bundle sizes within budget
Exit codes: 0 = all clear, 1 = failures (deploy blocked)
5. Dependency Audit (dep-audit.sh)
Audit completo delle dipendenze.
bash ~/.config/skillbrain/hooks/dep-audit.sh /path/to/project
Checks:
- Vulnerabilita (
pnpm audit) — critical, high, moderate - Pacchetti outdated (major version)
- Heavy packages con alternative leggere
- Duplicati
6. Conventional Commits (commit-msg-check.sh)
Valida il formato del commit message.
bash ~/.config/skillbrain/hooks/commit-msg-check.sh .git/COMMIT_EDITMSG
Format: type(scope): description
| Type | Uso |
|---|---|
feat |
Nuova feature |
fix |
Bug fix |
chore |
Manutenzione, deps, config |
docs |
Documentazione |
style |
Formatting (no code change) |
refactor |
Refactor (no feature/fix) |
perf |
Performance |
test |
Tests |
build |
Build system |
ci |
CI/CD |
revert |
Revert commit |
Master Env File
Locazione: ~/.config/skillbrain/.env
Contiene tutte le API keys condivise tra progetti. Organizzato per sezione: Telegram, n8n, Database, Supabase, Auth, Payload, Stripe, Resend, Sentry, Analytics, AI/LLM, Upstash, Storage (S3/R2), Cloudinary, Pusher, Odoo, Coolify, Iubenda, App.
Mai committare. Mai copiare in un repo. Solo in ~/.config/ (fuori da qualsiasi repo git).
Quando Usare Cosa
Nuovo progetto?
└── bash new-project.sh <path> "Name"
└── bash env-check.sh <path>
Prima di commit?
└── bash secrets-scan.sh
Prima di deploy?
└── bash pre-deploy.sh <path>
Manutenzione settimanale?
└── bash dep-audit.sh <path>
Regole Claude (Automatiche)
Queste regole sono in AGENTS.md e vengono seguite automaticamente:
- No hardcoded secrets — sempre env vars
- No
any/@ts-ignore— type guard o generics - Conventional commits —
type(scope): desc - Branch naming —
feat/,fix/,chore/,refactor/ - Bundle budget — < 300KB first-load JS per route
- No barrel imports da librerie heavy
- Dependency check prima di
pnpm add(alternativa leggera?) - Semantic HTML + ARIA labels
- Error handling — try/catch + log, mai swallow
- Health checks —
/api/health+/api/readyin ogni progetto