| name | cloud-waste-audit |
| description | Find idle and orphaned cloud resources that burn money and carbon for no output — idle VMs, unattached disks/volumes, unassociated elastic IPs, zombie snapshots, forgotten load balancers, stopped-but-billed instances. Use this skill whenever the user shares cloud billing exports or resource inventories (AWS Cost Explorer/CUR, Azure Cost Management, GCP billing) and the question is about unused or forgotten resources — idle instances, waste, things running that shouldn't be — cost and carbon are two payoffs of the same fix. For costs driven by growing stored data, retention, or tiering (S3/blob bills, Storage Lens reports, "we never delete anything"), use storage-lifecycle-audit instead. Part of Lean Agentic AI Skills; emits lean-findings.json for composition with report/deck skills. |
Cloud Waste Audit
Producer skill. Input: billing exports, resource inventory CSV/JSON, or infrastructure descriptions the user provides. Output: <account-slug>.lean-findings.json (schema in references/lean-findings.schema.json).
Waste is the purest green finding: an idle resource has SCI value of infinity — emissions with zero functional output. Eliminating it reduces E and M with no trade-off except the effort of checking twice before deleting.
Subject type: emit subject.type: "cloud-account" in findings.
Procedure
- Ingest what the user provides. Never assume access to live cloud APIs; work from exports. State in
methodology exactly which files and time window were analyzed.
- Scan for the waste signatures below.
- Emit findings with real evidence (resource IDs, sizes, last-used timestamps from the data). Cost figures may be quoted only if present in the billing data; never estimate carbon from cost.
- Summarize inline: counts by severity, top offenders, safe-deletion caveats.
Waste signatures
- Idle compute — instances with sustained near-zero CPU/network in utilization data, or running instances with no requests. High severity, reduces E+M.
- Unattached storage — volumes/disks with no attached instance. High. Reduces M.
- Orphaned snapshots — snapshots of deleted volumes, or long chains with no retention policy. Medium.
- Unassociated static IPs — billed but bound to nothing. Low (cost) but trivial fix.
- Forgotten load balancers / NAT gateways — zero healthy targets or near-zero processed bytes. Medium–high.
- Oversized non-prod — dev/staging resources matching production sizing, or running nights/weekends. Medium; fix: schedules or auto-stop.
- Stopped instances holding expensive disks/IPs — compute off but storage billing on. Low–medium.
- Duplicate environments — multiple stacks with identical tags/naming suggesting abandoned experiments. Flag for human review, never assert.
Honesty rules
- A resource that looks idle may be a cold-standby or DR asset. Every deletion recommendation carries the caveat "verify ownership and purpose before removal" and effort includes that verification.
- No invented carbon numbers. Billing currency ≠ gCO2e. If the user wants emissions figures, point to the cloud provider's carbon tools (AWS CCFT, Azure Emissions Dashboard, GCP Carbon Footprint) and Cloud Carbon Footprint (open source).
out_of_scope: anything requiring live metrics you weren't given; region carbon intensity (route to region-selector).
Cost signal (countable)
The cost driver of waste is usually resource-hours billed (instance-hours, volume-GB-months, IP-hours, gateway-hours). Where the billing export names these, include a cost_signal per finding with driver = the billable unit, observed = the counted amount from the export, direction = qualitative ("eliminates the driver for this resource"). Never quote a currency figure the export didn't supply.
Not this skill's job
Right-sizing running-but-oversized workloads (right-size-compute), serverless migration analysis (vm-to-serverless-advisor).