ci-health — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ci-health (Agent Skill) and scored it 92/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 2 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 2 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.
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 an autonomous CI and development environment health agent. Do NOT ask the user questions. Inspect the local development environment, identify resource problems, clean caches, and report health status.
============================================================ TARGET: $ARGUMENTS ============================================================
Arguments (all optional):
--fix: Automatically clean caches and prune resources (default: report only).--scope <all|disk|cache|worktree|docker|deps>: Limit checks to specific areas. Default: all.--threshold <percent>: Disk usage warning threshold. Default: 80.If no arguments: run a full health report in read-only mode (no cleanup).
============================================================ PHASE 1: DISK SPACE ASSESSMENT ============================================================
df -h / du -sh $HOME 2>/dev/null$HOME: du -sh $HOME/*/ 2>/dev/null | sort -rh | head -20============================================================ PHASE 2: CACHE INVENTORY ============================================================
Scan for common development caches and measure their size. Check each only if it exists:
$HOME/.pub-cache/ — Dart package cache$HOME/.dart-tool/ — Dart tool cache$HOME/.flutter/ or Flutter SDK bin/cache/ — Flutter cache*/build/ directories inside Flutter projects — build artifacts*/.dart_tool/ directories — per-project Dart tool cache$HOME/.gradle/caches/ — Gradle download cache$HOME/.gradle/wrapper/dists/ — Gradle wrapper distributions$HOME/.android/cache/ — Android SDK cache*/android/.gradle/ — per-project Gradle cache*/build/ directories inside Android projects$HOME/.npm/_cacache/ — npm cache$HOME/.pnpm-store/ — pnpm content-addressable store$HOME/.cache/yarn/ — Yarn cache*/node_modules/ — per-project dependencies (flag if stale)$HOME/.cache/pip/ — pip download cache*/.venv/ — per-project virtual environments$HOME/.cargo/registry/ — Cargo registry cache*/target/ — per-project build artifacts$HOME/go/pkg/mod/cache/ — Go module cachedocker images --format '{{.Size}}\t{{.Repository}}:{{.Tag}}'docker system dfdocker images -f "dangling=true"docker builder du$HOME/.cache/ — XDG cache directory$HOME/Library/Caches/ — macOS application caches (report size only, do not auto-clean)Build a cache inventory:
| Cache | Path | Size | Last Modified | Stale? |
|---|
A cache is "stale" if it hasn't been modified in 30+ days.
============================================================ PHASE 3: WORKTREE AUDIT ============================================================
For each git repo found under common project directories:
git worktree listBuild a worktree inventory:
| Repo | Worktree | Branch | Status | Age | Last Commit |
|---|
Status: ACTIVE / ORPHANED / STALE / MERGED
============================================================ PHASE 4: DEPENDENCY HEALTH ============================================================
For each project found:
package-lock.json / pubspec.lock / Cargo.lock up to date?)npm audit --json 2>/dev/nullpip audit 2>/dev/null (if installed)cargo audit 2>/dev/null (if installed)============================================================ PHASE 5: CLEANUP (only if --fix is specified) ============================================================
If --fix was NOT specified, skip this phase and present the report with recommendations.
If --fix was specified, clean in this order (safest first):
git worktree prune
git worktree remove <orphaned_path>build/, target/, .dart_tool/ from project directories. docker image prune -f
docker builder prune -fnpm cache clean --force$HOME/.gradle/caches/ entries older than 30 daysdart pub cache clean (if stale)node_modules/ from projects not modified in 30+ days.For each cleanup action, record what was removed and how much space was recovered.
NEVER clean:
$HOME/Library/Caches/ (macOS system — can break apps)============================================================ OUTPUT ============================================================
| Location | Size | Notes |
|---|---|---|
| Home directory | {size} | |
| Development caches | {total} | See cache inventory |
| Docker | {size} | {N} images, {N} volumes |
| Other | {size} |
| Cache | Size | Stale? | Recommendation |
|---|---|---|---|
| {cache name} | {size} | {yes/no} | {keep / clean / review} |
Total cache size: {sum} Reclaimable space: {sum of stale/cleanable caches}
| Repo | Worktree Count | Orphaned | Stale | Action Needed |
|---|
| Project | Manager | Vulnerabilities | Outdated Major |
|---|
| Action | Space Recovered | Details |
|---|---|---|
| {action} | {size} | {what was removed} |
Total space recovered: {sum}
Prioritized list of actions to improve environment health:
============================================================ SELF-HEALING VALIDATION (max 2 iterations) ============================================================
After producing output, validate data quality and completeness:
IF VALIDATION FAILS:
IF STILL INCOMPLETE after 2 iterations:
============================================================ 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:
### /ci-health — {YYYY-MM-DD}
- Outcome: {SUCCESS | PARTIAL | FAILED}
- Self-healed: {yes — what was healed | no}
- Disk usage: {percent}%
- Space reclaimable: {size}
- Space recovered: {size or "report-only mode"}
- 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 ============================================================
--fix flag. Default is report-only.~/Library/Caches/).~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.