2026 OpenClaw フロント実戦:
リモート Mac で Vite/Webpack の ms を集約し PR 性能回帰要約を返す
マージ前に本番ビルドの壁時計を同じ物差しで見るには、Vite/Webpack のログだけでは足りません。リモート Macでも再現できるよう build_metrics.json・ベースラインゲート・OpenClaw の pr_build_perf_summary.md・Webhook の順で固定します。関連:キャッシュと時間、バンドル閾値 PR、import グラフ PR。
01 課題と目標
① ログ形式がバンドラごとに異なり、パーセントでの回帰説明が難しい。② 長いログはパス漏えいのリスク。③ 高権限トークンをゲートウェイに置くと監査負荷が増える。目標は薄い JSON で ms を固定し warn と fail を分離したうえ、OpenClaw は要約のみ、資格情報はゲートウェイとGit プラットフォームに分割することです。
02 収集の対照:Vite と Webpack
ANSI ではなく機械可読な msだけを残します。
| ツール | 推奨フック | 注意 |
|---|---|---|
| Vite | buildStart・closeBundle で累積。 |
dev/build を分離し cacheDir ヒットを記録。 |
| Webpack | done 前後や stats 要約でフェーズ合算。 |
並列時はフェーズを壁時計で揃える。 |
03 build_metrics.json のフィールド
キー名はチーム規約に合わせてよいが、次を推奨します。
| フィールド | 意味 |
|---|---|
repo sha pr toolchain |
リポジトリ・コミット・PR・Node・PM・Runner(チップ)。 |
totalMs |
エントリから成功終了までの壁時計 ms(アップロード時間は除く)。 |
phases cacheHit |
phases は name+ms。cacheHit でキャッシュミスとコード退行を切り分ける。 |
04 実行スクリプト連鎖(五段以上)
build:metricsのあと.openclaw/reports/${SHA}/build_metrics.jsonに保存。- CI で
jq emptyを通し、失敗なら非ゼロ終了。 - main の緑ビルドまたは merge-base と比較し
build_gate.jsonにlevel・reasons。 - OpenClaw が metrics と gate から
pr_build_perf_summary.mdを生成(stdout に秘密を出さない)。 - fail はジョブ失敗、warn は緑+通知のみ。
- HMAC Webhook または
gh pr commentで要約とアーティファクトリンク。
運用:パス .openclaw/reports/<SHA>/ を固定し、フェーズ名は英語 slug。同一 SHA で Apple リモート機と Linux 1 台を交差検証するとブレが見えます。
05 閾値とアラート段階
合計時間と最長フェーズの二重比較。ノイズを減らすなら合計は例として +500ms 超のみを回帰とみなす。キャッシュミスは warn、コード退行と分離します。
06 CI Webhook と冪等
ペイロードは sha・pr・gate.level・要約の先頭のみ。HMAC は定数時間比較し、タイムスタンプ窓で再送を抑止。コメント重複は HTML コメント build-metrics/<SHA> または API で検索。再試行は指数バックオフです。
07 OpenClaw ゲートウェイ token と最小権限
ゲートウェイ token:許可テンプレートとモデルのみ、ワークスペース束縛・レート制限・任意 fetch 禁止・短い TTL・環境ごとのローテーション。PR 書き込みは GITHUB_TOKEN の最小 scope または単一リポジトリ PAT。管理者権限や workflow 書き込みは実行層に持ち込まない。二種の秘密はリポジトリ分離とログマスクで管理します。
08 まとめ
JSON 一枚で Vite/Webpack を同じ軸に載せ、ゲートのあと OpenClaw が PR に短い要約だけを付けます。ローカル SSD やコアが足りない場合は専用リモート Macに同一 Runbook を複製しキャッシュパスを固定してください。マージ待ちを減らすには下記からノードを選び、SSH でスクリプトをそのまま移せます。