# Pre-commit Framework Configuration — catalog/ (own repo: prvng_extensions.git) # # catalog/ is a separate git repository (remote prvng_extensions.git), with # plural independent consumers beyond this one code/ checkout — NOT a submodule # (no .gitmodules entry). scripts/witness.nu and .governance/laws.ncl # (+laws-schema.ncl, laws.ncl.minisig, witness.pub) are NATIVE to catalog/ — its # own governance, ratified and signed here directly, never vendored from code/ # or anywhere else (see # provisioning/.coder/2026-07-03_laws-catalogo-provisioning.plan.md §12: no # consumer, code/ included, ever needed its own copy of catalog's own rules). # Hidden under .governance/ per code/.claude/layout_conventions.md's own # precedent (matches .claude/'s profile: tracked, team/agent-facing, not # product docs) — not a bespoke visible root directory (see plan §13). # .governance/receipts/ tracks only named wo-*.jsonl milestones (its own # .gitignore); routine pre-commit/CI runs are untracked logs, not evidence. # # schemas/ IS still vendored from code/ (a real cross-repo Nickel-import # dependency, not governance) via code/scripts/sync-catalog-schemas.nu — a # stopgap `cp -R` pending the OCI/zot content-addressed distribution this # project's own ADR-046 already specifies for shared structural contracts (see # that script's header for the full prerequisite chain, not yet bootstrapped). # # Self-contained either way: no reference to a parent directory needed at # commit time. See plan §8 T4, §11, §12. repos: - repo: local hooks: - id: catalog-laws name: Standing laws (L1 no-parsing-on-targets, L3 versions-from-lock) via witness.nu entry: bash -c 'export NICKEL_IMPORT_PATH="$(pwd)" && nu scripts/witness.nu .governance/laws.ncl .governance/receipts/pre-commit.jsonl --pubkey .governance/witness.pub --wo pre-commit' language: system pass_filenames: false stages: [pre-commit]