CtrlK
BlogDocsLog inGet started
Tessl Logo

state-management

Manage client and server state with Zustand stores and React Query patterns.

62

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 ./frontend/.claude/skills/state-management/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

85%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-structured routing skill: the decision tree is an unambiguous workflow and the body is token-efficient with zero padding. The one real weakness is progressive disclosure — the referenced guidance files and 'rules/' directory are absent from the bundle, so every path for detailed help is a dead end.

Suggestions

Ship the referenced files (use-zustand-selectors.md, use-zustand-persist.md, use-react-query-for-server.md) or a rules/ directory in the bundle so the Quick Reference table resolves.

If the referenced files cannot be bundled, inline a minimal copy-paste example per action (selector usage, persist middleware, useQuery call) so the skill stands alone.

DimensionReasoningScore

Conciseness

At ~40 lines the body is lean and efficient: one framing sentence ('Choose the right state solution for each use case.'), four terse activation bullets, a compact routing table, and a dense decision tree. No concepts Claude already knows are explained and every token earns its place, matching anchor 5.

5 / 5

Actionability

The decision tree gives fully concrete routing guidance (server data → React Query; URL state → React Router; form state → React Hook Form; shared → Zustand; else useState/useReducer) and the Quick Reference table maps actions to specific files — actionable without code, per the instruction-only scoring note. It is not 5 because the actual 'how-to' content is deferred to files that are not present, leaving minor gaps.

4 / 5

Workflow Clarity

The decision tree is a complete, unambiguous, correctly sequenced decision procedure with explicit branches and definite endpoints, and the skill is a single-purpose routing task under 50 lines with no destructive or batch operations requiring validation. It fits the simple-skill exception for a clean 5; it is not 4 because no steps or checkpoints are missing.

5 / 5

Progressive Disclosure

The overview is well-organized and references are clearly signaled (a Quick Reference table naming 'use-zustand-selectors.md', 'use-zustand-persist.md', 'use-react-query-for-server.md', plus 'See rules/ directory'), but none of these files or directories exist in the bundle — the disclosure chain is broken, so navigation is impossible. This lands on anchor 3: structure present, but the referenced layer cannot actually be reached.

3 / 5

Total

17

/

20

Passed

Description

61%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.

A concise, distinct description with good natural keywords, but it describes a single generic action ('Manage') with no 'Use when...' trigger guidance, capping both completeness and specificity. Adding explicit trigger conditions and one or two more concrete actions would lift it substantially.

Suggestions

Add a 'Use when...' clause with explicit triggers, e.g. 'Use when managing global React state, persisting state across navigation, or fetching/caching server data with React Query.'

Replace the generic verb 'Manage' with 2-3 concrete actions, e.g. 'Create Zustand stores with selectors and persistence; configure React Query for server state caching and invalidation.'

Include a few more natural trigger terms users would say ('state management', 'store', 'global state') to improve keyword coverage toward the top anchor.

DimensionReasoningScore

Specificity

The description names the domain ('client and server state') and two concrete technologies ('Zustand stores and React Query patterns'), but the only action verb is the generic 'Manage' — it does not list several specific actions like 'persist state across navigation' or 'fetch and cache server data', so it falls between anchor 2 (generic action) and anchor 4 (several specific actions), landing on 3.

3 / 5

Completeness

The 'what' is clear (manage client state via Zustand stores and server state via React Query patterns), but there is no 'Use when...' clause or equivalent explicit trigger guidance, which caps completeness at 3 per the judging guidelines; it is not a 4 because 'when' is entirely absent rather than merely imprecise.

3 / 5

Trigger Term Quality

Natural terms a user would say are present: 'state', 'Zustand', 'React Query', 'client and server state'. A few common variations are missing ('state management', 'store', 'global state', 'server state / caching'), matching anchor 4 ('good keyword coverage; a few natural terms missing') rather than anchor 5's comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

Naming two specific libraries carves out a mostly distinct niche with only minor overlap risk against broader React state-management skills (Redux, Context, general 'state' skills). It is not 5 because without any 'when' triggers the phrase 'Manage client and server state' could still fire for other state-management skills.

4 / 5

Total

14

/

20

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 — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
redpanda-data/console
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.