Compatibility rules

Every rule the Ingrano engine enforces, in plain English, with the source we derived it from. If you spot a rule that should change, tell us.

Drivetrain

  • Rear derailleur, cassette, chain, and shifter speed counts must match

    Each speed count is a different indexed spacing between cogs. An 11-speed RD cannot index a 12-speed cassette; the jockey wheels and shifter click intervals don’t align.

    Source: SRAM and Shimano official compatibility charts, per protocol generation.

  • Shifters must drive derailleurs from the same protocol family

    Shimano cable-pull differs from SRAM 1:1. Shimano Di2 (digital) is electrically incompatible with SRAM AXS (wireless). Campagnolo is its own universe.

    Source: Protocol families encoded in packages/core/src/validators/shifter-validator.ts.

  • All SRAM AXS protocol variants (Road AXS, XPLR, Eagle AXS) are cross-compatible

    Per SRAM: “All AXS shifters can work with any AXS derailleur.” This is the only cross-discipline path in scope, and it’s what makes mullet builds legal.

    Source: SRAM AXS wireless protocol documentation.

Closed ecosystems

  • T-Type Transmission is a closed ecosystem — cassette, chain, and RD must all be T-Type

    T-Type Flattop chains have different pitch and a different tooth profile. Mixing T-Type with standard Eagle parts wears everything faster and shifts poorly.

    Source: SRAM Transmission technical manual.

Frame & fork

  • T-Type derailleurs need a SRAM UDH frame

    T-Type attaches direct-mount to the UDH dropout — no replaceable hanger. A non-UDH frame physically cannot mount the RD.

    Source: SRAM UDH + Transmission spec sheet.

  • Fork steerer type must match frame headtube type

    A straight-1-1/8 fork cannot go in a tapered headtube without a reducer cup. A tapered fork cannot go in a straight headtube at all.

    Source: packages/core/src/validators/fork-validator.ts STEERER_COMPATIBILITY table.

  • Cassette largest cog must fit the frame’s max cassette clearance

    Gravel frames with short chainstays (e.g. Canyon Grail at 42T) physically can’t accept a 50 / 52T MTB cassette. The cage will strike the chainstay.

    Source: Frame geometry data + manufacturer cassette-compatibility specs.

  • Tire width must fit the frame’s clearance (with live headroom)

    Tires grow ~2mm under load and against seal clearance. Ingrano requires a 4mm safety margin between actual tire width and the frame’s published max.

    Source: Industry 4mm-clearance rule of thumb, enforced in wheel-tire-validator.ts.

Wheels & freehub

  • Cassette and freehub body must match (HG / Microspline / XD / XDR / N3W)

    Each freehub has a different spline pattern. A Shimano Microspline cassette won’t mount to an XD body.

    Source: Manufacturer freehub standards; cross-referenced in compatibility_rules.

Brakes

  • Rotor must match caliper mount type and supported size range

    Post-mount and flat-mount calipers cannot swap without adapters, and each caliper only accepts specific rotor diameters.

    Source: packages/core/src/validators/brake-validator.ts.