Distributed Systems Testing Skills

Два скилла для проверки распределенных систем: план испытаний от обещаний продукта и прогон со сбоями с вердиктами.

  • 231 ★ репозитория
  • Последний коммит
  • MIT
Скилл

Широкий доступ

Почему такой уровень

  • Исполняющий скилл запускает нагрузку и внедряет сбои в тестируемой системе: сетевые разрывы, остановку узлов, нарушения порядка.
  • В режиме автора скилл записывает каркасы тестов прямо в проверяемый репозиторий, а прогон создает логи и скрипты в `test-sessions/`.
Все причины и проверки

shenli/distributed-system-testing

Установка

В терминале, через 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 для агентов.

СкиллМинимальный доступ308Звезды репозитория

Руководства для агента, который пишет и чинит тесты Playwright: выбор локаторов, ожидания и диагностика сбоев в CI

СкиллМинимальный доступ417Звезды репозитория

Тринадцать тестовых скиллов от анализа требований до отчета: стратегия, кейсы, API, Playwright и разбор нестабильных тестов.

СкиллРасширенный доступ64Звезды репозитория

CLI и MCP для проверки скиллов: повторяемые тесты на YAML, сравнение отчетов, поиск регрессий и процесс skilled-improve

CLIРасширенный доступ72Звезды репозитория

CLI для оценки и доработки скиллов агентов: декларативные тесты в YAML, запуск на разных движках и структурированные отчеты

CLIРасширенный доступ1,5 тыс.Звезды репозитория

50 скиллов по тестированию для Claude Code, Codex и Cursor: Playwright, стратегия, API, визуальные и нагрузочные проверки.

СкиллРасширенный доступ266Звезды репозитория

Коротко о 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

Сообщить о проблеме