React Component Reviewer — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited React Component Reviewer (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.
This skill directs the agent to review a specific React component or file against modern React best practices. It specifically checks for:
useMemo/useCallback)useEffect or event handlersCopy this file to .agents/skills/react-code-reviewer/SKILL.md in your project. Then ask the agent: "Review `components/MyComponent.tsx` using the React Component Reviewer skill."
Add this prompt to your .cursorrules file or save it as a custom prompt in the Cursor AI pane.
When asked to review a React component, follow these exact steps:
useMemo. Look for object/function definitions inside the render body that are passed as props to memoized children.useEffect dependencies are complete and correct. Check for race conditions in asynchronous effects.<button> or <a> with proper href. Ensure images have alt text. Check for keyboard navigability.### 🚀 Performance
- [List findings here]
### ♿ Accessibility
- [List findings here]
### 🏗️ Architecture & Best Practices
- [List findings here]
### 💡 Suggested Refactor
Provide the refactored code block here.Input to Agent:
"Please review the UserProfile.tsx component."
Output from Agent:
### 🚀 Performance - TheformatDatefunction is defined inside the component and passed to a child, causing unnecessary re-renders. It should be moved outside the component or wrapped inuseCallback.
>
### ♿ Accessibility - The "Save" div acts as a button but lacksrole="button"andtabIndex={0}. It should be a<button>element.
>
(...continues with suggested refactor)
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.