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.

Install with Tessl CLI

npx tessl i github:wshobson/agents --skill projection-patterns
What are skills?

Overall
score

78%

Does it follow best practices?

Evaluation95%

1.73x

Agent success when using this skill

Validation for skill structure

SKILL.md
Review
Evals

Evaluation results

100%

62%

Library Checkout Read Model

Core projection class structure

Criteria
Without context
With context

Event dataclass

100%

100%

stream_id field

0%

100%

global_position field

0%

100%

version field

0%

100%

Projection ABC

100%

100%

Abstract name property

0%

100%

Abstract handles method

0%

100%

Abstract apply method

0%

100%

asyncpg Pool usage

0%

100%

Pool acquire pattern

0%

100%

Handler dispatch dict

60%

100%

Denormalized table

100%

100%

Three event types handled

57%

100%

Separate handler methods

100%

100%

Without context: $0.3068 · 1m 35s · 13 turns · 13 in / 5,017 out tokens

With context: $0.5818 · 2m 9s · 20 turns · 19 in / 7,856 out tokens

100%

47%

Resilient Event Projection Runner

Projector checkpointing and rebuild

Criteria
Without context
With context

Projector constructor

100%

100%

Projections list

100%

100%

Register method

100%

100%

Polling interval

0%

100%

Default batch size 100

33%

100%

Rebuild batch size 1000

0%

100%

Checkpoint default to 0

100%

100%

Checkpoint save per event

0%

100%

Saves global_position

0%

100%

Rebuild deletes checkpoint

100%

100%

Rebuild uses projection name

100%

100%

Handles unregistered types

63%

100%

Without context: $0.3146 · 1m 20s · 14 turns · 63 in / 4,733 out tokens

With context: $0.5413 · 1m 50s · 21 turns · 259 in / 6,604 out tokens

84%

11%

SaaS Usage Analytics Projections

Aggregating upserts and multi-table transactions

Criteria
Without context
With context

ON CONFLICT upsert

100%

100%

Incremental counter update

100%

100%

Transaction for multi-table

67%

100%

Both tables in transaction

100%

100%

asyncpg Pool pattern

0%

100%

Idempotent daily upsert

100%

100%

Handler dispatch dict

0%

0%

Error handling present

13%

0%

Date extraction for daily key

100%

100%

Separate projection classes

100%

100%

Implementation notes file

100%

100%

Without context: $0.3420 · 1m 38s · 12 turns · 12 in / 6,381 out tokens

With context: $0.3893 · 1m 44s · 15 turns · 303 in / 5,032 out tokens

Evaluated
Agent
Claude Code

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.