cqrs-implementation — скилл для Claude Code: что делает
Скилл помогает разделить обработку команд и запросов, а также спроектировать отдельные модели для записи и чтения. Пригодится для CQRS и систем с событийной моделью.
/plugin marketplace add wshobson/agents
/plugin install backend-development@claude-code-workflowsЧто делает cqrs-implementation
Скилл описывает CQRS: команды меняют состояние через обработчики, а запросы получают данные из модели чтения. События фиксируют изменения, проектор обновляет по ним модель чтения. Так модели записи и чтения можно развивать отдельно.
В руководстве разобраны валидация команд, денормализация модели чтения, версионирование событий и допустимая задержка согласования. Подробные шаблоны и примеры находятся в references/details.md.
Ставьте его, если проекту нужны отдельные модели чтения и записи или отчёты с особыми требованиями к производительности. Если достаточно простой общей модели, начните с неё: руководство предостерегает от избыточного усложнения.
Какие задачи решает
- разделить модели записи и чтения
- масштабировать чтение независимо от записи
- обновлять модель чтения по событиям
- определить допустимую задержку согласования
Примеры запросов агенту
- Раздели в этом проекте обработку команд и запросов по CQRS.
- Покажи, как обновлять модель чтения по событиям в этом проекте.
- Открой `references/details.md` и подбери шаблон CQRS для отчётов.
Как установить cqrs-implementation
1Через маркетплейс плагинов
/plugin marketplace add wshobson/agents/plugin install backend-development@claude-code-workflowsКоманда ставит плагин backend-development целиком, со всеми его скиллами
2Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill cqrs-implementation -a claude-code3Вручную: положить файлы
~/.claude/skills/cqrs-implementation/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/cqrs-implementation/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill cqrs-implementation -a codex2Вручную: положить файлы
.agents/skills/cqrs-implementation/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill cqrs-implementation -a cursor2Вручную: положить файлы
.cursor/skills/cqrs-implementation/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install wshobson/agents cqrs-implementation2Вручную: положить файлы
.github/skills/cqrs-implementation/SKILL.mdКомандой платформы
gemini skills install https://github.com/wshobson/agents --path plugins/backend-development/skills/cqrs-implementationВручную: положить файлы
.devin/skills/cqrs-implementation/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора213
Весь набор →Похожие
Вопросы о cqrs-implementation
Как установить cqrs-implementation в Claude Code?
Выполните npx skills add wshobson/agents --skill cqrs-implementation -a claude-code.
Что делает cqrs-implementation?
Скилл объясняет, как разделить команды и запросы, организовать обработчики и обновлять модель чтения по событиям.
Что нужно учесть при использовании CQRS?
Нужно определить допустимую задержку между записью и обновлением модели чтения. Скилл также рекомендует версионировать события.
Исходный текст
SKILL.md · MIT
---
name: cqrs-implementation
description: Implement Command Query Responsibility Segregation for scalable architectures. Use when separating read and write models, optimizing query performance, or building event-sourced systems.
---
# CQRS Implementation
Comprehensive guide to implementing CQRS (Command Query Responsibility Segregation) patterns.
## When to Use This Skill
- Separating read and write concerns
- Scaling reads independently from writes
- Building event-sourced systems
- Optimizing complex query scenarios
- Different read/write data models needed
- High-performance reporting requirements
## Core Concepts
### 1. CQRS Architecture
```
┌─────────────┐
│ Client │
└──────┬──────┘
│
┌────────────┴────────────┐
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Commands │ │ Queries │
│ API │ │ API │
└──────┬──────┘ └──────┬──────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Command │ │ Query │
│ Handlers │ │ Handlers │
└──────┬──────┘ └──────┬──────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Write │─────────►│ Read │
│ Model │ Events │ Model │
└─────────────┘ └─────────────┘
```
### 2. Key Components
| Component | Responsibility |
| ------------------- | ------------------------------- |
| **Command** | Intent to change state |
| **Command Handler** | Validates and executes commands |
| **Event** | Record of state change |
| **Query** | Request for data |
| **Query Handler** | Retrieves data from read model |
| **Projector** | Updates read model from events |
## Templates and detailed worked examples
Full template library and detailed worked examples live in `references/details.md`. Read that file when you need the concrete templates.
## Best Practices
### Do's
- **Separate command and query models** - Different needs
- **Use eventual consistency** - Accept propagation delay
- **Validate in command handlers** - Before state change
- **Denormalize read models** - Optimize for queries
- **Version your events** - For schema evolution
### Don'ts
- **Don't query in commands** - Use only for writes
- **Don't couple read/write schemas** - Independent evolution
- **Don't over-engineer** - Start simple
- **Don't ignore consistency SLAs** - Define acceptable lag
© Seth Hobson · MIT · wshobson/agents