2026年 OpenClaw SecretRef・64 憑証面と backup/doctor の運用メモ

SecretRef の実体と 64 憑証面(鍵束・トークン・ローカルストア・コンテナ秘密の集合)を一枚の表に落とし、失敗早期読みで止めるのが最小コストです。典型は「参照はあるが実体が別ホスト」「別 PATH で復元したらハッシュ不一致」。軽量収集器で実効 PATH とプラグイン解決先だけ JSON 化し、監査は差分で足ります。重い xcodebuild は本線から外し、 Xcode 26 Compilation Cache FAQ 、ロックと掃除は 自己ホスト Runner のディスク FAQ と併読。

1. SecretRef と 64 憑証面を「失敗早期読み」で固定

参照名だけで運用せず、解決後パスUIDマウント可否を PR テンプレに必須化。CI はダミー起動と本番相当ジョブを分離。早期読みの合図は「起動直後に doctor が鍵を開けない」「backup メタにホスト名が混ざる」など短文に固定。

ルール: シークレットの「参照」と「実体の所在」を同じコミットで更新しない。

2. ランタイム収集と監査フローの最小セット

収集は四点セット:プラグインディレクトリ、node 実体、docker contextbrew --prefix。監査は backup チェックサムと JSON を突合し、差分ホストのみ doctor --verbose。マスク方針と保持日数は README に明記。

3. HomebrewnpmDocker 混在下の openclaw backup 検証

混在時は「どの openclaw が動いたか」が先。which -anpm prefix -gbrew --prefix を同一シェルで記録し、backup 前後でハッシュ比較。bind mount では inode 差で別チェックサムになり得る旨を Runbook に書く。検証は非対話・単一 cwd、失敗は終了コードのみ。

4. doctor との照合表で排錯を再現

症状と doctor 項目の二列表を共有し、手順番号で毎回同じ順に実行。例:ENOENT→PATHcwd、TLS→プロキシと証明書。HTTP と stdio の二重登録は表の最上段で先に潰す。

  • backup のメタに書いたホスト名と、doctor が見ているホスト名が一致しているか。
  • グローバル npmbrew のどちらの openclaw を LaunchAgent が起動しているか。

5. 高メモリ遠隔 Mac の常駐ゲートウェイ

薄いゲートウェイと 常駐の高メモリ遠隔 Mac を分け、メディア生成や重検証を後者へ。SSH LocalForward でポート束ね、ワークツリーと成果物は共有しない。openclaw.json は validate 済みコミットで固定し、遠隔側の doctor 頻度だけ上げる。

6. 重い Xcode タスクのオーバーフロー

シミュレータやフル archive は I/O が跳ねるため本線はタイムボックスし、高メモリ Mac へキュー。DEVELOPER_DIR と DerivedData を分離し、戻り値だけ本線へ返すと SLO が守れる。

Mac mini で監査とオーバーフローを分ける理由

憑証検証と重い Xcode は負荷が異なるため、Apple Silicon の帯域と macOS Unix を活かした役割分割が効く。Gatekeeper/SIP/FileVault で無人説明もしやすく、待機電力の低い Mac mini M4 はゲートウェイとオーバーフローの二台でも総コストが読みやすい。

Macstripe ホームで専有 Mac mini M4 を比較し、監査用と高メモリ用を組み合わせて SecretRef 運用を 2026 年基準に揃えましょう。