Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Angular State Signals Vs Rxjs

ASecurity

Chooses between Angular Signals and RxJS based on Angular version, state lifetime, synchronicity, cancellation needs, and feature boundaries.

4 stars
0 votes
0 copies
0 views
Added 10/2/2026
developmenttypescriptgoreactangularapi

Works with

api

Security Analysis

A100/100

Scanned 10/2/2026

$npx -y skills add janpereira-dev/ngAutoPilot --skill angular--state--signals-vs-rxjs --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Angular State Signals Vs Rxjs?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Angular  State  Signals Vs Rxjs
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/janpereira-dev-angular-state-signals-vs-rxjs/badge)](https://www.skillsdirectory.com/skills/janpereira-dev-angular-state-signals-vs-rxjs)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
id: angular.state.signals-vs-rxjs
name: Angular Signals vs RxJS State Decision
description: >
  Chooses between Angular Signals and RxJS based on Angular version, state lifetime, synchronicity, cancellation needs, and feature boundaries.
stack:
  - Angular
  - TypeScript
  - RxJS
category: state
status: stable
version: 0.10.0
owner: NgAutoPilot
triggers:
  - Signals vs RxJS
  - should this use signals
  - should this use observables
  - Angular state decision
  - toSignal
  - toObservable
compatibility:
  angular:
    min: "2"
    signalsFrom: "16"
    recommendedSignals: "17+"
    currentSafe: "19+"
---

# Angular Signals vs RxJS State Decision

## Purpose

Use this skill to choose the right reactive primitive for Angular state. The goal is to avoid forcing Signals into asynchronous workflows or keeping RxJS boilerplate where simple local synchronous state is enough.

## When to Use

Use this skill when:

- The user asks whether a feature should use Signals, RxJS, both, or neither.
- Local UI state is stored in a global store.
- A component uses RxJS for simple synchronous toggles, selected tabs, or derived flags.
- Signals are proposed for HTTP, router streams, WebSockets, debounced search, or cancellation-heavy flows.
- A feature mixes Signals and Observables without a clear boundary.
- Angular version compatibility is unknown.

## Do

Use this decision policy:

```txt
local synchronous UI state -> Signals when Angular supports them, otherwise component property or BehaviorSubject
derived synchronous state -> computed when Angular supports it, otherwise getter, memoized value, or RxJS map
HTTP and async orchestration -> RxJS Observable
router params and form valueChanges -> RxJS Observable, optionally converted at the boundary
WebSockets and event streams -> RxJS Observable
shared feature API -> facade contract using Observables or read-only Signals by version and project style
global app state -> store, facade, or explicit state service
```

For Angular 2-15, do not use Signals:

```ts
readonly selectedTab$ = new BehaviorSubject<'active' | 'inactive'>('active');
```

For Angular 16+ where the project accepts Signals:

```ts
readonly selectedTab = signal<'active' | 'inactive'>('active');
readonly hasSelection = computed(() => this.selectedTab() === 'active');
```

Use RxJS for cancellable async flows:

```ts
readonly results$ = this.searchControl.valueChanges.pipe(
  debounceTime(300),
  distinctUntilChanged(),
  switchMap((query) => this.userApi.searchUsers(query)),
);
```

Use interop at clear boundaries, not everywhere:

```ts
readonly user = toSignal(this.user$, { initialValue: null });
```

## Do Not

Avoid global state for trivial local UI state:

```ts
this.store.dispatch(openDropdown());
```

Avoid replacing async RxJS flows with signal effects by default:

```ts
effect(() => {
  this.http.get(`/api/users/${this.userId()}`).subscribe();
});
```

Avoid recommending `resource` or `httpResource` as a stable baseline when the project has not explicitly accepted experimental APIs.

Avoid mixing Signals and Observables in the same feature without explaining ownership and conversion boundaries.

## Review Checklist

- [ ] Angular version supports any Signal API being recommended.
- [ ] State lifetime is classified as local, feature, shared, or global.
- [ ] State synchronicity is classified as synchronous value or asynchronous flow.
- [ ] RxJS is preserved for cancellation, retries, debouncing, streams, and HTTP orchestration.
- [ ] Signals are limited to local synchronous state or readable derived state where appropriate.
- [ ] Interop usage has a clear boundary.
- [ ] Experimental APIs are avoided unless explicitly requested.
- [ ] The feature does not use multiple state models without a policy.

## Expected Output

1. Detect Angular version and existing state style.
2. Classify the state problem by lifetime and synchronicity.
3. Choose Signals, RxJS, a facade, or a store based on the decision policy.
4. Provide compatible code for the detected version.
5. Explain why alternatives were rejected.

Attribution

janpereira-devjanpereira-dev
View sourceSee grades on GitHubMore from janpereira-dev →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Clean Code

Pragmatic coding standards - concise, direct, no over-engineering, no unnecessary comments

304955 votes

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

286712 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2222 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Writing Plans

Use when you have a spec or requirements for a multi-step task, before touching code

2927051 votes
View all in development →