/target
**/target

# All tool-generated scratch / output lives under /tmp/. Single
# top-level path keeps `git status` quiet and `du -sh tmp/` answers
# "how much disk is this repo wasting" in one command.
#
# Layout (tool configuration points at these paths via the Justfile
# recipes and the relevant binaries' default args):
#   tmp/bench/    — Firefox compile-cache benchmark scratch
#                    (clones, objdirs, kache cache; tens of GB)
#   tmp/e2e/      — kache-e2e harness output (results.json)
#   tmp/llvm-cov/ — cargo-llvm-cov reports (HTML directory + JSON);
#                    raw coverage data stays under target/llvm-cov-target/
#                    (already covered by /target above).
#
# To recover disk: `rm -rf tmp/` — tools regenerate what they need.
/tmp/

# Legacy scratch locations from before the /tmp/ consolidation.
# Kept gitignored so anyone with leftover state from older tooling
# doesn't see noise in `git status`. Safe to remove once the
# corresponding paths are wiped from working trees:
#   rm -rf bench/ e2e-results/ *.profraw
# (tarpaulin-report.{json,html} dropped — coverage moved to
# cargo-llvm-cov which writes under tmp/llvm-cov/.)
/bench/
/e2e-results/
*.profraw

# Nix
/result

# Plans + ad-hoc design notes — `docs/` ships only the user-facing
# .mdx site content; `.md` files are treated as scratch.
# `**/*.md` is recursive (matches docs/foo.md and docs/sub/foo.md);
# the bare `docs/*.md` would have been top-level only.
docs/plans/
docs/planning/*
!docs/planning/.gitignore
docs/**/*.md

# Git worktrees
.worktrees/
.claude/
