# Python
.pytest_cache/
__pycache__/
*.py[cod]
*$py.class
*.egg-info/
dist/
build/
.venv/
venv/
.env*
!.env.example
.mypy_*
*_cache
.hypothesis

# Terraform
.terraform/
*.tfstate
*.tfstate.backup
.terraform.lock.hcl
*.tfplan
scripts/tf-provider-cache/.terraform/
scripts/tf-provider-cache/.terraform.lock.hcl

# Runtime outputs (repo-root output/)
output/logs/audit.log
output/logs/audit_*.log
output/findings_store.json
output/findings_store_*.json
findings_store_*.json
output/scan_history.json
output/scan_history.json.tmp
output/savings_ledger.json
output/logs/scheduler.log
output/logs/scheduler.log.*
output/logs/agent_reasoning.log
agent_reasoning.log
output/rollbacks/*
!output/rollbacks/.gitkeep
output/remediations/*
!output/remediations/.gitkeep
output/policies/*.json
output/remediation.tf
output/approval_gates.json
audit.log

# Runtime outputs accidentally written inside src if any
src/cloud_janitor/output/

# Legacy root-level fixtures (canonical copies are in src/cloud_janitor/fixtures/)
fixtures/

# Stale terraform overrides
localstack_providers_override.tf

# If JANITOR_HOME is set to a path inside the repo
.janitor_home

# IDE
.vscode/settings.json
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

# Account configuration (contains real account IDs / role ARNs — never commit)
accounts.json
accounts.*.json
!accounts.example.json

# kiro steering local
.kiro/steering/local/

