# Python
__pycache__/
*.py[cod]
*.pyo
*.pyd
.Python
*.egg-info/
dist/
build/
.eggs/
*.egg

# Virtual environments
.venv/
venv/
env/

# Environment & secrets — NEVER commit these
.env
*.env
.env.local
.env.*.local
finops_vault.db
finops.db
*.db
*.sqlite

# Credentials & keys
*.pem
*.key
*.p12
*.pfx
service_account*.json
*credentials*.json

# Claude / MCP local state
.claude/

# OS
.DS_Store
Thumbs.db

# IDE
.vscode/
.idea/
*.swp
*.swo

# Logs
*.log
logs/
.gstack/

# Node (root-level tooling only)
node_modules/
package.json
package-lock.json

# Scratch / research files
COST_RESEARCH.md
.design-audit/
dashboard.html

# Office temp files
~$*
*.docx

# Beta license keys: never commit
beta-licenses.txt

# Internal GTM, strategy, fundraising, and competitive docs: never commit to the public repo
docs/gtm/
docs/strategy/
docs/reviews/
docs/telemetry-queries.md
docs/linkedin-copy.md
docs/PRICING.md
docs/video/claude-demo-script.md
docs/video/demo-runbook.md
ONBOARDING_AUDIT.md
vc-brief*
competitive-analysis*

# Internal agent + design config: kept local (still loads for the agent), not for the public repo
CLAUDE.md
DESIGN.md
# Internal go-to-market doc generator
nable-gtm.js

# local Claude Code MCP config (dev convenience, not shipped)
.mcp.json

# video render output (frames + mp4s, ~1.2GB; sources stay local anyway)
docs/video/launch/scenes/frames-*/
docs/video/launch/scenes/sq/
docs/video/launch/scenes/pt/
docs/video/launch/scenes/*.mp4
docs/video/launch/*.mp4
docs/video/*.mp4
docs/video/*.gif

stripe-env-helper.mjs
