backend-dev-guidelines
作成者: langfuse
LangfuseのNext.js、tRPC、BullMQ、TypeScriptモノレポ向けの共有バックエンドガイド。tRPCルーター、公開RESTエンドポイント、BullMQの作成やレビュー時に使用します。
npx skills add https://github.com/langfuse/langfuse --skill backend-dev-guidelinesBackend Development Guidelines
Use this skill for backend and API work across web/, worker/, and
packages/shared/.
When to Apply
- Creating or modifying tRPC routers and procedures
- Creating or modifying public API endpoints
- Creating or modifying queue processors, producers, or queue-backed workflows
- Building or refactoring backend services and repositories
- Working on backend auth, middleware, validation, or observability
- Updating Prisma or ClickHouse access patterns
- Adding or fixing backend tests
How to Read This Skill
- Use this
SKILL.mdwhen the task spans multiple backend areas or you need the end-to-end reference map. - Read only the specific reference file that matches the work when the scope is narrower.
- If the task introduces a user-supplied URL, an outbound HTTP request, a new
integration, or touches secrets, RBAC, or redirect handling, also load the
shared
security-reviewskill before designing or implementing the change.
Quick Start Checklists
UI: New tRPC Feature
- Define the router in
features/[feature]/server/*Router.ts. - Use the appropriate protected or public procedure.
- Authenticate with JWT-aware middleware.
- Check project/resource access and entitlements.
- Validate input with Zod v4.
- Put business logic in a service file.
- Use
traceExceptionfor error handling where relevant. - Add unit or integration tests in
__tests__/. - Access config via
env.mjs.
SDKs: New Public API Endpoint
- Create the route in
pages/api/public/. - Wrap it with
withMiddlewaresandcreateAuthedProjectAPIRoute. - Define types in
features/public-api/types/. - Authenticate with basic auth.
- Validate query, body, and response with Zod schemas.
- Include API versioning in paths and schemas.
- Update Fern API definitions to match TypeScript types.
- Add end-to-end tests in
__tests__/async/.
Worker: New Queue Processor
- Create the processor in
worker/src/queues/. - Define queue types in
packages/shared/src/server/queues. - Place business logic in
features/orworker/src/features/. - Distinguish failed jobs from jobs that should succeed with a recorded error.
- Register the queue in
WorkerManagerinapp.ts. - Add worker vitest coverage.
Core Principles
- tRPC procedures, public API routes, and queue processors delegate business logic to services.
- Access configuration through
env.mjs; do not readprocess.envdirectly outside env setup. - Validate all external input with Zod v4.
- Use Prisma directly for simple CRUD and repositories for complex query access.
- Use OpenTelemetry and DataDog for backend observability.
- Always filter project-scoped database queries by
projectId. - Keep Fern API definitions in sync with public TypeScript API contracts.
- Keep backend tests independent and parallel-safe.
Live Examples
- tRPC router with project auth and Zod input:
web/src/features/events/server/eventsRouter.ts. - Public API route with middleware and typed request/response schemas:
web/src/pages/api/public/datasets/index.ts. - Worker queue processor with typed jobs, logging, and retry behavior:
worker/src/queues/evalQueue.ts. - Tenant filters for Prisma and ClickHouse:
references/database-patterns.md.
Naming Conventions
- tRPC routers:
camelCaseRouter.ts, for exampledatasetRouter.ts. - Services:
service.tsin the feature server directory. - Queue processors:
camelCaseQueue.ts, for exampleevalQueue.ts. - Public API routes: kebab-case filenames, for example
dataset-items.ts.
Anti-Patterns to Avoid
- Business logic in routes or procedures.
- Direct
process.envusage instead ofenv.mjs/env.ts. - Missing error handling.
- Missing input validation.
- Missing
projectIdfilters on tenant-scoped queries. console.loginstead oflogger/traceException.
Reference Map
| Topic | Read this when | File |
|---|---|---|
| Architecture and package boundaries | You need the web/worker/shared split, request flow, or queue lifecycle | references/architecture-overview.md |
| Routing and controllers | You are writing tRPC procedures, public API routes, or queue entrypoints | references/routing-and-controllers.md |
| Middleware and auth | You are changing request auth, permissions, or middleware composition | references/middleware-guide.md |
| Services and repositories | You are placing business logic, repository code, or DI patterns | references/services-and-repositories.md |
| Database access | You are touching Prisma, ClickHouse, tenant filters, or query patterns | references/database-patterns.md |
| Configuration | You are adding env vars, startup config, or runtime toggles | references/configuration.md |
| Testing | You are adding or updating backend tests | references/testing-guide.md |
langfuseのその他のスキル
add-model-price
langfuse
worker/src/constants/default-model-prices.json、packages/shared/src/server/llm/types.ts、価格ティア、トークナイザーID、またはmatchPattern正規表現を編集する際に使用します…
official
agent-setup-maintenance
langfuse
このスキルは、リポジトリの共有エージェント設定を変更する際に使用します。
official
changelog-writing
langfuse
完了したフィーチャーブランチにチェンジログエントリが必要な場合に、このスキルを使用してください。
official
clickhouse-best-practices
langfuse
ClickHouseのスキーマ、クエリ、または設定をレビューする際には必ず使用すること。推奨事項を提供する前に必ず確認すべき28のルールが含まれています。常に読んでください…
official
code-review
langfuse
このスキルは、機能を実装するのではなく、コード変更をレビューするタスクの際に使用してください。
official
frontend-browser-review
langfuse
このスキルは、変更がブラウザ上でユーザーが見たり操作したりする内容に影響を与える場合に使用してください。
official
skill-developer
langfuse
Anthropicのベストプラクティスに従ってClaude Codeスキルを作成・管理します。新しいスキルの作成、skill-rules.jsonの変更、トリガーの理解などに使用します。
official
turborepo
langfuse
JavaScript/TypeScriptモノレポ向けのビルドシステム。Turborepoはタスクの出力をキャッシュし、依存関係グラフに基づいてタスクを並列実行します。
official