description: The 104-item FIT edge-case taxonomy chiptime is built against: timestamp pathologies, sentinel traps, vendor quirks, corruption.¶
The edge-case taxonomy¶
chiptime began as a catalog before it was code: 104 documented ways FIT files go wrong in the real world, organized into tiers — truncation and corruption, timestamp pathologies, sentinel and encoding traps, vendor quirks, multisport structure, developer fields, GPS implausibility, and more.
The taxonomy is the parser-behavior backlog: every item maps to at least one conformance corpus case with a committed expected output. A behavior isn't "handled" until its case is green.
A taste¶
| Item | The trap | chiptime's behavior |
|---|---|---|
| Zwift 1989 timestamps | Trainer writes local_timestamp before the FIT epoch |
Reinterpreted with provenance; repair drops the field platforms reject |
| 12-bit HR event timestamps | event_timestamp_12 packs 12-bit values across bytes |
Expanded correctly, 12-bit rollover included |
| Sentinel HR/power | 0xFF / 0xFFFF are "no reading", not values |
null before any statistics — never a 65,535 W sprint |
| Per-leg run cadence | Devices write strides/min of one leg | Doubled only for display, labeled doubled_per_leg_cadence |
| Pool zero-length | Watches log phantom 0 s lengths at the wall | Flagged, excluded from sets, kept in output |
| Chained files | Multiple FIT parts concatenated | Each part parsed, reported separately |
The full document lives in the repository:
docs/edge-case-taxonomy.md.