CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

angular-state-management

Implement application state with Angular Signals, computed derivations, and NgRx Signal Store. Use when implementing reactive state with signal(), computed(), effect(), or @ngrx/signals in Angular.

68

Quality

85%

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 well-structured, token-efficient guidance skill with concrete API references and a properly used one-level-deep reference file. The main gaps are the undefined 'complex features' criterion for choosing Signal Store over a signal service, a duplicated anti-pattern line in the 'Canonical response anchors' section, and missing executable examples for effect() and linkedSignal().

Suggestions

Replace the vague 'For complex features, use @ngrx/signals' with a concrete decision criterion, e.g., 'Use signalStore when state spans 3+ signals or multiple components dispatch updates; otherwise use a signal-based service.'

Remove the duplicated 'Canonical response anchors' section (or the duplicate bullet in section 4) — 'Never update signals inside effect()' and 'resets when source changes' already appear verbatim in the body.

Add a minimal executable example for effect() (e.g., persisting state to localStorage) since it is named as a trigger in the description but never shown, and complete the placeholder computed() in references/signal-store.md with real filter logic.

DimensionReasoningScore

Conciseness

The body is lean bullet guidance with exact API names and no re-explanation of concepts Claude already knows, but "Never update signals inside effect()" appears verbatim in both section 4 and the 'Canonical response anchors' section, making that closing section redundant padding. This matches the 'efficient; minor instances of over-explanation that could be trimmed' anchor rather than the fully lean 5.

4 / 5

Actionability

Concrete API-level instructions ("expose publicly via asReadonly()", "linkedSignal(() => source())", "withState, withComputed, withMethods, and withEntities()") plus working code in references/signal-store.md give mostly executable guidance. It stops short of 5 because there is no executable example of effect() or linkedSignal() usage, and the reference's withComputed block contains only a placeholder comment ("// filter logic derived from state") instead of real filter logic.

4 / 5

Workflow Clarity

The numbered principles are clearly organized with explicit decision rules (e.g., "Use effect() only for side effects", "Never update signals inside effect()"), and no destructive/batch validation cap applies. It falls short of 5 because the key store-vs-service decision hinge "For complex features" is undefined, leaving the main routing decision implicit rather than giving a concrete criterion.

4 / 5

Progressive Disclosure

The body is a concise overview (~40 lines) with a single one-level-deep reference (references/signal-store.md) that exists on disk and is clearly signaled with descriptive link text both inline ("See [signal store pattern](references/signal-store.md)") and in a dedicated References section. This matches the 5 anchor: clear overview, well-signaled, appropriately split, easy navigation.

5 / 5

Total

17

/

20

Passed

Description

87%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: third-person, concise, with an explicit 'Use when' trigger clause naming concrete Angular APIs. Both what and when are clearly answered with distinct, technology-specific trigger terms that minimize conflict risk.

DimensionReasoningScore

Specificity

"Implement application state with Angular Signals, computed derivations, and NgRx Signal Store" names the domain plus several concrete capability areas with exact technology names, matching the 'several specific actions; minor gaps' anchor. It falls short of 5 because the what-clause doesn't comprehensively cover the skill's capabilities (e.g., effect()/side-effect handling is only in the when-clause), and exceeds 3 because it lists more than 1-2 concrete actions.

4 / 5

Completeness

The description explicitly answers both what ("Implement application state with Angular Signals, computed derivations, and NgRx Signal Store") and when ("Use when implementing reactive state with signal(), computed(), effect(), or @ngrx/signals in Angular") with concrete trigger phrases. This matches the 5 anchor; the 4 anchor's 'when could be more explicit' caveat doesn't apply since the when-clause already names specific APIs.

5 / 5

Trigger Term Quality

Terms like "signal(), computed(), effect(), @ngrx/signals", "Angular Signals", "NgRx Signal Store", and "reactive state" are natural phrases users would say. It falls short of the 5 anchor because common variations like "state management", "store", or file extensions (e.g., .store.ts) are absent, and it is clearly above 3 since coverage goes beyond a single keyword.

4 / 5

Distinctiveness Conflict Risk

Angular-specific triggers with named APIs (@ngrx/signals, signal(), computed()) carve out a clear niche with minimal conflict risk against other skills. The 4 anchor's 'minor overlap risk with closely related skills' is less fitting since the technology names are unambiguous.

5 / 5

Total

18

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

Total

14

/

16

Passed

Repository

HoangNguyen0403/agent-skills-standard

Path

skills/angular/angular-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.