Build read models and projections from event streams. Use when implementing CQRS read sides, building materialized views, or optimizing query performance in event-sourced systems.
85
66%
Does it follow best practices?
Impact
97%
1.59xAverage score across 6 eval scenarios
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/backend-development/skills/projection-patterns/SKILL.mdQuality
Discovery
89%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a solid skill description that clearly targets a specific architectural pattern (CQRS read sides in event-sourced systems) with an explicit 'Use when' clause and good trigger term coverage. Its main weakness is that the 'what' portion could enumerate more concrete actions beyond the general 'build read models and projections'. Overall it performs well for skill selection in a multi-skill environment.
Suggestions
Expand the capability list with more specific actions, e.g., 'Build read models and projections from event streams, handle projection rebuilds, create denormalized query tables, manage eventual consistency patterns.'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (CQRS/event sourcing) and some actions ('build read models and projections from event streams'), but doesn't list multiple concrete actions like specific techniques (e.g., creating denormalized tables, handling projection rebuilds, managing read model schemas). | 2 / 3 |
Completeness | Clearly answers both 'what' (build read models and projections from event streams) and 'when' (implementing CQRS read sides, building materialized views, optimizing query performance in event-sourced systems) with an explicit 'Use when' clause. | 3 / 3 |
Trigger Term Quality | Includes strong natural keywords that users in this domain would use: 'read models', 'projections', 'event streams', 'CQRS', 'read sides', 'materialized views', 'query performance', 'event-sourced systems'. Good coverage of the terminology a developer would naturally mention. | 3 / 3 |
Distinctiveness Conflict Risk | Highly specific niche targeting CQRS read sides and event-sourced projections. The combination of 'read models', 'CQRS', and 'event-sourced systems' creates a very distinct trigger profile unlikely to conflict with other skills. | 3 / 3 |
Total | 11 / 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 building event-sourced projections, which is its primary strength. However, it is severely bloated with repetitive template code (multiple handlers that follow identical patterns), lacks error handling and validation workflows critical for projection operations, and dumps everything into a single monolithic file with no progressive disclosure or navigation aids.
Suggestions
Consolidate the 5 templates into 1-2 representative examples with notes on how to adapt the pattern (e.g., 'For multi-table projections, wrap in conn.transaction()'), cutting the file by 60%+.
Add explicit error handling and validation workflows: what to do when a projection fails, how to verify projection correctness after rebuild, and how to handle poison events.
Split detailed templates into separate referenced files (e.g., 'See [PROJECTION_EXAMPLES.md](PROJECTION_EXAMPLES.md) for Order, Search, and Aggregation templates') and keep SKILL.md as a concise overview with the base Projector pattern only.
Remove the 'Core Concepts' section including the ASCII diagram and projection types table — Claude already understands these architectural patterns and they add no actionable value.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose with ~400 lines of code templates that are largely repetitive CRUD variations. The Order Summary projection alone has 6 nearly identical handler methods differing only in SQL. The architecture diagram, projection types table, and 'Core Concepts' section explain things Claude already knows. Much of this could be condensed to one template with a pattern note. | 1 / 3 |
Actionability | The code templates are fully executable with concrete SQL, real library usage (asyncpg, elasticsearch), and complete class implementations. Each template is copy-paste ready with specific field names, queries, and event handling patterns. | 3 / 3 |
Workflow Clarity | The Projector class shows a run loop and rebuild method, but there's no explicit error handling workflow, no validation checkpoints for verifying projection correctness, and no guidance on what to do when a projection fails mid-batch. The rebuild method lacks verification steps. For batch/destructive operations like rebuilds, this caps at 2. | 2 / 3 |
Progressive Disclosure | This is a monolithic wall of code with no references to external files. Five large templates are inlined when they could be split into separate files. There's no quick-start section — the reader must wade through hundreds of lines to find what they need. No navigation structure or cross-references. | 1 / 3 |
Total | 7 / 12 Passed |
Validation
100%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 11 / 11 Passed
Validation for skill structure
No warnings or errors.
27a7ed9
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.