__pycache__/
*.py[cod]
*.egg-info/
build/
dist/
.venv/
venv/
.pytest_cache/
.hypothesis/
.coverage
htmlcov/
.mypy_cache/
.ruff_cache/
.DS_Store

# AGENTS.md was ignored here from 2026-08-26 to 2026-08-31, on the ruling that
# an unenforced second copy of CLAUDE.md is the defect this project has spent
# the most time repairing. The ignore is REMOVED, and what removed it is that
# ruling's own failure mode: ignoring a file is not a mechanism. It came back
# anyway -- untracked, four days stale, still printing the pre-layering test
# recipe -- and an agent session read it as this repository's instructions,
# because that is the name those tools look for first. Nothing could have
# reported it, precisely because it was ignored.
#
# It is now tracked and held byte-identical to CLAUDE.md by
# tests/test_agent_notes_are_one_file.py, which is the price CLAUDE.md itself
# named for keeping it. One document, two names, one test.

# Session handover notes: written for one execution session, addressed to the
# next reader, true only while that session is open.
_*handoff*.md
_*HANDOFF*.md

# The test and verification runners' own scratch, per CLAUDE.md's recipe.
# Keep the prefixes narrow: repository documentation and arbitrary XML/log
# files remain visible, while labelled runs such as run.p3.* and verify.gate.*
# do not invite an accidental `git add -A`.
run*.log
run*.exit
run*.junit.xml
verify*.log
verify*.exit
verify*.junit.xml

# The same artifacts in their DIRECTORY form. The patterns above match flat
# files only, so `runs/p3-baseline-XXXX/{log,exit,junit.xml}` and a session
# scratch directory both stayed visible in `git status` after those patterns
# landed -- the very condition they were added to close. A check that asks
# `git check-ignore` about four names it chose itself cannot see the layout it
# did not ask about; the R0 close-out's gitignore row is corrected on this
# point rather than left reading as complete.
runs/
scratchpad/

# Local agent handoffs and installation backups
/.agent-state/

# Agent tooling and per-session files: locally installed skills, agent
# worktrees and settings, browser-automation logs, and planning notes written
# for one session. Leading slashes anchor these to the repository root.
/.agents/
/.claude/
/.playwright-mcp/
/task_plan.md
/progress.md
/findings.md
/TODO.md

# TRIS research outputs under examples: 13 MB of JSON and figures, kept local.
# The two published background tables are tracked inputs:
# tests/test_tris_rsb_external.py reads v2 through tris_rsb_external.py.
/examples/inference/data/*
!/examples/inference/data/tris_rsb_background_v1.json
!/examples/inference/data/tris_rsb_background_v2.json

# Plans, specifications and records of past work sessions, kept local. The
# design and the block-methodology guide moved out of this directory to
# docs/design.md and examples/inference/block_methodology_design.md.
/docs/superpowers/

# Dated run reports of the TRIS campaign, kept local with the outputs above.
/examples/inference/PHYSICAL_*.md
/examples/inference/RSB_*.md
/examples/inference/*_CONTRACT_*.md
