Cloudcost doctor
Audit infrastructure-as-code (Terraform, CloudFormation, CDK) for cloud cost anti-patterns BEFORE deployment. Finds overprovisioned instances, expensive storage defaults, idle resources, missing lifecycle policies, and 45+ more — no AWS credentials required. Use when reviewing or cost-optimizing IaC.From its SKILL.md
npx -y skills add takeaseatventure/cloudcost-doctorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.4 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it
cloudcost-doctor
Find cloud waste before you deploy it. Reads your Terraform / CloudFormation / CDK files and flags cost anti-patterns. No AWS credentials, no dependencies, works offline in <1 second.
When to use
- Before running
terraform apply/aws cloudformation deploy - During code review of infrastructure PRs
- When asked "are we wasting money on AWS?"
- As a pre-commit / CI check for IaC
How to run
# Audit a directory of IaC files
python3 scripts/cli.py audit <path>
# Single file
python3 scripts/cli.py audit main.tf
# JSON output for CI/CD
python3 scripts/cli.py audit <path> --json
# List all rules
python3 scripts/cli.py describe
What it checks (50+ rules across 8 categories)
EC2 — Compute
EC2.01Old instance generation (t2→t3, m4→m6i, c4→c6i: ~20% cheaper)EC2.02Overprovisioned instance for likely dev/staging (8xlarge+ with no prod tag)EC2.03No shutdown schedule for non-prod (add schedule or use Spot)EC2.04On-demand for batch/stateless workloads (use Spot: 70-90% cheaper)EC2.05No hibernate/stop on termination for dev instancesEC2.06Burstable instance without CloudWatch CPU credit monitoringEC2.07EBS-optimized flag on instance types that include it free (dead config)EC2.08Multiple ENIs without need (adds cost on some types)EC2.09Placement group for non-HPC workloadEC2.10Dedicated host tenancy without licensing justificationEC2.11EIP attached to stopped instance ($3.60/mo)EC2.12No instance profile / IAM role (security + operational debt)
EBS — Block Storage
EBS.01gp2 volume — use gp3 (20% cheaper, better baseline IOPS)EBS.02io1/io2 Block Storage with no measured IOPS needEBS.03Overprovisioned volume size (>1TB without lifecycle)EBS.04Snapshot without delete-after-N-daysEBS.05EFS without lifecycle to Infrequent Access
S3 — Object Storage
S3.01Bucket with no lifecycle policy (logs grow forever in Standard)S3.02Standard storage for logs/backups (→ IA/Glacier)S3.03Versioning on without lifecycle (old versions accumulate)S3.04No Intelligent-Tiering consideration for unknown access patternsS3.05Cross-region replication without explicit DR requirementS3.06Requester-pays without metering
RDS — Databases
RDS.01Multi-AZ for dev/staging (doubles cost)RDS.02RDS gp2 storage — use gp3RDS.03Provisioned IOPS (io1) on RDS without measured needRDS.04Backup retention >7 days for non-prodRDS.05T2/T3 instance — check if T4g available (ARM, cheaper)RDS.06DynamoDB provisioned capacity without auto-scalingRDS.07DynamoDB without on-demand for low/unknown traffic
NAT — Networking
NAT.01NAT Gateway in non-prod (use VPC endpoints: saves $32/mo + data)NAT.02Multiple NAT Gateways in one AZNAT.03Classic Load Balancer (deprecated, switch to ALB/NLB)NAT.04Elastic IP not associated ($3.60/mo each)NAT.05VPC endpoint not used for S3/DynamoDB (paying NAT data fees)NAT.06Public IP on EC2 that doesn't need it
TAG — Governance
TAG.01MissingOwnertagTAG.02MissingEnvironmenttag (blocks cost allocation)TAG.03MissingCostCenter/ProjecttagTAG.04Inconsistent tag casing (envvsEnvironment)TAG.05No budget alert / cost anomaly detection configuredTAG.06Resources using deprecated tag keys
IAM — Security (cost-adjacent)
IAM.01Overly permissive*resource policyIAM.02IAM policy withAction: *andResource: *IAM.03Hardcoded credentials in IaC (security + rotation cost)IAM.04KMS key without rotation enabled
CW — CloudWatch / Logging
CW.01Log group with no retention (infinite growth)CW.02Detailed monitoring enabled for non-prodCW.03CloudWatch Logs Insights without savings planCW.04High-resolution custom metrics where standard suffices
Reading the report
Each finding shows:
- Severity: HIGH (clear waste, easy fix), MED (likely waste), LOW (governance hygiene)
- Rule ID: e.g.
EC2.01 - File:line: exact location in your IaC
- Estimated savings: monthly $ range where calculable
- Fix hint: one-line action to resolve
Pro tier
The free OSS scanner audits IaC files. The Pro tier (license-gated) adds:
- Live AWS account scan (audit running infra, not just code)
- Automated remediation (generates the fixing Terraform)
- Cost trend dashboards
- Slack/Teams alerting
Upgrade at https://takeaseatventure.com/pro
Limitations
- Reads IaC files as parsed text (regex-based) — fast and universal, but cannot resolve module references or dynamic expressions. For those, review the flagged resource manually.
- AWS-focused. GCP/Azure support is planned.
- Savings estimates are approximate (based on public AWS pricing, us-east-1).
Pro tips
- Run in CI to catch waste before merge:
python3 scripts/cli.py audit ./infra --json - The
describecommand lists every rule with its fix hint — useful for onboarding. - Tagging findings (TAG.*) are prerequisites for any FinOps program — fix these first.
What ships with it: 9 files
65.9 KB alongside SKILL.md, 3 of them executable
examples/
- clean-infra/main.tf1.2 KB
- wasteful-infra/main.tf2.3 KB
scripts/
- cli.pyruns4.1 KB
- engine.pyruns36.8 KB
- test_engine.pyruns10.6 KB
- CONTRIBUTING.md2.2 KB
- .gitignore64 B
- LICENSE1.0 KB
- README.md7.7 KB