slo-error-budget-document skill produces a rigorous SLO document that turns “the service should be reliable” into a specific, measurable, and enforceable contract. Every other reliability artifact in the engineering-docs suite — the runbook, the deployment plan, the postmortem — references an SLA/SLO without defining one; this skill is where that number comes from, how it is justified, and what happens when it is breached. An SLO without an error budget policy is just a wish: this skill applies Google SRE Workbook principles to give it teeth.
Type: Workflow · Estimated time: 2–4 hours · Standards: Google SRE Workbook — multi-window multi-burn-rate alerting · Output file:
.engineering-docs/19-slo-error-budget.md · Conditional skill — include once real users depend on the service’s uptime and especially before committing to an external SLA with customers or partners.Best for
Pre-launch reliability targets
Defining reliability targets for a new or existing service before launch, before “the service seems fine” becomes the only metric.
External SLA with margin
Formalizing a customer-facing SLA backed by an internal SLO with a deliberate buffer to absorb missed internal targets.
Velocity vs. reliability conflicts
Resolving recurring debates between shipping velocity and reliability work with data instead of opinion — the error budget is the arbiter.
Alert threshold source of truth
Setting the exact alerting thresholds that a runbook’s alert-response procedures are triggered by.
What it produces
The generated SLO document covers the full lifecycle from measurement to policy enforcement:How to invoke it
Pass the service or API name as the argument. Providing historical uptime data, any existing external SLA, and your monitoring stack gives the agent everything it needs to set justified targets rather than round numbers.Example scenarios
Pre-SLA checkout API
Pre-SLA checkout API
Define SLOs for our checkout API before we commit to an uptime SLA with customersProduces SLI definitions for availability, latency, and payment durability with Prometheus queries, 99.9% SLO targets justified by baseline data, and a burn-rate alert set ready to deploy.Error budget policy for feature freeze decisions
Error budget policy for feature freeze decisions
Set up error budget policy for the checkout service so we stop debating whether to freeze feature work after each blipProduces a pre-agreed four-level policy (healthy → low → exhausted) signed off by both engineering and the product stakeholder — so the decision is made once calmly, not every time an incident fires.Webhook delivery pipeline
Webhook delivery pipeline
Write the SLI/SLO document for our webhook delivery pipeline and the burn-rate alerts that should page on-callCovers delivery success rate and end-to-end latency SLIs with a 99.5% delivery SLO, error budget of ~216 minutes per 30 days, and a full multi-window alert set with Prometheus rules.Key concepts
SLI, SLO, SLA — not the same thing
Never set the SLA equal to the SLO. The gap is the buffer that lets you miss the internal target occasionally without breaching a customer contract and triggering financial penalties.
Why not 100%
100% reliability eliminates the error budget entirely — every deploy, migration, or experiment becomes a potential SLO breach. The error budget (1 − SLO) is the amount of unreliability the business has explicitly decided is an acceptable cost of moving fast. The SLO document makes that trade-off deliberate and visible.
Multi-window, multi-burn-rate alerting
A single “error rate > X%” alert either fires too late for fast, severe burns or too often for slow, minor ones. The skill implements the Google SRE Workbook three-tier model:Error budget policy
The policy is only useful if it is agreed upon before the budget is exhausted — not argued about mid-incident:SLI implementation details
An SLI definition is incomplete without an exact monitoring query. The document includes ready-to-deploy Prometheus and Datadog implementations for each SLI, plus explicit documentation of any measurement gap (e.g., “measured at the load balancer — a database-side failure that does not produce a 5xx at the LB is not captured”).Dependency-aware SLOs
Services do not operate in isolation. The document models the dependency chain and calculates the composite SLO ceiling. If a service depends on a database with a 99.95% SLO and an external API with a 99.5% SLO (without graceful degradation), the composite SLO ceiling is 99.5% — regardless of how well the service itself performs.Interview process
The agent conducts a brief structured interview before drafting, loading prior.engineering-docs/ files first to avoid re-asking known facts:
1
Context loading
Reads existing documents (business-plan, technical-specification, system-architecture) to extract known uptime expectations, monitoring stack, and tech stack.
2
Reliability baseline (≤ 2–3 questions)
Asks what historical performance has looked like, if known — even rough estimates like “we’ve had two outages in the last quarter” inform target-setting.
3
External commitments
Checks whether an external SLA has already been promised to customers or partners, and what it says — this anchors the internal SLO target and the buffer calculation.
4
SLI selection
Chooses 2–4 SLIs per critical user journey — typically availability, latency, and correctness/durability — rejecting infrastructure metrics that do not reflect user experience.
5
SLO target setting
Sets the numeric target per SLI, justified by baseline data and business cost of missing it — not round numbers chosen for aesthetics.
6
Error budget and alerts
Calculates the error budget and defines the three-tier burn-rate alert thresholds with deployable monitoring rules.
7
Policy and review cadence
Defines the four-level error budget policy and the quarterly SLO review structure, with approval from both engineering and the business stakeholder who owns the roadmap.
Output structure
The generated.engineering-docs/19-slo-error-budget.md mirrors the full template:
19-slo-error-budget.md (structure)
Handoff
Reads from
1-business-plan.md— business cost of downtime, user expectations5-technical-specification.md— performance and reliability requirements7-system-architecture.md— components, dependencies, monitoring stack
Feeds into
17-technical-runbook.md— alert thresholds and response procedures16-deployment-plan.md— deployment risk tolerance based on error budget18-disaster-recovery.md— RTO/RPO targets derived from SLOs- Incident postmortems — severity classification and SLA impact measurement
Quality gate
Before marking the documentfinal, verify every item in this checklist:
- Every SLI measures user-facing behavior, not infrastructure metrics
- Every SLO target is justified by baseline data and business cost, not round numbers
- The external SLA (if any) is looser than the internal SLO with an explicit buffer documented
- Multi-window multi-burn-rate alert thresholds are defined for each SLO
- The error budget policy is agreed upon by both engineering and the business stakeholder who owns the roadmap
- Each SLI has an implementation query (Prometheus/Datadog) that is exact and executable
- Error budget dashboard design is specified with components that answer “how much budget remains?” in under 5 seconds
- Alerting rules are implemented in the monitoring system, not just documented as thresholds
- SLO review meeting structure is defined with frequency, attendees, and agenda
- SLO vs. SLA breach response procedure is documented with escalation path
- Service dependencies are modeled and composite SLO is calculated
- SLA buffer is sized deliberately based on measurement error, incident frequency, and business risk
