Ban direct `useEffect` in React components. Use when writing, refactoring, or reviewing React code so derived state, data fetching, user actions, resets, and mount-only external synchronization use declarative replacement patterns instead of dependency-array choreography.
72
90%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Quality
Discovery
100%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is an excellent skill description that clearly defines a specific niche (banning direct useEffect in React), provides comprehensive trigger terms covering multiple developer scenarios, and explicitly delineates both when to use and when not to use the skill. The 'Do not use' clause is a particularly strong addition that minimizes conflict risk with general React development skills.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions and scenarios: banning direct useEffect, writing/refactoring/reviewing/migrating React components, handling derived state, fetching, event reactions, resets, external sync, and adding lint/agent rules. Very detailed about what it does and doesn't do. | 3 / 3 |
Completeness | Clearly answers both 'what' (ban direct useEffect in React code) and 'when' (explicit 'Use when...' clause covering multiple trigger scenarios) plus includes a 'Do not use' clause that further clarifies boundaries. | 3 / 3 |
Trigger Term Quality | Excellent coverage of natural terms: 'useEffect', 'React components', 'hooks', 'derived state', 'fetching', 'event reactions', 'refactoring', 'lint rules', 'effects'. These are terms developers would naturally use when dealing with useEffect-related concerns. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive with a clear niche: specifically about banning/replacing direct useEffect in React. The explicit 'Do not use' clause for ordinary React work, non-React code, and legitimate effect architecture sharply delineates it from general React skills. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
77%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a well-structured, actionable skill that provides clear workflow steps, a prioritized replacement ladder, and concrete enforcement guidance. Its main strengths are the explicit classification-before-action workflow and the specific tooling references (ESLint rules, React Doctor). Minor weaknesses include some philosophical framing that Claude doesn't need and the inability to verify referenced bundle files.
Suggestions
Trim the opening sentence and Allowed Escape Hatches rationale text — Claude understands React effect philosophy; focus on the rules and patterns only.
Provide the referenced bundle files (references/replacements.md, references/alternatives.md, references/upstream.md) so the progressive disclosure structure is complete and verifiable.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is mostly efficient and avoids explaining basic React concepts, but some sections (e.g., the Allowed Escape Hatches and Enforcement sections) could be tightened. Phrases like 'Treat effects as an escape hatch for synchronizing with external systems, not as the default place to put render, event, data, or reset logic' explain something Claude likely already understands about the philosophy. | 2 / 3 |
Actionability | The skill provides a concrete classification workflow, a prioritized replacement ladder, an executable code example for the mount-only wrapper, specific ESLint rule names (no-restricted-imports, no-restricted-syntax), and clear review guidance. The steps are specific and directly implementable. | 3 / 3 |
Workflow Clarity | The 'Start Here' section provides a clear 5-step sequence: search → classify → replace → check alternatives → verify. The replacement ladder is explicitly ordered. Validation is addressed in step 5 with lint/type/test gates. The escalation path ('stop and explain why') provides a feedback loop for edge cases. | 3 / 3 |
Progressive Disclosure | The skill references three external files (references/replacements.md, references/alternatives.md, references/upstream.md) with clear signaling, which is good structure. However, no bundle files were provided, so these references are unverifiable. The main content is well-organized with clear sections but the Enforcement section is fairly long and could potentially be split out. | 2 / 3 |
Total | 10 / 12 Passed |
Validation
100%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 11 / 11 Passed
Validation for skill structure
No warnings or errors.
Reviewed
Table of Contents