slo-architect
Use when defining, reviewing, or operating SLOs/SLIs/error budgets. Triggers on "define an SLO", "what should our SLO be", "error budget", "burn rate", "SLI", "service level objective", "Google SRE workbook", "multi-window burn-rate alert", or any reliability-target question. Ships SLO designer, error-budget calculator with multi-window burn-rate thresholds, and SLO reviewer that catches the common bugs (target too aggressive, window too short, conflicting SLOs, no SLI definition). 4 references on SLO principles + SLI design + error budget math + composition with feature-flags-architect/chaos-engineering/kubernetes-operator. NOT a generic observability skill — specifically the SLO discipline.
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o slo-architect.zip https://jpskill.com/download/21876.zip && unzip -o slo-architect.zip && rm slo-architect.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/21876.zip -OutFile "$d\slo-architect.zip"; Expand-Archive "$d\slo-architect.zip" -DestinationPath $d -Force; ri "$d\slo-architect.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
slo-architect.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
slo-architectフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 10
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[スキル名] slo-architect
SLOアーキテクト
意味のあるSLOを定義します。世の中の「SLO」のほとんどは、誰も信じない恣意的な数字です。例えば、すべてのエンドポイントで99.9%という目標、SLIの定義なし、エラーバジェットなし、バジェットが消費された場合のポリシーなし、といったものです。このスキルは、GoogleのSREワークブックの規律を強制します。つまり、適切なSLIを選択し、ユーザーが実際に気にする目標を設定し、エラーバジェットを計算し、マルチウィンドウのバーンレートアラートを配線し、バジェットが尽きた場合の書面によるポリシーを持つことです。
使用する場面
- サービスや機能の新しいSLOを定義する場合
- 既存のSLOを一般的なバグがないかレビューする場合
- 適切なSLIを選択する場合(イベントベース、時間ウィンドウベース、リクエストベース)
- エラーバジェットとバーンレートアラートのしきい値を計算する場合
- SLOを既存のコントロール(フィーチャーフラグの中止、カオスエンジニアリングの爆発半径、オペレーターの能力レベル)に結びつける場合
使用しない場面
- 一般的な可観測性戦略(メトリクス + ログ + トレース)→
observability-designerを使用してください - 法的拘束力のある顧客向けSLA → それは契約書作成であり、エンジニアリングではありません
- パフォーマンス負荷テスト(信頼性ではなくキャパシティ)→
performance-profilerを使用してください - アクティブなインシデント対応 →
incident-responseを使用してください
核となる原則:SLOはユーザーエクスペリエンスに関する約束です
SLI ⟶ ユーザーが認識する健全性の測定可能なシグナル(例:HTTP 2xx レート)
SLO ⟶ ウィンドウ期間におけるSLIの目標(例:30日間で99.9%)
SLA ⟶ 結果を伴う顧客向けのコミットメント(別の懸念事項)
EB ⟶ エラーバジェット:100% − SLO目標 = どれだけ「悪い」状態を許容できるか
BR ⟶ バーンレート:エラーバジェットを消費する速さ
4つの重大な間違い:
- 目標が高すぎる(それをサポートできないサービスで99.99%以上)— わずかな異常でもSLO違反となり、アラートがノイズになります。
- 間違ったSLI(ユーザーエクスペリエンスの代理としてCPU使用率)— システムが「グリーン」でもユーザーは苦しむ可能性があります。
- エラーバジェットポリシーがない — バジェットを消費しても、合意された行動がなければ意味がありません。
- 単一ウィンドウのバーンレートアラート — ノイズが多すぎる(5分間のスパイクでページング)か、遅すぎる(バジェットが尽きた後に気づく)かのどちらかです。
以下の3つのツールは、これらの間違いをそれぞれ捕捉します。
クイックスタート
SKILL=engineering/slo-architect/skills/slo-architect
# 1. SLOを設計する
python "$SKILL/scripts/slo_designer.py" \
--service checkout-svc \
--sli-type request-success-rate \
--target 99.9 \
--window-days 30
# 2. エラーバジェットとマルチウィンドウのバーンレートアラートを計算する
python "$SKILL/scripts/error_budget_calculator.py" \
--target 99.9 --window-days 30
# 3. 既存のSLO定義を一般的なバグがないかレビューする
python "$SKILL/scripts/slo_review.py" --slo-doc docs/slos/
3つのPythonツール
すべてstdlibのみです。
slo_designer.py
必須フィールドを含む構造化されたSLO定義を生成します。必須フィールドが欠落している場合はレンダリングを拒否します(exit 1)。
python scripts/slo_designer.py \
--service checkout-svc \
--sli-type request-success-rate \
--target 99.9 \
--window-days 30 \
--owner team-checkout
サポートされているSLIタイプ:
request-success-rate—(total_requests - bad_requests) / total_requestsrequest-latency—count(requests < threshold) / total_requestsavailability-time—(window - downtime) / windowdata-freshness—count(data_age < threshold) / total_data_pointscorrectness—count(correct_outputs) / total_outputs
出力はデフォルトでMarkdown形式で、すべての必須フィールドが入力されているか、<must define>とマークされています。JSON出力(--format json)はslo_review.pyによって消費されます。
error_budget_calculator.py
目標可用性 + ウィンドウ期間が与えられた場合、以下を計算します。
- ウィンドウ期間内の許容ダウンタイム
- Google SREワークブック(第5章)に基づくマルチウィンドウのバーンレートしきい値:
- 高速バーン — 月間バジェットの2%が1時間で消費された場合にページング
- 低速バーン — 10%が6時間で消費された場合にページング、10%が3日で消費された場合にチケット発行
- 推奨されるアラートルール(PromQL形式の出力)
python scripts/error_budget_calculator.py --target 99.9 --window-days 30
python scripts/error_budget_calculator.py --target 99.95 --window-days 7 --format json
slo_review.py
SLO定義のディレクトリ(MarkdownまたはJSON)を監査し、一般的なバグがないか確認します。
python scripts/slo_review.py --slo-doc docs/slos/
チェック項目:
target_too_high: 目標 ≥ 99.99%(大規模なエンジニアリング投資がなければ持続不可能)target_too_low: 目標 ≤ 99.0%(おそらくSLIが間違っています。ユーザーは気づくでしょう)window_too_short: ウィンドウ < 7日(統計的ノイズが支配的になる)window_too_long: ウィンドウ > 90日(フィードバックが遅い)no_sli_definition: SLIセクションが欠落しているか曖昧(「すべてOK」など)no_error_budget_policy: バジェットが消費された場合の文書化された行動がないcpu_as_sli: CPU/メモリをユーザーエクスペリエンスの代理として使用している(間違ったシグナル)
SLI選択チートシート
| ユーザーエクスペリエンス | SLIタイプ | 測定対象 |
|---|---|---|
| 「リクエストは成功しましたか?」 | request-success-rate | 2xx / total |
| 「応答は速かったですか?」 | request-latency | count(p99 < threshold) / total |
| 「サービスは稼働していましたか?」 | availability-time | (window - downtime) / window |
| 「データは最新ですか?」 | data-freshness | count(data_age < threshold) / total |
| 「回答は正しかったですか?」 | correctness | count(correct) / total |
例とアンチパターンについては、references/sli_design.md を参照してください。
エラーバジェットの計算(基本)
30日間で99.9%のSLOの場合:
- 許容されない時間:
0.1% × 30 × 24 × 60 = 43.2分 - 1時間の高速バーンしきい値(月間バジェットの2%消費):
2% × 43.2 / 60 ≈ 1.44 倍率 - 6時間の低速バーンしきい値(6時間で10%消費):
10% × 43.2 / 360 ≈ 0.6 倍率
error_budget_calculator.py はこの計算を自動で行い、すぐに貼り付けられるアラートルールを出力します。
ポートフォリオの他のスキルとの連携
このスキルは、以下の3つのスキルと明示的に連携します。
| スキル | 連携 |
|---|---|
feature-flags-architect |
ロールアウト中止基準がSLOバーンレートしきい値を参照します |
chaos-engineering |
爆発半径計算機は月間エラーバジェットを既に入力として受け取ります — ここで定義します |
kubernetes-operator |
オペレーター能力 L4 |
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
SLO Architect
Define SLOs that mean something. Most "SLOs" in the wild are arbitrary numbers no one believes — 99.9% on every endpoint, no SLI definition, no error budget, no policy for what happens when budget burns. This skill enforces the discipline from Google's SRE Workbook: pick the right SLI, set a target users actually care about, calculate the error budget, wire multi-window burn-rate alerts, and have a written policy for when budget runs out.
When to use
- Defining a new SLO for a service or feature
- Reviewing existing SLOs for common bugs
- Picking the right SLI (event-based vs time-window based vs request-based)
- Computing error budgets and burn-rate alert thresholds
- Tying SLOs to existing controls — feature flags abort, chaos blast radius, operator capability levels
When NOT to use
- General observability strategy (metrics + logs + traces) → use
observability-designer - Customer-facing SLAs with legal teeth → that's contract drafting, not engineering
- Performance load testing (capacity, not reliability) → use
performance-profiler - Active incident response → use
incident-response
Core principle: an SLO is a promise about user experience
SLI ⟶ measurable signal of user-perceived health (e.g., HTTP 2xx rate)
SLO ⟶ target for the SLI over a window (e.g., 99.9% over 30 days)
SLA ⟶ customer-facing commitment with consequences (separate concern)
EB ⟶ error budget: 100% − SLO target = how much "bad" you can spend
BR ⟶ burn rate: how fast you're consuming the error budget
The four cardinal mistakes:
- Target too high (99.99%+ on services that can't support it) — every minor blip violates SLO; alerts become noise.
- Wrong SLI (CPU usage as proxy for user experience) — system can be "green" while users suffer.
- No error budget policy — burning budget means nothing if there's no agreed action.
- Single-window burn-rate alert — either too noisy (page on a 5-min spike) or too slow (notice budget exhausted after the fact).
The 3 tools below catch each of these.
Quick start
SKILL=engineering/slo-architect/skills/slo-architect
# 1. Design an SLO
python "$SKILL/scripts/slo_designer.py" \
--service checkout-svc \
--sli-type request-success-rate \
--target 99.9 \
--window-days 30
# 2. Compute error budget + multi-window burn-rate alerts
python "$SKILL/scripts/error_budget_calculator.py" \
--target 99.9 --window-days 30
# 3. Review existing SLO definitions for common bugs
python "$SKILL/scripts/slo_review.py" --slo-doc docs/slos/
The 3 Python tools
All stdlib-only.
slo_designer.py
Generates a structured SLO definition with required fields. Refuses to render if any required field is missing (exit 1).
python scripts/slo_designer.py \
--service checkout-svc \
--sli-type request-success-rate \
--target 99.9 \
--window-days 30 \
--owner team-checkout
SLI types supported:
request-success-rate—(total_requests - bad_requests) / total_requestsrequest-latency—count(requests < threshold) / total_requestsavailability-time—(window - downtime) / windowdata-freshness—count(data_age < threshold) / total_data_pointscorrectness—count(correct_outputs) / total_outputs
Output is markdown by default with all required fields filled or marked <must define>. JSON output (--format json) is consumed by slo_review.py.
error_budget_calculator.py
Given target availability + window, computes:
- Allowed downtime in the window
- Multi-window burn-rate thresholds per Google SRE Workbook (Chapter 5):
- Fast burn — page if 2% of monthly budget consumed in 1 hour
- Slow burn — page if 10% consumed in 6 hours, ticket if 10% in 3 days
- Recommended alerting rules (PromQL-shaped output)
python scripts/error_budget_calculator.py --target 99.9 --window-days 30
python scripts/error_budget_calculator.py --target 99.95 --window-days 7 --format json
slo_review.py
Audits a directory of SLO definitions (markdown or JSON) for the common bugs.
python scripts/slo_review.py --slo-doc docs/slos/
Checks:
target_too_high: target ≥ 99.99% (sustainable only with massive engineering investment)target_too_low: target ≤ 99.0% (probably wrong SLI; users will notice)window_too_short: window < 7 days (statistical noise dominates)window_too_long: window > 90 days (slow feedback)no_sli_definition: SLI section missing or vague ("everything OK")no_error_budget_policy: no documented action when budget burnscpu_as_sli: CPU/memory used as user-experience proxy (wrong signal)
SLI selection cheatsheet
| User experience | SLI type | What you measure |
|---|---|---|
| "Did the request succeed?" | request-success-rate | 2xx / total |
| "Was the response fast?" | request-latency | count(p99 < threshold) / total |
| "Was the service up?" | availability-time | (window - downtime) / window |
| "Is the data current?" | data-freshness | count(data_age < threshold) / total |
| "Was the answer correct?" | correctness | count(correct) / total |
See references/sli_design.md for examples and anti-patterns.
Error budget math (the basics)
For 99.9% SLO over 30 days:
- Allowed unavailability:
0.1% × 30 × 24 × 60 = 43.2 minutes - 1-hour fast-burn threshold (2% of monthly budget burned):
2% × 43.2 / 60 ≈ 1.44 ratio multiplier - 6-hour slow-burn threshold (10% in 6h):
10% × 43.2 / 360 ≈ 0.6 ratio multiplier
error_budget_calculator.py does this math for you and emits ready-to-paste alert rules.
Composition with the rest of the portfolio
This skill explicitly composes with three others:
| Skill | Composition |
|---|---|
feature-flags-architect |
Rollout abort criteria reference SLO burn-rate thresholds |
chaos-engineering |
Blast-radius calculator already takes monthly error budget as input — define it here |
kubernetes-operator |
Operator capability L4 (Deep Insights) requires SLOs + Prometheus rules |
The error_budget_calculator.py output is in the same shape chaos-engineering/scripts/blast_radius_calculator.py expects on stdin.
Workflows
Workflow 1: Define a new SLO
1. Pick the user journey to protect (e.g., "checkout completion").
2. Choose SLI type (request-success-rate, latency, availability, freshness, correctness).
3. Define the SLI precisely: numerator/denominator with concrete labels.
4. Pick a target by measuring 30 days of historical SLI value:
target = floor(p50 of last 30 days × 100) / 100
This avoids targets the system has never sustained.
5. Pick a window (28 days = 4 calendar weeks, recommended).
6. Run slo_designer.py to render the SLO definition.
7. Run error_budget_calculator.py to get burn-rate alerts.
8. Write the error budget policy (what happens when budget burns).
9. Run slo_review.py — must pass before the SLO is "live".
Workflow 2: Quarterly SLO review
1. For every active SLO, run slo_review.py — fix any FAIL findings.
2. Look at last quarter's data:
- Was the SLO too easy (never burned budget)? Tighten target.
- Was it too hard (frequently burned)? Loosen target OR fix the system.
- Did burn-rate alerts fire usefully (not too noisy, not too late)? Adjust thresholds.
3. Audit error budget policies — were they actually followed when budget burned?
4. Commit revised SLOs; archive old versions with date stamps.
Workflow 3: SLO-driven rollback
1. New deploy starts burning error budget faster than baseline.
2. Burn-rate alert fires (from error_budget_calculator.py thresholds).
3. Auto-rollback via feature flag (kill switch from feature-flags-architect).
4. Postmortem feeds into next SLO revision.
References
references/slo_principles.md— SLI vs SLO vs SLA, Google SRE Workbook canonreferences/sli_design.md— picking the right SLI; 5 types with examplesreferences/error_budget.md— error budget math, burn-rate alerts, budget policyreferences/composition.md— how SLOs feed feature flags, chaos, operators
Slash command
/slo-design — interactive SLO design wizard that runs all 3 tools.
Asset templates
assets/slo_template.yaml— fillable SLO YAMLassets/error_budget_policy.md— fillable policy template
Anti-patterns
- 99.99% on every endpoint — copy-paste SLOs that nobody verified the system can sustain
- CPU usage as SLI — system metrics aren't user experience
- Single-window burn-rate alert — too noisy if 5-min, too slow if 30-day
- No error budget policy — burning budget means nothing without an action
- SLOs without owners — no one is responsible; they bit-rot
- SLOs reviewed once a year — system characteristics change faster than that
- SLAs in the SLO doc — different audience, different stakes; keep them separate
- SLO target = SLA target — SLO must be tighter (you should beat your contract before customers notice)
Verifiable success
A team using this skill should achieve:
- 100% of SLOs pass
slo_review.pywith 0 FAIL findings - Every SLO has a documented owner, error budget, burn-rate alerts, and policy
- Burn-rate alerts fire ≤2 times/month per SLO that's hit (signal, not noise)
- Mean time to detect SLO violation: <30 min (multi-window burn-rate alerts working)
- Quarterly SLO review happens every quarter (not annually)
同梱ファイル
※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (10,514 bytes)
- 📎 assets/error_budget_policy.md (2,641 bytes)
- 📎 assets/slo_template.yaml (2,293 bytes)
- 📎 references/composition.md (5,266 bytes)
- 📎 references/error_budget.md (4,588 bytes)
- 📎 references/sli_design.md (5,451 bytes)
- 📎 references/slo_principles.md (5,333 bytes)
- 📎 scripts/error_budget_calculator.py (5,303 bytes)
- 📎 scripts/slo_designer.py (6,680 bytes)
- 📎 scripts/slo_review.py (5,063 bytes)