safe-action-middleware — скилл для Claude Code
Скилл объясняет, как писать middleware для next-safe-action: аутентификация, авторизация, логирование, лимиты и расширение контекста.
npx skills add next-safe-action/skills --skill safe-action-middleware -a claude-codeЧто делает safe-action-middleware
Скилл описывает два вида middleware в next-safe-action. .use() выполняется до валидации входа и подходит для проверки сессии, логирования и ограничения частоты запросов. .useValidated() работает после разбора схемы и даёт типизированный parsedInput — на нём строят проверку прав на конкретный ресурс.
Цепочка собирается вызовами .use(), каждый возвращает новый клиент. Контекст накапливается через next({ ctx }) и глубоко сливается с предыдущим. Порядок такой: сначала middleware до валидации, потом разбор схемы, затем middleware после валидации, и только потом код в .action(). Если забыть return перед next(), действие зависнет — это самая частая ошибка.
Схему нужно задать до .useValidated(): после него .inputSchema() уже не вызвать, как и .use(). Контекст из .use() всегда доступен в onError и onSettled, а из .useValidated() — нет: при провале валидации эта middleware не выполняется.
Какие задачи решает
- Проверить сессию до того, как действие начнёт работу
- Ограничить частоту вызовов серверного действия
- Добавить в контекст данные пользователя из сессии
- Проверить, что ресурс принадлежит текущему пользователю
- Логировать уже провалидированный вход
Примеры запросов агенту
- Напиши middleware с проверкой сессии через
.use()для моего action-клиента - Добавь
.useValidated(), который проверяет, что пост принадлежит пользователю из контекста - Собери цепочку middleware с логированием и лимитом запросов
Как установить safe-action-middleware
1Через Skills CLI (Vercel)
npx skills add next-safe-action/skills --skill safe-action-middleware -a claude-code2Вручную: положить файлы
~/.claude/skills/safe-action-middleware/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/safe-action-middleware/
1Через Skills CLI (Vercel)
npx skills add next-safe-action/skills --skill safe-action-middleware -a codex2Вручную: положить файлы
.agents/skills/safe-action-middleware/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add next-safe-action/skills --skill safe-action-middleware -a cursor2Вручную: положить файлы
.cursor/skills/safe-action-middleware/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install next-safe-action/skills safe-action-middleware2Вручную: положить файлы
.github/skills/safe-action-middleware/SKILL.md1Через Skills CLI (Vercel)
npx skills add next-safe-action/skills --skill safe-action-middleware -a gemini-cli2Командой платформы
gemini skills install https://github.com/next-safe-action/skills --path skills/safe-action-middlewareВручную: положить файлы
.devin/skills/safe-action-middleware/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add next-safe-action/skills --skill safe-action-middleware -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о safe-action-middleware
Как установить safe-action-middleware в Claude Code?
Выполните npx skills add next-safe-action/skills --skill safe-action-middleware -a claude-code. Файл скилла появится по пути ~/.claude/skills/safe-action-middleware/SKILL.md.
Что делает safe-action-middleware?
Подсказывает агенту, как писать middleware для next-safe-action: аутентификацию, авторизацию, логирование, лимиты, перехват ошибок и расширение контекста.
Чем .use() отличается от .useValidated()?
.use() идёт до валидации и видит только сырой clientInput, поэтому годится для проверки сессии. .useValidated() выполняется после разбора схемы и получает типизированный parsedInput — для проверки прав на ресурс нужен он.