# >>> fux: not indexed >>>
# a committed list said not to index these. Rewritten by every `fux ingest`.
# Delete a line and it comes back next run unless the list that rejected it changed.
archive/handoff/v0.30.0-claude-md.diff                                                     # not an indexed file type
archive/handoff/v0.30.0-m1-claude-md-build-test.diff                                       # not an indexed file type
archive/handoff/v0.31.0-claude-md-layout.diff                                              # not an indexed file type
archive/handoff/v0.32.0-adr-numbering.diff                                                 # not an indexed file type
archive/v0.1/fux/assets/graph_boot.js                                                      # not an indexed file type
archive/v0.1/justfile                                                                      # not an indexed file type
archive/v0.1/uv.lock                                                                       # not an indexed file type
archive/v0.26-docs/architecture-flow.mermaid                                               # not an indexed file type
archive/v0.26/src/fux/embed/data/model.bin                                                 # not an indexed file type
archive/v0.26/uv.lock                                                                      # not an indexed file type
docs/adr/RULE-SINCE                                                                        # not an indexed file type
work/regression/2026-08-20-r5-hook-latency/evidence/run.log                                # not an indexed file type
work/regression/2026-08-20-r6-merge-driver/evidence/run.log                                # not an indexed file type
work/regression/2026-08-20-refer-plane-r4/evidence/run.log                                 # not an indexed file type
work/regression/2026-08-21-r7-preliminary-analysis/evidence/byte_breakdown.out             # not an indexed file type
work/regression/2026-08-21-r7-preliminary-analysis/evidence/pack_compression.out           # not an indexed file type
work/regression/2026-08-22-graph-acceptance/evidence/graph-json.sha256                     # not an indexed file type
work/regression/2026-08-22-r6-rerun/evidence/run.out                                       # not an indexed file type
work/regression/2026-08-23-fork3-per-field-bound/evidence/bench-run.log                    # not an indexed file type
work/regression/2026-08-23-fork3-per-field-bound/evidence/diff10k.log                      # not an indexed file type
work/regression/2026-08-23-fork3-per-field-bound/evidence/real-corpus-10k.log              # not an indexed file type
work/regression/2026-08-23-r5-rerun-after-code-removal/evidence/scaling-after-phase7.log   # not an indexed file type
work/regression/2026-08-23-r5-rerun-after-code-removal/evidence/scaling-run.log            # not an indexed file type
# <<< fux: not indexed <<<

# >>> fux: skipped >>>
# fux opened these and could not read them. Rewritten by every `fux ingest`.
# These are the ones worth a look. Fix the file and delete its line.
archive/v0.26/tests_e2e/corpus/docs/binary.md   # binary
# <<< fux: skipped <<<

# What fux does NOT index. Same grammar as .gitignore, and it is the ONE place
# exclusions belong -- this file is read before anything else, so a line here
# beats .fux/sources/dirs and .fux/sources/types both.
#
#   build/                 a DIRECTORY named build, at any depth (and all of it)
#   *.log                  a name glob; `*` never crosses a `/`
#   /notes.md              a leading `/` anchors at the repo root
#   docs/build             ANY `/` anchors -- this is not `build` at any depth
#   work/**/evidence       `**` is the explicit any-depth form
#   [0-9][0-9]-draft.md    character classes work; [!0-9] negates one
#   !keep.log              `!` RE-INCLUDES, exactly as in .gitignore
#
# LAST MATCH WINS, so order matters here and nowhere else in .fux/. And as in
# git, a file under an ignored DIRECTORY cannot be re-included: `build/` then
# `!build/keep.md` keeps nothing.
#
# `!` MEANS THE OPPOSITE HERE OF WHAT IT MEANS IN .fux/sources/. There `!`
# subtracts; here it adds back. That is the price of the file behaving like the
# one you already know. `fux ingest` warns if the same pattern is written in
# both places, which is where the confusion would actually bite.
#
# A `!` LINE OVERRIDES THE TYPE ALLOWLIST. `!*.py` really does index Python --
# as RAW BYTES, because no decoder claims .py, which is the exact shape
# .fux/sources/types exists to prevent. It takes a line you wrote to get there.
#
# ONE DIVERGENCE FROM GIT, ON PURPOSE: a `#` after whitespace starts a comment,
# so `*.log   # noisy` is a pattern plus a note. Git reads that whole line as a
# pattern and matches nothing.
#
# THIS FILE IS OPTIONAL AND STARTS EMPTY. Absent or all-comments means nothing
# is ignored -- unlike .fux/sources/types, where an empty file is an error,
# because this one only ever subtracts and so can never empty an index.
#
# See ADR-FUXIGNORE.

# --- hand-written -------------------------------------------------------
# ⚠ RE-ADDED 2026-08-27 after these two lines were lost. The engine was
# cleared: `setup._write_if_missing` returns early on an existing file, and
# `write_blocks` preserves everything outside its markers through a second
# run, an empty set and a no-op -- all five paths are now covered by
# tests/ingest/test_fuxignore_preserves_hand_lines.py. The loss came from
# OUTSIDE the engine, and its shape is a full-file write from a stale staged
# copy. These two collapse ~257 generated lines on this repo.
__pycache__/
*.py[cod]
*.py
*.sh
