Skip to content

rosetta[ruby]: cross-language consistency — 0 red / 2 amber metrics, 3 ledgered shapes #2594

Closed as not planned

Description

@squid-protocol

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

  • 🟡 safety_bypasses: 3 vs median 2 (+50%)

3. Risk-exposure consequences (downstream)

  • 🟡 risk_cognitive_load: 22.4565 vs median 15.1444 (+48%)

Ledgered shapes touching ruby

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.rb state_mutation is recorded x3 when branch context exists in the file ('flux' semantics, matching the state_flux column name)
string-literal-selective-shielding upstream-question #2535 b.rb 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.rb · note = "if eval fails, try open" (string): if counts branch +1 AND eval counts safety_bypasses +1 (ruby classes eval as bypass, and it is NOT shielded — supporting the high-risk-family-only shielding theory, as shell); push/pop 2 raw state tripled to 6. Ledger: string-literal-selective-shielding, state-flux-branch-weighting
  • c.rb · hack_level = level (code): inert (underscore + lowercase)

Reproduce / evidence

Activity

  1. added
    metricsHeuristics, risk exposures, and topological math updates
    core-engineModifications to the central physics and parsing engine
    on Aug 31, 2026
  2. squid-protocol commented on Sep 3, 2026

    @squid-protocol
    OwnerAuthor

    Status: 0🔴 / 3🟡 unexplained, 4 further out-of-band cell(s) accounted for

    Generated from docs/bias_data.json + deviation_ledger.json by tools/issue_status.py, using the same verdict machinery bias_report.py --gate runs on (gitgalaxy#2669 E.1), so this comment and the gate cannot disagree about what is left.

    Still unexplained — the work this issue tracks

    metric value median dev group
    🟡 dependency_density 0.3611 0.5312 -32% signals
    🟡 risk_cognitive_load 3.283 2.358 +39% risk
    🟡 risk_documentation 40.84 55.81 -27% risk

    Out of band, but accounted for

    derived — the deviation entered through an input that is itself out of band -- the same finding counted twice

    • control_flow_ratio — inherits branch

    ledgered — a validated ledger entry names this language and this metric

    • branch — string-literal-selective-shielding
    • func_complexity_gini — synthetic-global-context-bucket-counts-as-a-function
    • max_func_complexity — synthetic-global-context-bucket-counts-as-a-function

    Close criterion (gitgalaxy#2669 Batch E.4)

    python tools/language_deviations.py ruby exits 1: 3 unexplained cell(s) remain. Each needs a fix, or a validated ledger entry saying why it is correct, before this issue can close.

  3. squid-protocol commented on Sep 6, 2026

    @squid-protocol
    OwnerAuthor

    Closed 2026-09-06 as superseded by #2812 (docs/contract_roadmap.md, decision D2). Every out-of-band cell for ruby 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's docs/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 ruby in keyword-rosetta, or docs/findings_by_language.md#ruby.

    This is a change of axis, not a claim that ruby is green. The §10 capstone in docs/language_status/ruby.md is written when the language reads clean by language_deviations.py, by whichever family PR gets it there — no longer tied to this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    core-engineModifications to the central physics and parsing enginemetricsHeuristics, risk exposures, and topological math updates

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions