# Build artifacts
node_modules/
target/
dist/
*.whl
*.mcpb
.mcpb-build/
*.egg-info/

# Python
.venv/
__pycache__/
*.pyc
*.pyo

# Compiled extensions
*.pyd
*.so
*.dll

# Entroly runtime state (per-project, generated at runtime)
.entroly/
.test_vault/

# Personal tooling
vault/
.internal/

# Scratch / debug artifacts
.tmp/
tmp/
.coverage
tasks/
logs/
telemetry/
*.restored
tuning_config.json
tuning_config.*.bak.json
entroly-report.html
training_data.jsonl

# Benchmark workflow artifacts (regenerated each run)
bench/results.tsv
bench/.cache/
bench/results_*.json
bench/quality_eval_results.json
# Underscore-prefixed bench files are run-specific caches, logs, and
# scratch scripts — never check in. Spare __init__.py / __pycache__.
bench/_*
!bench/__init__.py
# benchmarks/results/ — keep evidence (JSON results, MD reports) so they
# can be linked from README as proof. Only large caches and run logs are
# ignored. NEVER blanket-ignore the whole dir again.
benchmarks/results/*_cache.json
benchmarks/results/_*.log
benchmarks/results/_*.tmp
bench_section.md
bench_output.txt
test_output.txt
entroly-wasm/pkg/
entroly-wasm/*.tgz

# Build and lint logs
*_errors.txt
*_errors2.txt
*_output.txt
*_dump.txt
*_list.txt

# IDE / editor
.idea/
claudecode/
*.swp
*.swo

# JetBrains plugin build and sandbox state
extensions/jetbrains/.gradle/
extensions/jetbrains/.intellijPlatform/
extensions/jetbrains/build/

# .vscode and .claude: track the shared project files, ignore personal overrides.
.vscode/*
!.vscode/mcp.json
!.vscode/settings.json
!.vscode/extensions.json
!.vscode/launch.json
!.vscode/tasks.json
.claude/*
!.claude/settings.json
.claude/settings.local.json

# OS
.DS_Store
Thumbs.db

# Test / CI caches
.pytest_cache/
.ruff_cache/
.entroly_verification.json

# Test artifacts (should not be committed)
.test_ravs_log/

# Generated belief artifacts (never commit)
.entroly/
entroly-wasm/.entroly/

# Rust build artifacts (lint output, never commit)
**/clippy_errors.txt

# Secrets — NEVER commit (live API keys live here)
.env
.env.*
!.env.example

# Stray research artifact (large external HTML dump, not project code)
halueval_paper.html

# Registry publisher is downloaded and checksum-verified in CI; never commit binaries.
/mcp-publisher
/mcp-publisher.exe
/mcp-publisher_*.tar.gz
/mcp-publisher.tar.gz

# Fabricated benchmark output from `coding_tasks.py --simulate`. Quarantined
# outside benchmarks/results/ so it can never be mistaken for measured
# evidence; committing it would defeat the point of the quarantine.
benchmarks/simulated/

# Local scratch: clean-install venvs and throwaway artifacts
tmp/
/package.json
/package-lock.json

# Coverage artifacts. `pytest --cov` writes these into the working tree, and a
# 3.4 MB coverage.json was one `git add -A` away from being committed.
.coverage
.coverage.*
coverage.json
coverage.xml
htmlcov/

# Source snapshots and stray archives. An 8 MB copy of this repository at
# v1.0.78 was once committed here as e178.tar.gz; these patterns stop a
# release tarball or scratch archive from landing in source control again.
/*.tar.gz
/*.tgz
/*.zip
/*.whl

# Scratch files that accumulate at the root during development.
/.tmp*
/fix.py
/g_arch.json
/site/

# Outreach strategy drafts. These describe how and when to approach external
# maintainers and do not belong in a public repository; two were swept in by a
# `git add -A` once already.
marketing/launch/*strategy*.md
marketing/launch/*recovery*.md

# Internal AI session artifacts (prompts, handoffs, work ledgers)
docs/PR*_*.md
docs/ENTROLY_WIN_MASTER_PROMPT.md
/RELATE_X_MASTER_PROMPT.md

# SEO landing pages (serve from a separate site, not the source repo)
docs/*.html
docs/assets/demo.html

# Per-version release notes (use GitHub Releases or CHANGELOG.md)
docs/releases/

# Competitive analysis and iterated protocol drafts
benchmarks/competitive_*
benchmarks/model_recovery_protocol_v[2-9]*.json
benchmarks/recovery_resilience_protocol_v[2-9]*.json

# SEO/marketing tracking (internal)
docs/discoverability-registry.json

# Developer-local MCP config
.mcp.json

# Vendored external checkout used for local comparison only. It is a nested
# git repository, so staging it would create a broken gitlink, and whole-tree
# scans (name policy, symbol walks) traverse it and stall.
openclaw_repo/
