From 1362d5155d0b2ef413e3be271608f55093fa237e Mon Sep 17 00:00:00 2001 From: John McCardle Date: Sun, 21 Jun 2026 06:45:11 -0400 Subject: [PATCH] Wire strict frozen-docstring gate into the doc pipeline (#314 F15) generate_all_docs.sh now runs check_frozen_docstrings.sh as a hard gate after doc generation: the frozen (non-3D) binding surface must stay 100% MCRF_* macro compliant, or the doc build fails. This is the docstring analog of the API-surface snapshot test -- it prevents future raw docstrings from silently regressing the frozen 1.0 documentation contract. Skipped gracefully when .venv-audit is absent; experimental src/3d/ bindings remain exempt. Refs #314 Co-Authored-By: Claude Opus 4.8 --- tools/generate_all_docs.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/generate_all_docs.sh b/tools/generate_all_docs.sh index 024c3d3..be4d07f 100755 --- a/tools/generate_all_docs.sh +++ b/tools/generate_all_docs.sh @@ -41,6 +41,14 @@ if [ -x "./.venv-audit/bin/python3" ] && [ -f "./tools/audit_pymethoddef.py" ]; echo "" echo "=== PyMethodDef / PyGetSetDef Macro Compliance Audit ===" ./.venv-audit/bin/python3 ./tools/audit_pymethoddef.py --quiet || true + + # Hard gate (#314 F15): the frozen (non-3D) binding surface must stay 100% + # MCRF_* macro compliant. This fails the doc build if any frozen file + # regresses to a raw docstring -- the docstring analog of the API-surface + # snapshot test. Experimental src/3d/ bindings are exempt. + echo "" + echo "=== Frozen docstring gate (strict) ===" + ./tools/check_frozen_docstrings.sh elif [ -f "./tools/audit_pymethoddef.py" ]; then echo "" echo "(skipping audit_pymethoddef.py: .venv-audit not found - run"