Primitive breadth is comprehensive: 880 resolved variables span color (599), float/size (274), and string (7) types across scopes covering fills/strokes (663+124), text (167), gap (51), corner radius (6), typography metrics (38), and effects (132). The @primer/primitives npm package ships this as compiled, documented CSS for size, typography, borders, breakpoints, viewport, motion, and spacing. Consumption is directly evidenced rather than inferred from naming: 10 of 11 sampled deep components (Button, TextInput, ToggleSwitch, Dialog, ActionMenu, InlineMessage, FormControl family, Blankslate, Spinner, DataTable family) resolve with dozens of shared bound_variable_ids each (for example, Button binds roughly 90, Dialog roughly 37), showing the same primitive set consumed across distinct archetypes (action, input, overlay, navigation, feedback, content, status, data-display) without manual overrides. This meets 'comprehensive and consistently consumed' but adoption/coverage measurement across the full ~2,103-component library is not evidenced in the packet, so anchor 4 is not reached.
- Completeness
- Complete
- Sources
- 5 of 5
- Verification
- Implemented
- Test definition
- Not observed
- Automation wiring
- Not observed
- Current result
- Not observed
- Generalizability
- Sample only
Scoring rule used: Primitives are comprehensive and consistently consumed
What a higher score requires: Primitive coverage and adoption are measured and governed
What is still needed: Anchor 4 requires primitive coverage and adoption to be measured and governed (for example, adoption metrics across the full component library); the coverage profile explicitly excludes adoption dashboards from this public evaluation, and the packet only demonstrates consumption within the 10-11 sampled deep components.
Scope: mixed; sample-only. Subjects: Button, TextInput, ToggleSwitch, Dialog, ActionMenu, InlineMessage, FormControl, Blankslate, Spinner, DataTable, Primer Web full-file variable graph. Limitation: Primitive definition breadth (880 variables, full-file) is system-wide, but the 'consistently consumed' claim rests on direct binding evidence from only the 10-11 sampled deep components; the remaining ~2,092 components in the library are not directly verified consumers.
- What broke
- No confirmed break in primitive completeness for the sampled components.
- Impact
- None observed within the sample; broader adoption across the full 2,103-component library cannot be confirmed or denied from public evidence.
- Why
- The evidence packet caps deep-component sampling at 11 named components and explicitly excludes adoption dashboards from public evaluation scope.
- What to change
- No change needed for the sampled scope; a system-wide adoption claim would require either a cited system-wide consumption mechanism or dashboard-level evidence, which is out of scope here.
Supporting evidence, 4 citation(s)