# -----------------------------------------------------------------------------
# Myco v0.4.0 .gitignore
#
# This file is fresh-authored for the greenfield rewrite. The pre-rewrite
# .gitignore referenced v0.3 concepts (Wave 8 cleanup notes, notes/n_*.md,
# docs/primordia/archive/, etc.) that now live under legacy_v0_3/ and no
# longer need root-level rules. That content is preserved inside
# legacy_v0_3/.gitignore_v0_3 for historical reference if needed.
# -----------------------------------------------------------------------------

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

# Build artifacts
dist/
build/
*.whl

# Virtual environments
.venv/
venv/
env/

# Test / tooling caches
.pytest_cache/
.coverage
.coverage.*
# v0.5.10: coverage.json was tracked by accident in v0.5.x. Re-
# ignoring it here so ``coverage run --format=json`` output cannot
# re-enter the tree.
coverage.json
coverage.xml
htmlcov/
.mypy_cache/
.ruff_cache/

# OS files
.DS_Store
Thumbs.db

# Editor files
.vscode/
.idea/
*.swp
*.swo
*~

# Misc
*.orig

# Release ephemerals. gh release --notes-file, twine upload logs, and
# other scratch artifacts produced during the release playbook
# (documented in docs/primordia/agent_handoff_v0_4_1_2026-04-15.md §7)
# must never get committed or shipped in sdist.
.release_notes_*.md
upload*.log

# Environment secrets
.env
.env.*

# Claude Code / Cowork session-local settings.
# Stage C.2 (re-)introduced the tracked `.claude/hooks/` and
# `.claude/settings.local.json` subtree — those wire the SessionStart
# + PreCompact hooks to the v0.4.0 CLI.
# v0.6.11 added `.claude/agents/` and `.claude/commands/` for the
# 5 fungal-named subagents + 5 myco-* slash commands (project-level
# mirror of the plugin-bundle scope at <repo>/agents/ + <repo>/commands/).
# See docs/architecture/L2_DOCTRINE/boundary.md
# § "Subagents and slash commands (v0.6.11+)" for the surface contract.
# Everything else under .claude/ remains session-local and untracked.
/.claude/*
!/.claude/hooks/
!/.claude/settings.local.json
!/.claude/agents/
!/.claude/commands/
# Pre-rewrite tree. C.4 deleted it from git, but belt-and-suspenders:
# a top-level ignore rule means that even if a stray copy of the
# directory reappears in the working tree (restored backup, mount-point
# ghost, etc.), `git add` will refuse to re-stage it.
legacy_v0_3/

# Myco runtime substrate state (generated at runtime, not source of truth).
# v0.7.2: switched from per-file list to wildcard so future state files
# (like shim_hits.json from MB8 telemetry) don't accidentally land in
# git. Explicit prior list preserved as comment for archaeology.
#   .myco_state/sessions.db .myco_state/boot_brief.md
#   .myco_state/autoseeded.txt .myco_state/decay_baseline.yaml
#   .myco_state/search_misses.yaml .myco_state/excretion_counter.json
#   .myco_state/graph.json (pre-v0.7.2 explicit entries)
.myco_state/**

# Graph-builder benchmark cache. Generating a 10 K-file synthetic
# substrate is expensive (~minutes wall-time, ~150 MB on disk) so
# tests/benchmark/test_graph_scale.py caches it locally and reuses
# across runs. The cache is per-developer-machine; never commit it.
tests/benchmark/.cache/
