Skip to main content
The 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

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.
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.
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 expectations
  • 5-technical-specification.md — performance and reliability requirements
  • 7-system-architecture.md — components, dependencies, monitoring stack

Feeds into

  • 17-technical-runbook.md — alert thresholds and response procedures
  • 16-deployment-plan.md — deployment risk tolerance based on error budget
  • 18-disaster-recovery.md — RTO/RPO targets derived from SLOs
  • Incident postmortems — severity classification and SLA impact measurement

Quality gate

Before marking the document final, 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
Common mistake: Setting the SLO at 100% or equal to the external SLA. 100% eliminates error budget entirely; SLA = SLO means any internal miss becomes a contractual breach. Both are addressed by the skill — but flag them explicitly if seen in a prior document.