ADR-014: Hermes Operations Glanceを退役し、監査をオンデマンドへ戻す

決定日: 2026-08-05 状態: 有効

背景

Hermes Operations Glanceは、Discord入口のprofile・toolset・稼働状態・監査freshnessを、read-onlyの画面として常時見られるようにするため導入した。

監査自体は有効だった。contract、auditor、5分timer、最終JSONにより、入口のdriftを人間の記憶や画面の表示だけに依存せず確認できていた。

一方でGlanceの表示は、ほぼ一つのhealthy/driftを再表示する面に留まった。異常時の次の行動や、複数の状態を比較して判断する情報は持たない。利用痕跡は完全なゼロではなかったが、常設画面として判断を支える役割には育たなかった。

決定

Glanceの表示面だけを退役する。

  • Glance package、設定、user serviceを削除する
  • UI専用API、:8450 のTailscale Serve、HomepageのHermes Operationsカードを削除する
  • contract、auditor、5分timer、machine-readableな最終監査JSONは残す
  • 状態が必要なときは、IrisがJSONを短いtext tableへ投影する
  • Homepageへiframeで再埋め込みはしない

今回の適用では、:8450、Glance/API user unit、:8790/:8791 listener、Homepageカードの消失を確認した。残したauditorは手動実行でhealthyかつfreshな結果を返し、timerも待機状態を確認した。

理由

表示層と検知基盤は別の責務だからである。

Glanceを残すことは、監査の有用性を保つためには必要なかった。常設画面を一つ増やすより、必要なときにfreshness・findings・意味を含む短い表を返す方が、実際の判断に近い。

iframeは技術的に可能でも、表示を狭めるだけで、モバイル表示・更新・責務分離を悪くする。将来、サービスの役割・依存・正本を俯瞰したくなった場合は、Glanceの代替画面ではなく、manifest/contractから生成する独立したIris / Homelab Mapとして扱う。

トレードオフ

  • ブラウザを開くだけでは監査状態を見られなくなる
  • 監査結果を見るにはIrisへ尋ねるか、JSONを読む必要がある
  • 表示専用service、API、公開routeの維持負担はなくなる
  • 検知基盤を残すため、表示をやめても入口driftの観測能力は失わない

見直し条件

次のいずれかが起きたら見直す。

  • 監査の確認が頻繁になり、オンデマンド表では判断が遅れる
  • 複数のサービス・依存・正本を同時に見なければならない運用が定着する
  • 監査結果を受けても次の行動を決めにくい異常が繰り返される

その場合はGlanceを復活させるのではなく、current service mapやcontractを入力にした独立した生成地図の必要性を評価する。

関連