skills/_retired/ARCHIVE-dupe-2026-07-12/root_.agents_skills/FORGE-secret-hygiene/SKILL.md
Audit env.local, SOPS .env, and config files for plaintext secret leaks, key age, missing rotation dates, and overlong-lived credentials. USE WHEN: "secret audit", "key age", "rotate secrets", "credential hygiene", "API key check", "env audit", "secret leak scan".
npx skillsauth add ariffazil/openclaw-workspace FORGE-secret-hygieneInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Scans Arif's VPS for plaintext secrets, aged credentials, and rotation gaps.
Files scanned:
~/.openclaw/openclaw.json~/.openclaw/env.local~/.openclaw/.env*~/.config/opencode/opencode.json/root/arifOS/**/*.env*/root/AAA/**/*.env*🚨 IMMEDIATE
- API key in plaintext (not env var)
- Private key in git-tracked file
- Hardcoded password in Dockerfile
- Token > 365 days old without rotation
⚠️ REVIEW
- API key > 180 days old
- Same key used across 3+ services
- Token stored in workspace (not vault)
#!/bin/bash
echo "=== SECRET HYGIENE AUDIT ==="
echo "Time: $(date -u)"
echo ""
KEY_PATTERNS="sk-|api_key|apikey|token|secret|password|private_key|client_secret|bearer"
echo "--- Scanning for plaintext secrets ---"
for f in ~/.openclaw/env.local ~/.openclaw/.env* /root/arifOS/.env* 2>/dev/null; do
if [ -f "$f" ]; then
echo "File: $f"
grep -E "$KEY_PATTERNS" "$f" 2>/dev/null | sed 's/=.*/=***REDACTED***/' | while read line; do
echo " ⚠️ $line"
done
fi
done
echo ""
echo "--- Checking key age (files with mtime) ---"
for f in ~/.openclaw/env.local ~/.openclaw/openclaw.json 2>/dev/null; do
if [ -f "$f" ]; then
age_days=$(echo "$(( ($(date +%s) - $(stat -c %Y "$f" 2>/dev/null || echo 0)) / 86400 ))")
if [ "$age_days" -gt 180 ]; then
echo "⚠️ $f — $age_days days old (review for rotation)"
else
echo "✅ $f — $age_days days old"
fi
fi
done
echo ""
echo "--- Git-tracked secrets check ---"
cd /root/arifOS && git log --oneline -1 -- source 2>/dev/null
cd /root/AAA && git log --oneline -1 2>/dev/null
| Secret Type | Max Age | Rotation Trigger | |---|---|---| | Telegram Bot Token | 12 months | Annual | | DeepSeek API Key | 6 months | Billing alert | | MiniMax API Key | 6 months | Billing alert | | Cloudflare API Key | 6 months | Suspected compromise | | A2A Bridge Token | 3 months | After team member leaves | | Database Passwords | 3 months | After any security incident |
1. Vaultwarden (vaultwarden:8080) — PRIMARY
- All API keys, tokens, passwords
- Share with Arif only
2. 1Password CLI (if configured) — SECONDARY
- Developer secrets
3. SOPS/age encrypted files — CONFIG
- Encrypted .env files in git
4. NEVER in plaintext:
- Git-tracked files
- Slack/Discord messages
- Telegram history
- Dockerfiles (use --build-arg or secrets)
development
Federation-wide gold (XAUUSD) trading capability. Python stack, OANDA broker, backtesting, macro signals, RSI strategy. Every organ has a role.
development
Capital claim state management — tracks claim lifecycle across WEALTH organ.
development
Archived constitutional warga placeholder retained only for audit provenance. Do not use for active work; use the live arifOS governance and constitutional skills instead.
testing
Warga (citizen) agent skills for AAA federation members. See subdirectories for specialized warga skills.