docs(self-scan): validate m4 (3/3) and scheme (partial) ledger shapes - #1930
Merged
Conversation
Investigates and validates the entire m4 tri-comparison ledger backlog plus scheme's original recall-gap shape, via the tri-comparison-ledger- sweep skill: - m4/function/existence/agree[ctags]_vs[gitgalaxy] (79): clean ctags-side limitation, not a GitGalaxy defect -- every sampled occurrence is a real AC_DEFINE/AC_DEFINE_UNQUOTED autoconf helper call (emits a C preprocessor #define at build time), not an M4 macro definition. ctags' M4 parser heuristically over-tags these as function definitions; noted in ctags_reader.py alongside the existing C RICHCMP_WRAPPER precedent. - m4/function/existence/agree[gitgalaxy]_vs[ctags] (1): real GitGalaxy false positive (func_start captured the AC_DEFUN keyword itself as a function name), fixed in PR #1927. - m4/class/existence/agree[gitgalaxy]_vs[ctags] (4): real GitGalaxy false positive -- m4's class_start is None but detector.py's class-extraction fallback doesn't check that, so it matches raw C struct declarations embedded as text inside autoconf feature-test macro arguments. Filed as #1925 (broader gap, 18 other class_start=None languages not yet checked), not fixed in this sweep. - scheme/function/existence/agree[ctags]_vs[gitgalaxy] (92): confirmed catastrophic GitGalaxy engine defect (100% function recall loss for the whole language), root-caused and fixed in PR #1929. A smaller residual gap remains post-fix (58/92 found) and a new, legitimate GitGalaxy-alone shape it surfaces (real nested `define` forms ctags' parser misses) is left unvalidated for a future sweep pass. Also filed #1926 (yacc: both real corpus files silently excluded by statistical_auditor.py's anomaly sweep, likely an n=2 degenerate-cohort Z-score issue -- not root-caused to the exact triggering check, flagged for follow-up). Regenerated tri_comparison_chart.svg and tri_comparison_points_of_interest.md; diff confirmed scoped to m4 (asterisks fully cleared) and scheme (0->58/92, still asterisked since the residual gap is real and not yet fully closed). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
tri-comparison-ledger-sweepskill.AC_DEFINE/AC_DEFINE_UNQUOTEDautoconf helper call (emits a C preprocessor#defineat build time), not an M4 macro definition. ctags' M4 parser heuristically over-tags these as function definitions; documented inctags_reader.pyalongside the existing CRICHCMP_WRAPPERprecedent.func_startcaptured theAC_DEFUNkeyword itself as a function name), fixed in fix(m4): func_start captures the real macro name, not the defun keyword #1927.class_startisNonebutdetector.py's class-extraction fallback doesn't check that, so it matches raw Cstructdeclarations embedded as text inside autoconf feature-test macro arguments. Filed as detector.py's class fallback doesn't skip languages with class_start=None, causing false-positive class extraction (confirmed: m4) #1925 (broader gap, 18 otherclass_start=Nonelanguages not yet checked), not fixed in this sweep.defineforms ctags' parser misses) is left unvalidated for a future sweep pass.statistical_auditor.py's anomaly sweep, likely an n=2 degenerate-cohort Z-score issue -- not root-caused to the exact triggering check, flagged for follow-up).Regenerated
tri_comparison_chart.svgandtri_comparison_points_of_interest.md; diff confirmed scoped to m4 (asterisks fully cleared) and scheme (0→58/92 found, still asterisked since the residual gap is real and not yet fully closed).Related PRs/issues
Test plan
🤖 Generated with Claude Code