# segment

Делит бэкенд на сегменты Vovk.ts: отдельные префиксы API, свои настройки runtime и статические эндпоинты. Пригодится, когда бэкенд разрастается.

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

## Что делает

Сегмент в Vovk.ts — это кусок бэкенда со своим префиксом пути (`/api`, `/api/admin`, `/api/foo/bar`), набором контроллеров и файлом `route.ts`. Каждый сегмент собирается в отдельную serverless-функцию, поэтому `runtime` и `maxDuration` задаются для каждого свои. Скилл помогает выбрать форму сегмента — корневой, именованный или статический — и создать его через CLI.

Файл `route.ts` лежит в папке с optional catch-all: например, `src/app/api/foo/[[...vovk]]/route.ts`. Внутри экспортируются HTTP-обработчики из `initSegment()`, куда передают карту контроллеров и имя сегмента. Имя сегмента должно совпадать с путём папки: для `foo/bar` это `segmentName: 'foo/bar'`. Имя в CLI — это часть URL, а не JS-идентификатор: `admin`, `user-portal`, `admin/settings`. Если попросить `MyAdmin`, скилл переведёт в `my-admin`.

Глубже всего совпавший путь и выигрывает: запрос к `/api/foo/bar/baz` уйдёт в сегмент `foo/bar`, а не в корневой. Поэтому после добавления именованного сегмента старые пути под этим префиксом перестанут доходить до корня — это стоит проверить до деплоя. Статические сегменты пре-рендерятся в JSON на этапе сборки и работают с `output: 'export'`, для которого нужен выключенный `cacheComponents`. Создавать сегмент лучше через `npx vovk new segment`, а не писать `route.ts` руками.

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add finom/vovk --skill segment -a claude-code
```

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

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add finom/vovk --skill segment -a codex
```

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

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add finom/vovk --skill segment -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install finom/vovk segment
```

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

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add finom/vovk --skill segment -a gemini-cli
```

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

### Windsurf (Devin Desktop)

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

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add finom/vovk --skill segment -a opencode
```

### Claude.ai

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

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

## Когда брать
- вынести админский API в отдельный сегмент `/api/admin`
- задать свой `maxDuration` для долгих запросов
- пре-рендерить OpenAPI-спецификацию в JSON на сборке
- создать корневой сегмент в новом проекте Vovk
- разложить вложенные пути вида `foo/bar` по сегментам

## Примеры запросов агенту
- Раздели бэкенд: вынеси админские ручки в отдельный сегмент `/api/admin`
- Сделай статический эндпоинт с OpenAPI-спецификацией, чтобы он пре-рендерился на сборке
- Создай именованный сегмент `user-portal` с `maxDuration` 60

## Похожие
- [mcp-builder](https://affpapa.org/nevibecode/skills/mcp-builder.md) — скилл · 130949 установок
- [claude-api](https://affpapa.org/nevibecode/skills/claude-api.md) — скилл · 74198 установок
- [lark-im](https://affpapa.org/nevibecode/skills/lark-im.md) — скилл · 472900 установок
- [lark-event](https://affpapa.org/nevibecode/skills/lark-event.md) — скилл · 466800 установок
- [caveman-discover](https://affpapa.org/nevibecode/skills/caveman-discover.md) — скилл · 104400 установок
- [migration](https://affpapa.org/nevibecode/skills/migration.md) — скилл · 103900 установок

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

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

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