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. Its main weakness is that 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 variations users might use.
Suggestions
Add more concrete actions to the capability statement, e.g., 'Creates command handlers, query handlers, read model projections, and event store integrations'
Expand trigger terms to include natural variations like 'command handler', 'read projection', 'event store', 'separate read database', and the full expansion 'Command Query Responsibility Segregation' alongside 'CQRS'
| 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.
The skill provides highly actionable, executable Python code for CQRS implementation, which is its primary strength. However, it is severely bloated—explaining concepts Claude already knows, inlining hundreds of lines of template code that should be in separate files, and lacking a clear end-to-end implementation workflow with validation checkpoints. The content would benefit enormously from restructuring into a concise overview with references to separate template files.
Suggestions
Extract the five large code templates into separate bundle files (e.g., templates/command_infrastructure.py, templates/query_infrastructure.py) and reference them from SKILL.md with brief descriptions of when to use each.
Remove the 'Core Concepts' section (ASCII diagram, component table) and 'When to Use' list—Claude already understands CQRS concepts; focus only on implementation-specific guidance.
Add an explicit end-to-end implementation workflow with numbered steps and validation checkpoints (e.g., 'verify command handler processes correctly before wiring up projections').
Trim the Best Practices section to only non-obvious, implementation-specific advice rather than general CQRS principles.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose at ~400+ lines. The ASCII diagram, component table, and 'When to Use' list explain concepts Claude already knows. Five large templates with extensive boilerplate code bloat the token budget significantly. The 'Core Concepts' section is entirely unnecessary for Claude. | 1 / 3 |
Actionability | The code templates are concrete, executable Python with real implementations including FastAPI endpoints, command/query buses, event store integration, and read model synchronization. Code is copy-paste ready with proper imports and type hints. | 3 / 3 |
Workflow Clarity | The templates show individual components clearly but lack an explicit step-by-step workflow for implementing CQRS end-to-end. There are no validation checkpoints for the multi-step process of setting up command handlers, query handlers, projections, and synchronization. The read model rebuild has some error handling but no explicit verification steps. | 2 / 3 |
Progressive Disclosure | All content is monolithically inlined in a single massive file with no references to supporting files. The five large templates should be split into separate files with the SKILL.md providing an overview and navigation. External links at the bottom are to third-party resources, not bundle 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 | |
b09ec7f
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.