Idioms for writing `CheckAction` subclasses in the pleskdistup framework. Use whenever a new `CheckAction` / `Assert*` is being added or an existing one edited, and whenever the user asks to "pre-check" or "check" something before the upgrade / dist-upgrade / conversion / precheck — those requests are always implemented as a `CheckAction`. Examples - "add a check that X is installed before conversion", "make sure the server has at least N GB free before we run", "block the upgrade when config Y is missing", "add a precheck for Z", "why is this AssertFoo description empty on failure".
Run flake8 and mypy linters against the codebase. Use when the user asks to lint, type-check, run flake8, or run mypy, or wants a full sweep before commit. A PostToolUse hook already auto-lints individual files after every Edit/Write — invoke this skill for batch / full-tree checks. Examples - "run the linters", "lint the whole repo", "type-check", "check with flake8 before I commit".
Run unit tests for the dist-upgrader framework. Use whenever the user asks to run, execute, or check tests, or wants to verify a single test case after a change. Examples - "run the tests", "run the unittest suite", "test this change", "rerun test_files", "do the tests still pass".