.codegraph/
.playwright-mcp/
.worktrees/
.praxis/worktrees/
.claude/
.codex/
.superpowers/
.DS_Store
/bin/
/client
/praxis-ui
/praxis-native
*.test
/cachetest
race-test-output.txt
tui/.tmp_hybrid_out.txt
__debug*

# superpowers planning artifacts (kept local, not shipped)
docs/superpowers/
# Root-anchored: an unanchored `plans/` also matched docs/plans/, so a design plan
# committed there was silently ignored. Only the scratch dir at the repo root is local.
/plans/
# docs/ is TRACKED on purpose. It previously carried a blanket `/docs/` ignore so
# new docs stayed local, but that made `git add docs/...` exit 0 while doing
# nothing — a doc describing shipped behavior could silently diverge from the code
# it documents, which is exactly what happened to AUTOMODE-ARCHITECTURE.md. Docs
# that describe behavior are part of the change that alters that behavior. Keep
# genuinely local scratch under docs/superpowers/ or /plans/ above.

# goreleaser build output
/dist/

# Python SDK build artifacts. _bin/ is load-bearing: build_wheels.py drops a
# ~40MB prx binary there before each wheel build, and committing it would put a
# platform-specific binary in the source tree.
python/src/praxis_agent_sdk/_bin/
python/dist/
python/.venv/
python/.pytest_cache/
__pycache__/
*.py[cod]
.mypy_cache/
.ruff_cache/
# uv.lock is deliberately NOT committed: the package has zero runtime
# dependencies, so the lock pins only dev tools, and CI installs with pip and never
# reads it. A lockfile nothing consumes is a file that silently goes stale.
python/uv.lock
# Generated per wheel build by scripts/build_wheels.py: it names the prx version
# that build bundled. Committing it would make it a lie as soon as the binary is
# rebuilt, and the SDK treats its absence as "no bundled binary".
python/src/praxis_agent_sdk/_bundled.py

# Intermediate FileDescriptorSet from `make cursorpb` (agent.desc is the source of truth).
ai/cursorpb/agent.fdset

# Serena agent tooling state (local cache/config, not source)
.serena/
node_modules
# TypeScript SDK build output (regenerated by `npm run build`).
typescript/dist/
typescript/*.tgz
dist/

# Local prx builds (go build ./cmd/prx at the repo root).
/prx
