audit-light-reviewer
AgentDispatched only by the audit-loop unit on a Light route. Never invoked directly.
A single form control sits in `ConformField`, which handles the wiring while the caller renders the ui control; a group stays composed from the ui `Field` parts with `ConformFieldError`. The pattern and a code example per control type are in
Claude Code
$ npx -y skills add gaia-harness/gaia --agent claude-code
Cursor
Cursor also loads subagents from .claude/agents, so copy this file there to use it in Cursor.
subagents: [react-patterns] library: shadcn Form Fields
A single form control sits in `ConformField`, which handles the wiring while the caller renders the ui control; a group stays composed from the ui `Field` parts with `ConformFieldError`. The pattern and a code example per control type are in `apps/web/.claude/skills/react-code/references/conform-forms.md`.
`components/ui/*.tsx` is vendored shadcn output and exempt from this gate; it is the building block, not a call site.
Flag, in every other `.tsx` file:
| Pattern | Use instead | | -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | | native `<input>` (text types), `<textarea>`, `<select>` | `Input`, `Textarea`, `NativeSelect` from `~/components/ui/...`, inside a `ConformField` when bound to a Conform field | | native `<input type="checkbox">` or `<input type="radio">` | `Checkbox` or `RadioGroup` with `RadioGroupItem`; a group sits in a `FieldSet` with a `FieldLegend` | | a ui control with no `FieldLabel htmlFor`, `Label htmlFor`, `aria-label` or `aria-labelledby` | `ConformField` for a Conform field; a `Label` or `aria-label` outside a form | | a hand-wired `Field` around a single control bound to a Conform field | `ConformField`; a `Field` per option inside a group is fine | | a `ConformField` child that does not pass `controlOptions` to Conform's getter | pass them, or the description never reaches `aria-describedby` | | a page-local error mapper, or a group's `FieldError` fed Conform's errors | `ConformFieldError` | | a `RadioGroup` bound to a Conform field without `aria-invalid`, `aria-describedby` and `required={field.required}` | set them as the reference shows; no Conform getter supplies them | | a GAIA wrapper per control type (Input, Select, Checkbox), or one that renders the control itself | the ui control as `ConformField`'s child | | a disabled link standing in for a disabled action | a disabled `ui/button` |
Exceptions (native OK): `<input type="hidden">`, `<input type="file">`, `<input type="range">`.
Claude is raw power. GAIA is order and focus. A serious harness for Claude Code. It keeps Claude-shipped code production-grade as your team scales. The React frontend is handled. You build the rest of your app on top.
Dispatched only by the audit-loop unit on a Light route. Never invoked directly.
Dispatched only by the PR Merge Workflow main thread to run audit rounds off-thread and return a thin unit report. Never invoked…
Dispatched only by the code-audit-frontend member: a read-only adversarial check that tries to refute one holistic Critical or…
Dispatched only by the code-audit-frontend member: a read-only line-level rule check of one role over the files it is handed.…
Dispatched only by the audit loop as the frontend member of the Code Audit Team: reviews code for security, performance,…
Dispatched only by the audit loop as the workflow-YAML member of the Code Audit Team: read-only audit for supply-chain,…
Surgical 1-2 file edit. Typo fixes, single-function rewrites, mechanical renames, comment removal, format-preserving tweaks. Hard…