godcrm/scripts/audit-workspace.sh
GOD CRM Release f89e074dd1
Some checks failed
CI / Lint / Typecheck / Test / Build (push) Has been cancelled
CI / PostgreSQL Integration Tests (push) Has been cancelled
GOD CRM — public scrubbed snapshot
Governed substrate for autonomous agents: scoped identity (passports),
audited actions, MCP workspace. Infra IPs and secrets redacted for public release.
2026-08-10 04:01:45 +03:00

75 lines
2.3 KiB
Bash
Executable file

#!/bin/bash
# scripts/audit-workspace.sh
# Implements checks from ADR-041
echo "🔍 Auditing Workspace Hygiene..."
ERRORS=0
# 1. Check for garbage files
echo "Checking for .bak, .new, .old files..."
GARBAGE=$(find src backend -name "*.bak" -o -name "*.new" -o -name "*.old" 2>/dev/null)
if [ -n "$GARBAGE" ]; then
echo "❌ Found garbage files (ADR-041 violation):"
echo "$GARBAGE"
ERRORS=$((ERRORS+1))
else
echo "✅ No garbage files found"
fi
# 2. Check for loose scripts in root
echo "Checking for loose JS scripts in root..."
# Exclude known config files and moved scripts
LOOSE=$(find . -maxdepth 1 -name "*.js" \
! -name "vite.config.js" \
! -name "postcss.config.js" \
! -name "tailwind.config.js" \
! -name "eslint.config.js" \
2>/dev/null)
# All utility scripts should now be in scripts/backend-tools/
if [ -n "$LOOSE" ]; then
echo "❌ Found loose scripts in root (ADR-041 violation):"
echo "$LOOSE"
ERRORS=$((ERRORS+1))
else
echo "✅ No unknown loose scripts found"
fi
# 3. Check for console.log in critical paths (ADR-037)
# Exclusions:
# - __tests__/ - test files are OK
# - scripts/ - utility scripts are OK
# - migrations/ - migration logs are OK
# - public/ - compiled assets
# - logger.ts - the logger itself
# - HelpPage - documentation examples
# - api.types.ts - JSDoc examples
echo "Checking for console.log usage..."
CONSOLE_COUNT=$(grep -rn "console\.log" src backend --include="*.ts" --include="*.tsx" --include="*.js" 2>/dev/null \
| grep -v "__tests__" \
| grep -v "\.test\." \
| grep -v "/tests/" \
| grep -v "scripts/" \
| grep -v "migrations" \
| grep -v "public/" \
| grep -v "logger\.ts" \
| grep -v "api\.types\.ts" \
| grep -v "HelpPage" \
| wc -l)
if [ "$CONSOLE_COUNT" -gt 0 ]; then
echo "⚠️ Found $CONSOLE_COUNT console.log instances in source code (ADR-037 violation)"
echo " Run: grep -rn 'console.log' src backend --include='*.ts' --include='*.tsx' --include='*.js' | grep -v __tests__ | grep -v migrations | grep -v public/"
else
echo "✅ No console.log in source code"
fi
echo "-----------------------------------"
if [ $ERRORS -gt 0 ]; then
echo "🔴 Audit failed with $ERRORS errors."
exit 1
else
echo "🟢 Workspace is clean."
exit 0
fi