複数の AI セッションが同じ Apps Script に clasp push しても互いの反映を消さない
clasp push は全置換なので、古いスナップショットからの push は他人が足したファイルを黙って消す。pull→上書き→push の連続化、別ディレクトリでの read-back、消された側が並行相手の staging に同乗させる復旧手順。
約5.8万トークンの節約 (API料金換算で約86円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。
この巻物について
「複数の AI セッションが同じ Apps Script に clasp push しても互いの反映を消さない」は、Google WorkspaceカテゴリのAI指示書(MDファイル)です。clasp push は全置換なので、古いスナップショットからの push は他人が足したファイルを黙って消す。pull→上書き→push の連続化、別ディレクトリでの read-back、消された側が並行相手の staging に同乗させる復旧手順。この巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約5.8万トークン(API料金換算で約86円)・96%のトークンを節約できます。
- カテゴリ
- Google Workspace
- 対応AI
- claude-code、cursor、codex-cli
- ライセンス
- 商用利用可 (再販不可)
- 価格
- 無料
- ゼロから開発時
- 約6万トークン
- この巻物使用時
- 約2,500トークン
- 節約量
- 約5.8万トークン (約86円)
- 更新日
- 2026-10-04
使い方 (AIに渡す3つの方法)
いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。
claude "https://makimono-md.vercel.app/api/v1/files/ai-apps-script-clasp-push/raw を読み込んで、この指示書どおりに実装して"
中身
複数の AI セッションが同じ Apps Script に clasp push しても互いの反映を消さない
これは何か
1 つの Google Apps Script プロジェクトに、複数の AI コーディングセッション(または複数人)が並行して clasp push する運用での事故防止手順。
clasp push は差分ではなく「ローカルにある全ファイル = 本番の全ファイル」に揃える。そのため、古いスナップショットから push すると、その後に別の誰かが追加したファイルは本番から削除される。エラーも警告も出ない。
よくある構成と、なぜ壊れるか
作業ツリーを複数セッションで共有していると、作業ツリーから直接 push すると他人の書きかけが本番に乗る。そこで次の「ステージング方式」がよく使われる。
- 一時ディレクトリで
clasp pull(本番のスナップショット) - 自分が変えたファイルだけ上書き
clasp push -f
この方式は「他人の書きかけを乗せない」点では正しい。ただし 1 と 3 の間に別セッションが本番へ新規ファイルを足すと、3 の push でそのファイルが消える。 典型的な症状は次のとおり。
- 共有ファイル(例: 関数のホワイトリスト)は新しい版が乗る。
- 登録先の関数が入った新規ファイルは消える。
- 結果として
unknown command: XやX is not definedが出る。
手順(push する側)
- pull → 上書き → push を 1 回の連続操作にする。 pull から push まで 5 分以上空いたら pull し直す。サブエージェントに反映を任せるときも、この順番を指示文に明記する。
- 上書き後、push 前に構文チェックを走らせる(1 ファイルの構文エラーでプロジェクト全体が止まる)。
node --check <staging>/src/<file>.js - push 後に別ディレクトリへ
clasp pullし、次の 2 点を確認する。- 自分のファイルが本番と一致していること
- 直前の pull に存在した他人のファイルが残っていること(ファイル数の比較だけでもよい)
参考実装(Node、要点のみ):
// stage-push.mjs: FILES だけをステージングに重ねて push し、別ディレクトリで read-back
const FILES = ['FeatureA.js', 'ui/FeatureA.html'];
for (const f of FILES) fs.copyFileSync(`${WORK}/src/${f}`, `${STAGE}/src/${f}`);
for (const f of FILES.filter(x => x.endsWith('.js'))) execSync(`node --check "${STAGE}/src/${f}"`);
execSync('clasp push -f', { cwd: STAGE });
execSync('clasp pull', { cwd: VERIFY }); // VERIFY は .clasp.json だけ置いた空ディレクトリ
const bad = FILES.filter(f => read(`${VERIFY}/src/${f}`) !== read(`${WORK}/src/${f}`));
console.log(bad.length ? 'MISMATCH: ' + bad : 'read-back ok');
stage-pull.mjs は「STAGE を空にする → .clasp.json と .claspignore をコピー → clasp pull」だけでよい。
手順(消された側)
- 実行結果が
unknown command/is not definedになったら、自分のコードより先に本番からの消失を疑う。clasp pullで本番のファイル一覧を見る。 - 消失を確認したら、最新の本番を pull し直してから自分のファイルを重ねて再 push し、read-back する。
- 消した相手がまだ動いているなら、再 push だけでは足りない。 相手の次の push でまた消える(実例では 2 回連続で消えた)。
- 相手の一時ディレクトリ(
.clasp.jsonを含む最近更新されたディレクトリ)を探す。 - その
src/に自分の変更ファイルを直接コピーし、相手の次の push に同乗させる。 - 相手セッションへ「push 直前に pull し直す・push 後に残存確認する」と連絡する。
- 相手の一時ディレクトリ(
- プロジェクトの引き継ぎメモに、時刻つきで事故と対処を記録する。
検証方法
- push 後の read-back で
read-back okが出ること。 - 機能の呼び出し(ホワイトリスト経由のコマンド実行など)が
unknown commandを返さないこと。 - 相手セッションからも「自分の push 後に、こちらの新規ファイルが残っている」報告を受けること。
やってはいけない
- 作業ツリーから直接
clasp pushする(他人の書きかけが本番に乗る)。 - 朝に取ったスナップショットを使い回して夕方に push する。
- 消えたファイルを自分だけ再 push して終わる(並行相手が動いている限り再発する)。
よくある質問
+「複数の AI セッションが同じ Apps Script に clasp push しても互いの反映を消さない」とは何ですか?
clasp push は全置換なので、古いスナップショットからの push は他人が足したファイルを黙って消す。pull→上書き→push の連続化、別ディレクトリでの read-back、消された側が並行相手の staging に同乗させる復旧手順。
+どれくらいトークン(費用)を節約できますか?
ゼロから開発すると約6万トークンかかりますが、この巻物を使えば約2,500トークンで済みます。差し引き約5.8万トークン(API料金換算で約86円)・96%の節約です。
+どうやって使いますか?
無料です。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 既定・適用前バックアップ・触っていないセルの数式不変検査で安全に書き換える設計手順。列ごとの数式復元と、テストが緑のまま壊れる典型例つき。
この巻物、誰かのトークンも救えます
𝕏 で節約レシートをシェア