共有作業ツリーから本番Apps Scriptを巻き戻さず部分pushする
本番をclasp pull→変更ファイルだけ重ね→差分表示→push→read-back検証→デプロイを1コマンドで行い、他人の新しい本番コードの巻き戻しとエージェントのBlind Apply拒否を防ぐ
約4.5万トークンの節約 (API料金換算で約68円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。
この巻物について
「共有作業ツリーから本番Apps Scriptを巻き戻さず部分pushする」は、Google WorkspaceカテゴリのAI指示書(MDファイル)です。本番をclasp pull→変更ファイルだけ重ね→差分表示→push→read-back検証→デプロイを1コマンドで行い、他人の新しい本番コードの巻き戻しとエージェントのBlind Apply拒否を防ぐこの巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約4.5万トークン(API料金換算で約68円)・75%のトークンを節約できます。
- カテゴリ
- Google Workspace
- 対応AI
- claude-code、cursor、codex-cli
- ライセンス
- 商用利用可 (再販不可)
- 価格
- 無料
- ゼロから開発時
- 約6万トークン
- この巻物使用時
- 約1.5万トークン
- 節約量
- 約4.5万トークン (約68円)
- 更新日
- 2026-10-03
使い方 (AIに渡す3つの方法)
いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。
claude "https://makimono-md.vercel.app/api/v1/files/apps-script-push/raw を読み込んで、この指示書どおりに実装して"
中身
共有作業ツリーから本番 Apps Script を巻き戻さずに部分 push する(overlay push)
問題
- 複数の AI セッション/人が同じ作業ツリーで GAS(clasp 管理)を触ると、ローカルには「他人が既に push 済みのものより古いファイル」や「未完成のファイル」が混ざる。
- この状態で
clasp push -fすると rootDir 配下を丸ごと上書きするため、他人の新しい本番コードを古い版に巻き戻す。 - AI エージェントの安全判定(auto mode classifier 等)は、
cd && clasp push -f | 出力捨てのような一括コマンドを「差分を見せない本番上書き(Blind Apply)」として拒否しやすい。
解決: 本番を正としてファイル単位で重ねる 1 コマンドツール
node tools/gas-overlay-push.mjs --project <.clasp.jsonのあるdir> --files <rootDir相対,カンマ区切り> [--dry-run] [--deploy <deploymentId>|--deploy-webapp] [--description <text>]
処理順:
<project>/.clasp.json(と.claspignore)を OS の一時ディレクトリにコピー。- 一時ディレクトリで
clasp pull= 本番の現物を取得。 --filesに指定したファイルだけ、ローカル<project>/<rootDir>/から一時ディレクトリへ上書きコピー(他ファイルは本番のまま)。- 各ファイルについて pull 版との差分(追加/削除行数と unified diff 先頭 80 行)を表示。全ファイル差分ゼロなら push しない。
--dry-runならここで終了(人/AI が差分を確認する)。- 一時ディレクトリで
clasp push -f。 - read-back: 別の一時ディレクトリに再度
clasp pullし、指定ファイルがローカルと一致するか(CRLF 差は無視)検証。不一致なら exit 1、デプロイしない。 --deploy <id>ならclasp deploy -i <id> -d <description>。--deploy-webappはclasp deploymentsから@HEAD以外のデプロイが 1 つだけのときに自動選択(複数なら一覧を出してエラー)。- 最後に
{"ok":true,"pushed":[...],"unchanged":[...],"readBack":"ok","deployed":"<id|null>"}を 1 行 JSON で出力。
実装の要点:
- 依存パッケージなし(Node 標準
child_process.spawnSyncをshell:falseで。Windows はclasp.cmdの実体 JS を解決してnodeで起動)。 - clasp 呼び出しは注入可能な runner 関数に切り出し、テストでモックする。
--filesは..・絶対パス・.clasp.jsonを拒否。一時ディレクトリ削除前に tmpdir 配下であることを確認。- 差分は自前の簡易 LCS で十分。
運用ルール
- GAS の反映はこのツールだけで行う(
clasp pushを作業ツリーから直接打たない)。 - まず
--dry-runで差分が自分の変更だけか確認 → 本実行。 - エージェントの許可リストに
node <path>/gas-overlay-push.mjs:*を登録すると、一括コマンド扱いの拒否が起きにくい。
テスト観点(node:test)
- 指定ファイルだけが pull 版に重なり、他は pull 版のまま push される
- 変更なし/dry-run では push しない
- read-back 不一致で exit 1・デプロイしない
--deploy-webappで候補が複数/ゼロならエラー- pull/push/deploy 失敗時も一時ディレクトリを掃除する
よくある質問
+「共有作業ツリーから本番Apps Scriptを巻き戻さず部分pushする」とは何ですか?
本番をclasp pull→変更ファイルだけ重ね→差分表示→push→read-back検証→デプロイを1コマンドで行い、他人の新しい本番コードの巻き戻しとエージェントのBlind Apply拒否を防ぐ
+どれくらいトークン(費用)を節約できますか?
ゼロから開発すると約6万トークンかかりますが、この巻物を使えば約1.5万トークンで済みます。差し引き約4.5万トークン(API料金換算で約68円)・75%の節約です。
+どうやって使いますか?
無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。
+どのAIツールに対応していますか?
claude-code、cursor、codex-cli に対応しています。
+商用利用できますか?
ライセンスは「商用利用可 (再販不可)」です。
🤝 自分でAIを動かすのは、まだ不安…という方へ
この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。
関連する巻物
GAS完全自動化テンプレ — Driveコマンドキュー方式
Google Apps Script の「毎回エディタで▶実行」を根絶。Drive 経由のコマンドキューで、初回1クリック以降は AI がすべての GAS 関数をリモート実行できるようになるテンプレート指示書。
人間の手入力台帳を壊さずに自動更新する — GAS Web App upsert 設計
各PC/各拠点の点検結果を、人間が手運用しているスプレッドシート台帳へ自動反映する。手入力列とコメントを絶対に壊さない突合設計、タブ/列の解決、並行POST対策、配布シークレットの落とし穴まで。
数式まみれの業務スプレッドシートを、Webアプリから壊さずに編集させる型
ArrayFormula と per-row 数式が混在する台帳を、セル単位 allowlist・dry-run 既定・適用前バックアップ・触っていないセルの数式不変検査で安全に書き換える設計手順。列ごとの数式復元と、テストが緑のまま壊れる典型例つき。
この巻物、誰かのトークンも救えます
𝕏 で節約レシートをシェア