一键导入
spotiarr-prisma
Trigger: Prisma, database, migration, schema, repository, query. SQLite Prisma patterns for spotiarr: boundaries, error handling, commands.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Trigger: Prisma, database, migration, schema, repository, query. SQLite Prisma patterns for spotiarr: boundaries, error handling, commands.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Trigger: Docker, docker-compose, deploy, container, volume, DOWNLOADS_DIR, PUID, PGID, update, self-hosted. spotiarr Docker setup: services, volumes, env vars, update flow.
Trigger: Zustand, store, client state, usePlayerStore, usePreferencesStore, playerUISlice, ephemeral state, persist middleware. spotiarr Zustand rules: 2 stores + player UI slice, server state stays in TanStack Query, patterns for selectors and bulk hooks.
Trigger: command, validate, PR, branch, run lint, run build, secrets. Correct pnpm commands, branch naming, PR checklist, and secrets rules for spotiarr.
Trigger: architecture, layer, placement, where does X go, new feature, repo structure. spotiarr layer rules: backend DDD-lite, frontend hooks/store/views.
Trigger: i18n, translation, i18next, language, locale, new language, translate. spotiarr frontend i18n: key conventions, useLanguageSync override, adding languages.
Trigger: SSE, server-sent events, real-time, useServerEvents, live updates, EventSource. spotiarr SSE pattern: frontend EventSource hook, backend AppEventBus, 4 event types.
| name | spotiarr-prisma |
| description | Trigger: Prisma, database, migration, schema, repository, query. SQLite Prisma patterns for spotiarr: boundaries, error handling, commands. |
| license | Apache-2.0 |
| metadata | {"author":"gentleman-programming","version":"2.0"} |
Load when editing Prisma schema, writing repository code, running migrations, or handling DB errors.
apps/backend/src/infrastructure/database/ only. Never in domain/ or presentation/.apps/backend/src/infrastructure/setup/prisma.ts → import from there, never instantiate PrismaClient elsewhere.HTTP request → Zod parse → typed DTO → repository → Prisma.| Error | Handling |
|---|---|
P2025 (not found) | Guard with isPrismaNotFoundError, handle gracefully |
| Unique constraint | Catch and map to domain conflict error |
| Foreign key violation | Map to application-level validation error |
const isPrismaNotFoundError = (e: unknown): e is { code: string } =>
e instanceof Error && "code" in e && e.code === "P2025";
After schema changes:
pnpm --filter backend run prisma:generate # regenerate client
pnpm --filter backend run prisma:migrate:deploy # apply migrations
apps/backend/prisma/schema.prismaapps/backend/src/infrastructure/setup/prisma.tsapps/backend/src/infrastructure/database/