CtrlK
BlogDocsLog inGet started
Tessl Logo

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.

81

1.77x
Quality

72%

Does it follow best practices?

Impact

94%

1.77x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./tests/ext_conformance/artifacts/agents-wshobson/backend-development/skills/projection-patterns/SKILL.md

The canonical home for this skill is projection-patterns in wshobson/agents

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 content's main strength is actionability — five concrete, largely executable Python templates covering SQL read models, search indexing, and aggregation. Its weaknesses are the absence of any sequenced workflow with validation checkpoints for batch/DB operations, the all-in-one 490-line body with no progressive disclosure into reference files, and padding (ASCII diagram, concept table) that assumes too little of Claude.

Suggestions

Add a numbered implementation workflow (define projection → register → run → verify checkpoint/lag → rebuild) with an explicit validation step after applying events, since batch/DB operations currently lack any feedback loop.

Move the larger templates (Elasticsearch search projection, multi-table projection) into files under references/ and keep a compact base template plus do's/don'ts in SKILL.md, linked with clearly signaled one-level-deep references.

Trim the ASCII architecture diagram and projection-types table — Claude already knows CQRS/event-sourcing fundamentals — and fix the missing `import asyncio` and cross-template Event/Projection imports so templates are self-contained.

DimensionReasoningScore

Conciseness

The body opens with "Comprehensive guide to building projections" and spends tokens on a decorative ASCII architecture diagram and a projection-types table that restate CQRS/event-sourcing concepts Claude already knows, and the five ~70-line templates could be tightened — "mostly efficient but includes some unnecessary explanation", matching anchor 3 rather than anchor 2 since there is no tutorial-style padding prose.

3 / 5

Actionability

The templates provide concrete, near-copy-paste asyncpg/Elasticsearch code with real SQL (e.g., the ON CONFLICT upsert in DailySalesProjection), but minor gaps remain: Template 1 calls "asyncio.sleep" without importing asyncio, and Templates 2-5 rely on Event/Projection defined only in Template 1, fitting anchor 4 rather than fully-executable anchor 5.

4 / 5

Workflow Clarity

No sequenced implementation workflow is given (define projection → register → run → checkpoint → rebuild is only implicit in code), and despite batch event processing and database writes there is no validation or feedback loop — the "Don't skip error handling" bullet is advice, not a checkpoint — so per the rubric's cap for batch/DB operations without validation, workflow clarity cannot exceed 3.

3 / 5

Progressive Disclosure

Section headers give the ~490-line body decent structure, but roughly 400 lines of templates are inlined in SKILL.md with no bundle files at all, matching anchor 3 ("content that should be separate is inline"); it is above anchor 2 because structure exists and navigation within the file is easy.

3 / 5

Total

13

/

20

Passed

Description

87%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.

The description is strong: it states concrete capabilities in third person, includes an explicit and specific 'Use when' clause, and carves out a distinct niche with low conflict risk. The only weakness is that keyword coverage omits a few natural synonyms users might say.

DimensionReasoningScore

Specificity

"Build read models and projections from event streams" plus "implementing CQRS read sides, building materialized views, or optimizing query performance" lists several specific concrete actions in third person, but coverage has minor gaps (no mention of checkpointing, replays, or search indexing), matching anchor 4 rather than the comprehensive anchor 5.

4 / 5

Completeness

It clearly answers "what" ("Build read models and projections from event streams") and "when" with an explicit "Use when implementing CQRS read sides, building materialized views, or optimizing query performance in event-sourced systems" clause containing concrete trigger phrases — a direct match to anchor 5.

5 / 5

Trigger Term Quality

Natural domain keywords are present ("CQRS read sides", "materialized views", "event-sourced systems", "event streams", "query performance") and a user would plausibly say them, but a few common variations such as "event sourcing" or "rebuild/replay" are missing, so it falls short of the comprehensive anchor 5.

4 / 5

Distinctiveness Conflict Risk

It occupies a clear niche (projections/read models for event-sourced CQRS systems) with distinct trigger phrases unlikely to collide with generic database, caching, or search skills, matching anchor 5.

5 / 5

Total

18

/

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
Dicklesworthstone/pi_agent_rust
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.