Instruction file imported from roonga/a2-react-aria (
.github/instructions/pull-request-review.instructions.md). Copyright stays with the author.
Pull request review checklist
These apply specifically when reviewing a diff in this repository (as opposed to general chat
or code generation). See .github/copilot-instructions.md for the full background on each rule.
Always flag
- A hardcoded Tailwind color (
text-red-500,bg-blue-600,border-gray-300) instead of avar(--color-*)design token. - A component prop derived from the Zod schema type (
Omit<Required<Schema>["props"], ...>) instead of a plaininterface ComponentProps. - A DOM-style prop name (
onClick,disabled,required) on a React Aria Components primitive instead of the RAC equivalent (onPress,isDisabled,isRequired). - A prop declared in a component's interface but never read in the component body.
- Styling logic duplicated inline in a component's
classNamethat already exists in its*.styles.tsfile. - Any new or changed prop on
A2Renderer, a registered component, orsanitizeProps/sanitizeValueinpackages/core/src/renderer/A2Renderer.tsxthat could let attacker-controlled JSON reach the DOM without going through URL-scheme sanitization or the__proto__/constructor/prototypekey filter.A2Rendereris a trust boundary: treat every prop as agent-supplied and untrusted. - An interactive element (button, field, link acting as control) with no visible
<Label>and noaria-label. - A validation error rendered as a raw
<span>instead of React Aria's<FieldError>(or<Text slot="errorMessage">). :focus-visiblebeing suppressed or overridden, ortabIndex={-1}/aroleoverride added without a comment explaining why.- A PR that adds, changes, or removes a public export, CLI command, or consumer-visible behavior
with no file under
.changeset/. - A commit message that doesn't follow
type(scope): description, or any commit made directly tomain.
Don't flag
- Structural Tailwind utilities (
flex,gap-2,px-3,rounded) — these are not color/theme values and are allowed as-is. - Missing changesets on PRs that only touch CI, tests, or repo tooling.
- Story or test files duplicating markup that would be a red flag in component source.