# vtex-io-events-and-workers

Учит агента писать в VTEX IO обработчики событий и воркеры, которые переживают повторную доставку. Пригодится, когда тяжёлую работу пора вынести из HTTP-роутов.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1100 установок · ★ 46
- Автор: vtex
- Лицензия: не указана · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/vtex/skills/tree/HEAD/skills/vtex-io-events-and-workers/SKILL.md
- Обновлён: 2026-10-14
- HTML: https://affpapa.org/nevibecode/skills/vtex-io-events-and-workers

## Что делает

Скилл ведёт агента через асинхронную обработку в сервисах VTEX IO: обработчики событий, воркеры, фоновые задачи. Всё, что дорого, склонно к повторам или не обязано укладываться в один HTTP-ответ, он советует убирать из роутов. Исходное допущение простое: события могут прийти повторно.

Внутри правила и жёсткие ограничения с примерами на TypeScript. Обработчик, который пишет данные или зовёт внешний API без проверки «это уже сделано», скилл считает ошибкой и просит остановиться. Маркеры обработки лежат в VBase или Master Data. Данные берутся из тела события, а не из параметров роута и заголовков запроса. Сбой нельзя молча проглатывать: его записывают и пробрасывают дальше. События и воркеры объявляются в `service.json`, а для публикации событий приложению часто нужна политика `colossus-fire-event` в `manifest.json`.

Раскладка файлов: `node/events/` с `index.ts`, `catalog.ts`, `orders.ts` и `node/workers/sync.ts`. В пакетной обработке статус пишется по каждому элементу, поэтому одна ошибка не прячет остальные результаты. HTTP-контракты, GraphQL-схемы, политики приложения и создание клиентов скилл не трогает.

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add vtex/skills --skill vtex-io-events-and-workers -a claude-code
```

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

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add vtex/skills --skill vtex-io-events-and-workers -a codex
```

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

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add vtex/skills --skill vtex-io-events-and-workers -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install vtex/skills vtex-io-events-and-workers
```

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

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add vtex/skills --skill vtex-io-events-and-workers -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/vtex/skills --path skills/vtex-io-events-and-workers
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add vtex/skills --skill vtex-io-events-and-workers -a opencode
```

### Claude.ai

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

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

## Когда брать
- вынести тяжёлую синхронизацию каталога из HTTP-роута
- не отправлять заказ партнёру дважды при повторной доставке события
- записывать статус по каждому элементу пакета, чтобы видеть, что упало
- хранить маркеры «уже обработано» в VBase или Master Data
- публиковать события другим приложениям без самодельных HTTP-колбэков

## Примеры запросов агенту
- Напиши обработчик события создания заказа для VTEX IO так, чтобы повторная доставка не слала заказ партнёру второй раз
- Вынеси синхронизацию каталога из роута в воркер и пропиши его в `service.json`
- Проверь мои обработчики событий в `node/events/` на идемпотентность и проглоченные ошибки

## Похожие
- [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 установок

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

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