AIを使ったGoogle App Script開発で足元をすくわれないためのCLAUDE.md要件

AIを使ったGoogle App Script開発で足元をすくわれないためのCLAUDE.md要件

ClaudeCodeでGoogle App Scriptコーディングを行う場合に、Google App Script特有の仕様で足元をすくわれないようにするための要件をトライアンドエラーを繰り返しつつCLAUDE.mdに追記してみました。
Clock Icon2025.06.30

ClaudeCodeを用いたコーディングはGoogle App Scriptにおいても効果を発揮します。ただ、あくまでもJavaScriptの一種としての扱いなのか、Google App Scriptの仕様と噛み合わない点もいくつかあります。

CLAUDE.mdを介して可能な対策をいくつか書き起こしてみました。

開発ライブラリ

Google App Script用コードを開発する趣旨をClaudeCodeに伝えれば、ほとんどの場合AIが自動で対応してくれます。CLAUDE.mdに追記するよう指示した場合は、以下のような要件が追加されるはずです。

  • ローカル開発とデプロイには clasp CLIを使用
  • 関数はGASランタイム環境と互換性が必要
  • npm依存関係なし - GAS組み込みライブラリまたは外部APIを使用
  • ES6+機能はGASランタイムでサポートが限定的

Google Apps Script GitHub アシスタントを使ってエディタ上から同期することも可能ですが、claspが利用できる環境であえてこちらを選ぶ必要はないでしょう。

ファイル形式

claspを用いた開発において見落としがちな仕様として、pullするとjsファイルが取得される一方で、pushはそのままでは対応してくれない点があります。以下の一行を足しておきます。

  • clasp pullした場合に取り込んだファイルはjsからgsにリネームすること

時間の扱い

ClaudeCodeがGoogle App Scriptのコードを生成する際、日付に関する要件が指定されていないと、文字列形式(2025-06-30T00:00:00)とDate型(Mon June 30 2025 00:00:00)の比較における不整合や、タイムゾーンの時差に関する問題が発生します。

対策としてはフォーマットの固定と常にタイムゾーンを設定させることです。以下の2点をCLAUDE.mdに追記しておきます。

  • 日付は日本時間で扱うこと
  • 時間表記はISO 8601形式(YYYY-MM-DDTHH:mm:ssZ)を使用

テストケース

ClaudeCodeは、特に要件指定がない場合、モックがない状況でもSpreadSheet上のセルを操作する処理に対して構わずテストを作成し始めます。これを回避するには、ClaudeCodeにgas-localを使用したテストを指示しておきましょう。CLAUDE.mdに記述する場合の一例は以下の通りです。

  • ローカル環境: gas-localとJestでのローカルテスト実行
  • テストコマンド: npm test, npm run test:local, npm run test:debug
  • テスト環境: Node.js + Jest + Babel変換でGAS関数をローカル実行

あとがき

ClaudeCodeへの指示を重ねるほど、Google App Script向けにCLAUDE.mdに定義しておくべき要件が見えてきます。今回挙げた要件は比較的すぐに思いつくものですが、意外にもテストなどで長く躓く原因となり得るものです。コードの修正だけでなく、適切にCLAUDE.mdへも追記を指示しておくと、後々の作業がスムーズになるでしょう。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.