CtrlK
BlogDocsLog inGet started
Tessl Logo

fp-immutability

Never mutate data — create new values instead. Covers immutable update patterns (spread, copy, freeze), nested updates without mutation, readonly enforcement, and performance trade-offs. Activate when: updating objects or arrays, working with state management (React, Redux), fixing bugs caused by unintended mutation, deeply nested data updates, or when the user mentions immutability, spread, readonly, frozen, copy-on-write, or structural sharing. Works in any language (TypeScript, Python, Go, Rust, Java).

75

Quality

92%

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

85%Weight 40%Scale 1-3

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

A tight, highly actionable cheatsheet with executable examples and a clear decision flow; its only real weakness is redundancy across the decision/criteria and language-specific sections. Splitting or deduplicating those would lift conciseness without losing substance.

Suggestions

Merge 'Before Choosing Immutable vs Mutable, Ask Yourself' and 'When NOT to Enforce' into one decision section — the local-scope and hot-loop cases appear in both and overlap heavily.

State the Object.freeze caveat once: it currently recurs in the cheatsheet, the 'Enforcing Immutability' section, and the NEVER list; consolidate to remove the repetition.

Collapse the language-specific callouts (cheatsheet footer, Enforcing section, and nested notes) into a single compact language-mapping table instead of restating Python/Go/Rust/Java guidance in three places.

DimensionReasoningScore

Conciseness

Mostly efficient (terse tables, no 'what is immutability' preamble), but two decision sections overlap — 'Before Choosing... Ask Yourself' (local-scope, hot-loop) repeats 'When NOT to Enforce' — and freeze/language callouts recur across sections, so it could be tightened.

2 / 3

Actionability

Copy-paste-ready executable TypeScript/Python (e.g. the nested `produce(state, draft => {...})` and `{ ...state, user: { ...state.user, address: { ...state.user.address, city } } }`) plus a concrete mutable→immutable cheatsheet; fully instructive, not descriptive.

3 / 3

Workflow Clarity

For a reference skill the decision flow is unambiguous and sequenced — criteria → cheatsheet → nested-update rule ('1-2 levels → manual spread. 3+ levels → Immer') → enforcement → perf — and no destructive/batch validation cap applies here.

3 / 3

Progressive Disclosure

Self-contained cheatsheet with clearly headed sections and no nested references; no bundle files exist and none are needed, so well-organized inline sections satisfy the bar rather than the 'content that should be separate is inline' level 2.

3 / 3

Total

11

/

12

Passed

Description

100%Weight 40%Scale 1-3

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, trigger-rich, and complete: it states concrete capabilities and gives an explicit 'Activate when' clause with natural user vocabulary. Voice is directive/third-person with no first- or second-person slip. No changes needed.

DimensionReasoningScore

Specificity

Lists multiple concrete capabilities — 'immutable update patterns (spread, copy, freeze), nested updates without mutation, readonly enforcement, and performance trade-offs' — matching the multiple-specific-actions anchor rather than the vague 'Names domain and some actions' level below.

3 / 3

Completeness

Explicitly answers both what ('Covers immutable update patterns...') and when ('Activate when: ...'), with an explicit trigger clause, so it clears the cap that a missing 'Use when...' would impose at 2.

3 / 3

Trigger Term Quality

Strong coverage of natural user terms ('immutability, spread, readonly, frozen, copy-on-write, or structural sharing' plus 'updating objects or arrays', 'React, Redux'), the kind of phrasing a user would actually say rather than jargon.

3 / 3

Distinctiveness Conflict Risk

Occupies a clear FP-immutability niche with distinctive triggers unlikely to fire for unrelated skills; not the generic 'Helps with code and documents' level 1.

3 / 3

Total

12

/

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.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
olion500/skills
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.