nonfunctional-resilience

Validates fault-injection resilience patterns and migration data-integrity invariants through structured test procedures.

Updated Jun 24, 2026
One-click install
npx skills add https://github.com/Hakkadaikon/hymme --skill nonfunctional-resilience-hakkadaikon
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: nonfunctional-resilience
Source: https://github.com/Hakkadaikon/hymme/tree/main/skills/nonfunctional-resilience
Command: npx skills add https://github.com/Hakkadaikon/hymme --skill nonfunctional-resilience-hakkadaikon

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Resilience mechanisms like bulkheads, rate limiters, and circuit breakers often ship without tests proving they actually contain failures, and database migrations risk silent data loss or irreversibility. This Skill provides concrete fault-injection test patterns and data-integrity invariants to verify both. ## Core Features & Use Cases - Resilience Pattern Testing: Pair each fault injection (dependency hang, excess traffic, repeated errors) with its expected containment behavior for bulkheads, rate limits, and circuit breakers, including full closed→open→half-open→closed state transitions. - Migration Integrity Testing: Verify four invariants—round-trip consistency (up→down→up), row-count preservation, non-NULL required columns, and aggregate consistency—against real data on a production-like database engine. - Use Case: Before deploying a migration that adds a required column, run the procedure to confirm existing rows are backfilled, row counts match, and the down migration genuinely restores the prior schema. ## Quick Start Ask the AI to apply the nonfunctional-resilience skill to write fault-injection tests for your circuit breaker and integrity checks for your latest database migration.

Frequently Asked Questions about nonfunctional-resilience

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

FAQPage Schema
How do I test a circuit breaker pattern?

Inject repeated errors or latency into the dependency until the threshold trips the circuit open, then verify calls return the fallback immediately without invoking the dependency. Also test the full transition path: closed→open→half-open→closed, including recovery.

How to verify a database migration does not lose data?

Run the migration against real data on a production-like engine, then check row-count preservation, non-NULL required columns, and aggregate consistency. Finish by applying down then up again to confirm round-trip consistency restores the original schema and data.

What is the difference between resilience testing and chaos engineering?

Chaos engineering and failover testing check whether the system keeps running when components fail. Resilience testing here verifies that containment mechanisms—bulkheads, rate limits, circuit breakers—behave exactly as designed when faults are injected.

Why do migration tests pass locally but fail in production?

In-memory database substitutes miss dialect differences in type conversion and constraints, and empty test tables skip backfill verification. Run migrations against real data distributions on the actual production database engine or Testcontainers.

When should I not write migration integrity tests?

Skip them for additive-only safe migrations or simple DDL without data transformation, where the overhead is excessive. Reserve the full invariant checks for destructive migrations involving column changes, type conversions, or normalization.