jpskill.com
💼 ビジネス コミュニティ

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.

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
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
🪟 Windows (PowerShell)
$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. 1. 下の青いボタンを押して slo-architect.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → slo-architect フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

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つの重大な間違い:

  1. 目標が高すぎる(それをサポートできないサービスで99.99%以上)— わずかな異常でもSLO違反となり、アラートがノイズになります。
  2. 間違ったSLI(ユーザーエクスペリエンスの代理としてCPU使用率)— システムが「グリーン」でもユーザーは苦しむ可能性があります。
  3. エラーバジェットポリシーがない — バジェットを消費しても、合意された行動がなければ意味がありません。
  4. 単一ウィンドウのバーンレートアラート — ノイズが多すぎる(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_requests
  • request-latencycount(requests < threshold) / total_requests
  • availability-time(window - downtime) / window
  • data-freshnesscount(data_age < threshold) / total_data_points
  • correctnesscount(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:

  1. Target too high (99.99%+ on services that can't support it) — every minor blip violates SLO; alerts become noise.
  2. Wrong SLI (CPU usage as proxy for user experience) — system can be "green" while users suffer.
  3. No error budget policy — burning budget means nothing if there's no agreed action.
  4. 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_requests
  • request-latencycount(requests < threshold) / total_requests
  • availability-time(window - downtime) / window
  • data-freshnesscount(data_age < threshold) / total_data_points
  • correctnesscount(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 burns
  • cpu_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 canon
  • references/sli_design.md — picking the right SLI; 5 types with examples
  • references/error_budget.md — error budget math, burn-rate alerts, budget policy
  • references/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 YAML
  • assets/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.py with 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` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。