Designing Distributed System Tests

Planes de prueba basados en afirmaciones para sistemas distribuidos y con estado, vinculados a escenarios de inyección de fallos

Por shenli · shenli/distributed-system-testing

Probado · Funciona ★ 9.2/10

Designing Distributed System Tests — Planes de prueba basados en afirmaciones para sistemas distribuidos y con estado, vinculados a escenarios de inyección de fallos

Qué hace

Guía a un agente para diseñar un plan de prueba basado en afirmaciones para un sistema distribuido o con estado: extrae las garantías que el sistema afirma (durabilidad, linealizabilidad, idempotencia, aislamiento, ordenación), genera hipótesis de modos de fallo vinculadas a cada afirmación, selecciona técnicas de un catálogo y emite un archivo de plan estructurado con escenarios de inyección de fallos y oráculos verificables por máquina. Se activa cuando se pregunta qué probar para un cambio, para un plan holístico de validación de lanzamiento, o cómo probar la durabilidad, particiones, aislamiento de inquilinos o equidad entre shards o inquilinos.

Informe de la prueba

Se obtuvo SKILL.md a través de GitHub API/raw; el frontmatter se analiza con name+description; se verificaron assets/plan-template.md, references/catalog-index.md, references/common-distributed-systems-pitfalls.md — todos HTTP 200. Sin problemas de seguridad (sin curl|sh, base64, exfil). Activación: se juzgaron 5 frases, todas 5 correctas. Salida: se diseñó una tarea con alcance de cambio y se escribieron dos artefactos reales en el bloc de notas. La línea base dio una lista de verificación plana de 7 elementos cuya prueba de choque es "kill leader after ack, restart, value still there" con criterio de salida "all tests pass in CI"; el plan siguiendo la habilidad nombró las afirmaciones C1-C4 más una sección de "missing claims", y el escenario S1 inyectó SIGKILL "between value-WAL-fsync and dedup-WAL-fsync" con el oráculo "exactly ONE committed effect ... state comparison against model, not logs fine" — una ventana de doble commit en reintento que la línea base nunca apunta.

Probado el: 2026-07-31 · Claude Code 2.x (agent harness)

Instalación

git clone --depth 1 https://github.com/shenli/distributed-system-testing.git /tmp/designing-distributed-system-tests-src
mkdir -p ~/.claude/skills
cp -R /tmp/designing-distributed-system-tests-src/skills/designing-distributed-system-tests ~/.claude/skills/designing-distributed-system-tests
# Companion skill in same repo: skills/executing-distributed-system-tests (runs the plan this one emits).
# Plugin marketplace alt: repo ships .claude-plugin/marketplace.json (plugin "distributed-testing-skills").
# No external deps to produce a plan; executing the plan needs docker/netem/etc. per the plan's env section.

Comandos y prompts de ejemplo

  • /designing-distributed-system-testsPlanes de prueba basados en afirmaciones para sistemas distribuidos y con estado, vinculados a escenarios de inyección de fallos

Los skills se activan con peticiones en lenguaje natural, sin comandos que memorizar. Tras instalarlo, prompts como estos lo activan (en inglés):

  • Design a test plan for this replicated database
  • Write a fault matrix for this consensus system
  • Create a stability plan for our messaging service