بنقرة واحدة
safety-check
Pre-commit security validation
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Pre-commit security validation
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Create formatted branches
Generate deployment summary
Create conventional commits
Contextual linting
Create pull requests
| description | Pre-commit security validation |
| name | safety-check |
| version | 1.0.0 |
Valide la sécurité des fichiers avant commit (secrets, .env, schemas protégés, fichiers volumineux).
/safety-check
.env / .env.*(Voir AGENTS.md pour détails)
git status --porcelain
Parser la sortie pour obtenir la liste des fichiers :
A : Fichier ajoutéM : Fichier modifiéD : Fichier supprimé?? : Fichier non tracké.envgit diff --cached --name-only | grep -E '\.env(\.|$)'
Si match trouvé :
❌ ERREUR: Fichiers .env détectés en staging
→ Fichiers : .env, api/.env.local
→ AGENTS.md: Ne pas committer de .env / .env.*
→ Action : Retirer ces fichiers du staging (git reset HEAD <file>)
Exit code 1 (bloque le commit)
Patterns à rechercher dans les fichiers staged :
password\s*=\s*['"][^'"]+['"]api[_-]?key\s*=\s*['"][^'"]+['"]token\s*=\s*['"][^'"]+['"]mongodb\+srv://[^'"]+postgres://[^'"]+Bearer\s+[A-Za-z0-9\-._~+/]+=*# Pour chaque fichier staged
git diff --cached -U0 <file> | grep -E '(password|api[_-]?key|token|mongodb\+srv|postgres://|Bearer\s+)'
Si match trouvé :
⚠️ WARNING: Potentiel secret hardcodé détecté
→ Fichier : api/src/config/database.ts:42
→ Pattern : mongodb+srv://...
→ AGENTS.md: Ne jamais ajouter de secrets en dur
→ Action : Remplacer par variable d'environnement (process.env.DATABASE_URL)
Demander confirmation utilisateur avant de continuer.
git diff --cached --name-only | grep 'api/prisma/analytics/schema.analytics.prisma'
Si match trouvé :
❌ ERREUR: Modification du schéma analytics interdite
→ Fichier : api/prisma/analytics/schema.analytics.prisma
→ api/AGENTS.md: Le schéma analytics est deprecated (lecture seule)
→ Action : Utiliser dbmate pour migrations analytics (analytics/migrations/)
Exit code 1 (bloque le commit)
# Pour chaque fichier staged
git diff --cached --stat <file> | awk '{print $NF}'
Extraire la taille. Si > 1MB :
⚠️ WARNING: Fichier volumineux détecté
→ Fichier : app/public/video.mp4 (12.5 MB)
→ Action : Considérer Git LFS ou hébergement externe
Demander confirmation utilisateur avant de continuer.
Si aucune erreur bloquante :
✅ Safety checks passed
→ Fichiers vérifiés : 12
→ Warnings : 0
→ Erreurs : 0
Exit code 0
Si erreurs bloquantes :
❌ Safety checks failed
→ Fichiers vérifiés : 12
→ Warnings : 1
→ Erreurs : 2
→ Action : Corriger les erreurs avant de committer
Exit code 1
/commitLe skill /commit doit toujours exécuter /safety-check avant de créer le commit.
## Workflow /commit
1. Détecter changements (git status, git diff)
2. **Exécuter /safety-check** ← CRITIQUE
3. Si safety-check échoue → STOP (ne pas créer le commit)
4. Analyser scope et type
5. Générer message
6. Valider avec commitlint
7. Créer commit
Permissions requises dans .claude/settings.local.json :
Bash(git status:*)Bash(git diff:*)Bash(grep:*)Read(*)