# Local operating-system files
.DS_Store
Thumbs.db

# Python environments and caches
.venv/
venv/
.mypy_cache/
.pytest_cache/
.ruff_cache/
.uv-cache/
__pycache__/
*.py[cod]
*.egg-info/

# Build and test output
build/
dist/
.coverage
.coverage.*
htmlcov/
coverage.xml
junit*.xml
# …except the retained fault-matrix report: docs/evidence/poc/fault-matrix/
# junit.xml IS evidence (the harvest's committed junit), not tool state.
!docs/evidence/poc/fault-matrix/junit.xml

# Wheel-only vendored trees (hatch force-include -> benchweave/_vendored/).
# Nothing creates src/benchweave/_vendored/ in a checkout; the guard keeps a
# stray copy from ever being committed, so packaged-first vendoring resolution
# (src/benchweave/vendoring.py) can never flip to a stale tree copy.
src/benchweave/_vendored/

# Local configuration and credentials; keep shareable templates
.env
.env.*
!.env.example
!.env.template

# Editor state
.idea/
.vscode/
*.swp
*.swo

# Memory-proposal ledger: session findings queued for the vault (see .claude/memory-protocol.md)
.claude/memory-proposals.jsonl
.claude/memory-proposals.jsonl.tmp
.claude/memory-proposals.drained.jsonl
.claude/memory-proposals.deadletter.jsonl
.claude/memory-proposals.lock
.claude/memory-drain-receipt.json
.claude/memory-drain-receipt.json.tmp
.claude/memory-drain-receipts.jsonl
.claude/memory-drain-receipts.jsonl.tmp
.claude/settings.local.json

# Gortex daemon state and generated skill shims (regenerated locally)
.gortex/
.claude/skills/generated/

# Registry fixture SIGNING KEYS: public halves committed, private halves are
# GitHub repo secrets (materialised by CI) or local untracked copies — never committed.
fixtures/registry/keys/main.pem
fixtures/registry/keys/originb.pem

# Dev registry output (publish_dev.py): unsigned local releases, never committed
.dev-registry/

# Gortex-generated cross-harness instruction shims (regenerated locally)
GEMINI.md
opencode.json
.agents/
.continue/
.gemini/
.opencode/
.pi/
.github/copilot-instructions.md
.github/skills/

# Gortex git-hook artifacts — the post-merge hook regenerates all three
# (gortex export --format mermaid, gortex wiki, gortex docs); local-only.
wiki/
docs/architecture/
CHANGELOG_AUTO.md

# Executing-plans checkpoint state (transient)
.checkpoint-state.json

# Local visual brainstorming sessions
.superpowers/

# In-progress planning, design and ISA docs — kept local by default so half-formed state
# doesn't ship (muninndb convention). `git add -f` a doc here if it documents something
# that landed. ISA.html render lives here alongside its source.
docs/superpowers/

# Standards SDK bundle output (python -m benchweave.standards export)
.standards-bundle/
.standards-bundle.staging/

# Device-plugin local vendored contracts: fetched-and-verified copies of the
# standards corpus produced by each plugin's fetch_contracts.py from its
# committed lock (lock.json IS tracked; the bytes are a reproducible cache).
plugins/*/*/contracts/*-*.*.*/

# Public site assembly (scripts/assemble_docs_site.py) — build output, never committed.
# Anchored to the repo root: an unanchored `site/` also matched the SDK
# submodule's vendored src/benchweave_sdk/preview_assets/site/ tree once
# hatchling applied these ignores during packaging, dropping it from sdists.
/user_guide/
/great-docs/
/_great_docs_build/
/.great-docs/
/.great-docs-cache/
/site/
/standards_pages/

# Gate wrapper retained logs (scripts/gate.py) — per-run evidence, pruned to
# the last 20 runs by the wrapper itself. Anchored: a nested gate-logs/ must
# never be hidden.
/.gate-logs/

# Design records: private/ holds pre-promotion designs (see .claude/deep-review/README.md)
.claude/deep-review/private/

# Parallel-lane worktrees (session-CWD-anchored gortex overlays; see AGENTS.md)
/.wt/
