# fastify-typescript

Задаёт агенту соглашения по Fastify и TypeScript: схемы валидации, плагины, Prisma и тесты через Jest. Пригодится, когда пишете типизированный REST API.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 856 установок · ★ 286
- Автор: Mindrally
- Лицензия: Apache-2.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/Mindrally/skills/tree/HEAD/fastify-typescript/SKILL.md
- Обновлён: 2026-10-08
- HTML: https://affpapa.org/nevibecode/skills/fastify-typescript

## Что делает

Скилл подкладывает агенту набор правил по коду: типы объявлять всегда, `any` не использовать, вместо enum — const-объекты, для объектных форм — интерфейсы, для импорта типов — `import type`. Именование тоже прописано: PascalCase для типов, camelCase для функций, kebab-case для файлов, UPPERCASE для переменных окружения.

Дальше идёт структура проекта: `src/routes/{resource}/` с `index.ts`, `handlers.ts` и `schemas.ts`, отдельные папки под `plugins`, `services`, `repositories`, `types`, `config`. Валидация строится на JSON Schema и `@sinclair/typebox`, общие вещи выносятся в плагины через `fastify-plugin`, доступ к базе — через Prisma с репозиториями и транзакциями. Ошибки обрабатываются своим классом с `statusCode` и общим `setErrorHandler`, тесты пишутся на Jest через `app.inject()`.

Скилл рассчитан на проект, где Prisma уже выбран как ORM: примеры плагина базы и репозиториев завязаны на `PrismaClient`, и на другом слое доступа к данным их придётся переписывать. По безопасности в правилах есть `@fastify/helmet`, `@fastify/rate-limit`, `@fastify/cors` и JWT через `@fastify/jwt` — это повод проверить, что у вас они уже подключены, а не заведены вручную.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Mindrally/skills --skill fastify-typescript -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/fastify-typescript/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/fastify-typescript/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Mindrally/skills --skill fastify-typescript -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/fastify-typescript/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Mindrally/skills --skill fastify-typescript -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/fastify-typescript/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install Mindrally/skills fastify-typescript
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/fastify-typescript/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Mindrally/skills --skill fastify-typescript -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/Mindrally/skills --path fastify-typescript
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/fastify-typescript/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add Mindrally/skills --skill fastify-typescript -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/Mindrally/skills/tree/HEAD/fastify-typescript/SKILL.md

## Когда брать
- разложить роуты Fastify по ресурсам и папкам
- описать схемы запроса и ответа через TypeBox
- вынести подключение Prisma в плагин с хуком `onClose`
- сделать единый обработчик ошибок со статусами
- написать интеграционный тест роута через `app.inject()`

## Примеры запросов агенту
- добавь новый ресурс `orders` по структуре из скилла: роут, схемы, хендлеры
- перепиши этот роут на TypeBox-схемы вместо ручной проверки тела
- вынеси Prisma в плагин с декоратором и отключением на `onClose`

## Похожие
- [fastify](https://affpapa.org/nevibecode/skills/fastify.md) — скилл · 571 установка
- [fastify-best-practices](https://affpapa.org/nevibecode/skills/fastify-best-practices.md) — скилл · 81400 установок
- [typescript-core](https://affpapa.org/nevibecode/skills/typescript-core.md) — скилл · 475 установок
- [typescript](https://affpapa.org/nevibecode/skills/alinaqi-typescript.md) — скилл · 313 установок
- [typescript-e2e-testing](https://affpapa.org/nevibecode/skills/typescript-e2e-testing.md) — скилл · 2300 установок
- [typescript-unit-testing](https://affpapa.org/nevibecode/skills/typescript-unit-testing.md) — скилл · 496 установок

Из того же набора: [mindrally/skills](https://affpapa.org/nevibecode/by/mindrally/skills.md) — 168 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
