Skip to content

fix(perl): correct misdiagnosed tri-comparison ledger entry crediting tree-sitter - #2307

Merged
squid-protocol merged 1 commit into
mainfrom
fix/perl-tri-comparison-forward-declaration-ledger
Aug 27, 2026
Merged

fix(perl): correct misdiagnosed tri-comparison ledger entry crediting tree-sitter#2307
squid-protocol merged 1 commit into
mainfrom
fix/perl-tri-comparison-forward-declaration-ledger

Conversation

@squid-protocol

Copy link
Copy Markdown
Owner

Summary

perl/function/existence/agree[tree_sitter]_vs[ctags,gitgalaxy] (122 occurrences) was
credited to tree_sitter with the verdict "GitGalaxy misses subroutines with prototypes or
signatures" (Antigravity, 2026-08-24). That's a misdiagnosis -- it's what was dragging perl's
Func Precision badge onto tree-sitter and making perl look worse than GitGalaxy vs.
tree-sitter, when it isn't.

Direct re-verification (a raw galaxyscope scan of the real corpus file, plus running the
actual tri_comparison_gatherer.py pipeline against exiftool/ExifTool.pm) shows:

The shape only exists because tri_comparison_reconcile.py pairs same-named occurrences by
rank (1st-with-1st, 2nd-with-2nd): tree_sitter's phantom forward-declaration entry sorts first
by line number, so GitGalaxy/ctags' single real occurrence gets rank-paired against
tree_sitter's phantom rank-1 entry instead of its real one -- stranding tree_sitter's real
occurrence as apparently "tree_sitter-only." GitGalaxy isn't missing anything here.

Changes

  • docs/self_scan/tri_comparison_ledger.json -- corrected the one entry (credit_tools
    cleared, verdict + investigation metadata replaced with the re-verified finding). Everything
    else in the diff is the routine last_reconciled_at timestamp refresh from a required
    --all --write regen (no other shape's status/verdict/credit changed).
  • docs/self_scan/tri_comparison_chart.svg -- regenerated. Perl's Func Precision badge flips
    from tree-sitter to GitGalaxy: both are verified 100% correct, but tree-sitter's raw claim
    count included the phantom duplicates, so its confirmed precision is actually 941/1063, not
    1063/1063. Summary tally: GitGalaxy best 25->26, tree-sitter best 3->2.

Verification

  • ctags --version confirmed genuine Universal Ctags 5.9.0 (not the arduino-ctags shadow
    incident from Fix #1892: COBOL func_start regex reserved word shield #2111) before regenerating.
  • Diffed the full ledger regen field-by-field -- confirmed only this one entry's
    verdict/investigated_by/investigated_at/credit_tools changed; all 182 entries got the
    expected last_reconciled_at bump and nothing else.
  • Chart diff is scoped to exactly perl's Func Precision panel + the summary tally -- no other
    language or metric moved.

Note: unrelated to open PR #2306 (typescript baseline regen) -- branched fresh off main, no
overlap in scope or files.

🤖 Generated with Claude Code

… tree-sitter

perl/function/existence/agree[tree_sitter]_vs[ctags,gitgalaxy] (122 occurrences)
credited tree_sitter with a "GitGalaxy misses subroutines with prototypes or
signatures" verdict. Direct re-verification (raw galaxyscope scan +
tri_comparison_gatherer.py against the real exiftool/ExifTool.pm corpus file)
shows GitGalaxy and ctags each correctly report exactly 1 occurrence per
sampled name, at the real definition. tree_sitter reports 2: the real
definition plus a bodyless forward declaration -- the same grammar defect
already closed as #1608. The shape only exists because tri_comparison_reconcile.py's
rank-based pairing matches GitGalaxy/ctags' single real occurrence against
tree_sitter's phantom forward-declaration rank instead of its real one,
stranding tree_sitter's real occurrence as "tree_sitter-only." Removed the
undeserved credit_tools entry and recorded the corrected verdict.

Regenerated the chart for all languages per the standing --all --write rule;
perl's Func Precision badge flips from tree-sitter to GitGalaxy (both are
verified 100%, but tree-sitter's raw claim count included the phantom
duplicates, dropping its confirmed precision to 941/1063). No other language
or shape changed status/verdict/credit -- the rest of the diff is the routine
last_reconciled_at refresh from a full regen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

🐦‍⬛ Muninn Security Scan

✅ No security issues found.

🐦‍⬛ Powered by Muninn · Skald Lab

@squid-protocol
squid-protocol merged commit c66e1fb into main Aug 27, 2026
3 checks passed
@squid-protocol
squid-protocol deleted the fix/perl-tri-comparison-forward-declaration-ledger branch August 27, 2026 01:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant