release-it
# ClaudeWave: release-it The Release It! framework provides production-readiness patterns for designing resilient systems that survive failure through circuit breakers, bulkheads, timeouts, and retry logic. Use this skill when architecting systems to handle cascading failures, planning deployments with zero downtime, designing resilient microservices, or investigating outages caused by integration point failures, slow responses, thread exhaustion, or unbounded load.
git clone --depth 1 https://github.com/wondelai/skills /tmp/release-it && cp -r /tmp/release-it/release-it ~/.claude/skills/release-itSKILL.md
# Release It! Framework Framework for designing, deploying, and operating production-ready software. The software that passes QA is not the software that survives production — production is hostile, and systems must expect and handle failure at every level. ## Core Principle **Every system will eventually be pushed beyond its design limits.** The question is not whether failures happen, but whether your system degrades gracefully or collapses catastrophically. Production-ready software is not just correct — it is resilient, observable, and operates through partial failures without human intervention. ## Scoring **Goal: 10/10.** When reviewing or creating production systems, rate them 0-10 against the principles below — 10/10 means full alignment, lower scores indicate gaps. Always give the current score and the specific improvements needed to reach 10/10. ## The Release It! Framework Six areas that determine whether software survives contact with production: ### 1. Stability Anti-Patterns **Core concept:** Failures propagate through integration points and cascade across system boundaries. The most dangerous patterns are not bugs in your code — they are emergent behaviors when systems interact under stress. **Why it works:** Every production outage traces back to one or more of these predictable, recurring patterns; recognizing them lets you eliminate the cracks before production traffic finds them. **Key insights:** - Integration points are the number-one killer — every socket, HTTP call, or queue is a risk - Slow responses are worse than no response: they tie up threads, exhaust pools, and propagate delay up the call chain - Unbounded result sets turn a harmless query into an out-of-memory crash once data outgrows test assumptions - Users generate load no test predicts — bots, retry storms, flash crowds; self-denial attacks happen when your own marketing overwhelms your infrastructure - Blocked threads are the silent killer — deadlocks and contention show no errors until everything stops **Code applications:** | Context | Pattern | Example | |---------|---------|---------| | HTTP calls | Assume every remote call can fail, hang, or return garbage | Wrap all external calls with timeout + circuit breaker | | Database queries | Enforce result set limits | Add `LIMIT`; paginate all list endpoints | | Thread pools | Isolate pools per dependency | Separate pool for payment gateway vs. search | | Marketing events | Coordinate launches with capacity planning | Pre-scale before Black Friday; queue coupon redemptions | See: [references/anti-patterns.md](references/anti-patterns.md) for each anti-pattern with failure scenarios and detection strategies. ### 2. Stability Patterns **Core concept:** Counter each anti-pattern with a stability pattern: circuit breakers stop cascades, bulkheads isolate blast radius, timeouts reclaim stuck resources. Together they make a system bend under load instead of breaking. **Why it works:** These patterns accept failure as inevitable and design the response to it — a circuit breaker that trips is the system working correctly, protecting itself from a downstream failure. **Key insights:** - Circuit Breaker: three states (closed, open, half-open) — trips after threshold failures, periodically tests recovery - Timeouts: every outbound call needs connect AND read timeouts, propagated up the call chain - Retry with exponential backoff + jitter prevents thundering herd on recovery - Fail Fast: reject requests you know will fail instead of wasting resources; Handshaking lets the server decline work before it's sent - Steady State: systems accumulate cruft (logs, sessions, temp files) — design automatic cleanup - Let It Crash: a clean restart often beats limping along in an unknown state **Code applications:** | Context | Pattern | Example | |---------|---------|---------| | Service calls | Circuit Breaker | Open after 5 failures in 60s; half-open after 30s | | Resource isolation | Bulkhead | Dedicated connection pools for critical vs. non-critical | | Network calls | Timeout with propagation | Connect 1s, read 5s; propagate deadline downstream | | Retries | Backoff + jitter + budget | Base 100ms, max 3 retries, 20% fleet retry budget | | Data cleanup | Steady State | Purge sessions >24h; rotate logs at 500MB | See: [references/stability-patterns.md](references/stability-patterns.md) for state machines, threshold tuning, and pattern combinations. ### 3. Capacity and Availability **Core concept:** Capacity is not one number — it is a multi-dimensional function of CPU, memory, network, disk I/O, connection pools, and threads. Capacity planning means knowing which resource bottlenecks first, and at what load. **Why it works:** Untested systems fail at peak load — the worst possible moment. Knowing actual (not theoretical) limits lets you set realistic SLAs and scale before users hit the wall. **Key insights:** - Test taxonomy: load test (expected traffic), stress test (beyond limits), soak test (sustained, catches leaks), spike test (sudden bursts) - Universal Scalability Law: throughput never scales linearly — contention and coherence costs cause diminishing returns - Pool exhaustion looks identical to a database outage from the application's perspective; size pools from measured concurrency, not defaults - "The cloud is infinitely scalable" is a myth — auto-scaling has lag, cold starts, and hard limits **Code applications:** | Context | Pattern | Example | |---------|---------|---------| | Load testing | Ramp to peak, then 2x, observe degradation | Increase RPS until latency exceeds SLO | | Connection pools | Size from measured concurrency | Set pool to P99 active connections + 20% headroom | | Soak testing | 80% capacity for 24-72 hours | Catch memory/connection/file-handle leaks | | Capacity model | Document bottleneck per service | "Service X is memory-bound at 2000 RPS; 4GB per instance" | See: [references/capacity-planning.md](references/ca
Build lean, opinionated products using the 37signals philosophy from Getting Real, Rework, and Shape Up. Use when the user mentions "Getting Real", "Rework", "Shape Up", "37signals", "Basecamp method", "six-week cycles", "fixed time variable scope", "appetite vs estimates", "betting table", "breadboarding", "fat marker sketch", "build less", "underdo the competition", or "opinionated software". Also trigger when cutting scope to ship faster, running small teams, avoiding long-term roadmaps, or eliminating meetings. Covers shaping, betting, building, and the art of saying no. For MVP validation, see lean-startup. For design sprints, see design-sprint.
Create uncontested market space using value innovation instead of competing head-to-head. Use when the user mentions "blue ocean", "red ocean", "strategy canvas", "ERRC framework", "value innovation", "non-customers", "buyer utility map", "eliminate-reduce-raise-create", or "uncontested market". Also trigger when comparing pricing strategies, exploring new market categories, finding underserved customer segments, or asking how to stop competing on price. Covers the Four Actions Framework, buyer utility map, and value-cost trade-offs. For tech adoption strategy, see crossing-the-chasm. For product positioning, see obviously-awesome.
Structure software around the Dependency Rule: source code dependencies point inward from frameworks to use cases to entities. Use when the user mentions "architecture layers", "dependency rule", "ports and adapters", "hexagonal architecture", "use case boundary", "onion architecture", "screaming architecture", or "framework independence". Also trigger when decoupling business logic from databases or frameworks, defining module boundaries, or debating where to put business rules. Covers component principles, boundaries, and SOLID. For code quality, see clean-code. For domain modeling, see domain-driven-design.
Write readable, maintainable code through disciplined naming, small functions, and clean error handling. Use when the user mentions "code review", "naming conventions", "function too long", "code smells", "readable code", "boy scout rule", "single responsibility", or "unit test quality". Also trigger when reviewing pull requests for readability, refactoring messy functions, debating comment styles, or improving error handling patterns. Covers SRP, comment discipline, formatting, and unit testing. For refactoring techniques, see refactoring-patterns. For architecture, see clean-architecture.
Engineer word-of-mouth and virality using the STEPPS framework (Social Currency, Triggers, Emotion, Public, Practical Value, Stories). Use when the user mentions "go viral", "word of mouth", "shareable content", "social currency", "why people share", "viral loop", "referral program", or "organic growth". Also trigger when designing shareable features, crafting social media campaigns, or building products that spread through peer recommendation. Covers environmental triggers and high-arousal emotional content. For sticky messaging, see made-to-stick. For persuasion tactics, see influence-psychology.
Build a weekly cadence of customer touchpoints using Opportunity Solution Trees, assumption mapping, and interview snapshots. Use when the user mentions "continuous discovery", "opportunity solution tree", "weekly interviews", "assumption testing", "discovery habits", "product trio", or "outcome-based roadmap". Also trigger when setting up regular customer feedback loops, prioritizing which experiments to run, or connecting discovery insights to delivery work. Covers experience mapping, co-creation, and prioritizing opportunities. For interview technique, see mom-test. For team structure, see inspired-product.
Audit websites and landing pages for conversion issues and design evidence-based A/B tests. Use when the user mentions "landing page isnt converting", "conversion rate", "A/B test", "why visitors leave", "objection handling", "bounce rate", "split testing", or "conversion funnel". Also trigger when diagnosing why signups are low, designing experiment hypotheses, or auditing checkout flows for friction points. Covers funnel mapping, persuasion assets, and objection/counter-objection frameworks. For overall marketing strategy, see one-page-marketing. For usability issues, see ux-heuristics.
Navigate the technology adoption lifecycle from early adopters to mainstream market. Use when the user mentions "crossing the chasm", "beachhead segment", "whole product", "early adopters vs. mainstream", "tech go-to-market", "bowling pin strategy", "technology adoption lifecycle", or "pragmatist buyers". Also trigger when a startup has early traction but struggles to grow beyond initial users, or when planning go-to-market for technical products. Covers D-Day analogy, bowling-pin strategy, and positioning against incumbents. For product positioning, see obviously-awesome. For new market creation, see blue-ocean-strategy.