form-testing — скилл для Claude Code: проверка форм в браузере
Скилл прогоняет каждую форму в приложении трижды: пустую отправку, невалидные данные и корректные. Пригодится перед релизом.
npx skills add spencerpauly/awesome-cursor-skills --skill form-testing -a claude-codeЧто делает form-testing
Скилл открывает приложение во встроенном браузере Cursor и проходит по формам: вход и регистрация, настройки профиля, поиск, обратная связь, оформление заказа, модалки с полями. Список форм собирается через browser_snapshot — агент ищет элементы form и группы input, select, textarea.
Каждую форму ждут три прохода. Сначала отправка с пустыми полями: должны появиться ошибки валидации, а не серверная ошибка. Потом заведомо неверные данные — notanemail в почте, a в пароле, abc в числовом поле, 12345 в телефоне, not-a-url в ссылке. И наконец корректные данные через browser_fill или browser_fill_form, после чего проверяются успешный сценарий, сообщения в browser_console_messages и упавшие запросы в browser_network_requests.
Отдельно скилл смотрит на краевые случаи: двойное нажатие на кнопку отправки, строка длиной больше 1000 символов, <script>alert('xss')</script> в поле и порядок фокуса по Tab. В конце агент печатает отчёт по формам со статусами PASS и FAIL и правит найденные провалы. Учтите: скилл рассчитан на браузер Cursor, поэтому в Claude и Codex он даёт агенту инструкцию, но не сам инструмент — это повод проверить, чем вы будете запускать сценарий.
Какие задачи решает
- прогнать все формы приложения на пустую отправку
- проверить, что невалидные данные ловятся на клиенте, а не на сервере
- убедиться, что после успешной отправки есть редирект или уведомление
- найти упавшие запросы API после отправки формы
- проверить экранирование HTML в полях ввода
Примеры запросов агенту
- протестируй все формы в приложении через браузер Cursor
- проверь форму логина на пустую отправку и невалидный email
- прогони форму настроек с валидными данными и посмотри ошибки в консоли
Как установить form-testing
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill form-testing -a claude-code2Вручную: положить файлы
~/.claude/skills/form-testing/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/form-testing/
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill form-testing -a codex2Вручную: положить файлы
.agents/skills/form-testing/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill form-testing -a cursor2Вручную: положить файлы
.cursor/skills/form-testing/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install spencerpauly/awesome-cursor-skills form-testing2Вручную: положить файлы
.github/skills/form-testing/SKILL.md1Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill form-testing -a gemini-cli2Командой платформы
gemini skills install https://github.com/spencerpauly/awesome-cursor-skills --path resources/form-testingВручную: положить файлы
.devin/skills/form-testing/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill form-testing -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о form-testing
Как установить form-testing в Claude?
Выполните npx skills add spencerpauly/awesome-cursor-skills --skill form-testing -a claude-code. Файл скилла окажется по пути ~/.claude/skills/form-testing/SKILL.md.
Что делает form-testing?
Находит все формы в приложении через browser_snapshot и проверяет каждую тремя проходами: пустая отправка, невалидные данные, корректные данные. Дополнительно смотрит двойную отправку, длинный ввод, XSS и порядок фокуса.
Какие инструменты нужны для работы скилла?
Он опирается на встроенный браузер Cursor и его команды browser_snapshot, browser_fill, browser_press, browser_console_messages и browser_network_requests.
Исходный текст
SKILL.md · CC0-1.0
---
name: form-testing
description: Use Cursor's browser to fill and submit every form in the app with valid and invalid data, verifying validation, error states, and success flows.
user-invocable: true
---
# Form Testing
Systematically test every form in the app using Cursor's built-in browser.
## Workflow
### 1. Find All Forms
Use `browser_snapshot` to get the accessibility tree. Look for `form` elements, or groups of `input`, `select`, `textarea` elements.
Navigate through the app's main pages to discover all forms:
- Login / signup pages
- Settings / profile pages
- Search bars
- Contact / feedback forms
- Checkout flows
- Modals with inputs
### 2. Test Each Form
For each form, run three test passes:
**Pass 1: Empty submission**
- Submit the form with all fields empty
- Verify validation errors appear for required fields
- Check that no server error occurs (should be client-side validation)
**Pass 2: Invalid data**
- Email fields: enter `notanemail`
- Password fields: enter `a` (too short)
- Number fields: enter `abc`
- Phone fields: enter `12345`
- URL fields: enter `not-a-url`
- Check that appropriate error messages appear
**Pass 3: Valid data**
- Fill every field with realistic test data using `browser_fill` or `browser_fill_form`
- Submit the form
- Verify success state (redirect, toast, confirmation message)
- Check `browser_console_messages` for errors
- Check `browser_network_requests` for failed API calls
### 3. Check Edge Cases
- **Double submission**: Click submit twice quickly — should be prevented
- **Long input**: Paste a very long string (1000+ chars) — should be truncated or rejected
- **Special characters**: Enter `<script>alert('xss')</script>` — should be escaped
- **Tab order**: Use `browser_press` with Tab to verify focus moves logically through fields
### 4. Report
```
Form Test Results:
Login form (/login):
Empty submit: PASS — shows "Email required", "Password required"
Invalid email: PASS — shows "Invalid email"
Valid submit: PASS — redirects to /dashboard
XSS check: PASS — input escaped
Settings form (/settings):
Empty submit: FAIL — submits without validation, returns 500
Valid submit: PASS — shows "Settings saved" toast
```
Fix any failures found.
© spencerpauly · CC0-1.0 · spencerpauly/awesome-cursor-skills