Distributed Systems Testing Skills
Два скилла для проверки распределенных систем: план испытаний от обещаний продукта и прогон со сбоями с вердиктами.
- 231 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Исполняющий скилл запускает нагрузку и внедряет сбои в тестируемой системе: сетевые разрывы, остановку узлов, нарушения порядка.
- В режиме автора скилл записывает каркасы тестов прямо в проверяемый репозиторий, а прогон создает логи и скрипты в `test-sessions/`.
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/distributed-systems-testing-skillsОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Исполняющий скилл запускает нагрузку и внедряет сбои в тестируемой системе: сетевые разрывы, остановку узлов, нарушения порядка.
- В режиме автора скилл записывает каркасы тестов прямо в проверяемый репозиторий, а прогон создает логи и скрипты в `test-sessions/`.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Distributed Systems Testing Skills состоит из двух скиллов в формате SKILL.md. `designing-distributed-system-tests` обходит репозиторий, выписывает обещания продукта, строит гипотезы об отказах и записывает в `docs/testing-plans/<slug>.md` план: каждый сценарий назван по свойству, которое он пытается опровергнуть. Для свойств безопасности, долговечности, идемпотентности, изоляции и порядка сценарий дополнительно привязывает абстрактную модель, схему истории операций и именованный проверщик, например линеаризуемость или отсутствие потерянных подтверждений. Второй скилл, `executing-distributed-system-tests`, читает план, ищет готовые тесты и средства внедрения сбоев в самой системе, проверяет окружение и прогоняет сценарии. Для каждого он фиксирует, что сбой действительно сработал, и ставит один из десяти вердиктов с пометкой о виновнике: тестируемая система, обвязка, проверщик или окружение. На выходе лежит отчет `findings/report.md` с оценкой достаточности покрытия.
Для кого. Инженерам баз данных, очередей и других сервисов с состоянием, которым нужен план испытаний со сбоями и отчет, пригодный для решения о релизе.
Подходит, если
- Перед релизом хранилища или брокера нужен единый план проверок вместо россыпи интеграционных тестов.
- Коммит или pull request меняет репликацию, и тесты надо спланировать под это изменение.
- Команда подозревает потерю подтвержденных записей при разрыве сети и хочет проверить это проверщиком линеаризуемости.
- Прогон с хаос-сценариями вышел зеленым, и хочется убедиться, что сбой действительно сработал.
- Существующие тесты стоит сопоставить с обещаниями документации и найти пробелы в покрытии.
Не подходит, если
- Сервис без состояния с одной базой: конвейер из плана, моделей и проверщиков не окупится.
- Нужен инструмент, который сам внедряет сбои: скиллы ведут агента по процессу, а средства внедрения берутся из системы или окружения.
- Проверка идет на боевом кластере: исполняющий скилл запускает нагрузку и сбои.
- Требуется быстрый тест одной функции: скиллы рассчитаны на сценарии с несколькими узлами.
Пример запроса к агенту
Составь проектный план тестирования для этого репозитория.Ограничения
Скиллы задают порядок работы, но не ставят сами инструменты проверки: средства внедрения сбоев и проверщики берутся из тестируемой системы или окружения, а установки с `sudo` исполняющий скилл выполняет только с вашего согласия. Проект ранний: автор предупреждает о частых правках SKILL.md и шаблонов, а прогоны выполнялись на нескольких системах, среди них AgentDB и LMCache. Папка `evals/` хранит ручные запросы для регрессии со ссылками на локальные копии автора, автоматического набора тестов нет. Установка создает симлинки в `~/.claude/skills/`, а для других агентов дописывает блок в `~/AGENTS.md`.
Как отключить. Удалите симлинки `~/.claude/skills/designing-distributed-system-tests` и `~/.claude/skills/executing-distributed-system-tests`, а для других агентов блок между маркерами в `~/AGENTS.md`. Клон в `~/.local/share/distributed-testing-skills/` можно убрать целиком.
Частые вопросы
Как поставить скиллы в Claude Code?
Отправьте агенту однострочную просьбу прочитать `INSTALL.md` по ссылке из README: файл клонирует репозиторий и создает симлинки в `~/.claude/skills/`. Вариант плагина: `/plugin marketplace add shenli/distributed-system-testing`, затем `/plugin install distributed-testing-skills@distributed-testing-skills`.
Как обновить скиллы?
Повторите ту же просьбу. `INSTALL.md` идемпотентен: при наличии клона он выполняет `git pull --ff-only`, иначе `git clone`, а при локальных правках останавливается и спрашивает вас.
Какие вердикты ставит исполняющий скилл?
Один из десяти, например `PASS-hardening`, `FAIL-reproducible`, `INCONCLUSIVE-fault-not-proven` или `PARTIAL-model`. Успешный вердикт ссылается на запуск проверщика и на признак того, что сбой сработал.
Чем режим по изменению отличается от режима по проекту?
Режим по изменению строит план под конкретный коммит или pull request. Режим по проекту дает общий план с инвентарем имеющихся тестов и анализом пробелов.
Работают ли скиллы вне Claude Code?
Да, README называет Codex, Copilot CLI, Cursor и Gemini. Это обычные файлы SKILL.md, а для остальных агентов установка добавляет указатель в `~/AGENTS.md`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
Скиллы169 QA-скиллов на двух языках: тест-дизайн, API, UI, регрессия, нагрузка, безопасность и тесты LLM для агентов.
Руководства для агента, который пишет и чинит тесты Playwright: выбор локаторов, ожидания и диагностика сбоев в CI
Тринадцать тестовых скиллов от анализа требований до отчета: стратегия, кейсы, API, Playwright и разбор нестабильных тестов.
CLI и MCP для проверки скиллов: повторяемые тесты на YAML, сравнение отчетов, поиск регрессий и процесс skilled-improve
CLI для оценки и доработки скиллов агентов: декларативные тесты в YAML, запуск на разных движках и структурированные отчеты
50 скиллов по тестированию для Claude Code, Codex и Cursor: Playwright, стратегия, API, визуальные и нагрузочные проверки.
Коротко о README
К скиллам приложен каталог техник из восьми справочных файлов: проверка линеаризуемости и сериализуемости, детерминированная симуляция, хаос-тесты, фаззинг, формальные методы, свойства и метаморфические проверки, нагрузочные замеры, восстановление после сбоя и обновление версий. Автор собрал его по каталогу Андрея Сатарина и научным статьям о сбоях в облачных системах.
Бейдж для README
Исходный SKILL.md
--- name: designing-distributed-system-tests description: Use when designing a test plan for a distributed or stateful system — anything with persistence, replication, consensus, retries, idempotency, async messaging, multi-tenancy, or partial failure. Plans are claim-driven: investigate the product's claimed guarantees first, then design hypotheses and scenarios that try to falsify those claims under fault. Handles change-scoped plans (a commit / PR / feature) and project-wide plans (holistic, with existing-test inventory and gap analysis). Also use when asked to write a stability plan, fault matrix, release-validation plan, durability / partition / upgrade / crash-recovery / linearizability / deterministic-simulation plan, tenant isolation / authz / boundary plan, namespace isolation plan, fairness / noisy-neighbor plan, "what should we be testing", or "make a holistic test plan". Trigger even if the user just says "what should we test for this change", "are my tenants actually isolated", or "how do I test fairness across tenants / shards / queues". --- # Designing Distributed-System Tests The default for testing distributed and stateful systems — write a few integration tests and call it done — finds a small fraction of the bugs that actually break these systems in production. This skill enforces an opinionated workflow: scope the change, generate failure-mode hypotheses that cover the categories the literature says matter most, pick techniques from a curated catalog, and emit a structured plan file that the executing-distributed-system-tests skill (or a human) can run. ## Plan modes This skill produces two shapes of plan. Decide which one applies before you start; the steps below branch on it. - **Change-scoped** — the default. Use when the caller names a commit, PR, branch-diff, or feature. The plan covers what *this change* could regress, scoped by its blast radius. - **Project-wide** — use when the caller asks for a "release-validation plan", "stability plan for the whole system", "test plan to enough coverage", "what should we be testing", or otherwise frames the request without a specific change. The plan covers what *the system* should be tested for, with an explicit inventory of existing tests and a gap analysis driving the new-scenario list. If the framing is ambiguous, ask once before starting — the modes diverge enough that retrofitting one into the other wastes work. ## Process Follow these steps in order. Do not skip; the order matters because later steps depend on artifacts the earlier steps produce. ### 1. Scope the system