api-smoke-testing — скилл Claude Code: что делает и как установить
Находит эндпоинты в кодовой базе, запускает локальный сервер и проверяет каждый маршрут через curl. Помогает выявить серверные ошибки 500 и потерянные роуты 404.
npx skills add spencerpauly/awesome-cursor-skills --skill api-smoke-testing -a claude-codeЧто делает api-smoke-testing
Анализ начинается с поиска роутов в кодовой базе. Скилл поддерживает структуру Next.js для App Router и Pages Router, вызовы методов в Express, списки urlpatterns в Django, декораторы FastAPI и файл routes.rb в Rails. После формирования списка эндпоинтов агент проверяет терминал. Если локальный сервер разработки не запущен, скилл стартует его самостоятельно.
Затем следует проверка каждого адреса вызовом curl. Для методов POST, PUT и PATCH отправляется минимальное тело {} с заголовком JSON. Ответы со статусами 400 или 401 и 403 считаются штатными, поскольку пустые запросы отсекаются валидацией или требуют авторизации. Ошибками признаются только коды 404, 500 и обрывы соединения. Отправка пустого тела {} на методы POST и PUT вызовет ошибку 400 на строгих схемах валидации, но скилл считает такой ответ ожидаемым, а не поломкой.
По итогам прогона формируется отчёт со списком проблемных маршрутов. Для ошибок 500 агент изучает стек вызовов в выводе терминала и устраняет причину сбоя. При коде 404 проверяется правильность экспорта роута и его расположение в каталоге проекта.
Какие задачи решает
- Найти все маршруты API в коде Next.js, Express, Django, FastAPI или Rails
- Проверить доступность локальных эндпоинтов через запросы
curl - Найти объявленные в коде, но не смонтированные роуты со статусом 404
- Выявить серверные сбои со статусом 500 и разобрать стек вызовов в терминале
Примеры запросов агенту
- Проверь все эндпоинты API в проекте и покажи упавшие маршруты
- Запусти смоук-тесты для наших роутов FastAPI и разбери ошибки 500
Как установить api-smoke-testing
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill api-smoke-testing -a claude-code2Вручную: положить файлы
~/.claude/skills/api-smoke-testing/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/api-smoke-testing/
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill api-smoke-testing -a codex2Вручную: положить файлы
.agents/skills/api-smoke-testing/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill api-smoke-testing -a cursor2Вручную: положить файлы
.cursor/skills/api-smoke-testing/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install spencerpauly/awesome-cursor-skills api-smoke-testing2Вручную: положить файлы
.github/skills/api-smoke-testing/SKILL.md1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill api-smoke-testing -a gemini-cli2Командой платформы
gemini skills install https://github.com/spencerpauly/awesome-cursor-skills --path resources/api-smoke-testingВручную: положить файлы
.devin/skills/api-smoke-testing/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill api-smoke-testing -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора59
Похожие
Рядом в теме «Бэкенд и API»
Всё по теме «Бэкенд и API» →Вопросы о api-smoke-testing
Как установить api-smoke-testing в Claude Code?
Выполните команду npx skills add spencerpauly/awesome-cursor-skills --skill api-smoke-testing -a claude-code в терминале.
Что делает скилл api-smoke-testing?
Он автоматически находит маршруты в коде бэкенда, проверяет работу локального сервера и пингует каждый URL с помощью curl. В отчёте агент разделяет нормальные ответы, закрытые авторизацией маршруты и критические ошибки вроде 404 или 500.
Какие фреймворки поддерживает скилл при поиске роутов?
Встроенный поиск распознаёт паттерны Next.js (App Router и Pages Router), Express, Django, FastAPI и Ruby on Rails.
Исходный текст
SKILL.md · CC0-1.0
---
name: api-smoke-testing
description: Start the dev server, discover API routes from the codebase, hit every endpoint, and report which ones return errors.
user-invocable: true
---
# API Smoke Testing
Verify all API endpoints return healthy responses by combining codebase analysis with HTTP requests.
## Workflow
### 1. Discover Routes
Search the codebase for API route definitions:
**Next.js (App Router):** `app/api/**/route.ts`
**Next.js (Pages Router):** `pages/api/**/*.ts`
**Express:** Look for `app.get(`, `app.post(`, `router.get(`, etc.
**Django:** Look for `urlpatterns` in `urls.py`
**FastAPI:** Look for `@app.get(`, `@app.post(`, decorators
**Rails:** Look for `routes.rb`
Build a list of endpoints with their HTTP methods.
### 2. Ensure Server is Running
Check terminal files for a running dev server. If none found, start one.
### 3. Hit Every Endpoint
For each route:
```bash
curl -s -o /dev/null -w "%{http_code}" -X <METHOD> http://localhost:<PORT><PATH>
```
For endpoints that require a body (POST/PUT/PATCH), send a minimal valid JSON:
```bash
curl -s -o /dev/null -w "%{http_code}" -X POST http://localhost:<PORT><PATH> \
-H "Content-Type: application/json" \
-d '{}'
```
### 4. Classify Results
| Status | Meaning |
|--------|---------|
| 200-299 | OK |
| 301/302 | Redirect (OK) |
| 400 | Bad request (expected for empty POST bodies) |
| 401/403 | Auth required (expected for protected routes) |
| 404 | Route not found (BUG — route exists in code but not served) |
| 500 | Server error (BUG) |
| 000/timeout | Server not responding (BUG) |
### 5. Report
```
API Smoke Test Results:
Tested: 15 endpoints
Passed: 12
Auth required: 2 (GET /api/user, POST /api/settings)
Errors:
500 — POST /api/webhooks/stripe (TypeError: Cannot read property 'id' of undefined)
404 — GET /api/v2/health (route defined but not mounted)
```
### 6. Fix Errors
For 500 errors, read the terminal output for the stack trace and fix the root cause. For 404s, check that the route file is in the correct location and properly exported.
© spencerpauly · CC0-1.0 · spencerpauly/awesome-cursor-skills