Audit rule reference
What each finding means—and what it does not.
Ledgermachine findings are prompts for a product decision, not automatic errors. This reference explains what each rule notices, why it can matter, and when keeping the difference is the correct answer.
Evidence first Every finding points back to source.
Intent wins A deliberate exception can be accepted.
No silent repair Ledgermachine never edits the project.
Tokens 3 Color 4 Typography 5 Spacing 4 Shape 3 Effects 3 Responsive 5 Cascade 2 Components 2 History 3
Flagged when A direct visual value resolves to exactly the same value as a declared token.
Decision guidance Decide Use the token unless the direct value must remain independent from theme or system changes.
Open rule guide →
Flagged when A direct color is difficult to distinguish from a declared color token under the project’s color-distance setting.
Decision guidance Decide Merge it into the token if the small difference carries no real semantic or accessibility role.
Open rule guide →
Flagged when Independent tokens in the same context and category resolve to one value without aliasing each other.
Decision guidance Decide Keep separate semantic names when their roles may diverge; otherwise alias them to one canonical token.
Open rule guide →
02 / Color
Palette distinctions people can actually see Color rules normalize syntax and compare visual distance, opacity, frequency, and token ownership.
Flagged when A rare color sits very close to a more established color in perceptual color space.
Decision guidance Decide Keep both only if the subtle distinction communicates a state, layer, brand role, or accessibility requirement.
Open rule guide →
Flagged when An undeclared static color appears once and is not visually close to a declared palette token.
Decision guidance Decide Name its specific role or fold it into the established palette. One-off artwork and data visualization colors are often valid exceptions.
Open rule guide →
Flagged when One base color uses multiple alpha levels within a narrow visual range.
Decision guidance Decide Consolidate levels that do the same job; preserve levels that express distinct states or depth.
Open rule guide →
Flagged when Different CSS notations normalize to the same color.
Decision guidance Decide Standardize the notation when it improves search and maintenance. Keep authored formats when a tool or color space requires them.
Open rule guide →
03 / Typography
A type system, not a pile of numbers Typography rules compare declared scales, repeated roles, font support, and equivalent text-style signatures.
Flagged when A rare font size sits close to an established or declared step.
Decision guidance Decide Align it when the text serves an existing role; keep it when the content hierarchy genuinely needs another step.
Open rule guide →
Flagged when A rare line height is close to a repeated or declared line-height value.
Decision guidance Decide Reuse the role’s line height unless content density, language, or typeface metrics justify the difference.
Open rule guide →
Flagged when A weight is near a common 100-step value and may not be supported as authored.
Decision guidance Decide Verify the loaded font’s axes. Variable fonts may make an in-between weight entirely intentional.
Open rule guide →
Flagged when A font family is used much less often than the project’s dominant stack.
Decision guidance Decide Keep purposeful code, data, editorial, or display faces; remove accidental local stacks.
Open rule guide →
Flagged when Several selectors produce the same text-style signature, but some use tokens while others repeat values directly.
Decision guidance Decide Prefer one declaration path so later typography changes do not split the roles apart.
Open rule guide →
04 / Spacing
A rhythm with room for real exceptions Spacing rules compare numeric distance, frequency, units, and arbitrary utility syntax.
Flagged when A rare undeclared spacing value lands near a token or frequently repeated step.
Decision guidance Decide Snap it to the scale unless geometry, optical alignment, or an external asset requires the offset.
Open rule guide →
Flagged when A static undeclared spacing value appears in one layout declaration.
Decision guidance Decide Confirm it as a local adjustment or replace it with the scale. Screen-reader-only geometry is excluded.
Open rule guide →
Flagged when Values in different units normalize to the same pixel size.
Decision guidance Decide Keep relative units when they must scale with text or context; otherwise use one convention.
Open rule guide →
Flagged when An arbitrary utility introduces spacing outside the named utility scale.
Decision guidance Decide Use the nearest named utility when the difference is incidental; retain exact values for real geometry constraints.
Open rule guide →
Flagged when A rare radius is numerically close to a declared or repeated radius.
Decision guidance Decide Reuse the established shape unless the component’s role needs a visibly different silhouette.
Open rule guide →
Flagged when A rare border width is near an established step.
Decision guidance Decide Consolidate accidental differences; preserve widths that indicate focus, selection, or hierarchy.
Open rule guide →
Flagged when A button, field, toggle, or similar control differs from the control radius used most often.
Decision guidance Decide Keep the distinction only when it communicates a different control family or state.
Open rule guide →
Flagged when Two shadows have nearly identical geometry and color signatures.
Decision guidance Decide Reuse one recipe unless the difference creates a clearly distinct elevation or focus state.
Open rule guide →
Flagged when A rare z-index is separated from the project’s other observed levels by a large gap.
Decision guidance Decide Name the overlay role and align it with the stacking scale; third-party widgets may need an explicit exception.
Open rule guide →
Flagged when A declaration forces precedence with !important.
Decision guidance Decide Confirm whether layers, specificity, or source order can express the intent. Utility and accessibility overrides can be legitimate.
Open rule guide →
07 / Responsive
Thresholds that correspond to actual layout changes Responsive rules look at media queries, container queries, named scales, and context-only values.
Flagged when Two media-query widths sit close enough that they may describe the same transition.
Decision guidance Decide Merge them when the layout change is shared; keep both when distinct breakpoints prevent a real failure.
Open rule guide →
Flagged when A project with several breakpoints uses one threshold in a single rule.
Decision guidance Decide Confirm the unique transition or align it with the named responsive scale.
Open rule guide →
Flagged when An arbitrary responsive utility uses a width outside the named breakpoint set.
Decision guidance Decide Prefer a named threshold when related layout changes should stay synchronized.
Open rule guide →
Flagged when Container-query widths are within a narrow range.
Decision guidance Decide Merge them if the component changes in the same way; keep them when separate internal layouts truly need both.
Open rule guide →
Flagged when An undeclared visual value is used exclusively inside container-query states.
Decision guidance Decide Promote it when it belongs to the wider system; keep it local when the component owns the decision.
Open rule guide →
Flagged when The same selector and property receive different values in more than one named layer.
Decision guidance Decide Confirm which layer owns the final value and remove declarations that no longer have a distinct purpose.
Open rule guide →
Flagged when An unlayered declaration competes with a matching declaration inside a cascade layer.
Decision guidance Decide Keep the override only when its higher precedence is explicit and intentional.
Open rule guide →
Flagged when Several definitions share a component name or a page-local implementation overlaps a shared component role.
Decision guidance Decide Reuse the shared owner when the behavior is the same; preserve separate domain components when their responsibilities differ.
Open rule guide →
Flagged when A local component’s visual signature adds or removes values compared with the shared owner of that role.
Decision guidance Decide Bring it back to the shared component or record why this context needs a maintained variant.
Open rule guide →
Flagged when A normalized visual value is present now but absent from the pinned baseline scan.
Decision guidance Decide Confirm the new vocabulary as intentional or return the source to an established value.
Open rule guide →
Flagged when A finding previously verified as repaired appears again in a later scan.
Decision guidance Decide Restore the repair, or record that the product decision changed. Regression status is ledger evidence, not guesswork.
Open rule guide →
Flagged when Static token coverage drops by at least five percentage points from the comparison scan.
Decision guidance Decide Inspect the new direct values and restore token use where the bypass was not deliberate.
Open rule guide →
The reference is not the verdict
Inspect the evidence in your own source. A rule explains why something deserves attention. The project ledger is where you decide whether to repair, plan, accept, or ignore it.
Open Ledgermachine