CtrlK
BlogDocsLog inGet started
Tessl Logo

you-might-not-need-state

Analyze and fix unnecessary useState, derived state, and server-state-in-local-state anti-patterns

61

Quality

73%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./.agents/skills/you-might-not-need-state/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

76%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A lean, well-organized body that assumes Claude's competence and encodes genuinely project-specific rules (React Query as source of truth, the six anti-patterns). Its weaknesses are the missing verification step after batch fix application and a buried reference to a rules file that is not part of the bundle.

Suggestions

Add a validation step to the workflow, e.g. '4. After applying fixes, run the project's typecheck/tests and confirm the app still behaves correctly; revert any fix that breaks them.'

Surface the `.claude/rules/sim-hooks.md` reference as its own clearly signaled entry (like the References section) or inline the essential rules, since the file is not part of the skill bundle.

Add one short before/after code example for the two most common patterns (useEffect-synced server state and props mirrored into state) to make fixes copy-paste ready.

DimensionReasoningScore

Conciseness

Every token carries non-obvious information: "This codebase uses React Query for all server state and Zustand for client-only global state" is project-specific context, and each anti-pattern is stated in 1-3 lines with its fix. No padding and no explanation of concepts Claude already knows — matches anchor 5.

5 / 5

Actionability

Detection rules are concrete and include executable specifics (e.g. "Store `selectedId` not a copy of the selected object. Derive the object: `items.find(i => i.id === selectedId)`"), but there is no before/after code example for the most common patterns (useEffect-synced server state, props mirroring). Mostly executable with minor gaps — anchor 4, not 5.

4 / 5

Workflow Clarity

The three steps are sequenced (read references, analyze scope, apply or propose fixes), but fix=true applies edits across an arbitrary scope — a batch modification — with no verification step (typecheck, tests, or re-review of the diff). Per the judging guidelines, batch operations without validation cap workflow clarity at 3.

3 / 5

Progressive Disclosure

The skill is under 50 lines with well-organized sections and one-level-deep external references. However, the reference to `.claude/rules/sim-hooks.md` is buried mid-sentence in anti-pattern 3 and does not exist in the skill's bundle, making it neither clearly signaled nor verifiable — a minor organization gap at anchor 4 rather than 5.

4 / 5

Total

16

/

20

Passed

Description

70%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is specific and distinctive with natural trigger keywords like "useState" and "derived state", but it omits any "when to use" guidance, capping its completeness. Adding an explicit trigger clause and a few more natural phrasings would raise it to the top anchor.

Suggestions

Add a 'Use when...' clause, e.g. 'Use when reviewing React components, refactoring state logic, or when the user mentions useState, derived state, or copying query data into local state.'

Include more natural user phrasings as trigger terms, such as 'React state', 'state management', or 'props mirrored into state', instead of the compound 'server-state-in-local-state'.

Briefly enumerate the fuller set of anti-patterns (props mirroring, store/query duplication) to close the coverage gap in specificity.

DimensionReasoningScore

Specificity

"Analyze and fix unnecessary useState, derived state, and server-state-in-local-state anti-patterns" names the domain and several concrete actions. It falls between anchors 4 and 5: several specific actions are listed, but coverage is not comprehensive — props-mirroring and store-duplication patterns from the body are not surfaced in the description.

4 / 5

Completeness

The "what" is clear (analyze and fix specific state anti-patterns), but there is no "Use when..." clause or equivalent explicit trigger guidance, which per the judging guidelines caps completeness at 3. Not 4 because the "when" is entirely absent, not merely weakly implied.

3 / 5

Trigger Term Quality

"useState" and "derived state" are natural phrases users would say, but common variations like "React state", "state management", or "props into state" are missing, and "server-state-in-local-state" is compound jargon users would not say verbatim. Matches anchor 4 (good keyword coverage, a few natural terms missing), not 5.

4 / 5

Distinctiveness Conflict Risk

React state anti-pattern detection ("unnecessary useState", "derived state") is a clear niche with distinct triggers and minimal conflict risk with other skills; matches anchor 5.

5 / 5

Total

16

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
simstudioai/sim
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.