CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

projection-patterns

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.

59

Quality

74%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./plugins/backend-development/skills/projection-patterns/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The skill is cleanly structured with excellent progressive disclosure — a lean overview correctly delegating real, code-rich templates to a single one-level-deep reference. However, the body itself is conceptual: it explains architecture Claude already knows and provides no concrete steps, code, or validation checkpoints for actually implementing and replaying projections.

Suggestions

Replace the ASCII architecture diagram and known-concept explanations with a short numbered implementation sequence (pick projection type -> implement handler from references/details.md template -> persist checkpoint -> test idempotent replay).

Add a concrete inline snippet for the most common case (e.g. a checkpoint schema or an idempotent upsert SQL statement) so the body is actionable before opening details.md.

Include a validation/verification checkpoint for rebuilds and replay (e.g. verify checkpoint position matches event-store global position before/after replay), since projection processing is a batch database operation.

Trim or fold the Live/Catchup/Persistent/Inline type table into a one-line pointer to details.md, since it restates knowledge Claude already has.

DimensionReasoningScore

Conciseness

The body is short and mostly lean, but the 'Core Concepts' section spends lines on an ASCII architecture diagram (Event Store -> Projector -> Read Model) and a Live/Catchup/Persistent/Inline type taxonomy that Claude already knows from CQRS/event-sourcing knowledge. That is unnecessary explanation that could be tightened, matching anchor 3; it is above anchor 2 because padding is limited to this one section.

3 / 5

Actionability

The body contains no executable code or commands — the do's/don'ts ('Make projections idempotent', 'Store checkpoints') are high-level directives, and all concrete material is delegated to references/details.md. Per the rubric's code_vs_instruction note, absence of code is not penalized per se, but the inline guidance itself lacks specific steps or concrete examples (e.g. how to store a checkpoint), placing it between anchors 2 and 3; the verified pointer to a real, code-rich details.md keeps it at 3 rather than 2.

3 / 5

Workflow Clarity

There is no operational sequence for actually building a projection (e.g. choose type -> implement handler -> persist checkpoint -> verify idempotent replay); the body reads as concepts -> external templates -> best practices rather than steps. Projection building/replay is a batch database operation with no validation or feedback loop described, which caps this dimension at 3 per the rubric; it is above anchor 2 because the section order and the do's/don'ts do convey a rough reading path.

3 / 5

Progressive Disclosure

The body is a genuine overview: it stays lean and offloads the full template library to a single, well-signaled, one-level-deep reference ('Full template library and detailed worked examples live in references/details.md. Read that file when you need the concrete templates.'), and references/details.md actually exists with five concrete code templates. This matches anchor 5 — clear overview, appropriately split content, easy navigation — with no nesting or buried references.

5 / 5

Total

14

/

20

Passed

Description

78%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A well-formed description with an explicit 'Use when' clause and domain-specific trigger terms. The main weaknesses are a thin capability list (only two named actions) and one overly broad trigger ('optimizing query performance') that risks firing outside the event-sourcing niche.

Suggestions

Expand the what-clause with 2-3 more concrete actions, e.g. 'Build read models and projections from event streams, manage projection checkpoints, and rebuild/denormalize views for fast queries.'

Qualify the broad trigger to reduce conflict risk, e.g. 'optimizing query performance on the read side of event-sourced systems' instead of bare 'optimizing query performance'.

Add natural trigger variations users say, such as 'event sourcing', 'rebuilding projections', or 'denormalized read models'.

DimensionReasoningScore

Specificity

The 'what' clause names the domain and exactly two concrete actions — 'Build read models and projections from event streams' — matching the anchor for 1-2 concrete actions without being comprehensive (no mention of checkpointing, rebuild, or denormalization in the what-clause). It is below anchor 4 because several specific actions are not listed in the capability statement itself.

3 / 5

Completeness

It clearly answers both questions: 'Build read models and projections from event streams' (what) and an explicit 'Use when implementing CQRS read sides, building materialized views, or optimizing query performance in event-sourced systems' (when) with concrete trigger phrases. This mirrors the anchor-5 example structure directly; it is not anchor 4 because the when-clause is already explicit and specific, not merely present.

5 / 5

Trigger Term Quality

Strong natural phrases practitioners actually say — 'CQRS read sides', 'materialized views', 'event-sourced systems', 'query performance', 'projections', 'read models'. It falls short of anchor 5 because common variations like 'event sourcing' as a bare phrase, 'event-driven', 'denormalized views', or 'rebuilding projections' are missing.

4 / 5

Distinctiveness Conflict Risk

The niche is clear (event-sourced/CQRS projections) with mostly distinct triggers, but 'optimizing query performance' is a broad phrase that would also fire for ordinary (non-event-sourced) query optimization requests — minor overlap risk with general database/performance skills. It is not anchor 5 due to that overlap risk, and well above anchor 3 because the other triggers are highly specific to this domain.

4 / 5

Total

16

/

20

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 — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

wshobson/agents

Path

plugins/backend-development/skills/projection-patterns/SKILL.md

Reviewed

Table of Contents

Is this your skill?

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.