CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

migrate-state-management

Migrate Redux or React Context to the correct state option (React Query for server state, nuqs for URL/shareable state, Zustand for global client state). Use when refactoring away from Redux/Context, moving state to the right store, or when the user asks to migrate state management.

Quality

88%

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

SKILL.md
Quality
Evals
Security

Quality

Content

78%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 dense, highly actionable migration guide with excellent classification-first structure, real API-level code, and a useful final checklist. Its main weaknesses are a dangling reference.md link (the only progressive-disclosure mechanism), placeholder-ellipse code snippets, and no explicit post-migration verification step.

Suggestions

Ship reference.md in the bundle (or remove the link) so 'Detailed patterns and rationale: reference.md' resolves — currently the skill's only external reference is a dead path.

Add an explicit validation step to the workflow, e.g. 'After removing a slice/provider, grep for remaining dispatches/consumers and run the typecheck/build' — this would also lift workflow_clarity to the top anchor.

Replace the ellipsis placeholders in the React Query example (`useQuery(...)`, `useMemo(() => ({ ... })`)`) with a complete runnable snippet, and fix the malformed nuqs 'Before' example (`const [page, setPage] = useDispatch(...)`).

DimensionReasoningScore

Conciseness

The body is lean and assumes Claude's competence — it never explains what Redux, React Query, nuqs, or Zustand are, and every section consists of directives, constraints ("Keep payload small (e.g. Chrome ~2k chars)", "up to ~1.5–2MB"), or code rather than background. Re-reading anchor 4 ("minor instances of over-explanation"), nothing here explains concepts Claude already knows; the classification table and checklist each earn their tokens.

5 / 5

Actionability

Concrete, near-executable guidance throughout: exact APIs (`useQueryState('param', parseAsString.withDefault('…'))`, `useDashboardStore(state => state.isDashboardLocked)`), named plugin config (`plugin:zustand-rules/recommended`), and cache options (`refetchOnMount: false`, `staleTime`). Not anchor 5 because several snippets contain ellipsis placeholders (`useQuery(...)`, `useMemo(() => ({ ... })`)`) and the nuqs "Before" example is malformed pseudocode (`const [page, setPage] = useDispatch(...)`), so examples are not fully copy-paste ready.

4 / 5

Workflow Clarity

Clear sequence: classify state first ("Before changing code, classify what the state represents"), then per-target migration steps, then a consolidating checklist including removal items ("Remove old Redux slices / Context providers and all dispatches/consumers"). Not anchor 5 because there is no explicit validation step after migration (e.g., typecheck or grep for remaining dispatches/usages); the checklist is a to-do list rather than a verify-fix-retry loop. The destructive/batch cap is not applied since this is git-recoverable code refactoring, not the document/DB/batch category the rubric names.

4 / 5

Progressive Disclosure

The body is well-sectioned and keeps SKILL.md at overview size, and it signals deeper material ("Detailed patterns and rationale: [reference.md](reference.md)"), but that file does not exist in the bundle — the link dangles, so the promised detail is unreachable (the linked project rule `.claude/rules/frontend-state.md` is likewise absent). Per the guideline to score against the actual bundle structure, this lands at anchor 3 (references present but not usable) rather than 4.

3 / 5

Total

16

/

20

Passed

Description

95%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 strong description: concrete, third-person, with an explicit 'Use when' clause covering natural trigger phrases and a distinct, well-bounded niche. Its only weakness is omitting the local-state (useState/useReducer) migration branch that the body covers.

DimensionReasoningScore

Specificity

Concrete actions with an explicit mapping: "Migrate Redux or React Context to the correct state option (React Query for server state, nuqs for URL/shareable state, Zustand for global client state)" — third person, no fluff. Not anchor 5 because the skill also migrates local state to useState/useReducer (body section 5), which the description omits — a minor coverage gap placing it between anchors 4 and 5.

4 / 5

Completeness

Explicitly answers both questions: what ("Migrate Redux or React Context to the correct state option (React Query for server state, nuqs for URL/shareable state, Zustand for global client state)") and when ("Use when refactoring away from Redux/Context, moving state to the right store, or when the user asks to migrate state management") with concrete trigger phrases. Clear anchor 5; anchor 4's 'when could be more explicit' does not apply.

5 / 5

Trigger Term Quality

Comprehensive natural terms users would actually say: "Redux", "React Context", "refactoring away from Redux/Context", "moving state to the right store", "migrate state management", plus the target library names (React Query, nuqs, Zustand). Matches anchor 5's bar for synonyms and natural phrasing; nothing common is missing.

5 / 5

Distinctiveness Conflict Risk

Clear niche — migrating away from Redux/Context to three named libraries — with triggers anchored to migration/refactoring language, so it is unlikely to fire for general React, styling, or data-fetching skills. Minimal conflict risk, matching anchor 5.

5 / 5

Total

19

/

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

relative_links

Relative link issues: 1 missing, 1 suspicious

Warning

Total

15

/

16

Passed

Repository

SigNoz/signoz

Path

frontend/.claude/skills/migrate-state-management/SKILL.md

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.