Skip to content

/does-it-work

Проверка, что продукт реально работает, и защита его качества автотестами. Аудит работающего (в т.ч. навайбкоженного) приложения: найти баги, оценить готовность к проду, выдать баг-репорт с severity. Генерация тестовых фреймворков: API-тесты на Python (pytest + httpx + Pydantic

shell
$ npx -y skills add TsakunovR/does-it-work --skill does-it-work --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/does-it-work
How auto-invocation works

Context preview

The summary Claude sees to decide when to auto-load this skill.

Проверка, что продукт реально работает, и защита его качества автотестами. Аудит работающего (в т.ч. навайбкоженного) приложения: найти баги, оценить готовность к проду, выдать баг-репорт с severity. Генерация тестовых фреймворков: API-тесты на Python (pytest + httpx + Pydantic

SKILL.md

does-it-work.SKILL.md
name: does-it-work
description: >
  Проверка, что продукт реально работает, и защита его качества автотестами.
  Аудит работающего (в т.ч. навайбкоженного) приложения: найти баги, оценить
  готовность к проду, выдать баг-репорт с severity. Генерация тестовых фреймворков:
  API-тесты на Python (pytest + httpx + Pydantic + Allure) и Java (JUnit 5 +
  REST Assured), WEB/UI-тесты (Playwright, Selenium, Selenide, Page Object);
  конвертация OpenAPI/Postman/curl/HAR в тесты, негативные кейсы, контракты.
  Также стабилизация флакающих тестов и ревью качества тестов.
  Triggers: "проверь мой продукт/приложение", "найди баги", "навайбкодил",
  "можно ли в прод", "работает ли оно", "vibe code", "напиши автотесты",
  "сгенерируй тесты", "покрой тестами", "e2e тесты", "UI-тесты", "Playwright",
  "REST Assured", "generate tests", "стабилизируй тесты", "flaky", "тесты
  флакают", "ревью тестов", "проверь качество тестов".

does-it-work: проверка продукта и защита качества автотестами

Скилл отвечает на вопрос «а оно вообще работает?»: прогоняет живое приложение тестами, находит баги (репорт с severity) и оставляет каркас автотестов как защиту от регрессий. Пять эталонных каркасов в `templates/` — все **проверены запуском** против живых стендов. Копируйте их структуру и стиль, а не пишите с нуля.

Оформление (все ветки): имена функций/переменных — латиницей, docstrings, allure-тайтлы, шаги и тексты assert-сообщений — **на русском**.

Выбор ветки

| Задача | Стек | Шаблон | |---|---|---| | API-тесты на Python (дефолт для API) | pytest + httpx (sync) + Pydantic | `templates/api-python/` | | API-тесты на Java | JUnit 5 + REST Assured + Maven | `templates/api-java/` | | UI-тесты на Python (дефолт для WEB) | Playwright + Page Object | `templates/web-python-playwright/` | | UI-тесты на Python (легаси/требование) | Selenium + Page Object | `templates/web-python-selenium/` | | UI-тесты на Java | Selenide + JUnit 5 | `templates/web-java-selenide/` |

Если тип (API/WEB) или язык не следует из запроса и контекста проекта — задай один вопрос пользователю до генерации. README каждого шаблона описывает паттерны своей ветки. Java- и WEB-шаблоны — проверенные примеры на реальном приложении RV Booker: замените ресурсы/страницы на свои, сохранив структуру слоёв.

**Общие конвенции всех веток** (подробно раскрыты ниже на python-ветке, остальные зеркалят): слои клиенты/страницы → модели → тесты по фичам; конфиг только из env-переменных (`API_TESTS_*` / `WEB_TESTS_*`); маркеры/теги smoke/critical/negative/flaky

  • severity на каждом тесте; строгие контракты (Pydantic `extra="forbid"` / Jackson records);

никаких sleep — только ожидания (`wait_until` / Awaitility / встроенные в Playwright и Selenide); environment.properties и категории в Allure; зелёный прогон обязателен; «Самопроверка качества» и «Red flags» (секции ниже) применяются во всех ветках.

Специфика WEB-веток: Page Object (страница = класс, локаторы — свойства/константы, действия — методы с шагом); подготовка данных и **логин — через API** в обход UI (форма логина — отдельный тест); артефакты при падении (скриншот + HTML) в Allure; селекторы: стабильные id → роли → css, хрупкие xpath запрещены; мобильные вьюпорты и кросс-браузерная CI-матрица — в Playwright-шаблоне.

Маршрутизация: что читать под задачу

  • **«Проверь мой продукт / найди баги / можно ли в прод»** (аудит навайбкоженного

или незнакомого приложения) → те же шаги 1–5, но главный деливерабл — не каркас, а вердикт: префлайт стенда → smoke ядра → карта покрытия → **баг-репорт с severity** ([examples/bug-report.md](examples/bug-report.md)) и ответ «что работает, что сломано, что не проверено». Каркас остаётся пользователю как защита от регрессий.

  • **Новый проект с нуля** → выбор ветки (таблица выше) + весь порядок работы (шаги 1–5).
  • **Дописать тесты в существующий проект** → шаг 1 (режим «существующий»), шаги 2, 4, 5.
  • **Стабилизировать флакающие тесты** →

[reference/stabilize-and-review.md](reference/stabilize-and-review.md), режим «Стабилизация»: воспроизведи повторами → классифицируй причину → почини причину, не симптом → докажи N зелёными прогонами. Каркас не разворачивай.

  • **Ревью существующих тестов** → там же, режим «Ревью»: сначала запуск, потом

чек-листы (включая шаг 5 ниже), находки с severity, отчёт до правок.

  • **Только негативные кейсы / контракты** → шаг 2 + паттерны «негативные», «контракт»

из шага 3; каркас не разворачивай.

  • **API с логином/ролями или общий стенд** → плюс

[reference/live-api-patterns.md](reference/live-api-patterns.md).

  • **WEB-тесты** → README выбранного web-шаблона; разведай DOM живого приложения

(Playwright-скриптом) до написания Page Object'ов — не выдумывай селекторы.

  • **Источник — не OpenAPI** (код, требования, curl/HAR) →

[reference/input-sources.md](reference/input-sources.md).

  • **Стенд недоступен/сомнителен** → сначала `scripts/check_env.py` (см. шаг 2).

Порядок работы (шаги детализированы для api-python; остальные ветки зеркалят)

1. Определи режим

  • **Новый проект** → разверни каркас из шаблона выбранной ветки, подставь реальные

эндпоинты/страницы вместо примера.

  • **Существующий тестовый проект** → сначала изучи его: conftest, базовый клиент, стиль

именования, маркеры. Новые тесты пиши в стиле проекта; паттерны из `templates/` применяй только там, где в проекте нет своего решения. Не дублируй существующие фикстуры.

2. Извлеки тест-кейсы из источника

Источником может быть OpenAPI-спека, исходный код сервиса, текстовые требования или примеры запросов (curl/Postman/HAR). Рецепты по каждому — в [reference/input-sources.md](reference/input-sources.md). Если источник неоднозначен — задай вопросы пользователю до генерации, не додумывай.

Перед генерацией проверь стенд префлайт-скриптом — он покажет доступность, латентность и работоспособность авторизации до того, как ты напишешь хоть один тест. Скрипт лежит в директории скилла, а cwd при работе — проект пользователя, поэтому вызывай его по полному пут

Read more
Read it on GitHub ↗

Showing the first part of this file.

Ships withdoes-it-work

Скилл для Claude Code / Codex, который отвечает на главный вопрос вайбкодера: «а оно вообще работает?» Прогоняет ваше живое приложение автотестами, находит баги (репорт с severity: что критично, что терпит), отвечает «можно ли в прод» — и оставляет каркас

Get the whole plugin, auto-invoked
Stats
10
Stars
0
Views
1
Forks
Maintained
Maintenance
Python
Language
MIT
License
1mo ago
Last commit
1mo ago
Created

Repo: TsakunovR/does-it-work