iii-error-handling — скилл для Claude Code: обработка ошибок SDK
Скилл учит агента распознавать коды ошибок iii-движка и SDK, различать сетевые сбои от отказов в доступе, определять, когда повторять вызов безопасно. Нужен, если пишешь код на Node, Python, Rust или в браузере с вызовами удалённых функций.
npx skills add iii-hq/iii --skill iii-error-handling -a claude-codeЧто делает iii-error-handling
iii генерирует два класса ошибок: локальные (SDK, диспетчер) и удалённые (маршрутизатор движка, воркеры, RBAC). Скилл объясняет, как ветвиться по точному коду ошибки, а не по строке сообщения. Например, FORBIDDEN означает запрет политики — повторять вызов бесполезно, нужно менять права. TIMEOUT от клиента (Node/Python SDK) требует оптимизации или увеличения таймаута, но не слепого retry. invocation_error указывает на проблему маршрутизации или состояния движка — нужны логи.
Внутри скилла коды ошибок разбиты таблицей с источником, смыслом и типичной реакцией. Отдельный раздел для ошибок observer — они не выбрасываются, а попадают в error канал или ready() rejection. Скилл приводит примеры обработки в Node (через InvocationError), Python (проверка exc.code), Rust (pattern matching) и браузере.
Ограничение: размер сообщения не должен превышать 16 МиБ; если больше — используй канал. Для фонового надёжного цикла нужна очередь с политикой retry/DLQ, это описано в отдельном паттерне.
Какие задачи решает
- Различить сетевой таймаут от запрета доступа и перестать слепо повторять запросы
- Найти причину
function_not_found— проверить ID, статус воркера или триггер - Обработать отказ RBAC и вывести ошибку вместо бесконечного retry
- Понять, когда перекодировать сообщение, если оно больше 16 МиБ
- Интерпретировать коды из браузерных ошибок и из удалённых воркеров
Примеры запросов агенту
- Мне нужно понять, почему функция `orders::charge` возвращает FORBIDDEN — это политика или ошибка в вызове?
- Как правильно ловить timeout в Python и отличить его от других ошибок iii?
- Что делать, если сообщение больше 16 МиБ — как использовать канал вместо прямого вызова?
Как установить iii-error-handling
1Через Skills CLI (Vercel)
npx skills add iii-hq/iii --skill iii-error-handling -a claude-code2Вручную: положить файлы
~/.claude/skills/iii-error-handling/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/iii-error-handling/
1Через Skills CLI (Vercel)
npx skills add iii-hq/iii --skill iii-error-handling -a codex2Вручную: положить файлы
.agents/skills/iii-error-handling/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add iii-hq/iii --skill iii-error-handling -a cursor2Вручную: положить файлы
.cursor/skills/iii-error-handling/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install iii-hq/iii iii-error-handling2Вручную: положить файлы
.github/skills/iii-error-handling/SKILL.md1Через Skills CLI (Vercel)
npx skills add iii-hq/iii --skill iii-error-handling -a gemini-cli2Командой платформы
gemini skills install https://github.com/iii-hq/iii --path skills/iii-error-handlingВручную: положить файлы
.devin/skills/iii-error-handling/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add iii-hq/iii --skill iii-error-handling -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора4
Весь набор →Похожие
Вопросы о iii-error-handling
Как установить iii-error-handling в Claude Code?
Выполни npx skills add iii-hq/iii --skill iii-error-handling -a claude-code. Скилл будет доступен по пути ~/.claude/skills/iii-error-handling/SKILL.md.
Что делает iii-error-handling?
Объясняет, как распознавать коды ошибок iii (FORBIDDEN, TIMEOUT, function_not_found и др.), какие ошибки можно повторять, а какие нет, и как обрабатывать их в Node, Python, Rust и браузере.
Когда нужно повторять вызов, а когда нет?
Повторяй сетевые таймауты и отказы в соединении, только если операция идемпотентна. Никогда не повторяй FORBIDDEN без смены прав. Для надёжного фонового цикла используй очередь с политикой retry.