testing

Runs pytest, ruff, pyright, vitest, eslint, and tsc checks after code changes.

1|Updated Aug 14, 2026
One-click install
npx skills add https://github.com/zhiyuan-zhang0206/Ava --skill testing-zhiyuan-zhang0206
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: testing
Source: https://github.com/zhiyuan-zhang0206/Ava/tree/main/ava_builtins/plugins/ava_code/skills/testing
Command: npx skills add https://github.com/zhiyuan-zhang0206/Ava --skill testing-zhiyuan-zhang0206

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? After making code changes, developers often skip local verification or forget to add tests for new logic, letting defects slip through to CI or production. This Skill defines which checks to run for each change surface and how to judge whether new tests are required. ## Core Features & Use Cases - Full check matrix: Maps backend changes to pytest, ruff, and pyright, and frontend changes to vitest, eslint, and tsc --noEmit. - Scoped test execution: Runs only the pytest scope you touched locally, leaving the full suite, e2e, and coverage gates to CI to avoid saturating the shared dev host. - Test-necessity judgment: Provides explicit criteria for when to add tests — new branches, bug fixes, interface signature changes, and dead code deletion. - Use Case: After fixing a bug in a Python API endpoint, run pytest for the touched module plus ruff and pyright, then add a regression test so the same bug cannot reappear. ## Quick Start After finishing my code changes, run the appropriate lint, type check, and test commands for the files I touched and tell me whether new tests are needed.

Frequently Asked Questions about testing

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run tests and lint checks after code changes?

Run the checks matching what you touched: pytest, ruff check, and pyright for Python backend changes; vitest, eslint, and tsc --noEmit for frontend changes. All must pass, and any failure gets fixed rather than ignored.

When should I add new tests for a code change?

Add a test when you introduce a new branch or logic path, fix a bug (as a regression test), or change an interface signature. When deleting dead code, confirm no existing test goes flaky as a result.

Should I run the full pytest suite locally before committing?

No. Run only the pytest scope you touched locally; the full suite, e2e tests, and coverage gates are CI's job. Running everything locally saturates the shared dev host, while lint, typecheck, and frontend unit tests are cheap enough to run in full.

What is the difference between ruff, pyright, and pytest?

Ruff is a Python linter that catches style and code quality issues, pyright performs static type checking, and pytest runs unit and integration tests. Together they form the backend quality gate alongside the frontend equivalents eslint, tsc, and vitest.

Why rely on local checks instead of waiting for CI?

Local checks give faster feedback than CI pipelines, catching lint, type, and test failures immediately after editing. CI remains the final gate for the full suite, e2e tests, and coverage, but it should not be your first signal.