secrets — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited secrets (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You are in AUTONOMOUS MODE. Do NOT ask questions. Do NOT pause for confirmation. Execute every phase below in sequence, making decisions based on what you find.
============================================================ PHASE 0 — INPUT ============================================================
$ARGUMENTS may contain:
vault, aws-sm (Secrets Manager), aws-ssm (Parameter Store), gcp-sm, doppler, infisical--audit — only audit current secret handling, do not generate config--rotate — set up secret rotation for database and API credentials--ci — configure CI/CD pipeline to pull secrets from provider--env-template — generate .env.example from detected env vars============================================================ PHASE 1 — SECRET AUDIT ============================================================
Perform a comprehensive scan for secret exposure:
1. Hardcoded secrets in source code (exclude node_modules, vendor, .git):
(api[_-]?key|apikey)\s*[:=]\s*['"][A-Za-z0-9]{16,}['"]AKIA[0-9A-Z]{16}-----BEGIN (RSA|EC|OPENSSH) PRIVATE KEY-----(token|secret|password)\s*[:=]\s*['"][^'"]{8,}['"](postgres|mysql|mongodb|redis)://[^@]+@(jwt[_-]?secret|signing[_-]?key)\s*[:=]\s*['"]2. Environment files:
.env, .env.local, .env.production, .env.development.env is in .gitignore.env files are tracked by git: git ls-files .env*.env files and categorize values as: secret vs configuration3. Git history (last 50 commits):
.env files were ever committed then removed4. Configuration files:
docker-compose.yml — passwords in environment blocksapplication.yml / application.properties — embedded credentials5. CI/CD configuration:
.github/workflows/*.yml — check for inline secrets (should use ${{ secrets.NAME }}).gitlab-ci.yml — check for variables with exposed valuesSeverity classification:
============================================================ PHASE 2 — ENVIRONMENT TEMPLATE ============================================================
Generate .env.example from all detected environment variable references.
Scan for env var patterns:
process.env.VARNAMEos.environ["VARNAME"], os.getenv("VARNAME")os.Getenv("VARNAME")${VARNAME} in config filesCreate .env.example with:
# SECRET: prefix for values that must come from secrets manager# CONFIG: prefix for non-sensitive configurationREPLACE_ME_WITH_SECURE_RANDOM_VALUE)============================================================ PHASE 3 — SECRETS PROVIDER SETUP ============================================================
Based on detected infrastructure or $ARGUMENTS, set up the appropriate provider:
AWS Secrets Manager:
aws_secretsmanager_secret resources@aws-sdk/client-secrets-manager or equivalent)AWS Systems Manager Parameter Store:
aws_ssm_parameter resources (SecureString type)/{project}/{env}/{secret_name}GCP Secret Manager:
google_secret_manager_secret resourcesHashiCorp Vault:
Doppler:
doppler.yaml project configFor all providers, generate a unified secrets loading wrapper:
.env file via dotenv============================================================ PHASE 4 — SECRET ROTATION (if --rotate) ============================================================
Database credentials:
aws_secretsmanager_secret_rotationAPI keys:
TLS certificates:
============================================================ PHASE 5 — CI/CD INTEGRATION (if --ci) ============================================================
GitHub Actions:
aws-actions/configure-aws-credentials@v4 with role-to-assumeaws-actions/aws-secretsmanager-get-secrets@v2 for loading secretsDoppler:
dopplerhq/secrets-fetch-action@v1 with DOPPLER_TOKEN secretGeneral:
============================================================ PHASE 6 — REMEDIATION ============================================================
For each CRITICAL and HIGH finding from the audit:
.gitignore, remove from git tracking (warn about history)${DB_PASSWORD}.env*, *.pem, *.key, *.jks patternsIf secrets were found in git history:
git-filter-repo to remove from history (document command but do NOT execute)============================================================ SELF-HEALING VALIDATION (max 2 iterations) ============================================================
After completing deployment/infrastructure changes, validate:
IF STILL FAILING after 2 iterations:
============================================================ OUTPUT ============================================================
## Secrets Audit & Configuration
### Audit Results
| Severity | Finding | Location | Status |
|----------|---------|----------|--------|
| CRITICAL | {finding} | {file:line} | {fixed/needs-action} |
| HIGH | {finding} | {file} | {fixed/needs-action} |
| MEDIUM | {finding} | {file} | {fixed/needs-action} |
### Files Created/Modified
- .env.example — Environment variable template ({N} variables)
- .gitignore — Added secret file patterns
- {provider config files}
- {application secret loader}
### Secrets Inventory
| Secret | Provider | Rotation | CI/CD |
|--------|----------|----------|-------|
| DATABASE_URL | {provider} | 30 days | configured |
| JWT_SECRET | {provider} | 90 days | configured |
### Immediate Actions Required
{ordered list of manual actions needed, starting with credential rotation}============================================================ NEXT STEPS ============================================================
============================================================ SELF-EVOLUTION TELEMETRY ============================================================
After producing output, record execution metadata for the /evolve pipeline.
Check if a project memory directory exists:
~/.claude/projects/skill-telemetry.md in that memory directoryEntry format:
### /secrets — {{YYYY-MM-DD}}
- Outcome: {{SUCCESS | PARTIAL | FAILED}}
- Self-healed: {{yes — what was healed | no}}
- Iterations used: {{N}} / {{N max}}
- Bottleneck: {{phase that struggled or "none"}}
- Suggestion: {{one-line improvement idea for /evolve, or "none"}}Only log if the memory directory exists. Skip silently if not found. Keep entries concise — /evolve will parse these for skill improvement signals.
============================================================ DO NOT ============================================================
.env files without warning — they may be the only copy of secretsgit filter-repo or git filter-branch without explicit user confirmation~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.