2026 OpenClaw フロント実戦:
リモート Mac で scripts 変更を検知しプリリリース diff レポートを出す
Web 公開前プリフライト向け。OpenClaw・リモート Mac・package.json・diff レポートで scripts 変更を検知します。旧稿:Lighthouse 巡検、スモーク、audit ゲート。ブログ・ヘルプはログイン不要。
手順チェック(四本柱)
- Git diff 範囲:
merge-baseまたはタグと、対象package.jsonパスを環境変数で固定。 - スクリプトスナップショット:
scriptsをソートしartifacts/preflight/scripts-<SHA>.jsonへ。 - レポートテンプレート:スクリプト名・新旧・リスク・検証・オーナーの表。
- 通知:要約+成果物パス+ビルド URL。OpenClaw に同パスを渡しゲート直列化。
01 環境と権限
リモート Mac ランナーでは、ジョブ用ユーザーがリポジトリの読取と artifacts/ への書込ができること、git fetch --tags が可能なこと(タグ比較時)を先に確認します。Node は nvm や mise でバージョン固定し、ジョブ先頭で node -v と corepack / npm|pnpm の版をログへ残します。
シークレットはレポートに埋め込まず、Webhook は CI のシークレットから注入。OpenClaw からシェルを叩く場合も読み取り専用トークンと成果物パスのみ渡し、ツリー直接書換はレビュー付き PR に限定します。モノレポは glob 列挙か .preflight-packages.json でパスを固定してください。
02 変更検出トリガー
検知の入口は次のいずれか、または併用です。(1) PR イベントで package.json が変更ファイルに含まれるとき。(2) main へのマージ後、リリースブランチ作成前のゲート。(3) 定期バッチで「直近 N コミット」と「前回デプロイタグ」の差分を常にスキャン。
例:BASE=$(git merge-base origin/main HEAD); git diff "$BASE"..HEAD -- '**/package.json'。冗長なら scripts だけをスナップショット化して diff -u。スナップショット生成は npm run preflight:scripts-snapshot 等に寄せ、リモート Mac とローカルで同一コマンドにします。
03 レポート項目仕様
Markdown 1 ファイルに、メタ情報と本文表を分けます。メタ:リポジトリ URL、比較範囲(2 SHA またはタグ名)、生成時刻、パッケージマネージャ、Node 版。本文表の列は最低限 パッケージパス、スクリプト名、変更種別(追加/削除/変更)、旧コマンド、新コマンド、リスク(build|test|deploy|migrate|other)、推奨検証、担当ロール。
リスクはキーワード(publish / deploy / e2e 等)で JSON ルール化し、OpenClaw と共有。成果物は .md と .json の二段でレビューと exit 判定に使い分けます。
04 CI 連携
流れ:checkout(fetch-depth: 0)→ PREFLIGHT_BASE/HEAD → スナップショット → diff → レポート → 違反で exit 1。保護例:未知スクリプト名、rm -rf、curl|bash、npm の --force。先頭に太字のブロック理由を必ず出します。
合格時は 依存監査や スモーク、Lighthouse 巡検へ && 連結するか、パイプラインの「needs」で直列化します。
05 失敗事例のトラブルシュート
スナップショットが JSON パースエラー
package.json にコメントや末尾カンマが混入していないか、マージコンフリクト痕跡がないかを確認。jq ではなく Node の JSON.parse で行番号付きエラーを出すと切り分けが速いです。
diff は空だが本番だけ失敗
scripts は同じでも engines、packageManager、lockfile、CI の環境変数が変わっているケースがあります。スナップショット生成ジョブとデプロイジョブで同じ Node 版と同じ install フラグ(--frozen-lockfile 等)を強制してください。
通知だけ飛んでレポートが 404
成果物のアップロードステップが失敗しているか、保持期限が短すぎる可能性があります。CI のアーティファクト保存を「必須ステップ」にし、URL はビルド ID を含む安定パスにします。
06 受入チェックリスト
- 比較範囲と対象
package.jsonパスがログに出力されている - スナップショットファイル名にコミット SHA またはタグが含まれる
- レポートにメタ情報とリスク区分・検証コマンド列が揃っている
- 保護スクリプト変更時は CHANGELOG またはリリースノートへのリンクがある
- 通知に要約・成果物パス・ビルド URL が含まれる
- OpenClaw タスクがレポートパスを入力として受け取り、後続ゲートと同じディレクトリ規約を参照している
まとめ
Git 範囲固定 → scripts スナップショット → 構造化 diff レポート → 通知 → ゲートの順に落とすと、package.json の運用変更がWeb 公開前チェックのどこで検知されたかが追跡しやすくなります。リモート Mac 上で夜間に同じジョブを回すと、ローカルとの環境差も早めに表面化します。