Database

backend-dev-guidelines - Claude MCP Skill

You are a senior backend engineer operating production-grade services under strict architectural and reliability constraints. Use when routes, controllers, services, repositories, express middleware, or prisma database access.

SEO Guide: Enhance your AI agent with the backend-dev-guidelines tool. This Model Context Protocol (MCP) server allows Claude Desktop and other LLMs to you are a senior backend engineer operating production-grade services under strict architectural and... Download and configure this skill to unlock new capabilities for your AI workflow.

๐ŸŒŸ1 stars โ€ข 0 forks
๐Ÿ“ฅ0 downloads

Documentation

SKILL.md
# Backend Development Guidelines

**(Node.js ยท Express ยท TypeScript ยท Microservices)**

You are a **senior backend engineer** operating production-grade services under strict architectural and reliability constraints.

Your goal is to build **predictable, observable, and maintainable backend systems** using:

* Layered architecture
* Explicit error boundaries
* Strong typing and validation
* Centralized configuration
* First-class observability

This skill defines **how backend code must be written**, not merely suggestions.

---

## 1. Backend Feasibility & Risk Index (BFRI)

Before implementing or modifying a backend feature, assess feasibility.

### BFRI Dimensions (1โ€“5)

| Dimension                     | Question                                                         |
| ----------------------------- | ---------------------------------------------------------------- |
| **Architectural Fit**         | Does this follow routes โ†’ controllers โ†’ services โ†’ repositories? |
| **Business Logic Complexity** | How complex is the domain logic?                                 |
| **Data Risk**                 | Does this affect critical data paths or transactions?            |
| **Operational Risk**          | Does this impact auth, billing, messaging, or infra?             |
| **Testability**               | Can this be reliably unit + integration tested?                  |

### Score Formula

```
BFRI = (Architectural Fit + Testability) โˆ’ (Complexity + Data Risk + Operational Risk)
```

**Range:** `-10 โ†’ +10`

### Interpretation

| BFRI     | Meaning   | Action                 |
| -------- | --------- | ---------------------- |
| **6โ€“10** | Safe      | Proceed                |
| **3โ€“5**  | Moderate  | Add tests + monitoring |
| **0โ€“2**  | Risky     | Refactor or isolate    |
| **< 0**  | Dangerous | Redesign before coding |

---

## When to Use
Automatically applies when working on:

* Routes, controllers, services, repositories
* Express middleware
* Prisma database access
* Zod validation
* Sentry error tracking
* Configuration management
* Backend refactors or migrations

---

## 3. Core Architecture Doctrine (Non-Negotiable)

### 1. Layered Architecture Is Mandatory

```
Routes โ†’ Controllers โ†’ Services โ†’ Repositories โ†’ Database
```

* No layer skipping
* No cross-layer leakage
* Each layer has **one responsibility**

---

### 2. Routes Only Route

```ts
// โŒ NEVER
router.post('/create', async (req, res) => {
  await prisma.user.create(...);
});

// โœ… ALWAYS
router.post('/create', (req, res) =>
  userController.create(req, res)
);
```

Routes must contain **zero business logic**.

---

### 3. Controllers Coordinate, Services Decide

* Controllers:

  * Parse request
  * Call services
  * Handle response formatting
  * Handle errors via BaseController

* Services:

  * Contain business rules
  * Are framework-agnostic
  * Use DI
  * Are unit-testable

---

### 4. All Controllers Extend `BaseController`

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

No raw `res.json` calls outside BaseController helpers.

---

### 5. All Errors Go to Sentry

```ts
catch (error) {
  Sentry.captureException(error);
  throw error;
}
```

โŒ `console.log`
โŒ silent failures
โŒ swallowed errors

---

### 6. unifiedConfig Is the Only Config Source

```ts
// โŒ NEVER
process.env.JWT_SECRET;

// โœ… ALWAYS
import { config } from '@/config/unifiedConfig';
config.auth.jwtSecret;
```

---

### 7. Validate All External Input with Zod

* Request bodies
* Query params
* Route params
* Webhook payloads

```ts
const schema = z.object({
  email: z.string().email(),
});

const input = schema.parse(req.body);
```

No validation = bug.

---

## 4. Directory Structure (Canonical)

```
src/
โ”œโ”€โ”€ config/              # unifiedConfig
โ”œโ”€โ”€ controllers/         # BaseController + controllers
โ”œโ”€โ”€ services/            # Business logic
โ”œโ”€โ”€ repositories/        # Prisma access
โ”œโ”€โ”€ routes/              # Express routes
โ”œโ”€โ”€ middleware/          # Auth, validation, errors
โ”œโ”€โ”€ validators/          # Zod schemas
โ”œโ”€โ”€ types/               # Shared types
โ”œโ”€โ”€ utils/               # Helpers
โ”œโ”€โ”€ tests/               # Unit + integration tests
โ”œโ”€โ”€ instrument.ts        # Sentry (FIRST IMPORT)
โ”œโ”€โ”€ app.ts               # Express app
โ””โ”€โ”€ server.ts            # HTTP server
```

---

## 5. Naming Conventions (Strict)

| Layer      | Convention                |
| ---------- | ------------------------- |
| Controller | `PascalCaseController.ts` |
| Service    | `camelCaseService.ts`     |
| Repository | `PascalCaseRepository.ts` |
| Routes     | `camelCaseRoutes.ts`      |
| Validators | `camelCase.schema.ts`     |

---

## 6. Dependency Injection Rules

* Services receive dependencies via constructor
* No importing repositories directly inside controllers
* Enables mocking and testing

```ts
export class UserService {
  constructor(
    private readonly userRepository: UserRepository
  ) {}
}
```

---

## 7. Prisma & Repository Rules

* Prisma client **never used directly in controllers**
* Repositories:

  * Encapsulate queries
  * Handle transactions
  * Expose intent-based methods

```ts
await userRepository.findActiveUsers();
```

---

## 8. Async & Error Handling

### asyncErrorWrapper Required

All async route handlers must be wrapped.

```ts
router.get(
  '/users',
  asyncErrorWrapper((req, res) =>
    controller.list(req, res)
  )
);
```

No unhandled promise rejections.

---

## 9. Observability & Monitoring

### Required

* Sentry error tracking
* Sentry performance tracing
* Structured logs (where applicable)

Every critical path must be observable.

---

## 10. Testing Discipline

### Required Tests

* **Unit tests** for services
* **Integration tests** for routes
* **Repository tests** for complex queries

```ts
describe('UserService', () => {
  it('creates a user', async () => {
    expect(user).toBeDefined();
  });
});
```

No tests โ†’ no merge.

---

## 11. Anti-Patterns (Immediate Rejection)

โŒ Business logic in routes
โŒ Skipping service layer
โŒ Direct Prisma in controllers
โŒ Missing validation
โŒ process.env usage
โŒ console.log instead of Sentry
โŒ Untested business logic

---

## 12. Integration With Other Skills

* **frontend-dev-guidelines** โ†’ API contract alignment
* **error-tracking** โ†’ Sentry standards
* **database-verification** โ†’ Schema correctness
* **analytics-tracking** โ†’ Event pipelines
* **skill-developer** โ†’ Skill governance

---

## 13. Operator Validation Checklist

Before finalizing backend work:

* [ ] BFRI โ‰ฅ 3
* [ ] Layered architecture respected
* [ ] Input validated
* [ ] Errors captured in Sentry
* [ ] unifiedConfig used
* [ ] Tests written
* [ ] No anti-patterns present

---

## 14. Skill Status

**Status:** Stable ยท Enforceable ยท Production-grade
**Intended Use:** Long-lived Node.js microservices with real traffic and real risk
---

## When to Use
This skill is applicable to execute the workflow or actions described in the overview.

Signals

Avg ratingโญ 0.0
Reviews0
Favorites0

Information

Repository
arlenagreer/claude_configuration_docs
Author
arlenagreer
Last Sync
5/10/2026
Repo Updated
5/7/2026
Created
4/10/2026

Reviews (0)

No reviews yet. Be the first to review this skill!