builder · impl — the code-conformance bar, by discipline
The Builder bar at the impl gate: the conventions the component's code must satisfy. Stated
once as criteria; the impl-producer builds to them, the impl-judge verifies them against
the frozen suite. producer ≠ judge holds at the agent level — both are distinct agents loading
this one bar. (No subjective slice at this gate; if one arose it would split into a judge-only
@rubric.)
engineer
- TypeScript, no
any; React 18 (createRoot, side-effect-free render). exactOptionalPropertyTypeshonored (optional = absent, never widen to| undefined).- DOM attribute names —
aria-labelnotariaLabel;aria-*/data-*pass through;forwardRef. className/styleaccept the function form (react-aria-componentsconvention).
designer
- Tokens not literals; every visual state styled (default/hover/focus/active/disabled/loading); responsive + RTL.
a11y
- Correct role/semantics; keyboard operable; visible + managed focus; accessible name + state;
axezero violations per state.
security
- No unsanitized
dangerouslySetInnerHTML; no untrusted prop → DOM/URL sink.
qa
- Empty / error / boundary states handled.
How each face uses it
- impl-producer — build so every criterion holds; coverage derives from the frozen
.feature. - impl-judge —
tscclean, lint bansariaLabel,axeclean, scenarios pass, no tampering.