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.
83
77%
Does it follow best practices?
Impact
99%
1.50xAverage score across 3 eval scenarios
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/antigravity-angular-state-management/SKILL.mdNgRx SignalStore feature store
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%
NgRx global store setup
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%
BehaviorSubject to Signals migration
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%
636b862
Table of Contents
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.