CtrlK
BlogDocsLog inGet started
Tessl Logo

angular-state-management

Master modern Angular state management with Signals, NgRx, and RxJS. Use when setting up global state, managing component stores, choosing between state solutions, or migrating from legacy patterns.

Install with Tessl CLI

npx tessl i github:sickn33/antigravity-awesome-skills --skill angular-state-management
What are skills?

80

Does it follow best practices?

Validation for skill structure

SKILL.md
Review
Evals

Evaluation results

100%

58%

Flight Search Feature State

NgRx SignalStore feature store

Criteria
Without context
With context

Uses signalStore()

0%

100%

withState() for initial state

0%

100%

withComputed() for derived values

40%

100%

withMethods() for actions

30%

100%

patchState() for mutations

0%

100%

inject() for dependencies

30%

100%

No direct Observable subscription in component

100%

100%

Scoped providedIn

70%

100%

computed() not stored data

100%

100%

Loading/error state in store

100%

100%

Without context: $0.3627 · 4m 4s · 17 turns · 23 in / 6,920 out tokens

With context: $0.5472 · 4m 17s · 24 turns · 29 in / 6,464 out tokens

99%

25%

In-App Notification Center

NgRx global store setup

Criteria
Without context
With context

createActionGroup()

0%

100%

createReducer() with on()

100%

100%

createFeatureSelector()

75%

100%

createSelector()

100%

100%

createEffect()

100%

100%

ofType() in effects

100%

100%

switchMap + catchError in effects

100%

87%

store.selectSignal() in component

0%

100%

provideStore() in bootstrap

100%

100%

provideEffects() in bootstrap

100%

100%

Without context: $0.4209 · 4m 40s · 19 turns · 26 in / 7,886 out tokens

With context: $0.7711 · 6m 14s · 30 turns · 289 in / 10,029 out tokens

100%

16%

Modernize Legacy User Profile Service

BehaviorSubject to Signals migration

Criteria
Without context
With context

signal() replaces BehaviorSubject

100%

100%

asReadonly() for public exposure

20%

100%

set()/update() for mutations

100%

100%

toSignal() import path

0%

100%

toObservable() for Observable consumers

100%

100%

inject() for HTTP

100%

100%

No chaotic mixing

100%

100%

Optimistic update saves snapshot

100%

100%

Optimistic update applies immediately

100%

100%

Rollback on error

100%

100%

Without context: $0.2832 · 2m 32s · 14 turns · 20 in / 5,622 out tokens

With context: $0.5172 · 3m 45s · 25 turns · 284 in / 5,306 out tokens

Evaluated
Agent
Claude Code

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.