ts-query-cqrs
Create, review, or guide read-side queries in a TypeScript + DDD CQRS codebase.
Skill by llodev
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/llodev-ts-query-cqrs
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ts-query-cqrs
What's inside
- Skill name
ts-query-cqrs- Description
- Create, review, or guide read-side queries in a TypeScript + DDD CQRS codebase. Use when the request involves `*Query` interfaces, `*.query.ts` files, read use cases (`find-*`), DTO projections for API/front consumption, pagination/filters/aggregations, or separating read (query) from write (repository/command).
- License
- MIT
- Metadata
- version: 0.1.0
- Instructions
- 61 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (11)
- CHANGELOG.md
- LICENSE
- README.md
- SKILL.md
- README.es-ES.md · docs/i18n/
- README.pt-BR.md · docs/i18n/
- find-many-items.query.ts · examples/
- in-memory-find-many-items.query.ts · examples/
- package.json
- prisma-adapter.md · references/
- query-cqrs-pattern.md · references/
SKILL.md (first lines)
# TypeScript DDD Query (CQRS Read Side) **MANDATORY — READ ENTIRE FILE**: Before any implementation step, read [`references/query-cqrs-pattern.md`](references/query-cqrs-pattern.md) completely. **Then load the adapter reference for your infrastructure:** - **Prisma** → also read [`references/prisma-adapter.md`](references/prisma-adapter.md) completely. - Other adapters (Firestore, MongoDB, Supabase…) → reference files not yet available; apply the principles from `query-cqrs-pattern.md`. **Do NOT load** other DDD skills (entity, use-case, repository) unless explicitly requested. --- ## Before You Start Before defining a single interface, answer: - **Read or write?** If the caller needs the entity to run domain logic → `Repository`. If the caller only needs data to display → `Query`. When in doubt, check the table below. - **Projection shape?** What does the consumer actually need? Individual fields only — never return the full entity from a query. - **Pagination?** Does the list need `page`/`pageSize`? Use `PaginatedResultDTO<XxxListItem>`. - **Filters?** Map optional filters to conditional `WHERE` clauses in the adapter — never hard-code them. --- ## Query vs Repository Decision Table | Situation | Use | Why | | --------------------------------------------------------- | --------------------- | ------------------------------------------------------ | | Display a list on the front-end | `Query` | Returns DTO, no entity overhead | | Load entity before an update/delete | `Repository.findById` | Needs domain invariants (`cloneWith`) | | Paginated list with filters | `Query` | Joins and selective projection are a read-side concern | | Existence check before a write | `Repository.findById` | Returns entity or `Result.fail` — not a DTO | | Dashboard / aggregated panel | `Query` | Reads across tables, no entity reconstruction needed | | Custom domain lookup (`findByEmail`) that feeds a command | `Repository` | Caller needs an entity to modify | --- ## Core Rules - Query interface lives in `core` — no ORM imports, no database driver types. - `execute(input): Promise<Result<OutputDTO>>` is the only method signature. - The adapter maps rows **directly to DTO** — it never reconstructs a domain entity (`toDomain`). - Use `SELECT` fields explicitly in the adapter — never `findMany` without a `select` clause. - Paginated queries must count total records atomically with a single DB round-trip. ## NEVER - **NEVER** return a domain entity from a Query — entities expose write-side invariants and domain methods that leak to consumers. - **NEVER** import the entity class or call `toDomain` inside a query adapter — queries map rows to DTOs directly. - **NEVER** put write-side logic (validation, `cloneWith`, invariant checks) inside a query. - **NEVER** use `findMany` without a `select` clause — over-fetching in projections becomes a silent performance trap. - **NEVER** run two separate DB calls for data + count — use a single atomic operation to avoid race conditions on paginated results. - **NEVER** extend or instantiate the entity class from DTO — a DTO derived from `*Props` must use `Omit`/`Pick`, not class inheritance. ## References - [`references/query-cqrs-pattern.md`](references/query-cqrs-pattern.md) — core contract, DTO modeling, in-memory mock, checklist. - [`references/prisma-adapter.md`](references/prisma-adapter.md) — Prisma-specific adapter with `select`, `$transaction`, conditional WHERE.
From llodev/skills, MIT.
More from llodev/skills
- 0.563score
ts-ddd-dto
llodev
Create, review, or guide Data Transfer Objects in a TypeScript + DDD monorepo.
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
ts-ddd-domain-service
llodev
Create, review, or guide pure Domain Service implementation in a TypeScript + DDD monorepo.
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
ts-ddd-repository
llodev
Create, review, or guide repository contracts and implementations in a TypeScript + DDD codebase.
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
ts-ddd-controller
llodev
Create, review, or guide HTTP controllers in a TypeScript + DDD api.
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
ts-ddd-entity
llodev
Create, review, or guide Domain Entity implementation in a TypeScript + DDD codebase.
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
ts-ddd-value-object
llodev
Create, review, or guide Value Object implementation in a TypeScript + DDD codebase.
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
ts-ddd-use-case
llodev
Create, review, or guide use case (application service) implementation in a TypeScript + DDD codebase.
SkillBFreshness: B★ 2Claude Code +9 - 0.558score
django-schema-design
llodev
Design robust Django database schemas with model best practices, migration patterns, and primary key strategy (incremental, UUID, UUIDv7).
SkillBFreshness: B★ 2Claude Code +9 - 0.558score
pm-tasks-asana
llodev
Asana adapter for the @llodev/pm-tasks-* family.
SkillBFreshness: B★ 2Claude Code +9 - 0.558score
pm-tasks-core
llodev
Core extraction + vocabulary for the @llodev/pm-tasks-* family.
SkillBFreshness: B★ 2Claude Code +9 - 0.558score
pm-tasks-trello
llodev
Trello adapter for the @llodev/pm-tasks-* family.
SkillBFreshness: B★ 2Claude Code +9 - 0.554score
pm-tasks-linear
llodev
Linear adapter for the @llodev/pm-tasks-* family.
SkillBFreshness: B★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jul 17, 2026 (3 months ago)
- Last release
- Aug 21, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 0.1.0
- License
- MIT
- Repository
- github.com/llodev/skills
- Website
- www.npmjs.com/org/llodev
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from llodev
- 0.563score
ts-ddd-dto
llodev
Create, review, or guide Data Transfer Objects in a TypeScript + DDD monorepo.
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
ts-ddd-entity
llodev
Create, review, or guide Domain Entity implementation in a TypeScript + DDD codebase.
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
ts-ddd-controller
llodev
Create, review, or guide HTTP controllers in a TypeScript + DDD api.
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
ts-ddd-domain-service
llodev
Create, review, or guide pure Domain Service implementation in a TypeScript + DDD monorepo.
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
ts-ddd-value-object
llodev
Create, review, or guide Value Object implementation in a TypeScript + DDD codebase.
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
ts-ddd-repository
llodev
Create, review, or guide repository contracts and implementations in a TypeScript + DDD codebase.
SkillBFreshness: B★ 2Claude Code +9
Cite this page
ts-query-cqrs skill. Agent Mart. https://agentmart.dev/skills/llodev-ts-query-cqrs (last updated 2026-10-24)