Host chapters were absorbing editor addFunc names after the layout nest because the checker rglob'd top-level folders. Skip nested module dirs so NAME still matches the existing docs and gap list.
Co-authored-by: Cursor <cursoragent@cursor.com>
scripts/check_bindings.py now treats pre-existing doc gaps as registered
debt: scripts/check_bindings_gaps.txt (module:binding, regenerated via
--write-gaps, 857 entries) turns them into warnings, while any NEW bound
name missing from its doc chapter fails the check. make check/bindings and
the CI layering job now run the full --strict check instead of the ten
newly-authored chapters, so docs cannot silently drift from bindings
anywhere in the tree.
- scripts/check_bindings.py: scans every addFunc/addVar in src/modules and
greps the matching docs/usr/modules chapter. Missing names are warnings by
default (large pre-existing doc debt); --strict + --modules turn them into
CI failures. Wired as make check/bindings and a step in the CI layering
job for the ten newly-authored chapters (avatar, buildingfx, camera,
database, dialogue, grid, housegen, sceneloader, stylize, virtualgeometry),
so those chapters cannot silently drift from the bindings.
- test/binding_selfcheck.cpp: builds a script VM with every module exposed,
constructs the light modules and asserts curated hot bindings exist
(eve.reflect itself is covered by the existing ReflectScript test).