ドキュメント&知識ベース · nexu-io/html-anything

eng-runbook

サービス概要 + アラート一覧表 + ダッシュボード + 運用コマンド + オンコール体制 + インシデントチェックリスト

L1 基本 · ソース登録のみV1 コミット固定Dual-pass Audit
Author nexu-ioGitHub nexu-io/html-anything ↗Stars 8827License Apache-2.0(仓库根 LICENSE = Apache License 2.0;GitHub API license.spdx_id = Apache-2.0;next/package.json 亦声明 Apache-2.0)Commit 553ed98c28
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

本スキルは実行可能プログラムではなく、「1ディレクトリ = 1テンプレート」の構成をとっています。SKILL.md の frontmatter はセレクター表示用であり、本文(body)がモデルへ送られるプロンプトそのものです。テンプレートの追加はディレクトリの追加のみで完結し、TypeScript の改修は不要です。

next/src/lib/templates/loader.ts
routes rescan disk and the client refetches `/api/templates`.
同一ファイルのヘッダーコメントにディレクトリ規約が明記されています:SKILL.md(frontmatter + prompt body)/ example.md(任意の入力サンプル)/ example.html(任意のプレビュー)。本スキルディレクトリ内もまさにこの構造に従っています。

実際に発行されるプロンプト = プラットフォーム共通デザイン指示(SHARED_DESIGN_DIRECTIVES)+ 本スキルの SKILL.md 本文 + ユーザー入力内容であり、assemblePrompt によって1つのプロンプトに組み立てられます。

next/src/lib/templates/shared.ts
Wrap a per-template instruction body with the shared design directives and
そのため本スキルの本文は「レイアウト/スタイル/コンポーネントライブラリ」のセクションのみを担当します。出力規律(単一ファイルHTML、ユーザー実データの必須使用、コンテンツ駆動型の分量)は共通指示に準拠するため、テンプレート作成者が重複して宣言する必要はありません。

完成稿はファイルシステムを経由しません。共通指示により Write/Edit/Bash などのファイル操作ツールの使用が明示的に禁止されており、モデルは完全なHTMLをレスポンス本文として直接ストリーミング出力することが求められます(stdout はフロントエンド側で捕捉されてディスクに保存されます)。

next/src/lib/templates/shared.ts
**禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**。不要把 HTML 写到任何 \`.html\` 文件里。前端直接捕获你的 stdout 文本, 文件落盘由前端负责。
これが「スキル自体のディスク書き込みゼロ」というメカニズムの背景です。ファイル書き出しを行うのはホストフロントエンドであり、スキルではありません。また、本ディレクトリ内にはいかなるスクリプトも存在しません。

ページ骨格は「番号付きセクション + テーブル + コマンドブロック」で構成されます。サンプルの5つのセクションは順に、Service summary、Alerts、Common procedures、On-call rotation、Incident response です。

next/src/lib/templates/skills/eng-runbook/example.html
<h2><span class="index">03</span>Common procedures</h2>
各セクションの見出しには小サイズの等幅インデックス .index(01〜05)を用いてリズムを統一しており、SKILL.md のレイアウト一覧の先頭5項目に対応しています。サンプルのテーマは架空の auth-service です。

アラート表は本テンプレートのコアコンポーネントです。4列構成(Alert / Severity / What it means / First response)で、「呼び出された直後にまず何をすべきか」を行ごとに提示します。

next/src/lib/templates/skills/eng-runbook/example.html
<thead><tr><th>Alert</th><th>Severity</th><th>What it means</th><th>First response</th></tr></thead>
SKILL.md に記載された「severity / threshold / runbook link」の3列とは異なります。サンプルでは threshold と runbook link を省き、What it means + First response に変更されています(よりアクション指向の構成、second_pass 参照)。

コマンドブロックは「操作名 + 使用タイミング + 説明 + コピー可能コマンド」で整理されており、サンプルでは先頭の $ とコメント span により直接コピー可能なコマンドラインを明示しています。

next/src/lib/templates/skills/eng-runbook/example.html
<span class="cmt"># Deploy auth-service v4.7.3 to production</span>
SKILL.md の「Common procedures(等幅コードブロック、ワンクリックコピー)」に対応しています。ただし、サンプルにはコピーボタン(スクリプトレス)がないため、「ワンクリックコピー」はホスト側のコードブロックコピー機能または手動選択に依存します。

オンコール当番表は月単位で展開され、4列(Week / Primary / Secondary / Backup (escalation))で構成され、1週1行の計4週間分となります。

next/src/lib/templates/skills/eng-runbook/example.html
<thead><tr><th>Week</th><th>Primary</th><th>Secondary</th><th>Backup (escalation)</th></tr></thead>
SKILL.md には「On-call rotation(今週 + 来週)」と記載されていますが、サンプルでは1か月・4週間分 + 3段階のエスカレーションチェーンが提供されており、情報量が多く粒度も異なっています(second_pass 参照)。

ビジュアルはダーク調のオンコールコンソールスタイルを採用しています。ダークブルーブラックの背景 #0c0e14、パネル #14171f、ミントグリーンのアクセント #6ee7b7、さらに warn(黄)/ danger(赤)を備えています。

next/src/lib/templates/skills/eng-runbook/example.html
--bg: #0c0e14;
ダーク背景 + 高コントラストなステータスカラーは、オンコール環境(夜間確認やターミナル横のサブ画面)に適しています。SKILL.md ではテーマが規定されておらず、サンプルによってトーンが決定されており、テンプレート側の自由度が高い部分です。

インシデント対応では2列構成のチェックリストグリッドを用いて「最初の30分間」のアクション項目を提示し、依存関係リストでは ok/warn の2状態で依存先の健全性を表現します。

next/src/lib/templates/skills/eng-runbook/example.html
.checklist { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
SKILL.md の「Incident response checklist」および「Service overview(トポロジー + 依存関係)」に対応しています。依存行は .deps li を使ってモジュール名 + ok/warn バッジを保持します。

サーバー側の /api/convert が行うのは3つの処理のみです。templateId に基づいてディスクからスキルを読み込み、プロンプトを組み立て、ローカルの agent CLI を spawn して SSE 経由で出力をストリーミング転送します。

next/src/app/api/convert/route.ts
prompt = assemblePrompt({ body: skill.body, content, format });
同ファイル内でまず `const skill = loadSkill(templateId);` を実行し(該当テンプレートがなければ 400 エラー)、その後 invokeAgent に渡します。スキルディレクトリ自体はプロセスを生成せず、ネットワーク通信も行いません。

2コア機能

01オンコール実行可能なランブック単一ページ:概要 / アラート / 手順 / 当番表 / インシデントチェックリスト
02アラート・アクション対応表(Alert/Severity/意味/一次対応)
03サービス概要パネル:テキスト要約 + 依存関係リスト(ok/warn 状態表示付き)
04日常運用の手順ブロック(when ガイドおよび直接コピー可能なシェルコマンド付き)
05月間オンコール当番表 + 3段階エスカレーションチェーン(Primary/Secondary/Backup)
06インシデント対応チェックリスト(最初の30分、2列グリッド)

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
自動ロード可能
管理者向け
ソースとバージョンの記録
判定根拠(ファイルパスと抜粋)
  • SKILL.md: 純粋なプロンプト指示およびルールテキストのみであり、スクリプト実行や外部への影響はありません
監査ノート: 判定対象=スキル自身のディレクトリ(SKILL.md + example.html/example.md。本ディレクトリ内にはスクリプト、認証情報の読み込み、ディスク書き込み指示、ネットワーク呼び出しコードは一切存在しません)。第4バッチの最終基準に基づき、html-anything テンプレートは一律で green と判定されます。SKILL.md 全文において実行時サービスバックエンド/API の指定はなく、ユーザー素材を外部の生成バックエンドに送信することもありません(orange の該当要件なし)。バックエンドのリバースエンジニアリング、なりすまし、迂回もありません(red の該当要件なし)。ディレクトリ内に実際に現れるエンドポイントは成果物サンプルの外部リンクのみ(なし:example.html 全文において外部リンクは一切なく、フォントファミリはシステムスタックの Inter/ui-monospace を使用し、フォントリンク、CDN、画像URLは含みません)であり、これらは「成果物サンプル」に該当するため基準上は判定対象外であり、自己証明としてここに記載するのみです。ホスト側について付言すると、プレビュー iframe で sandbox="allow-scripts allow-same-origin" が使用され、ローカル agent CLI が spawn され(next/src/lib/agents/invoke.ts)、共通指示により完成稿で CDN を参照することが要求されますが、これらはプラットフォーム側の挙動であるため補足説明にとどめます。

5二重目の独立検証

  • [unlocatable] 「Dashboards links 卡片」 — 样例五节中无 dashboards/Grafana 类链接卡片,全文 grep dashboard 零命中;SKILL.md 承诺的这一节在样例里无对应实现(既非改名也非隐藏,属未实现)。
  • [discrepancy] 「Alerts table (severity / threshold / runbook link)」 — 表列实为 Alert / Severity / What it means / First response,没有 threshold 列与 runbook 链接列。
  • [discrepancy] 「Common procedures (mono 代码块, 一键复制)」 — mono 代码块成立(--mono + 前置 $ 与 cmt span),但「一键复制」需 JS,样例零 <script>,无复制按钮。
  • [discrepancy] 「On-call rotation (本周 + 下周)」 — 样例给整月四周(Oct 27–Nov 23)且含 Backup (escalation) 列,比承诺更全但粒度不同。
  • [ok] 「Incident response checklist」 — 第 05 节 .checklist 双列网格承载「最初 30 分钟」动作项。
  • [ok] 目录内零脚本/零端点 — 无 <script>、无外链字体与图片、无 CDN;命令均为虚构内部工具示意。
  • [ok] 深色主题 — --bg:#0c0e14 / --paper:#14171f / --accent:#6ee7b7 / --warn:#fbbf24 / --danger:#f87171(SKILL.md 未规定主题,属模板自由度)。

6結論

  • 適切なコンテンツモデル:ランブックに求められる「アラート→一次対応」と「即座にコピー可能なコマンド」の両方を、サンプルにて具体的な数値とコマンドで網羅しています。
  • 完全なオンコール情報:月間スケジュール + Primary/Secondary/Backup の3段階エスカレーションチェーンを備え、誰に連絡すべきかの課題を1枚の表で解決します。
  • ダークコンソールテーマ + ステータスカラーにより、夜間やターミナル環境での閲覧に適しており、ライトテーマのドキュメントテンプレートと相互補完の関係にあります。
  • ゼロ依存性:スクリプトや外部リンクを含まないため、ネットワーク分離環境(踏み台サーバーや社内ポータルなど)でも直接開くことができます。
  • 最適な用途: SREやバックエンドチームが単一サービス向けのオンコールマニュアルを作成するのに最適です。Confluence に分散したアラート説明を、印刷や画面投影が可能な1ページのランブックに集約したい場合や、インシデント振り返りの前に「現状 + 一次対応」ページを迅速に作成したい場合に適しています。
    不向きな用途: 複数サービスの全体概要には不向きです(本テンプレートは単一サービス向けの縦長ページです)。外部公開や顧客向けドキュメントには適していません(ダークテーマや内部コマンドは外部公開に適さないため)。真のインタラクション(コピーボタンやグラフ連携など)が必要な用途には不向きです。また、エンジニア以外の読者向けにも適していません(専門用語とコマンドの密度が高いため)。
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload eng-runbook.tar.gz
    sha256: b08657d6c60cbf74…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 553ed98c28.