# Python
__pycache__/
*.py[cod]
*$py.class
*.egg-info/
.eggs/
build/
dist/
wheels/

# Virtual envs / tooling caches
.venv/
.pytest_cache/
.ruff_cache/
.mypy_cache/

# Coverage
.coverage
.coverage.*
coverage.xml
htmlcov/

# AI-agent local files
PROMPT.md
.mcp.json
# Playwright MCP browser session artifacts (traces/screenshots from local runs)
.playwright-mcp/
# …except the bundled plugin config, which holds only ${VAR} references (not real secrets).
!plugins/yandex-360/.mcp.json

# Secrets
.env

# IDEs
.vscode

# Vendored Yandex 360 / dev-hub docs — local-only. They come from yandex.ru (Yandex
# User Agreement, not an open licence), so we regenerate them with scripts/fetch_docs.py
# instead of committing them. Only the explanatory README stays tracked.
/references/yandex-360/*
!/references/yandex-360/README.md

# graphify code-graph — committed snapshot of the queryable graph so the team
# shares it (graph.json, GRAPH_REPORT.md). The machine-local + regenerable bits stay
# ignored: AST cache, dated backups, absolute-path interpreter/root markers, internal
# analysis sidecars, and the DERIVED navigation products (wiki/, the *.html tree/call-flow,
# *.svg, *.graphml). Those regenerate for free and deterministically from the committed
# graph.json (see .graphify/rebuild.sh) — no point committing hundreds of generated files.
/graphify-out/cache/
/graphify-out/20[0-9][0-9]-[0-9][0-9]-[0-9][0-9]/
/graphify-out/.graphify_*
/graphify-out/manifest.json
/graphify-out/wiki/
/graphify-out/*.html
/graphify-out/*.svg
/graphify-out/*.graphml
# .graphify/ is graphify's local cache — ignore its contents but keep the committed
# rebuild recipe so the GLM-5.2 graph is reproducible.
/.graphify/*
!/.graphify/rebuild.sh
