Repositories & Data Access
SkillDatabases & dataImplement repository interfaces for data persistence and abstraction over database operations using Bun ORM.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Repositories & Data Access skill
What this skill tells your AI
The instructions your AI receives, as published by cliqrelay/cliqrelay in .agents/skills/backend/repositories-and-data-access/SKILL.md and read by ahel’s review.
When to use this skill
- Create data access layer abstractions for entities
- Implement Bun-based repositories for database operations
- Define repository interfaces that services depend on
- Add transaction support (WithTx) to repositories
Key principles
- Interface segregation: One repository interface per domain model
- Bun ORM: Use Bun for type-safe database operations
- Transaction support: Every repository implements
WithTx(tx bun.IDB) - Context-aware: All operations accept
context.Context - No business logic: Repositories only handle CRUD; logic lives in services
Pattern
Repositories are data access only:
- Define interface with CRUD operations (Create, GetByID, Update, Delete)
- Implement with Bun in
bun_*.gofiles - Accept
bun.IDBat construction (not concrete*bun.DB) - Return interfaces from constructors
- Missing records return
nil, nilfor single queries; empty slice for batch queries
Example
See examples/bun_todo_repository.go for:
- ITodoRepository interface definition
- bunTodoRepository Bun implementation
- CRUD and batch query patterns
Common mistakes
- Returning errors for missing records (use nil instead)
- Forgetting
WithTx()method - Putting business logic in repositories
- Not passing context to Scan/Exec
- Repository-to-repository calls instead of service orchestration
References
Signals
- GitHub stars
- 40
- Forks
- 1
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
repositories-and-data-access- Source
- github.com/cliqrelay/cliqrelay