Repository navigation
rosetta[c]: cross-language consistency — 4 red / 3 amber metrics, 4 ledgered shapes #2566
Description
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)
In band — no structure-level deviations.
2. Signal / keyword deviations
- 🔴
io: 5 vs median 3 (+67%) - 🔴
state_mutation: 11 vs median 6 (+83%) - 🟡
test: 3 vs median 2 (+50%)
3. Risk-exposure consequences (downstream)
- 🔴
risk_api_exposure: 11.5689 vs median 5.31104 (+118%) - 🔴
risk_state_flux: 38.7639 vs median 19.9999 (+94%) - 🟡
risk_cognitive_load: 19.7263 vs median 15.1444 (+30%) - 🟡
risk_documentation: 79.9696 vs median 57.1208 (+40%)
Ledgered shapes touching c
| 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 |
state-flux-branch-weighting |
engine-semantic | #2546 | b.c | state_mutation is recorded x3 when branch context exists in the file ('flux' semantics, matching the state_flux column name) |
assert-overlaps-safety-and-test |
keyword-overlap | — | — | python's test rule includes \bassert\b and the safety rule includes assert: one planted assert counts both |
string-literal-selective-shielding |
upstream-question | #2535 | b.c | 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.c ·
note = "if eval fails, try open"(string): if counts branch +1, open counts io +1 (c io includes bare open/close); the assignment itself is state +1 and the phantom branch context triples probe_state's 3 raw to 9. eval inert (c high_risk has no eval). Ledger: string-literal-selective-shielding, state-flux-branch-weighting - c.c ·
int hack_level;(code): inert (underscore + lowercase)
Reproduce / evidence
- Corpus folder:
data/c/—expected_signals.jsoncarries the shape-by-shape accounting - Gate:
GALAXYSCOPE_BIN=<venv>/bin/galaxyscope python tools/verify_language.py cin the corpus repo - Full context: findings_by_language.md#c · bias_report.md · bias chart
Activity
squid-protocol commentedon Sep 3, 2026
Status: 1🔴 / 0🟡 unexplained, 8 further out-of-band cell(s) accounted for
Generated from
docs/bias_data.json+deviation_ledger.jsonbytools/issue_status.py, using the same verdict machinerybias_report.py --gateruns on (gitgalaxy#2669 E.1), so this comment and the gate cannot disagree about what is left.Still unexplained — the work this issue tracks
risk_api_exposureOut of band, but accounted for
ledgered — a validated ledger entry names this language and this metric
cog_raw— composite-nonlinearity-amplifies-in-band-inputsio— string-literal-selective-shielding, probe-idiom-collides-with-measured-signalrisk_cognitive_load— path-and-extension-modifiersrisk_documentation— path-and-extension-modifiersrisk_state_flux— path-and-extension-modifiersstate_mutation— string-literal-selective-shielding, state-flux-branch-weightingstructural_mass— composite-nonlinearity-amplifies-in-band-inputstest— assert-overlaps-safety-and-testClose criterion (gitgalaxy#2669 Batch E.4)
python tools/language_deviations.py cexits 1: 1 unexplained cell(s) remain. Each needs a fix, or a validated ledger entry saying why it is correct, before this issue can close.squid-protocol commentedon Sep 6, 2026
Closed 2026-09-06 as superseded by #2812 (
docs/contract_roadmap.md, decision D2). Every out-of-band cell for c is accounted for (the gate reads 0 unexplained) and is now tracked by cause family, not by language: the ledger entry that explains it, its cause category in keyword-rosetta'sdocs/bias_data.json["cell_categories"](echo / inherency / extraction / correlation / scoring), and the family issue #2812 lists for that cause. Live standing at any time:python tools/language_deviations.py cin keyword-rosetta, ordocs/findings_by_language.md#c.This is a change of axis, not a claim that c is green. The §10 capstone in
docs/language_status/c.mdis written when the language reads clean bylanguage_deviations.py, by whichever family PR gets it there — no longer tied to this issue.