# Python
__pycache__/
*.py[cod]
*.egg-info/
*.egg
dist/
build/
.venv/
venv/
.pytest_cache/
.ruff_cache/

# Node
node_modules/
ui/dist/

# Environment
.env

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

# Docker
clickhouse-data/

# Internal planning docs (docs/ itself IS tracked — it's the shared team+agent docs)
docs/launch-plan.md
docs/meetings-actionables-for-launch.md
docs/licensing-study.md
docs/*.pdf
docs/TraceCtrl Console.html
docs/TraceCtrl-PRD-v0.1.docx

# Agent skills (installed via `skills add`)
.agents/
.claude/
.kiro/
skills/
skills-lock.json

videos/
.mcp.json

# Personal Folder
dylan-todo/

# OCB-generated collector distribution (built from collector/builder-config.yaml)
collector/_build/

# Customer-derived Microsoft API samples may contain emails, IPs, URLs, and
# agent instructions.
co_pilot_ingestors/dumps/*.json
# Same risk, written by local AI-SPM debugging runs against a real tenant.
aispm-service/*.json
aispm-service/normalized_graph.md
# Pre-rename spelling. The stale aipsm-service/ tree still holds a real M365
# tenant dump, and the rule above does not match the old directory name.
aipsm-service/*.json
aipsm-service/normalized_graph.md
# Raw Azure AI Foundry capture output (infra/scripts/foundry_capture.py).
# Real subscription, account, project, and agent identifiers.
foundry-capture-out/

aispm-handoff/

# Agent scratch: git worktrees, generated review/plan docs.
.worktrees/
docs/internal/

# Point-in-time UI captures (screenshots, screen recordings). Undiffable and
# stale on the next CSS change; keep them outside the repo and link out.
docs/ops/assets/

temp/

# Local credential scratch file. Plaintext secrets, never committed.
# Belt and braces: the directory, the file, and any .secrets.* variant.
.secrets/
.secrets.txt
.secrets.*
credentials.local.*

# POC report generator (local only; output has customer data)
tools/poc-report/
