Disk Space Triage: four layers, a ceiling that never moves
Read-only diagnosis of a near-full drive: which folders eat it, which of four layers each belongs to, and three figures kept apart -- scanned, physical, and with headroom.
Free
Works with the AI Agents you already use
Disk Space Triage: four layers, a ceiling that never moves
Example session with this skill installed
C: is down to 2 GB free and I am not reinstalling Windows. Get me to 50 GB and tell me first whether that is even possible on this disk.
- Read your context and instructions
- Compiled the disk space triage
Triage of C:\ complete.
Verdict: 50 GB is not achievable on this disk. The physical ceiling is 34.8 GB and about 27.9 GB of it is reachable without risk.
The three figures, kept apart
| Figure | Value | What it means |
|---|---|---|
| Free now | 2.1 GB | what Explorer shows you |
| Physical ceiling | 34.8 GB | capacity minus what must never be touched |
| With headroom | 26.8 GB | physical ceiling minus the 8 GB OS buffer |
| Reachable by cleanup | 12.4 GB | the renewable layer alone |
| Reachable with moves | 27.9 GB | renewable + movable, if the target drive has room |
Where the space actually is
| Layer | Path | Size | Treatment |
|---|---|---|---|
L1_FLOOR | C:\Windows | 18.2 GB | untouchable |
L1_FLOOR | C:\Windows\Installer | 4.2 GB | untouchable - removing it breaks every MSI repair and uninstall path |
L3_RENEWABLE | ...\AppData\Local\Temp | 8.2 GB | safe to delete, regenerates |
L3_RENEWABLE | ...\Chrome\User Data\Default\Cache | 2.1 GB | safe to delete |
L4_MOVABLE | C:\Users\...\Videos | 15.5 GB | move, then link the path back |
UNKNOWN | C:\UnknownData | 3.0 GB | not in the table - treated as do not touch |
What this means
Clearing every renewable folder gets you to roughly 14.5 GB free. Moving the Videos folder as well gets you to 30.0 GB - still 20 GB short of the number you asked for. Windows and the installer cache are not candidates at any point, which is why the arithmetic has to come before the cleanup and not after it.
Next steps
- Clear the renewable layer first: the only cost is a cache re-download.
- Run again with
--target D:\to confirm the second drive can actually receive 15.5 GB before anything is moved. - If 50 GB is a hard requirement, the answer is a larger disk - not a better cleanup.
Read-only throughout: nothing deleted, nothing moved, no link created. The only file written is the report you named with --md or --json.
Connects securely to your tools. The creator never sees your data.
About this skill
Every free-up-space walkthrough on the internet says the same thing: find the biggest folder and delete it. That advice has a hard ceiling nobody computes, and it fails on the first real case - a 53G disk being asked for 50G free.
This skill answers three questions in one read-only pass, in this order:
- What is eating the drive? Not a leaderboard of the ten biggest folders, but an attribution: which of four layers each one sits in.
- What can this disk free up at most? A number, not an adjective: capacity minus what may not be touched minus headroom.
- Is the number you were told to hit achievable? If it is not, say so plainly, because "not achievable" is the conclusion that stops a fourth round of cleanup.
The four layers, and why the distinction is the whole product:
L1_FLOOR- touch it and the machine will not boot. Windows, Program Files*, pagefile, hiberfil, and Windows\Installer. That last one is 3-8G, looks like the obvious win, and silently destroys every MSI uninstall and repair path. It is not junk.L2_LOCKED- held by a running process; a forced delete corrupts it. Close the program or reboot first.L3_RENEWABLE- regenerates itself the next time it is used. This is the layer to clear first, because getting it wrong costs a cache re-download.L4_MOVABLE- data and cache whose path a link can keep unchanged. Move only if cleaning was not enough, and never before the arithmetic. Anything the classification table does not match goes toUNKNOWNand is treated as do-not-touch, with the reason written out. Guessing here costs somebody else's data.
On the machine this was measured on: Windows 11.2G + Program Files 3.1G + running software puts untouchable at 16G on a 53G disk. The user asked for 50G free. The physical ceiling is about 33G; it was brought to 31G free, which is nearly the floor of what the hardware can give. The correct answer to "50G" was never a better cleanup.
It deletes nothing, moves nothing, creates no link, changes no permission. Apart from the report you explicitly name with --json / --md, it writes nothing at all - and it reads no file contents, only names, sizes and attributes, so it cannot leak what is inside your files.
Includes scripts/triage.py (standard library only, no subprocess, no network call of any kind) and a report guide explaining what each line means and why the total disagrees with Explorer.
What it does not do: it will not clean anything, and it will not move anything. That is the paid companion skill's job, and this one exists to tell you whether that job is worth starting. It also does no partition work - when the target is physically impossible, the advice is add or replace a disk, not resize one.
One pointer, since you are already here
Everything above is a refusal. This skill's job is to say "the number you were asked for is not achievable on this disk" and then stop - no encouragement, no fourth round of cleanup. That is the whole product.
My paid skill makes the same refusal against a different file: your SKILL.md. Prompt Contract Audit runs 23 machine rules plus one human criterion, and every rule prints a verdict instead of an opinion - a references/*.md the body cites that does not exist, a frontmatter name that does not match its folder, a document claiming "read-only" while the code opens a file for writing, a package declaring "offline" while a script opens a socket. It carries eleven incidents in references/INCIDENTS.md, each with the original words and the root cause, because every rule in it started as one of those.
You can score it yourself before believing any of that. It ships 20 fixtures:
python tests/_make_cases.py && python scripts/baseline.py
recall = 1.000 precision = 1.000 evidence assertion = 2/2 passed
Standard library only, no network call at runtime - the same two conditions as this skill.
If you have published something that works on your machine and nowhere else, that is the audit for it. Search for Prompt Contract Audit on Agensi.
Read-only only. Does not scan all subdirectories by default. Designed specifically for Windows directory structures. Requires Python environment to execute the triage script.
How to use
- 1
Connect your agent to the Agensi MCP
Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup
- 2
Sign in to Agensi
Your agent shows a sign-in link. Sign in and click Allow.
- 3
Ask for what you need
Your agent loads this skill and uses it on your task. It always asks before any payment.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill goes through the trust checks below.
Security scanned
Checked by our 8-point scan before listing
Fresh listing
Recently published to Agensi
Free forever
No account required to browse
Trust & safety
Security scan
Security scan passed 6 days ago
- Free with an Agensi account
Requires
Permissions
Six boxes, and the two that stay off are the point of this skill. Read Files - the triage walks the drive reading names, sizes and attributes only. No file contents are read, so nothing inside your files can be exposed by it. Write Files - exactly one file is ever written: the report you name yourself with --json or --md. Pass neither flag and the run writes nothing at all. There is no delete, no move, no link and no permission change anywhere in the package. Terminal - what is ticked here is usage, not behaviour. This is a script skill: the operator runs python scripts/triage.py C:\ --json report.json in their own shell. Nothing inside the package starts a process, and the script stays inside its own interpreter for the whole run. Browser - ticked because the renewable-cache list carries path text such as AppData\Local\ms-playwright, the folder where Playwright keeps its browser binaries and which routinely grows to several GB. Nothing in the package opens a page, drives a browser, or imports a browser library; the string is only compared against folder names during the walk, and on a machine with no Playwright installed it never matches. Network Access - off, and structurally rather than by policy: no connection is opened, no name is resolved, no host is contacted. Every figure in the report comes from local directory metadata. Environment Variables - off. Nothing is harvested; the one default is derived from the account home path rather than from a variable.