provisioning-catalog/.pre-commit-config.yaml

34 lines
1.9 KiB
YAML

# 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]