Skip to content
Testing
Skill

/does-it-work

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

From plugin
does-it-work
101 skill
Install
$ 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.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/does-it-work

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-шаблоне.

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

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

или незнакомого приложения) → главный деливерабл — не каркас, а вердикт. Порядок: префлайт стенда → **чек-лист аудита** ([reference/prod-readiness.md](reference/prod-readiness.md): авторизация, утечки, целостность данных, фаззинг по OpenAPI) → smoke ядра → карта покрытия → **баг-репорт с severity** ([examples/bug-report.md](examples/bug-report.md)) → **вердикт go/no-go** ([examples/prod-readiness-report.md](examples/prod-readiness-report.md)) с обязательным разделом «что НЕ проверено». Чек-лист идёт раньше каркаса: типичное вайб-кодовое приложение сыпется на первом же блоке, и полдня на Page Object'ы до этого — не то, за чем к вам пришли. Каркас (шаги 1–5) остаётся пользователю как защита от регрессий, покрытие начинается с мест, где нашлись Critical/High.

  • **Новый проект с нуля** → выбор ветки (таблица выше) + весь порядок работы (шаги 1–5);

детали api-python (структура, паттерны с кодом, режимы запуска, gotchas) — [reference/api-python.md](reference/api-python.md), детали остальных веток — README их шаблонов.

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

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

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

чек-листы (включая шаг 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).

Порядок работы (общий для всех веток; детали ветки — по ссылкам в шагах)

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

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

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

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

именования, маркеры. Новые тесты пиши в стиле проекта; паттерны из `template

Read more
Ships withdoes-it-work

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

Get the whole plugin
Stats
10
Stars
1
Forks
Active
Maintenance
Python
Language
MIT
License
7d ago
Last commit
2mo ago
Created

Repo: TsakunovR/does-it-work