diff --git a/docs/self_scan/tree_sitter_accuracy_chart.svg b/docs/self_scan/tree_sitter_accuracy_chart.svg
index abf940226..41edf6e4d 100644
--- a/docs/self_scan/tree_sitter_accuracy_chart.svg
+++ b/docs/self_scan/tree_sitter_accuracy_chart.svg
@@ -46,7 +46,7 @@
Tree-sitter Accuracy by Language -- GitGalaxy vs. Tree-sitter, Most Recent Run
-2026-08-31T01:02:07+00:00 · commit ce1365b · 45 languages (31 tree-sitter-compared, 14 GitGalaxy-only) · source: docs/self_scan/tree_sitter_accuracy_history.csv
+2026-08-31T12:28:32+00:00 · commit 7b7cf31 · 45 languages (30 tree-sitter-compared, 15 GitGalaxy-only) · source: docs/self_scan/tree_sitter_accuracy_history.csv
Measures func_start/args/class_start NAME extraction only -- NOT GitGalaxy's structural-signature risk rules (branch/io/safety_bypasses/etc.), which are hardened and tested separately.
Value labels are raw counts (found/real or found/found+extra), not just a percentage, so each bar's sample size is visible at a glance.
css and html show n/a on the class panels by DESIGN, not as an unmeasured gap -- named class extraction was decided permanently out of scope for them (epic #1295): their class_start targets selectors/tags, not OOP-shaped entities. See tests/extraction/how_to_extend_class_start_named_extraction.md.
@@ -194,7 +194,8 @@
897/897
897/897
-n/a
+
+718 found
n/a
146/146
@@ -365,8 +366,7 @@
897/897
897/897
-
-0/721
+n/a
n/a
@@ -554,7 +554,8 @@
69/69
69/69
-n/a
+
+222 found
n/a
16/16
diff --git a/docs/self_scan/tree_sitter_accuracy_history.csv b/docs/self_scan/tree_sitter_accuracy_history.csv
index 75ac1c551..d85b0756c 100644
--- a/docs/self_scan/tree_sitter_accuracy_history.csv
+++ b/docs/self_scan/tree_sitter_accuracy_history.csv
@@ -7113,3 +7113,48 @@ timestamp_utc,commit_sha,language,files_scanned,real_functions,found_functions,e
2026-08-31T01:02:07+00:00,ce1365bb08dde2330baf013e1a7d0d57a930fa34,sqlite,73,0,734,0,0,188,0,0,0,,100.0,,100.0,0,0,0,0,0,,,,,,1,1
2026-08-31T01:02:07+00:00,ce1365bb08dde2330baf013e1a7d0d57a930fa34,yacc,2,0,27,0,0,0,0,0,0,,100.0,,,0,0,0,0,0,,,,,,1,1
2026-08-31T01:02:07+00:00,ce1365bb08dde2330baf013e1a7d0d57a930fa34,yaml,7,0,0,0,0,0,0,0,0,,,,,0,0,0,0,0,,,,,,1,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,apex,4,38,38,0,4,4,0,38,38,100.0,100.0,100.0,100.0,38,0,4,0,38,100.0,100.0,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,c,31,1713,1713,9,61,61,0,1713,1713,100.0,99.5,100.0,100.0,1713,74,61,27,1713,100.0,95.9,100.0,69.3,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,cpp,29,1370,1370,0,65,65,0,1370,1369,100.0,100.0,100.0,100.0,1362,19,65,70,1192,99.4,98.6,100.0,48.1,87.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,csharp,6,964,964,0,33,33,0,964,964,100.0,100.0,100.0,100.0,647,0,24,0,647,67.1,100.0,72.7,100.0,67.1,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,css,21,25,25,0,227,227,0,25,19,100.0,100.0,100.0,100.0,25,0,227,0,25,100.0,100.0,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,dart,7,1750,1750,0,200,200,0,1750,1750,100.0,100.0,100.0,100.0,1750,0,200,0,1750,100.0,100.0,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,fortran,6,139,139,0,11,11,0,139,138,100.0,100.0,100.0,100.0,123,0,11,0,66,88.5,100.0,100.0,100.0,47.5,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,go,14,897,897,0,69,69,0,897,822,100.0,100.0,100.0,100.0,897,0,69,0,897,100.0,100.0,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,haskell,7,146,146,1,16,16,0,146,136,100.0,99.3,100.0,100.0,146,0,16,0,146,100.0,100.0,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,html,54,37,37,0,0,0,0,37,37,100.0,100.0,,,37,0,0,0,37,100.0,100.0,,,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,java,7,318,318,0,35,35,0,318,318,100.0,100.0,100.0,100.0,318,0,35,0,318,100.0,100.0,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,javascript,17,599,599,12,29,29,0,599,554,100.0,98.0,100.0,100.0,599,2,29,0,599,100.0,99.7,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,kotlin,5,28,28,0,7,7,0,28,28,100.0,100.0,100.0,100.0,28,0,7,0,28,100.0,100.0,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,lua,109,620,620,0,0,0,1,620,574,100.0,100.0,,0.0,620,0,0,0,620,100.0,100.0,,,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,makefile,1,1,1,0,0,0,0,1,1,100.0,100.0,,,1,0,0,0,1,100.0,100.0,,,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,matlab,6,23,23,0,0,0,0,23,22,100.0,100.0,,,23,0,0,0,23,100.0,100.0,,,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,objective-c,5,153,153,1,5,5,0,153,153,100.0,99.4,100.0,100.0,153,0,5,0,153,100.0,100.0,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,perl,22,941,941,0,20,20,0,941,929,100.0,100.0,100.0,100.0,941,122,20,0,170,100.0,88.5,100.0,100.0,18.1,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,php,35,1702,1702,1,29,29,0,1702,1702,100.0,99.9,100.0,100.0,1702,0,29,0,1702,100.0,100.0,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,powershell,108,257,257,0,9,9,0,257,252,100.0,100.0,100.0,100.0,257,0,9,0,257,100.0,100.0,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,python,258,3625,3625,16,459,459,0,3625,3625,100.0,99.6,100.0,100.0,3625,0,459,0,3625,100.0,100.0,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,ruby,7,124,124,0,18,18,0,124,121,100.0,100.0,100.0,100.0,124,0,18,0,124,100.0,100.0,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,rust,43,1927,1927,0,270,270,0,1927,1927,100.0,100.0,100.0,100.0,1775,0,245,0,1775,92.1,100.0,90.7,100.0,92.1,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,scala,7,541,541,0,17,17,0,541,525,100.0,100.0,100.0,100.0,541,0,17,0,541,100.0,100.0,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,shell,206,453,452,14,0,0,0,452,441,99.8,97.0,,,453,0,0,0,305,100.0,100.0,,,67.5,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,solidity,7,99,99,6,7,7,0,99,99,100.0,94.3,100.0,100.0,99,0,7,0,99,100.0,100.0,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,swift,6,132,132,1,38,38,0,132,130,100.0,99.2,100.0,100.0,132,0,38,0,132,100.0,100.0,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,tcl,29,337,337,3,0,0,0,337,337,100.0,99.1,,,337,0,0,0,337,100.0,100.0,,,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,typescript,23,2915,2915,1,842,842,0,2915,2881,100.0,100.0,100.0,100.0,2915,1,842,0,2915,100.0,100.0,100.0,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,zig,32,2751,2751,0,649,649,0,2751,2751,100.0,100.0,100.0,100.0,2751,0,648,0,2751,100.0,100.0,99.8,100.0,100.0,0,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,abap,7,0,124,0,0,12,0,0,0,,100.0,,100.0,0,0,0,0,0,,,,,,1,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,ada,0,0,0,0,0,0,0,0,0,,,,,0,0,0,0,0,,,,,,1,0
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,agc_assembly,10,0,812,0,0,0,0,0,0,,100.0,,,0,0,0,0,0,,,,,,1,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,assembly,232,0,1108,0,0,0,0,0,0,,100.0,,,0,0,0,0,0,,,,,,1,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,cobol,560,0,10140,0,0,377,0,0,0,,100.0,,100.0,0,0,0,0,0,,,,,,1,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,dockerfile,4,0,71,0,0,77,0,0,0,,100.0,,100.0,0,0,0,0,0,,,,,,1,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,embedded_python,7,0,13,0,0,11,0,0,0,,100.0,,100.0,0,0,0,0,0,,,,,,1,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,groovy,188,0,718,0,0,222,0,0,0,,100.0,,100.0,0,0,0,0,0,,,,,,1,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,jcl,185,0,376,0,0,118,0,0,0,,100.0,,100.0,0,0,0,0,0,,,,,,1,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,livecode,98,0,964,0,0,97,0,0,0,,100.0,,100.0,0,0,0,0,0,,,,,,1,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,m4,7,0,39,0,0,0,0,0,0,,100.0,,,0,0,0,0,0,,,,,,1,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,scheme,4,0,58,0,0,0,0,0,0,,100.0,,,0,0,0,0,0,,,,,,1,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,sqlite,73,0,734,0,0,188,0,0,0,,100.0,,100.0,0,0,0,0,0,,,,,,1,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,yacc,2,0,27,0,0,0,0,0,0,,100.0,,,0,0,0,0,0,,,,,,1,1
+2026-08-31T12:28:32+00:00,7b7cf31c4ec1d6b29424755a127b751eb3c136b5,yaml,7,0,0,0,0,0,0,0,0,,,,,0,0,0,0,0,,,,,,1,1