agentleFS
sentineldesksentineldesk/agent/skills/system-performance/SKILL.md

system-performance

Skill0 starsChanged 3 months agoApache-2.0View on GitHub

Find why this Linux desktop is slow — CPU, memory, disk I/O, network, or a runaway process — by measuring before forming an opinion, then tuning the bottleneck rather than a guess. Use when somebody says the machine is slow, a program is unresponsive, or something that used to be fast no longer is.

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Every reading is run_command, which is visible and returns the exit code.

    line 17
  2. Distinctive:

    Before any change, say which of the four the readings point at and which reading says so.

    line 47
  3. Very specific:

    Prefer the smallest change that tests the hypothesis.

    line 58

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Measure first, and say what you measured

"It's slow" is four different problems and they need opposite fixes. Do not tune anything until a reading points at one of them. The order below is by how often each turns out to be the answer, not by how interesting it is.

Every reading is run_command, which is visible and returns the exit code. Some of the sharper tools (iostat, mpstat, smartctl) are not installed by default — install_packages sysstat smartmontools when you need them, and say you are installing something before you do.

The four readings

Load and who is eating the CPU. run_command "uptime" gives the three load averages; compare them against run_command "nproc". A load of 8 on 8 cores is busy; a load of 40 is a queue. Then list_processes — it is the dedicated tool and it returns structure a ps line does not.

Memory and swap. run_command "free -h". The number that matters is available, not free: Linux uses spare RAM for cache and giving it back is instant. Swap in active use (si/so moving in vmstat 1 5) is the real signal, and it makes everything slow at once, which is why a memory problem often presents as a disk problem.

Disk. run_command "df -h" and — the one people forget — run_command "df -i" for inodes, which fill silently and break writes on a partition with gigabytes free. For I/O wait, the wa column of run_command "vmstat 1 5"; high wa with low CPU means the machine is waiting on a disk, not computing.

Network. run_command "ss -s" for socket totals, run_command "ip -s link" for errors and drops. A slow browser on a fast machine is usually DNS: run_command "dig +short example.com" and time it.

Name the bottleneck out loud

Before any change, say which of the four the readings point at and which reading says so. A tuning applied to the wrong one leaves the machine slow AND changed, which is worse than slow.

Changing things — the same rule as every other skill here

kill_process on something a person is using, a sysctl change, disabling a service: state what you are about to do and why, and use ask_human when the call is theirs rather than yours. vm.swappiness and /etc/security/limits.conf survive reboots and are the kind of change somebody should agree to.

Prefer the smallest change that tests the hypothesis. Then re-run the same reading and show before and after. A tuning that returned ok and did not move the number is the failure this project ranks worst — it looks fixed and is not.

The long ones are jobs

smartctl -t long, a full find /, a big dd benchmark: job_start, then job_wait. A wait that times out has not cancelled the work — wait again rather than starting a second copy, which on an I/O benchmark makes the very number you are measuring worse.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.