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.