← ClaudeAtlas

catchlaw-measurement-rulerlisted

Governs measurement as a legal act: the method system TL, FL, SL, CW carapace width, SHL shell length and ML carried on the (species, jurisdiction) rule row not the species, every length stored as an INTEGER of millimetres in length_mm, conversion display-only, every figure rendered beside its method so a bare 38 cm is a defect, calibration against the ISO/IEC 7810 ID-1 card at 85.60 x 53.98 mm saved as pxPerMm, a plausibility band rejecting an implausible scale, step-and-mark with a running total and a restoring cancel, manual millimetre entry working before any calibration exists, and a RulerPainter taking textDirection as a parameter and never mirroring. Use when building RulerPainter or CalibrationSheet, storing a length in millimetres, formatting a reading, wiring step-and-mark segments, wrapping a ruler in Directionality, passing textDirection into a CustomPainter, or reviewing measurement_method.dart in a diff.
zakariaf/CatchLaw · ★ 0 · Code & Development · score 55
Install: claude install-skill zakariaf/CatchLaw
# Catchlaw Measurement Ruler A measurement is a legal act, not a number: 38 cm decides nothing until it also says total length, and a length that survives as a double or a localised string has already lost the case. This skill owns the method system, millimetre storage, ID-1 calibration, step-and-mark, manual entry and the ruler's refusal to mirror. It owns neither the painter architecture nor directional layout. Read the reference for the task at hand: - `references/measurement-methods.md` — method table, per-jurisdiction rows, mm storage, rounding, display formatting, method mismatch, edge cases. - `references/ruler-and-calibration.md` — id-1 card, px-per-mm maths, plausibility band, step-and- mark state machine, manual entry, accuracy budget, device matrix. Run `scripts/check_measurement.sh` before a PR. The View/Painter/Scene split, `shouldRepaint` and zero-allocation `paint()` belong to `custom-canvas-and-gestures`; directional geometry, numeral systems and ICU formatting to `i18n-rtl-l10n`; the canonical-unit principle to `value-objects-money-and-units`; the numeric keypad and focus order to `lonja-forms-and-controls`; comparing a reading to a rule to `catchlaw-rule-engine`. ## Non-negotiable rules 1. **Every length is an INTEGER of millimetres, everywhere.** `int lengthMm` in the domain, `INTEGER` in drift, `450` for Hamour and `38` for Ameixa babosa — never `double`, never `'45,0 cm'`, never `'٤٥ سم'`. **WHY:** a double accumulates 44.99999 and rounds