skills/predictive-resources/SKILL.md
Predict resource exhaustion (disk, memory, swap) using trend analysis. Proactively alert and propose NixOS config fixes before things break.
npx skillsauth add bolivian-peru/os-moda predictive-resourcesInstall 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.
Don't wait for things to break. Predict when they will and fix proactively.
Before collecting your own data points, check teachd — it has been observing CPU, memory, and services every 30 seconds since boot:
teach_patterns({ type: "trend", min_confidence: 0.3 })
teach_observations({ source: "memory", limit: 100 })
teachd automatically detects monotonic memory increases over 6+ data points. If it has already flagged a trend, use that instead of re-deriving manually.
Collect data points over time and project forward:
shell_exec({ command: "df -h --output=target,used,avail,pcent / /var /nix/store /tmp 2>/dev/null || df -h" })
Track in memory — store periodic snapshots:
memory_store({
summary: "Disk snapshot: / 38% used, /nix/store 12GB",
detail: "Full df output...",
category: "system.config",
tags: "disk,snapshot,predictive"
})
When you have 2+ data points, calculate growth rate:
| Metric | Warning | Critical | Action |
|--------|---------|----------|--------|
| Disk fills in < 7 days | Alert user | Auto-clean | nix-collect-garbage, logrotate |
| Memory avg > 80% for 1hr | Alert user | OOM risk | Identify top consumers |
| Swap usage growing | Monitor | > 50% used | Recommend more RAM or optimize |
| /nix/store > 30GB | Suggest cleanup | > 50GB | Auto-GC old generations |
shell_exec({ command: "nix-collect-garbage --delete-older-than 14d" })
Propose adding to configuration.nix:
services.journald.extraConfig = "SystemMaxUse=500M";
shell_exec({ command: "ps aux --sort=-%mem | head -15" })
Don't kill processes without permission. Advise the user.
swapDevices = [{ device = "/swapfile"; size = 4096; }];
After each alert, remember what the user chose:
memory_store({
summary: "User prefers automatic log cleanup when disk > 80%",
detail: "Approved automatic journalctl vacuum and nix-collect-garbage",
category: "user_pattern",
tags: "preference,disk,auto-remediation"
})
Next time, check memory before asking:
memory_recall({ query: "user preference disk cleanup auto" })
If they previously approved auto-remediation, do it and just notify.
testing
Generate a concise daily infrastructure briefing. Covers: service health, resource usage, security events, overnight incidents, and cost tracking. Designed for Telegram/chat delivery.
devops
Multi-perspective risk analysis using structured persona debate before deploying changes
development
Build software via spec-driven development (github/spec-kit). Whenever the user asks for a feature larger than a one-line tweak, scaffold a spec-kit project, capture WHAT + WHY, declare tech stack, break into tasks, then iterate the implementation until tests pass.
development
Manage NixOS packages declaratively. Search, install (via configuration.nix rebuild), remove, rollback, and list generations. Understands the NixOS declarative model.