# crontap-retries-and-idempotency

Настраивает политику повторов в Crontap и помогает сделать эндпоинт идемпотентным, чтобы повторный запуск не создавал дублей.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 881 установка · ★ 1
- Автор: Crontap
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/Crontap/skills/tree/HEAD/skills/crontap-retries-and-idempotency/SKILL.md
- Обновлён: 2026-09-16
- HTML: https://affpapa.org/nevibecode/skills/crontap-retries-and-idempotency

## Что делает

Скилл ведёт агента по шагам: сначала посмотреть историю запусков и разнести сбои по классам, потом добавить идемпотентность на стороне эндпоинта, и только после этого менять политику повторов через MCP. Для правки используется `update_schedule`, для разбора сбоев — `get_schedule_history`.

Базовые задержки ограничены значениями 30000, 60000, 300000 и 900000 миллисекунд, максимум повторов — 5. Классы `5xx`, `429`, `network` и `timeout` считаются временными, а `4xx` добавляют только тогда, когда конкретный эндпоинт отвечает так из-за перегрузки. Повторять ошибки авторизации и валидации смысла нет: нагрузка растёт, а успешных доставок не прибавляется.

Настройка своей политики доступна на Pro, Ultra и legacy Pro, на Starter остаётся стандартное поведение. Для работы нужен либо MCP-сервер Crontap по адресу `https://mcp.crontap.com/mcp`, либо переменные `$CRONTAP_CLIENT_ID` и `$CRONTAP_API_KEY` — второй путь только для Ultra. Если пойти через REST, PUT заменяет расписание целиком: без повторного GET легко стереть заголовки, тело запроса и интеграции. Ключ дедупликации нельзя хранить в памяти процесса — при рестарте или нескольких инстансах защита пропадёт.

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Crontap/skills --skill crontap-retries-and-idempotency -a claude-code
```

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

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Crontap/skills --skill crontap-retries-and-idempotency -a codex
```

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

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Crontap/skills --skill crontap-retries-and-idempotency -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install Crontap/skills crontap-retries-and-idempotency
```

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

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add Crontap/skills --skill crontap-retries-and-idempotency -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/Crontap/skills --path skills/crontap-retries-and-idempotency
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add Crontap/skills --skill crontap-retries-and-idempotency -a opencode
```

### Claude.ai

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

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

## Когда брать
- разнести сбои расписания по временным и постоянным
- сделать эндпоинт устойчивым к повторной доставке одной задачи
- выбрать задержку и число повторов под конкретный эндпоинт
- найти источник дублей: логика приложения или ретрай Crontap
- проверить, что алерт приходит после окончательного провала, а не после успешного восстановления

## Примеры запросов агенту
- Посмотри историю расписания `<schedule-id>` и скажи, какие сбои тут временные
- Добавь идемпотентность в обработчик и проверь его двумя одинаковыми запросами
- Включи повторы для `<schedule-id>` с задержкой 60000 мс на `5xx` и `timeout`

## Похожие
- [wizard](https://affpapa.org/nevibecode/skills/wizard.md) — скилл · 553369 установок
- [hyperframes-cli](https://affpapa.org/nevibecode/skills/heygen-com-hyperframes-cli.md) — скилл · 1300000 установок
- [setup-pre-commit](https://affpapa.org/nevibecode/skills/setup-pre-commit.md) — скилл · 489289 установок
- [using-git-worktrees](https://affpapa.org/nevibecode/skills/using-git-worktrees.md) — скилл · 217153 установки
- [finishing-a-development-branch](https://affpapa.org/nevibecode/skills/finishing-a-development-branch.md) — скилл · 214439 установок
- [orca-cli](https://affpapa.org/nevibecode/skills/orca-cli.md) — скилл · 353600 установок

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