К основному содержанию
скилл CX Codex

backend-dev-guidelines · diet103 — скилл для Claude Code

Скилл задаёт слоёную архитектуру для Node.js/Express/TypeScript: маршруты, контроллеры, сервисы, репозитории. Включается сам, когда агент трогает бэкенд-код.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add diet103/claude-code-infrastructure-showcase --skill backend-dev-guidelines -a claude-code
Открыть на GitHub

Что делает backend-dev-guidelines

Скилл описывает семь правил, по которым агент пишет и правит бэкенд. Маршруты только маршрутизируют, вся логика уходит в контроллеры, а те наследуют BaseController. Ошибки отправляются в Sentry, вход проверяется схемами Zod, доступ к базе идёт через репозитории, а настройки берутся из unifiedConfig вместо process.env.

Внутри — чек-листы для новой фичи и нового микросервиса, дерево каталогов service/src/ с соглашениями об именах файлов, таблица HTTP-статусов и список антипаттернов. Отдельные файлы разбирают маршрутизацию, сервисы с репозиториями, валидацию, middleware, работу с Prisma, конфигурацию, асинхронность и тесты. Есть шаблоны Blog API и Auth Service.

Скилл написан под Node.js/Express/TypeScript с Prisma и Sentry. На другом стеке архитектурные принципы придётся переносить вручную, ориентируясь на CLAUDE_INTEGRATION_GUIDE.md в корне репозитория. Проверьте это до установки, если у вас, скажем, Fastify и Drizzle.

Какие задачи решает

  • разложить Express-роут на контроллер, сервис и репозиторий
  • убрать бизнес-логику из обработчиков маршрутов
  • подключить Sentry к перехвату ошибок в сервисах
  • описать валидацию тела запроса схемой Zod
  • вынести чтение переменных окружения в unifiedConfig

Примеры запросов агенту

  • Создай эндпоинт POST /users по слоям: маршрут, контроллер на BaseController, сервис, репозиторий
  • Добавь Zod-валидацию для тела запроса и отправь ошибку в Sentry
  • Разложи этот Express-роут по правилам скилла и убери логику из маршрута

Как установить backend-dev-guidelines

1Через Skills CLI (Vercel)

npx skills add diet103/claude-code-infrastructure-showcase --skill backend-dev-guidelines -a claude-code

2Вручную: положить файлы

~/.claude/skills/backend-dev-guidelines/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/backend-dev-guidelines/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о backend-dev-guidelines

Как установить backend-dev-guidelines в Claude Code?

Выполните npx skills add diet103/claude-code-infrastructure-showcase --skill backend-dev-guidelines -a claude-code. Файл скилла появится по пути ~/.claude/skills/backend-dev-guidelines/SKILL.md.

Что делает backend-dev-guidelines?

Задаёт правила слоёной архитектуры для бэкенда на Node.js/Express/TypeScript: маршруты, контроллеры, сервисы, репозитории, а также работу с Prisma, Sentry, Zod и unifiedConfig.

Подойдёт ли скилл для другого стека?

Он написан под Express, Prisma и Sentry. Архитектурные принципы переносимы, но адаптировать их придётся самому — в репозитории для этого есть CLAUDE_INTEGRATION_GUIDE.md.

Исходный текст

SKILL.md · MIT
---
name: backend-dev-guidelines
description: Comprehensive backend development guide for Node.js/Express/TypeScript microservices. Use when creating routes, controllers, services, repositories, middleware, or working with Express APIs, Prisma database access, Sentry error tracking, Zod validation, unifiedConfig, dependency injection, or async patterns. Covers layered architecture (routes → controllers → services → repositories), BaseController pattern, error handling, performance monitoring, testing strategies, and migration from legacy patterns.
---

# Backend Development Guidelines

## Purpose

Establish consistency and best practices across backend services using modern Node.js/Express/TypeScript patterns.

Written for Node.js/Express/TypeScript with Prisma and Sentry. Different stack? Adapt the architectural principles - see CLAUDE_INTEGRATION_GUIDE.md in the repo root.

## When to Use This Skill

Automatically activates when working on:
- Creating or modifying routes, endpoints, APIs
- Building controllers, services, repositories
- Implementing middleware (auth, validation, error handling)
- Database operations with Prisma
- Error tracking with Sentry
- Input validation with Zod
- Configuration management
- Backend testing and refactoring

---

## Quick Start

### New Backend Feature Checklist

- [ ] **Route**: Clean definition, delegate to controller
- [ ] **Controller**: Extend BaseController
- [ ] **Service**: Business logic with DI
- [ ] **Repository**: Database access (if complex)
- [ ] **Validation**: Zod schema
- [ ] **Sentry**: Error tracking
- [ ] **Tests**: Unit + integration tests
- [ ] **Config**: Use unifiedConfig

### New Microservice Checklist

- [ ] Directory structure (see [architecture-overview.md](architecture-overview.md))
- [ ] instrument.ts for Sentry
- [ ] unifiedConfig setup
- [ ] BaseController class
- [ ] Middleware stack
- [ ] Error boundary
- [ ] Testing framework

---

## Architecture Overview

### Layered Architecture

```
HTTP Request
    ↓
Routes (routing only)
    ↓
Controllers (request handling)
    ↓
Services (business logic)
    ↓
Repositories (data access)
    ↓
Database (Prisma)
```

**Key Principle:** Each layer has ONE responsibility.

See [architecture-overview.md](architecture-overview.md) for complete details.

---

## Directory Structure

```
service/src/
├── config/              # UnifiedConfig
├── controllers/         # Request handlers
├── services/            # Business logic
├── repositories/        # Data access
├── routes/              # Route definitions
├── middleware/          # Express middleware
├── types/               # TypeScript types
├── validators/          # Zod schemas
├── utils/               # Utilities
├── tests/               # Tests
├── instrument.ts        # Sentry (FIRST IMPORT)
├── app.ts               # Express setup
└── server.ts            # HTTP server
```

**Naming Conventions:**
- Controllers: `PascalCase` - `UserController.ts`
- Services: `camelCase` - `userService.ts`
- Routes: `camelCase + Routes` - `userRoutes.ts`
- Repositories: `PascalCase + Repository` - `UserRepository.ts`

---

## Core Principles (7 Key Rules)

### 1. Routes Only Route, Controllers Control

```typescript
// ❌ NEVER: Business logic in routes
router.post('/submit', async (req, res) => {
    // 200 lines of logic
});

// ✅ ALWAYS: Delegate to controller
router.post('/submit', (req, res) => controller.submit(req, res));
```

### 2. All Controllers Extend BaseController

```typescript
export class UserController extends BaseController {
    async getUser(req: Request, res: Response): Promise<void> {
        try {
            const user = await this.userService.findById(req.params.id);
            this.handleSuccess(res, user);
        } catch (error) {
            this.handleError(error, res, 'getUser');
        }
    }
}
```

### 3. All Errors to Sentry

```typescript
try {
    await operation();
} catch (error) {
    Sentry.captureException(error);
    throw error;
}
```

### 4. Use unifiedConfig, NEVER process.env

```typescript
// ❌ NEVER
const timeout = process.env.TIMEOUT_MS;

// ✅ ALWAYS
import { config } from './config/unifiedConfig';
const timeout = config.timeouts.default;
```

### 5. Validate All Input with Zod

```typescript
const schema = z.object({ email: z.string().email() });
const validated = schema.parse(req.body);
```

### 6. Use Repository Pattern for Data Access

```typescript
// Service → Repository → Database
const users = await userRepository.findActive();
```

### 7. Comprehensive Testing Required

```typescript
describe('UserService', () => {
    it('should create user', async () => {
        expect(user).toBeDefined();
    });
});
```

---

## Common Imports

```typescript
// Express
import express, { Request, Response, NextFunction, Router } from 'express';

// Validation
import { z } from 'zod';

// Database
import { PrismaClient } from '@prisma/client';
import type { Prisma } from '@prisma/client';

// Sentry
import * as Sentry from '@sentry/node';

// Config
import { config } from './config/unifiedConfig';

// Middleware
import { SSOMiddlewareClient } from './middleware/SSOMiddleware';
import { asyncErrorWrapper } from './middleware/errorBoundary';
```

---

## Quick Reference

### HTTP Status Codes

| Code | Use Case |
|------|----------|
| 200 | Success |
| 201 | Created |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Server Error |

### Service Templates

**Blog API** (✅ Mature) - Use as template for REST APIs
**Auth Service** (✅ Mature) - Use as template for authentication patterns

---

## Anti-Patterns to Avoid

❌ Business logic in routes
❌ Direct process.env usage
❌ Missing error handling
❌ No input validation
❌ Direct Prisma everywhere
❌ console.log instead of Sentry

---

## Navigation Guide

| Need to... | Read this |
|------------|-----------|
| Understand architecture | [architecture-overview.md](architecture-overview.md) |
| Create routes/controllers | [routing-and-controllers.md](routing-and-controllers.md) |
| Organize business logic | [services-and-repositories.md](services-and-repositories.md) |
| Validate input | [validation-patterns.md](validation-patterns.md) |
| Add error tracking | [sentry-and-monitoring.md](sentry-and-monitoring.md) |
| Create middleware | [middleware-guide.md](middleware-guide.md) |
| Database access | [database-patterns.md](database-patterns.md) |
| Manage config | [configuration.md](configuration.md) |
| Handle async/errors | [async-and-errors.md](async-and-errors.md) |
| Write tests | [testing-guide.md](testing-guide.md) |
| See examples | [complete-examples.md](complete-examples.md) |

---

## Resource Files

### [architecture-overview.md](architecture-overview.md)
Layered architecture, request lifecycle, separation of concerns

### [routing-and-controllers.md](routing-and-controllers.md)
Route definitions, BaseController, error handling, examples

### [services-and-repositories.md](services-and-repositories.md)
Service patterns, DI, repository pattern, caching

### [validation-patterns.md](validation-patterns.md)
Zod schemas, validation, DTO pattern

### [sentry-and-monitoring.md](sentry-and-monitoring.md)
Sentry init, error capture, performance monitoring

### [middleware-guide.md](middleware-guide.md)
Auth, audit, error boundaries, AsyncLocalStorage

### [database-patterns.md](database-patterns.md)
PrismaService, repositories, transactions, optimization

### [configuration.md](configuration.md)
UnifiedConfig, environment configs, secrets

### [async-and-errors.md](async-and-errors.md)
Async patterns, custom errors, asyncErrorWrapper

### [testing-guide.md](testing-guide.md)
Unit/integration tests, mocking, coverage

### [complete-examples.md](complete-examples.md)
Full examples, refactoring guide

---

## Related Skills

- **database-verification** - Verify column names and schema consistency
- **error-tracking** - Sentry integration patterns
- **skill-developer** - Meta-skill for creating and managing skills

---

**Skill Status**: COMPLETE ✅
**Line Count**: < 500 ✅
**Progressive Disclosure**: 11 resource files ✅

© diet103 · MIT · diet103/claude-code-infrastructure-showcase

Похожие скиллы

Все скиллы по теме «Бэкенд и API» →

Сначала — backend-dev-guidelines от других авторов.

backend-dev-guidelines sickn33 Задаёт агенту роль senior-бэкендера: слоистая архитектура, Zod-валидация, DI и один источник конфига. Пригодится на Express и Prisma. CX Codex +1 1 800установок mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. 130 949установок claude-api официальный anthropics Справочник по Anthropic SDK и API Claude для генерации кода без устаревших параметров и выдуманных методов. 74 198установок lark-im larksuite Скилл подключает Lark IM к агенту: он отправляет сообщения, ищет историю, управляет чатами и файлами. Подойдёт для задач вокруг командных коммуникаций. CX Codex +1 472 900установок lark-event larksuite Слушает события Lark/Feishu и отдаёт их потоком NDJSON. Подходит для ботов, обработчиков сообщений и долгих подписчиков. CX Codex +1 466 800установок caveman-discover JuliusBrussee Находит точки вызова LLM в репозитории и размечает их воркфлоу для Caveman Cloud, чтобы расходы на токены не сливались в одну общую кучу. CX Codex +1 104 400установок migration JuliusBrussee Скилл задаёт правила безопасных миграций схем, данных и API с обязательным откатом. Пригодится при изменениях, где нельзя терять данные или ломать совместимость. CX Codex +1 103 900установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой