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-patternsOverall
score
78%
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillEvaluation — 95%
↑ 1.73xAgent success when using this skill
Validation for skill structure
Core projection class structure
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
Projector checkpointing and rebuild
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
Aggregating upserts and multi-table transactions
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
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.