Implement Command Query Responsibility Segregation for scalable architectures. Use when separating read and write models, optimizing query performance, or building event-sourced systems.
70
58%
Does it follow best practices?
Impact
87%
1.64xAverage score across 3 eval scenarios
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./tests/ext_conformance/artifacts/agents-wshobson/backend-development/skills/cqrs-implementation/SKILL.mdQuality
Discovery
75%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
The description is well-structured with a clear 'Use when' clause that covers the key scenarios for CQRS adoption. However, the 'what' portion is somewhat high-level—it could benefit from listing more concrete actions like creating command/query handlers, building read projections, or setting up event stores. Trigger terms are adequate but could include more natural user language variations.
Suggestions
Add more specific concrete actions such as 'create command handlers, build read projections, define event stores, implement domain events' to improve specificity.
Include additional natural trigger terms and variations like 'command handler', 'read projection', 'event store', 'separate read database', and spell out the full name alongside the acronym for better discoverability.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (CQRS) and mentions some actions like 'separating read and write models' and 'optimizing query performance', but doesn't list multiple concrete specific actions (e.g., creating command handlers, building read projections, defining event stores). | 2 / 3 |
Completeness | Clearly answers both 'what' (implement CQRS for scalable architectures) and 'when' (explicit 'Use when' clause covering separating read/write models, optimizing query performance, or building event-sourced systems). | 3 / 3 |
Trigger Term Quality | Includes relevant terms like 'CQRS', 'read and write models', 'query performance', and 'event-sourced systems', but misses common natural variations users might say such as 'command handler', 'read model projection', 'event store', 'separate database for reads', or the full acronym expansion alongside the abbreviation. | 2 / 3 |
Distinctiveness Conflict Risk | CQRS is a well-defined architectural pattern with distinct terminology; the triggers around 'read and write models' and 'event-sourced systems' are specific enough to avoid conflicts with general architecture or database skills. | 3 / 3 |
Total | 10 / 12 Passed |
Implementation
42%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill provides highly actionable, executable Python code covering the full CQRS pattern, which is its primary strength. However, it is severely bloated—dumping ~400 lines of templates inline with unnecessary conceptual explanations that Claude already knows. The lack of explicit workflow sequencing and the monolithic structure significantly reduce its effectiveness as a skill file.
Suggestions
Remove the 'Core Concepts' section (architecture diagram, component table) entirely—Claude knows what CQRS is. Replace with a 2-line summary of when to apply this pattern.
Extract Templates 3-5 into separate referenced files (e.g., FASTAPI_CQRS.md, READ_MODEL_SYNC.md) and keep only Templates 1-2 inline as the core building blocks.
Add an explicit implementation workflow with numbered steps and validation checkpoints, e.g., '1. Define commands → 2. Implement handlers → 3. Set up event store → 4. Verify events persist → 5. Build projections → 6. Verify read model updates'.
Trim the 'When to Use' list to 2-3 items and merge the Do's/Don'ts into a compact inline checklist.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose at ~400+ lines. The architecture diagram, component table, and 'When to Use' list explain concepts Claude already knows. Five large templates with extensive boilerplate code consume massive token budget. The 'Core Concepts' section is entirely unnecessary for Claude. | 1 / 3 |
Actionability | The code templates are concrete, executable Python with real async/await patterns, FastAPI integration, proper type hints, and working SQL queries. All five templates are copy-paste ready and cover the full CQRS stack from commands to read model sync. | 3 / 3 |
Workflow Clarity | The templates implicitly show a workflow (commands → events → projections → queries), but there's no explicit step-by-step implementation sequence. No validation checkpoints for verifying the read model sync is working correctly, no error recovery guidance beyond a basic try/except with 'continue', and no checklist for setting up the full pipeline. | 2 / 3 |
Progressive Disclosure | Monolithic wall of code with all five templates inline. The templates for read model synchronization, eventual consistency, and the FastAPI app should be in separate referenced files. External links at the bottom are generic resources rather than structured companion files. | 1 / 3 |
Total | 7 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
skill_md_line_count | SKILL.md is long (555 lines); consider splitting into references/ and linking | Warning |
Total | 10 / 11 Passed | |
47823e3
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.