巻物を探す
61件の巻物
GAS完全自動化テンプレ — Driveコマンドキュー方式
Google Apps Script の「毎回エディタで▶実行」を根絶。Drive 経由のコマンドキューで、初回1クリック以降は AI がすべての GAS 関数をリモート実行できるようになるテンプレート指示書。
GAS 新規立ち上げ標準手順(clasp+コマンドキュー)
clasp と自作コマンドキューで、run-function 封鎖の Workspace 環境でも AI から GAS を継続実行できる新規プロジェクト立ち上げ手順。人間の作業は setupOnce の1クリックのみ。ホワイトリスト実行・並走防止・機密値の置き場も規定。
GAS 開発の絶対ルール(clasp統一・キュー・read-back)
.gs/appsscript.json/.clasp.json を編集すると自動適用される GAS 開発ルール集。clasp push 統一、コマンドキュー方式、書き込み後の read-back verify、silent ignore 対策、push 後もトリガーが旧コードで動く罠までを規定。
スプレッドシート業務アプリに画面キャプチャ付き不具合報告フォームを付ける(GAS)
GASのOverGridImageにgetBlob()が無くシート貼付画像は読めない。HTMLダイアログでCtrl+Vを受ける正しい設計・記録列マイグレーション・read-back検証・画像を捨てない後片付けまでの実装指示書
スプレッドシート実行パネルの結果セルを必ずクリック可能にする(GAS)
GASでシートを操作パネルにした時、生成物リンクがセルに出ず別シートを探させてしまう問題の潰し方。URLキーの総なめ収集・RichTextで複数リンク・過去分の埋め戻し・再構築で消える罠・全走査で6分制限に当たってトリガが死ぬ罠まで。
「共有した雛形に書き込めない」問い合わせを消す — Googleフォーム→本人専用ドキュメント自動発行(GAS)
雛形リンク配布をやめ、フォーム入力から本人専用のGoogleドキュメントをGASで自動発行・共有する。原本は閲覧のみのまま、権限リクエストと問い合わせをゼロにする手順とWorkspace固有の罠
GAS Web アプリが「アクセス権が必要です」で開けない時のデプロイ記録破損の診断と復旧
公開設定は正しいのに所有者でも403になるGAS Webアプリを、Bearer fetchの差分比較で切り分け、同versionのPUT再デプロイでURL不変のまま復旧する
GAS ウェブアプリが突然開けない — ブラウザ用ライブラリ混入と clasp の盲点を API 版比較と読み込みテストで潰す
直前デプロイで混入した minified ライブラリが Apps Script 起動時に例外を投げ全画面が死ぬ事故の診断・修正・再発防止。版番号指定の API 比較、GAS 相当グローバルでの読み込みテスト、clasp がリモート専用ファイルを消さない対処まで。
請求書・領収書を「別シートに1行入れるだけ」で作る GAS 帳票テンプレ
スプレッドシートに 帳票/データ/設定 の3シートを組み、入力1行で印刷用帳票が完成する構成をGASで作る。セル値の読み戻しでは検出できない印刷時の文字切れを、PDF書き出しの目視で潰すまでを含む。
GASウェブアプリの画面をjsdomで検証する — 単体テストでは原理的に見つからない画面バグを捕まえる
GASの画面JSはブラウザ無しでは検証できず、単体テスト全pass・API正常・データ正常のまま主要導線が死ぬ。Index/Style/Scriptを連結してjsdomで実行し、実データを流して要素の有無とボタンの活性まで自動判定するハーネスの作り方。
Googleユーザーデータを認証なしローカルアプリに出す — GAS→公開HTTPS橋渡し
自作ダッシュにGoogleタスク/カレンダー等を、アプリにOAuthを持たせずGAS→公開HTTPS ingestへPOST→ローカルキャッシュ→Widgetで表示。Web App公開/clasp run/SA不要。funnel実ポート確認・秘密の置き場・basePath・本番再ビルド等の実測ハマりどころ付き
本番共有スプレッドシートを壊さず一括更新する型(GAS)
複数人が使っている本番シートに対し、AIが担当者名の一括置換や誤登録行の削除を安全に行うための設計。dryRun→照合キー付き適用→独立read-backの3段と、GASのコード雛形・実際に踏んだ落とし穴つき。
GASの通知Botメンバーリストをスプレッドシート化する
Discord/Slack等への定期通知GASでハードコードされた宛先リストをスプレッドシート読込に置き換え、以後はコード編集不要にする。Drive全文検索がGAS編集直後は反映されない落とし穴も併記。
GAS Webアプリ 原因不明の失敗 切り分けチェックリスト
手動実行は成功するのにWebアプリ経由だけ失敗するGASの謎エラーを、サーバー最適化より先に別端末テスト→キャッシュ確認の順で切り分ける手順
スプレッドシートのボタンUIを複数人同時利用に耐えさせる(GASジョブキュー化)
▶チェックで処理が走るシートUIは複数人が同時に使うと予約が黙って消える。1押下=1キュー行+対象ごとにシート分離+claimワーカーで直す設計と、script lockの奪い合い・6分制限・並列検証の落とし穴
既存のGoogleフォームへGASから自動送信し、回答シートでread-back検証する
人が手入力しているフォームを業務システムから自動送信して手作業を消す。entry IDの取り出し、メール収集欄の罠、回答タブはgidで特定、getLastRow()が実データを超える罠、反映52秒に耐える非同期確認、off/test/liveの3段ゲートまで。
GAS+スプレッドシートで数値・日付が静かに壊れる3つの罠と回避策
セルの表示形式とタイムゾーンに起因して、例外も出さずにデータが壊れる3パターン(TZ不一致/文字列の日付自動変換/列拡張時の書式引き継ぎ)の回避策と修復手順。単体テストでは検出できない層のバグを早期発見するための3原則つき。
LLMで既存スプレッドシート明細の更新案を作る — 本番で壊れない7か条(GAS)
議事録・メールからLLMに明細の更新案を作らせ、元シートの複製に元の行位置で書いて値貼付で反映できる形にする。rowIndex突合・行位置保持・空ブロック除去・非致命read-back・顧客文ガードなど本番6回で確定した設計
スプレッドシートとGAS Web Appを画面操作ゼロで作成・公開し、外部アプリからHTTPで1行upsertする
clasp のトークンだけで、スプレッドシート作成→バインドされた Apps Script 作成→コード投入→Web App 公開まで REST で完結させる手順。DBを契約せず0円で「フォーム入力→通知→表に蓄積→月次集計」を実現する。人手は実行権限の承認1回だけ。未承認とポリシー禁止の切り分け、シート作成直後の未フラッシュで初回だけ壊れる罠、CSVエクスポートがread-backに使えない罠、再デプロイでURLとシークレットを変えない状態ファイル設計、後片付けまで含む検証スクリプトの型を実測ベースで収録。
GASウェブアプリが「読み込み中」で止まる・遅い — google.script.run の null 化と getValues 往復を計測で潰す
戻り値に Date が混ざると google.script.run が全体を null にする問題を JSON 文字列化で解消し、シート1枚ずつの getValues(1枚0.3〜1秒)を Sheets API batchGet に置き換えて約5秒→1秒にする。切り替え前に本番データで新旧を突き合わせ、日時シリアルの1ms誤差を丸める手順つき
GASの夜間バッチを必ず完走させる設計(6分制限・再開・作り置き)
実行時間上限のある環境で長時間バッチが永久に完走しない3つの原因(リスト後方の飢餓・入力1件の変更で全チャンク破棄・自分の生成物を再入力)と、台帳による優先順/チャンク単位フィンガープリント/生成物除外での直し方。部分確定と失敗カウンタ期限切れ、検証手順つき。
本番スプレッドシートの既存セルへ一括書き込みする前に、現況を全件実測して上書き規則を決める型(GAS)
「登録したらこのセルに自動で値を入れて」は、そのセルが空である前提で降ってくる。実際は見出しやマニュアルリンクが入っており、setValue を流すと全レコード分を一撃で潰す。判定を純関数に切り出して dryRun で全件の現況をダンプし、実測結果を依頼者に見せて上書き規則を確定してから書く手順。read-back verify、6分上限の offset/limit 分割、付帯機能の非致命化、Calendar Advanced Service での会議URL発行とスコープ追加時の実測挙動まで。
外部アプリがフォーム連携シートに行を足すと通知が飛ばず埋もれる問題を潰す(GAS)
フォームの onFormSubmit は直接 appendRow では発火せず、挿入行は回答追加のたびに押し下げられ、担当者名も空になる。3症状を「フォーム外の書き込み」という一因で捉え、列マップ確定・通知・名寄せまでアプリ側で完結させる実装指示書。
本番スプレッドシートに「新しいレコードの列ブロック」を安全に増やす型(GAS)
横並び1レコード=N列のシートに、既存ブロックの複製で新しい列ブロックを自動追加する型。数式の相対参照追従・IMPORTRANGEの絶対URL差し替え・日付セルのread-back照合の罠・本番検証用の撤去コマンドまで。
GAS Web アプリの画面をブラウザ操作なしで検証する(google.script.run 偽装・差し込み値置換・Sheets API 無効でも gviz で実データ)
ログイン必須の Apps Script Web アプリでも、index.html を Chromium で実描画して DOM を assert できる。偽 google.script.run は head に埋め込む(addInitScript は setContent で走らない)、サーバー差し込み値の置換、file:// が要る条件、Sheets API 無効時に OAuth トークンだけでタブ別 CSV を読む URL、書き込みはコマンドキューで read-back。
GASで商品ページのURLから品名・説明・画像・価格を抜いて登録フォームを自動入力する(文字コード自動判定つき)
JSON-LD→OGP→title の3段抽出、ヘッダー/metaを信じず化け文字最少で復号(楽天EUC-JP実測)、画像はDriveに保存。Node/Playwright/実環境の検証手順と落とし穴つき
GASアプリ群への不具合報告フォーム横展開 — 各アプリを匿名公開せず共通フォーム1本へリンクする
機微データを持つ・スコープを触れない・画面が無い、で止まる横展開を、フォームをパラメータ化して共通1本に集約する方式で全部さばく。器の選び方で人間のクリックを0回にする方法と、文字化け・公開範囲の検証3点まで。
「保存しましたと出るのに保存されない」は定期同期の上書きを疑う(GAS)
時間トリガーの取り込みが画面で直した値を元表の既定値へ静かに戻す不具合の切り分け・修正・本番検証の手順
散らばった業務シートから「発注し忘れ」を機械的に検知する集約表を作る(GAS)
案件ごとに分かれたスプレッドシートと外部ストレージを突き合わせ、「表にあるがデータが無い」「データはあるが表に無い」の双方向で抜けを出す。品名列が複数ある/テンプレフォルダが空/6分制限/トリガー上限など、実測で踏んだ罠と回避策つき。
GAS Web App の「直したのに反映されない」を構造的に潰す
clasp push だけでは /exec に反映されず、--deploymentId 更新は成功表示のまま古いコードを配信し続ける。push→新規デプロイ→認証URL差し替え→疎通確認を1本化する型(PowerShell 5.1 の落とし穴込み)
稼働中の既存GASを、副作用を起こさずに検証してから本番反映する
定期実行中のApps Scriptに仕様変更を入れる手順。メール送信などの副作用を起こさずに実データでロジックを検証し、clasp push後にpullで突合するまでを機械判定で閉じる。clasp loginの認可URLが死ぬ罠、pullの拡張子違いで差分ゼロを誤認する罠つき。
GASの時間主導トリガーがデプロイ版に固定される罠 — 「成功したのに何も起きない」の切り分け
clasp push しても時間主導トリガーは旧バージョンのコードを実行し続ける。エラーも出ず戻り値もOKなため原因が特定できない。新関数プローブで実行中のコードを確定させ、clasp deploy -i でURLを変えずに直す手順。
コンテナバインド型GASスクリプトを発見しDiscord Webhookメンションを安全にテストする
Drive検索/clasp listに出ないバインド型スクリプトをscriptIdから発見し、@here/@everyoneメンション変更を実チャンネルを汚さず検証する手順
GASデプロイ上限20エラーでもpushは反映済み — トリガーはHEADで動く
clasp deploy が20件上限で失敗しても push は通っており、時間トリガーは HEAD を使うので反映済み。/exec だけ旧版。判定と古いデプロイの整理手順
GAS Webアプリ バーコードラベル印刷(iOS AirPrint対応)
Google Apps ScriptのWebアプリからBrother等のラベルプリンタへ印刷する際、iOS AirPrintが連続ロールのカット長を無視する問題をjsPDF生成で回避する実装パターン
GAS Webアプリの同時アクセスクォータエラー対策
複数人利用のGoogle Apps ScriptアプリでSpreadsheetApp.openByIdが同時呼び出しエラーになる問題を、リトライ+バックオフ+ジッターのラッパー関数で解消する手順
人間の手入力台帳を壊さずに自動更新する — GAS Web App upsert 設計
各PC/各拠点の点検結果を、人間が手運用しているスプレッドシート台帳へ自動反映する。手入力列とコメントを絶対に壊さない突合設計、タブ/列の解決、並行POST対策、配布シークレットの落とし穴まで。
Google スプレッドシートの数式・外部参照を xlsx エクスポート+openpyxl で AI に監査させる(開放範囲の切り詰め表示の罠つき)
数万数式・多数の IMPORTRANGE を持つスプレッドシートを読み取り専用で丸ごと解析する手順。DUMMYFUNCTION の復元、開放範囲が xlsx で切り詰め表示される罠をキャッシュ値の再計算で見抜く方法、QUERY の列対応、バインド GAS を直す前に clasp pull する理由まで。
スプレッドシートに心拍を書く死活監視の6つの罠(0930→930の自動変換・重複行・死活と業務状態の混同)
GAS+シートで作る死活監視で、スロット0930が数値化して偽missingになる・重複行が最新を隠す・業務警告で常時赤になる等を、正規化関数と3分類記録で直す手順
スプレッドシートを業務UIにする — フェーズ折りたたみ+2種チェックボックスのパネル
Google Sheets を現場の操作画面にする GAS 設計テンプレ。工程ごとに行グループで畳み、押すと走る▶と進捗として残る✅を同居させる。可視列とメタ情報の衝突、無言で捨てる保存関数、集計が古い値で固まる順序ミス、6分制限との戦い方まで、実装で実際に踏んだ罠を対策込みで収録。
Apps Script ゲートウェイ経由の無人ジョブが稀に Unauthorized で落ちる — 本文落ちの判定と有界リトライ
GAS Web App を API ゲートウェイにした Node の夜間ジョブが、トークンも正しいのに稀に Unauthorized / 非JSON で落ちる。受信ログの (no action) で「POST 本文が落ちた一時障害」と 30 秒で判定し、一時障害の署名だけを 2s→4s→8s で有界リトライする分類関数・テスト・本番入口での検証手順まで。
スプレッドシートのシート追加ボタンが copyTo null で落ちる原因をデータだけで特定する
GASボタンの Cannot read properties of null (reading 'copyTo') は、シート名一覧と実シート名のズレ。Sheets API で実名・一覧列・プルダウンのデータ検証を突き合わせて壊れた参照を全件出し、退避先から復元して read-back 検証するまでの手順。末尾スペース事故とバインド型スクリプトに到達できない制約も含む。
共有端末アプリの担当者別状態バグ防止
GAS/Sheetsで共有端末アプリを作る時、担当者名を一意キーに含め忘れて全員の状態が連動してしまうバグの原因と直し方
クラウド契約とプロジェクト所在を1枚のスプレッドシート台帳に自動集約する
複数PC・複数クラウドの「どのアカウントの・どこにある・何のプロジェクトか分からない」を、各PCと中央が自動で書き込む3タブの台帳で解消する。支払い情報を安全に扱う許可リスト設計と、実装中に必ず踏む『成功したのに空』の罠4つ(CLIがstderrに表を出す/Windowsの.cmdシム/GASのファイル評価順/クライアントtimeout≠未達)まで含む。
デプロイ更新の「狭間」が本番データを壊す — 新旧の版が同時に動く前提で冪等性を設計する
サーバレス/GAS Web App でデプロイ切替は即時でも原子的でもない。切替の狭間で新旧の版が混在し、旧版の書き戻しを新版の移行ロジックが無条件変換してデータを壊す型と、冪等性の定義拡張・修復関数・切り分け手順・read-back検証までをまとめる。
google.script.run の null が undefined になる罠 — 本番だけ出る NaN 表示の自動検出
GASウェブアプリでサーバ側の null がブラウザで undefined になり、=== null の分岐が素通りして NaN が表示される。単体テストでもJSON fixtureでも再現しない理由と、null を落とした fixture で描き直して自動検出する方法。
定期バッチの「全面書き戻し」が新規行を消す事故を、検知・修正・復旧する
スプレッドシートの定期更新バッチが開始時スナップショットを全面setValuesで書き戻すと、その間に挿入された行が無痕跡で消える。間欠的でエラーも出ないこの事故について、真因の確定、競合検知による修正、消えた分の洗い出しと復旧までを一続きで行う手順。洗い出しで必ず踏む偽陽性4類型と、二重照合・dry-run・read-backの型つき。
アプリ開発の主体を別アカウントの Claude Code へ移管する(権限付け替え+判断依頼の経路つき)
引き継ぎ書・GitHub/Drive 権限付与・判断依頼プロトコル・カットオーバー条件・途中で移管先を変える手順を1セッションで完了させる型。相手側の人の操作は起動文1回と OAuth 同意1回
Google Drive のフォルダ整理を自動化を壊さず権限事故も出さずにやる
散らかった Drive を片付ける前に確認すべきこと。フォルダ移動は ID 不変なので安全だが、共有フォルダへ移すと権限が黙って広がる。簡易APIは権限を過少報告し、継承権限は子フォルダから削除できない。二重化を起こす名前検索の見分け方と、権限削除スクリプトの安全機構、再発源の潰し方まで。
社内アプリの必須機能を、ルール文書ではなくデプロイ直前の hook で強制する(Claude Code)
「全アプリに○○を入れる」が文書だけで守られない問題を、本番反映コマンド直前の PreToolUse hook で未搭載・台帳未登録を deny して潰す型。除外ファイル・fail-open・全PC配布・テスト一覧つき
デプロイ/UI変更を必ず2段検証してから完了報告
コード・デプロイ・cron・env・UI変更後に、ロジック層(Node再現)とブラウザ層(Playwright)の2段でassert検証し、検証済みだけを完了報告させる手順。「画面で確認して」の丸投げを禁止。
Claude Code の「毎リクエスト課金される文脈」を実測して削る
~/.claude/rules/ の .md は paths: が無いと全リクエストに無条件ロードされる。count_tokens API でファイル単位に実測し、常時ロードから安全に外し、配布済みの全端末を自動移行させるまでの手順。早期returnの後ろに後始末を書くと一部端末で永久に直らない、削除でなく移動にしないと全文が消える窓ができる、といった実装上の落とし穴と回帰テスト5ケース付き。実測で 29,295→6,020 tok/req。
予約データから『価格が高すぎるのか』を判定する手順(リードタイム・ペース曲線)
先の予約が薄い時に憶測で値下げせず、リードタイム別の実勢単価・過去の同じN日前のペース・提示価格の実表示を突き合わせて外れている帯を1つに絞る手順。在庫の穴の見つけ方つき。
Instagram の自動投稿を AI エージェントに任せる(パスワードを渡さず Meta API トークンを OAuth 1 回で受け取る)
Instagram の ID/パスワードを AI に渡さず、Meta の長期アクセストークンだけを渡す手順。デスクトップの .cmd が通常ブラウザで Meta App Dashboard を開き、貼られたトークンを .env に保存して /me で即検証する。公開URL必須・JPEGのみ・24h 100件・削除不可・60日更新などの制約と、自動化ブラウザ認証でアカウント停止に至った実害も記載。
PCの定期ジョブが丸ごと止まったことをPCの外で検知する(Apps Script心拍・dead-man switch)
PC上の見張り番はPCと一緒に死ぬ。各ジョブがApps Scriptへ心拍を打ち、来ない心拍を外側の時間トリガーが鳴らす構成と、日付書式で監視が永久に赤くなる等の実際の落とし穴
共有作業ツリーから本番Apps Scriptを巻き戻さず部分pushする
本番をclasp pull→変更ファイルだけ重ね→差分表示→push→read-back検証→デプロイを1コマンドで行い、他人の新しい本番コードの巻き戻しとエージェントのBlind Apply拒否を防ぐ
別シートの列番号が腐って別レコードの値を返す事故の直し方(名前照合+日付タイブレーク)
保存した列番号は列の挿入削除で全件ズレる。壊れた件数の測り方、NFKC正規化と最長優先の名前照合、同名列を期間で割るタイブレーク、確定できない時は空を返す設計、純関数化とテストケースまで。
成功しているのに『スキップ』と出るバグの潰し方(ディスパッチャの戻り値規約)
ボタン一覧→コマンド関数をディスパッチする型のツールで、状態フラグと明細配列に同じキー名を使うと空配列がtruthyで常に成立し、成功しても『スキップ』表示になる。原因特定の順序・修正・文言そのものをテストする退行防止まで
offset ページングで外部APIを読むと、取得中に中身が変わって静かに壊れる
ゲートウェイが毎回全文を取り直して offset で切る構成は、取得中に元データが変わると連結が壊れる。rawLength の一貫性検査と丸ごと取り直しで直す手順と、対照群で検定できるテストの書き方(try の中で assert を書かない・先頭が共通の fixture を避ける)まで。
到着日で絞る予約APIが滞在中ゲストを落とす — 空室・閉室の誤判定を防ぐ遡り取得
PMSの予約一覧APIを期間の開始日から引くと期間前に着いた滞在中ゲストが消え、在室中の部屋を開け忘れと誤判定してダブルブッキングに進む。最長滞在ぶん遡って取り泊単位で照合する実装と、人に聞く前の確認手順。
「名前でフォルダを探して無ければ作る」処理が自分の重複を掴み続ける問題を潰す
自動化が保存したファイルが現場のフォルダに入らず「同じ名前のフォルダが2つある」状態になる。真因は探索の深さでも起点でもなく「ヒットで即return する順序」。候補を全部集めてスコアで選ぶ形へ直す手順と、再発を縛るテストの書き方をまとめた指示書。