Journal

· guides

A hand-listed lint shrinks the rule it guards

A Desktop lint enforced a repository-wide control-size rule against four hand-listed selectors in one file and missed two measured violations.

An inspection rail reaches three of eight control plates while two plates outside its path sit within dashed measurement frames.

A hand-listed lint inherits the scope of its list, not the scope of the rule it guards. Our Muniment Desktop measurements found two violations outside one green merge gate.

A repository-wide rule met a four-selector lint

Our Desktop standard gives every control a hit area of at least 24 by 24 CSS pixels. A control three pixels short can still look correct in a screenshot.

The first lint read the main application component, split its style block into rules, and checked four named selectors. Each selector needed a minimum width and height of at least 24 pixels.

Two negative tests changed a value to 23 pixels or removed a minimum width. Both made the lint report a failure.

Those tests showed that the listed selectors enforced the floor. They did not show that the list covered every control.

That is the difference from auditing whether a written rule can become a selector. Enforcement had already started here, but its hand-typed scope remained narrower than the rule.

Two measured controls sat outside the gate

We measured a separate profile panel by hand. It contains eight controls for appearance, account access, paired devices, connected programs, and a dictation shortcut.

Two of those eight controls missed the floor. Neither selector declared a minimum width or minimum height.

Control Measured size Lint coverage
Revoke paired program access 56 by 21 pixels Outside the original list
Close the profile panel 21 by 28 pixels Outside the original list
Delete a conversation 56 by 24 pixels Comparable control in the main component

The revoke control is the only way to withdraw a paired program’s access. A security decision should not sit behind an undersized target.

The lint opened one file and checked four selector names that a person typed. Its failure output gave no sign that the list was partial.

A wider list still needs an honest scope

After the measurement, the repository widened the lint to read two files and check six selectors. The new selectors cover .companion-revoke and .close-access.

This evidence does not prove that 24 pixels is the right floor. It measures no real-world miss rate.

We did not count every control in the repository. The note therefore supports no claim about the fraction covered by the original list.

Visitors cannot exercise Muniment Desktop through a public install or authentication surface yet.

This evidence comes from our Muniment Desktop note pinned to commit 9a5bb876026357b79b48f34bae8b79b877121e51.

State the rule’s scope and the lint’s scope in one sentence. “Every control” beside “four selectors in one file” exposes the blind spot before a measurement session does.

Continue reading

All publications

Join the waitlist

Get desktop release updates.

We will email you about desktop releases and new features. muniment is a desktop workspace for your models, tools, and files.