Part of #2560 — per-language tracking for the keyword-rosetta control corpus (built for #1096). Planted intent is identical in every language, so every deviation below is measured bias vs. the 46-language median, validated in the corpus's deviation ledger. 🔴 = beyond ±50% of the cross-language median, 🟡 = ±25–50%.
Triage order (per the epic): structure detection first, then signal/keyword rules, then risk-score consequences — §3's numbers are downstream of §1–§2 and re-baseline as those fix. Cross-cutting engine issues (e.g. #2535/#2546) fix many languages at once; this issue tracks this language's residual after each cross-cutting fix lands, and closes when the language sits inside the ±25% band on every comparable metric (or every remaining deviation is ledgered as intended morphology).
1. Structure detection (fix first)
- 🔴
dependency_links: 0 vs median 3 (-100%)
2. Signal / keyword deviations
- 🔴
planned_debt: 2 vs median 1 (+100%)
- 🟡
branch: 3 vs median 5 (-40%)
- 🟡
high_risk_execution: 3 vs median 2 (+50%)
- 🟡
state_mutation: 3 vs median 6 (-50%)
3. Risk-exposure consequences (downstream)
- 🔴
risk_api_exposure: 0 vs median 5.31104 (-100%)
- 🔴
risk_cognitive_load: 4 vs median 15.1444 (-74%)
- 🔴
risk_tech_debt: 80 vs median 39.9576 (+100%)
Ledgered shapes touching scheme
| defect |
type |
issue |
evidence |
summary |
census-requires-git-tracked |
engine-semantic |
— |
— |
GalaxyScope's census enumerates git-tracked files only; an untracked folder scans as '0 files mapped' with no per-file warning |
batch4-dual-keyword-overlaps |
keyword-overlap |
— |
— |
Collective entry for batch 4's finditer-confirmed dual-rule keywords, each detailed in its language's manifest notes: agc RESUME (cleanup+branch), livecode global (globa… |
cobol-hyphen-identifier-debt-leak |
upstream-bug |
#2537 |
— |
Debt rules are whole-text, not comment-anchored, and '-' is a regex word boundary: HACK-LEVEL (data item, 2 code occurrences) counts fragile_debt, PROBE-TODO (paragraph … |
no-dependency-capture-languages |
upstream-question |
— |
— |
m4 and scheme have _dependency_capture = None: include()/(import ...) count the import signal but can never produce a DAG edge, so popularity stays 0 and orphans never c… |
string-literal-selective-shielding |
upstream-question |
#2535 |
— |
Keywords inside one string literal ('if eval fails, try open') count toward branch (+2), safety (+1), io (+1) but eval does NOT count toward high_risk_execution (routes … |
Decoy outcomes (file-level evidence)
- b.scm ·
(set! note "if eval fails, try open") (string): scheme's branch keywords are sexp-anchored — bare 'if' inside the string does NOT count branch (syntax shielding) — but bare eval DOES count high_risk +1 (its rule is not anchored). state stayed exactly 3 raw, no flux (no branch context). Shielding by anchoring, a fourth profile.
- c.scm ·
(define (probe-todo plan) ...) (code): COUNTED: hyphen is a word boundary so \bTODO\b matches inside probe-todo — planned_debt 2 (comment + identifier). Scheme joins cobol in gitgalaxy#2537's hyphenated-identifier debt leak.
Reproduce / evidence
Part of #2560 — per-language tracking for the keyword-rosetta control corpus (built for #1096). Planted intent is identical in every language, so every deviation below is measured bias vs. the 46-language median, validated in the corpus's deviation ledger. 🔴 = beyond ±50% of the cross-language median, 🟡 = ±25–50%.
Triage order (per the epic): structure detection first, then signal/keyword rules, then risk-score consequences — §3's numbers are downstream of §1–§2 and re-baseline as those fix. Cross-cutting engine issues (e.g. #2535/#2546) fix many languages at once; this issue tracks this language's residual after each cross-cutting fix lands, and closes when the language sits inside the ±25% band on every comparable metric (or every remaining deviation is ledgered as intended morphology).
1. Structure detection (fix first)
dependency_links: 0 vs median 3 (-100%)2. Signal / keyword deviations
planned_debt: 2 vs median 1 (+100%)branch: 3 vs median 5 (-40%)high_risk_execution: 3 vs median 2 (+50%)state_mutation: 3 vs median 6 (-50%)3. Risk-exposure consequences (downstream)
risk_api_exposure: 0 vs median 5.31104 (-100%)risk_cognitive_load: 4 vs median 15.1444 (-74%)risk_tech_debt: 80 vs median 39.9576 (+100%)Ledgered shapes touching scheme
census-requires-git-trackedbatch4-dual-keyword-overlapscobol-hyphen-identifier-debt-leakno-dependency-capture-languagesstring-literal-selective-shieldingDecoy outcomes (file-level evidence)
(set! note "if eval fails, try open")(string): scheme's branch keywords are sexp-anchored — bare 'if' inside the string does NOT count branch (syntax shielding) — but bare eval DOES count high_risk +1 (its rule is not anchored). state stayed exactly 3 raw, no flux (no branch context). Shielding by anchoring, a fourth profile.(define (probe-todo plan) ...)(code): COUNTED: hyphen is a word boundary so \bTODO\b matches inside probe-todo — planned_debt 2 (comment + identifier). Scheme joins cobol in gitgalaxy#2537's hyphenated-identifier debt leak.Reproduce / evidence
data/scheme/—expected_signals.jsoncarries the shape-by-shape accountingGALAXYSCOPE_BIN=<venv>/bin/galaxyscope python tools/verify_language.py schemein the corpus repo