reactive-programming — скилл для Claude Code: RxJS и потоки
Скилл для работы с реактивными потоками: RxJS, observables, обработка backpressure. Пригодится, когда в проекте много асинхронных данных и событий.
npx skills add aj-geddes/useful-ai-prompts --skill reactive-programming -a claude-codeЧто делает reactive-programming
Скилл описывает реактивные паттерны на RxJS: observables, Subject и BehaviorSubject, операторы вроде map, filter, debounceTime, distinctUntilChanged, switchMap. Внутри есть краткий рабочий пример и семь справочных файлов в каталоге references/ — от основ RxJS до поиска с debounce, управления состоянием, WebSocket с переподключением, объединения потоков, backpressure и собственных операторов.
Агент подключает эти материалы, когда вы просите разобрать сложный асинхронный поток, живое обновление данных, состояние интерфейса или обработку WebSocket и SSE. Отдельный раздел с практиками: отписываться от подписок, не вкладывать подписки друг в друга, не забывать про обработку ошибок, использовать shareReplay для дорогих операций. Если в проекте уже есть свой слой работы с потоками, советы из скилла стоит сверить с ним, потому что правила вроде «не подписываться дважды на один observable» ломают код, построенный на ручном управлении подписками.
Скилл ставится в Claude, Codex, Cursor, GitHub Copilot, Gemini CLI и OpenCode — команды установки различаются, но содержимое одно и то же.
Какие задачи решает
- собрать поиск с debounce без лишних запросов
- удержать состояние интерфейса в одном потоке
- переподключить WebSocket после обрыва
- объединить данные из нескольких источников
- разобраться с backpressure в быстром потоке
Примеры запросов агенту
- Помоги переписать этот поиск на RxJS с debounceTime и switchMap
- Сделай поток состояния для корзины через BehaviorSubject
- Добавь переподключение к WebSocket и обработку ошибок
Как установить reactive-programming
1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill reactive-programming -a claude-code2Вручную: положить файлы
~/.claude/skills/reactive-programming/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/reactive-programming/
1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill reactive-programming -a codex2Вручную: положить файлы
.agents/skills/reactive-programming/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill reactive-programming -a cursor2Вручную: положить файлы
.cursor/skills/reactive-programming/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install aj-geddes/useful-ai-prompts reactive-programming2Вручную: положить файлы
.github/skills/reactive-programming/SKILL.md1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill reactive-programming -a gemini-cli2Командой платформы
gemini skills install https://github.com/aj-geddes/useful-ai-prompts --path skills/reactive-programmingВручную: положить файлы
.devin/skills/reactive-programming/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill reactive-programming -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о reactive-programming
Как установить reactive-programming в Claude?
Выполните npx skills add aj-geddes/useful-ai-prompts --skill reactive-programming -a claude-code. Файл скилла появится по пути ~/.claude/skills/reactive-programming/SKILL.md.
Что делает reactive-programming?
Даёт агенту справочники по RxJS и реактивным паттернам: observables, операторы, управление состоянием, WebSocket, backpressure. Агент опирается на них, когда вы просите написать или разобрать асинхронный поток.
Для каких платформ подходит скилл?
Claude, Codex, Cursor, GitHub Copilot, Gemini CLI и OpenCode. Для каждой платформы своя команда установки, содержимое скилла одинаковое.
Исходный текст
SKILL.md · MIT
---
name: reactive-programming
description: >
Implement reactive programming patterns using RxJS, streams, observables, and
backpressure handling. Use when building event-driven UIs, handling async data
streams, or managing complex data flows.
---
# Reactive Programming
## Table of Contents
- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#best-practices)
## Overview
Build responsive applications using reactive streams and observables for handling asynchronous data flows.
## When to Use
- Complex async data flows
- Real-time data updates
- Event-driven architectures
- UI state management
- WebSocket/SSE handling
- Combining multiple data sources
## Quick Start
Minimal working example:
```typescript
import {
Observable,
Subject,
BehaviorSubject,
fromEvent,
interval,
} from "rxjs";
import {
map,
filter,
debounceTime,
distinctUntilChanged,
switchMap,
} from "rxjs/operators";
// Create observable from array
const numbers$ = new Observable<number>((subscriber) => {
subscriber.next(1);
subscriber.next(2);
subscriber.next(3);
subscriber.complete();
});
numbers$.subscribe({
next: (value) => console.log(value),
// ... (see reference guides for full implementation)
```
## Reference Guides
Detailed implementations in the `references/` directory:
| Guide | Contents |
|---|---|
| [RxJS Basics](references/rxjs-basics.md) | RxJS Basics |
| [Search with Debounce](references/search-with-debounce.md) | Search with Debounce |
| [State Management](references/state-management.md) | State Management |
| [WebSocket with Reconnection](references/websocket-with-reconnection.md) | WebSocket with Reconnection |
| [Combining Multiple Streams](references/combining-multiple-streams.md) | Combining Multiple Streams |
| [Backpressure Handling](references/backpressure-handling.md) | Backpressure Handling |
| [Custom Operators](references/custom-operators.md) | Custom Operators |
## Best Practices
### ✅ DO
- Unsubscribe to prevent memory leaks
- Use operators to transform data
- Handle errors properly
- Use shareReplay for expensive operations
- Combine streams when needed
- Test reactive code
### ❌ DON'T
- Subscribe multiple times to same observable
- Forget to unsubscribe
- Use nested subscriptions
- Ignore error handling
- Make observables stateful
© aj-geddes · MIT · aj-geddes/useful-ai-prompts