# schemas/header-exceptions.txt — final form
#
# Encodes the categorical authorship-header exception list from
# spec §4.6.4 as a glob fixture. Each non-comment, non-blank line is a
# pathspec relative to the working-tree root. Patterns honor
# fnmatch-style globbing with `**` segment expansion (recursive
# directory match), so `**/vendor/**` matches every file in any
# `vendor/` subtree.
#
# Authored as a draft at the coverage-map sub-phase, ratified
# operator-approved-as-is at the banner-ratification sub-phase, and
# locked here at the fixture-and-injector sub-phase alongside the
# canonical banner fixture (`schemas/authorship-header.txt`) and the
# injector scripts (`scripts/inject-header.{sh,py}`). Any future
# amendment requires re-firing the banner-ratification structured inquiry
# and producing a new ratification record.
#
# Lines beginning with `#` are comments. Blank lines are ignored.

# --- Fixture self-exemption ---------------------------------------------------
# The canonical banner fixture IS the byte-exact banner content; injecting
# the banner into the fixture would produce a recursive header-of-header.
schemas/authorship-header.txt

# --- Categorical filename exemptions -----------------------------------------
# The legal instrument itself; carries its own copyright line that the
# license-author-consistency validator verifies is present in LICENSE.
LICENSE
LICENSE.md
LICENSE.txt
NOTICE

# Version string, single-line by convention.
VERSION

# --- Categorical extension exemptions ----------------------------------------
# JSON has no comment syntax; sibling `<file>.NOTICE.md` carries
# attribution where required.
**/*.json

# Lockfiles — machine-managed; banner would churn on every dependency
# update and provoke spurious diffs.
**/*.lock
**/package-lock.json
**/yarn.lock
**/pnpm-lock.yaml
**/Cargo.lock
**/Pipfile.lock
**/poetry.lock
**/uv.lock
**/go.sum

# --- Vendored / third-party trees --------------------------------------------
# Upstream attribution must not be overwritten with our banner.
**/vendor/**
**/third_party/**
**/node_modules/**

# --- Audit / planning ephemera ------------------------------------------------
# Out of scope of the published tree (gitignored).
.audit/**
.plans/**
projects/**
memory/**

# --- Test fixtures ------------------------------------------------------------
# Byte-exact text and claim-list fixtures consumed by the validators
# at `src/apothem/conformity/`. Validators match the fixture content against
# narrative-presence checks elsewhere in the tree, so injecting a
# banner would corrupt the byte-exact reference. Test source files
# (`test_*.py`, `conftest.py`) under `tests/fixtures/` carry the
# banner; only the data fixtures themselves are exempt.
tests/fixtures/**.yaml
tests/fixtures/**.yml
tests/fixtures/**.txt
tests/fixtures/**.json

# --- Empty-marker files -------------------------------------------------------
# Semantically zero-byte; banner would defeat their purpose.
**/.keep
**/.gitkeep

# --- AUR machine-parseable manifest -------------------------------------------
# `.SRCINFO` is generated via `makepkg --printsrcinfo` from `PKGBUILD`. Its
# parser admits only `key = value` rows under `pkgbase = ...` / `pkgname = ...`
# stanzas and does not tolerate comment lines; injecting the banner would
# produce a malformed manifest and break AUR-side ingestion.
**/.SRCINFO

# --- Generated / minified -----------------------------------------------------
# Generated files carry an upstream `Generated by ...` marker; minified
# bundles are derived artifacts.
**/*.min.js
**/*.min.css
**/generated/**

# SVG is XML, and XML comments cannot contain the `--` sequences used by
# the canonical decorative banner. SVG assets are covered by the asset
# provenance README and generated raster outputs instead of an inline banner.
**/*.svg

# --- Binary extensions --------------------------------------------------------
# Banners cannot be embedded in opaque byte streams.
**/*.png
**/*.jpg
**/*.jpeg
**/*.gif
**/*.ico
**/*.webp
**/*.pdf
**/*.zip
**/*.tar
**/*.gz
**/*.tgz
**/*.7z
**/*.rar
**/*.exe
**/*.dll
**/*.so
**/*.dylib
**/*.bin
**/*.pyc
**/*.pyo
**/*.woff
**/*.woff2
**/*.ttf
**/*.otf
**/*.eot
**/*.mp3
**/*.mp4
**/*.webm
**/*.mov
**/*.avi
