programming-react — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited programming-react (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Build React interfaces with explicit state ownership, pure rendering, and dependable loading and mutation behavior. As of 2026-10: React 19.3 (2026-09-09) is the latest stable release and React Compiler 1.0 is stable. Inspect installed React, framework, renderer, and compiler configuration first; documentation can include Canary-only APIs. Keep existing routing, styling, and state libraries unless the task requires changing them.
A render describes UI from a snapshot of props, state, and context; React may repeat or abandon it. Events cause user-directed changes, while effects synchronize committed UI with external systems. React's server component model requires supporting infrastructure; it is not automatically enabled by using React 19.
use(resource) is an exception: it permits conditions and loops, but still belongs inside a component or hook and cannot be wrapped in try/catch.useEffectEvent reads current values for non-reactive logic called from effects. It is not a dependency-avoidance trick, a UI event handler, or a callback to pass elsewhere.ref as a prop. Use this for new 19-targeted APIs; preserve forwardRef where older consumers need it.Activity can hide UI while preserving state and cleaning up its effects. Use it when that lifecycle is needed; ordinary conditional rendering remains appropriate.eslint-plugin-react-hooks recommended preset; it includes compiler-derived rules (set-state-in-render, set-state-in-effect, refs) that work without the compiler installed and replace the separate eslint-plugin-react-compiler.<ViewTransition> with addTransitionType, and Fragment refs. View transitions animate only updates inside a Transition (startTransition, Suspense reveal, useDeferredValue); keep them progressive and respect reduced-motion preferences.use; it does not detect arbitrary effect-based fetching. Reuse a stable promise rather than creating one every client render."use client" marks a module dependency boundary; Client Components can still be prerendered on the server.FormData suit many ordinary forms.useActionState provide pending state and action results. useFormStatus observes its parent form, not a form rendered by the same component. Follow existing form infrastructure when it already meets the need.Derive visible content directly and retain stable item identity:
type Item = { id: string; title: string; archived: boolean };
function ItemList({ items, showArchived }: {
items: readonly Item[];
showArchived: boolean;
}) {
const visible = items.filter(item => showArchived || !item.archived);
return (
<ul>
{visible.map(item => <li key={item.id}>{item.title}</li>)}
</ul>
);
}No effect or duplicate state is needed. The caller remains responsible for distinguishing loading, failure, and a successful empty result.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.