Static-analysis tool for the pre-1.0 API freeze: walks src/**/*.cpp with
tree-sitter-cpp, locates every PyMethodDef and PyGetSetDef array initializer,
and classifies each entry's docstring slot as MACRO / RAW_STRING / NULL /
MISSING. The MACRO classification (MCRF_METHOD or MCRF_PROPERTY from
McRFPy_Doc.h) is the project's compliance target; raw string literals and
NULL docs predate the macro system and need migration before the 1.0 freeze.
Features:
- Per-file table (file:line, array, entry, classification) plus summary
footer with totals, per-kind breakdown, % MACRO compliance, and a
ranked list of the worst-offender files.
- --strict exits nonzero when any non-MACRO entries are present (CI use).
- --quiet suppresses per-file tables and prints only the summary.
- --paths PATH [PATH ...] limits the scan to specific files / directories.
- Sentinel terminator entries ({NULL}, {0}) are filtered out.
- Concatenated string literals and parenthesized expressions are handled.
Dependencies live in a project-local .venv-audit (added to .gitignore) so
no system Python pollution. tools/generate_all_docs.sh now invokes the
auditor at the end (informational, no --strict) so doc regeneration
surfaces compliance drift alongside the generated docs themselves.
Initial baseline on the current tree: 755 entries scanned, 340 MACRO
compliant (45.0%). Top offenders: UIEntity.cpp (51), 3d/PyVoxelGrid.cpp
(36), 3d/Viewport3D.cpp (31), UIGridPyProperties.cpp (30),
3d/Entity3D.cpp (28).
Refs pre-1.0 documentation freeze.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
58 lines
799 B
Text
58 lines
799 B
Text
*.swp
|
|
*.swo
|
|
bin
|
|
.msvc-intermediate/
|
|
*.bak*
|
|
PCbuild
|
|
.vs
|
|
obj
|
|
build
|
|
/lib
|
|
__pycache__
|
|
|
|
# unimportant files that won't pass clean dir check
|
|
build*
|
|
docs
|
|
.claude
|
|
my_games
|
|
|
|
# images are produced by many tests
|
|
*.png
|
|
|
|
# WASM stdlib for Emscripten build
|
|
!wasm_stdlib/
|
|
|
|
.cache/
|
|
7DRL2025 Release/
|
|
CMakeFiles/
|
|
Makefile
|
|
*.zip
|
|
__lib/
|
|
__lib_debug/
|
|
__lib_windows/
|
|
build-windows/
|
|
build_windows/
|
|
_oldscripts/
|
|
|
|
# Audit tooling virtualenv (tools/audit_pymethoddef.py)
|
|
.venv-audit/
|
|
assets/
|
|
cellular_automata_fire/
|
|
deps/
|
|
fetch_issues_txt.py
|
|
forest_fire_CA.py
|
|
mcrogueface.github.io
|
|
scripts/
|
|
tcod_reference
|
|
.archive
|
|
.mcp.json
|
|
dist/
|
|
|
|
# Keep important documentation and tests
|
|
!CLAUDE.md
|
|
!README.md
|
|
!tests/
|
|
|
|
# Fuzzing build artifacts and runtime data (build-fuzz matched by build* above)
|
|
tests/fuzz/corpora/
|
|
tests/fuzz/crashes/
|