# Python
__pycache__/
*.py[cod]
*.egg-info/
.venv/
venv/

# Editor
.vscode/
.idea/
*.swp

# Claude Code session-local config — everything except the agent team.
# AGENT_TEAM.md section 6 requires .claude/agents/ to be versioned like code
# ("the team is part of the repo"); the blanket ignore silently contradicted
# that, so the ten agent definitions were never tracked. settings.local.json,
# identity.json, ecc-tools.json, skills/, and homunculus/ stay ignored.
.claude/*
!.claude/agents/

# OS
.DS_Store
Thumbs.db
desktop.ini

# Local-only ingest scratch (the canonical ingest/* JSON files are tracked)
ingest/*.scratch.json
ingest/.cache/
ingest/_cache/

# Build artifacts
dist/
build/

# Jekyll preview output (the deployed site is built by GitHub Pages)
docs/_site/
docs/.jekyll-cache/

# Build artifact: regenerated by scripts/parse_existing.py on every build
# (it stamps date.today(), so tracking it just creates perpetual churn).
data/legacy_consolidated.json

# STIX export (build/site artifact, generated by scripts/export_stix.py;
# served from GitHub Pages, not committed to keep the repo lean)
data/incidents.stix.json
docs/data/incidents.stix.json

# Generated at Pages build time (scripts/make_og_image.py), not committed.
docs/og-image.png

# Static TAXII-compatible discovery document + MISP feed (Pages build artifacts, generated by
# scripts/export_taxii.py / scripts/export_misp.py; served from Pages, not
# committed to keep the repo lean).
docs/taxii2/
docs/misp/

# Auto-generated local tool config (ecc-tools / claude-flow "homunculus"
# repo-analysis output — never authored by us, and it was publishing local
# assistant config in a public repo). The hand-authored .claude/agents/*.md
# specialist definitions and .claude/settings*.json stay tracked; only the
# generated artifacts are ignored.
.claude/identity.json
.claude/ecc-tools.json
.claude/homunculus/
.claude/skills/genai_incidents/
.codex/
.agents/
