AgentSkillsCN

google-forms-generator

运用 Google 表单 API 自动生成表单的技能。 通过与用户进行互动式访谈,在以 Markdown 格式完成内容确认后, 再利用 API 创建表单。支持多达 11 种问题类型、测验功能、 条件分支逻辑以及与 Drive 和 Sheets 的无缝集成。

SKILL.md
--- frontmatter
name: google-forms-generator
description: |
  Google Forms APIを使用してフォームを自動生成するスキル。
  ユーザーとの対話形式でヒアリングを行い、Markdown形式で構成確認後、
  APIでフォームを作成する。全11種類の質問タイプ、クイズ機能、
  条件分岐、Drive/Sheets連携に対応。
tools:
  - Read
  - Write
  - Edit
  - Bash
  - Grep
  - Glob
  - AskUserQuestion
model: sonnet
version: 1.3.0

Google Forms Generator

Google Forms APIを使用してフォームを自動生成するClaude Code専用スキル。

概要

ユーザーとの対話形式で要件をヒアリングし、Markdown形式で構成を確認後、 Google Forms APIを使用してフォームを作成する。

対応機能

カテゴリ機能
質問タイプ11種類(短文/長文/ラジオ/チェック/プルダウン/スケール/グリッド/日付/時刻/評価)
フォーム設定クイズモード、メール収集、公開設定
高度な機能条件分岐、セクション、画像/動画埋め込み
連携Google Drive(フォルダ移動)、Google Sheets(回答取得)

前提条件

  1. .envファイルにGoogle OAuth認証情報が設定済み
  2. Node.js 18以上がインストール済み
  3. googleapisパッケージがインストール済み

ワークフロー

メインフロー(新規作成)

code
Phase 1: ヒアリング(01-interviewer.md)
    ↓
Phase 2: 構成設計(02-designer.md)
    ↓
  [06-validator.md で検証]
    ↓
  [ユーザー承認待ち]
    ↓
Phase 3: API実行(03-executor.md)
    ↓
Phase 4: 結果報告(04-reporter.md)

代替フロー

パス説明エージェント
テンプレート開始既存テンプレートから素早く作成05 → 02 → 06 → 03 → 04
フォーム修正既存フォームの質問追加/削除/変更09 → 03 → 04
回答取得フォームの回答データを取得・エクスポート08
エラー復旧API実行エラーからのリカバリ07 → 該当エージェント
認証設定OAuth認証のセットアップ/トラブルシュート10

フロー図

code
┌─────────────────────────────────────────────────────────────────┐
│                        開始トリガー                              │
└─────────────────────────────────────────────────────────────────┘
         │                    │                    │
         ▼                    ▼                    ▼
┌─────────────┐      ┌─────────────┐      ┌─────────────┐
│ 新規作成    │      │ テンプレート │      │ 既存修正    │
│ (01)       │      │ (05)        │      │ (09)        │
└─────────────┘      └─────────────┘      └─────────────┘
         │                    │                    │
         └────────┬───────────┘                    │
                  ▼                                │
         ┌─────────────┐                           │
         │ 構成設計    │                           │
         │ (02)       │                           │
         └─────────────┘                           │
                  │                                │
                  ▼                                │
         ┌─────────────┐                           │
         │ 検証        │                           │
         │ (06)       │                           │
         └─────────────┘                           │
                  │                                │
                  └────────────┬───────────────────┘
                               ▼
                      ┌─────────────┐
                      │ API実行     │←── エラー時 ──→ (07)
                      │ (03)       │
                      └─────────────┘
                               │
                               ▼
                      ┌─────────────┐
                      │ 結果報告    │
                      │ (04)       │
                      └─────────────┘

別パス:
  ・回答取得 (08) - 独立して実行可能
  ・認証設定 (10) - 認証エラー時または初回セットアップ時

実行手順

Phase 1: ヒアリング開始

ユーザーから以下の情報を収集する:

  1. フォームの目的・用途

    • アンケート/申込/クイズ/お問い合わせ等
  2. 基本情報

    • タイトル
    • 説明文
    • 保存先フォルダID(オプション)
  3. 質問項目(1問ずつ詳細にヒアリング)

    • 質問文
    • 質問タイプ(下記参照)
    • 選択肢(該当する場合)
    • 必須/任意
    • 詳細説明(オプション)
  4. 設定オプション

    • クイズモード(正解・配点・フィードバック)
    • メール収集タイプ
    • 条件分岐の必要性

📖 詳細: agents/01-interviewer.md


Phase 2: 構成設計

収集した要件をもとに:

  1. API形式にマッピング
  2. セクション構成・条件分岐ロジック設計
  3. 確認用Markdownを生成
  4. ユーザーに確認を求める

確認用Markdown出力形式

markdown
# {{title}} - フォーム構成確認

## 基本情報
| 項目 | 値 |
|------|-----|
| タイトル | {{title}} |
| 説明 | {{description}} |
| クイズモード | {{isQuiz}} |
| メール収集 | {{emailCollectionType}} |

## 質問一覧
| # | 質問文 | タイプ | 必須 | 選択肢 |
|---|--------|--------|------|--------|
| 1 | ... | ... | ... | ... |

## この構成でフォームを作成しますか?

📖 詳細: agents/02-designer.md


Phase 3: API実行

ユーザー承認後、以下の順序でAPIを実行:

javascript
// 1. フォーム作成(タイトルのみ)
const form = await forms.forms.create({ info: { title } });

// 2. 質問・設定追加(batchUpdate)
await forms.forms.batchUpdate({
  formId,
  requests: [
    { updateFormInfo: { ... } },
    { updateSettings: { ... } },
    { createItem: { ... } },
    // ...
  ]
});

// 3. 公開設定(2026年3月以降必須)
await forms.forms.setPublishSettings({
  formId,
  publishSettings: { publishState: { isPublished: true, isAcceptingResponses: true } }
});

// 4. フォルダ移動(指定時)
await drive.files.update({ fileId: formId, addParents: folderId });

📖 詳細: agents/03-executor.md


Phase 4: 結果報告 & ファイル保存

作成完了後、結果を 05_Project/GoogleFrom/ に保存し、以下の情報を報告:

出力ディレクトリ構造

code
05_Project/GoogleFrom/
└── {YYYYMMDD_HHMMSS}_{タイトル}/
    ├── 01-design.md   # 下書き・設計情報(ヒアリング内容)
    └── 02-result.md   # URL情報・スプレッドシート情報等

報告内容

markdown
## フォーム作成完了

| 項目 | 値 |
|------|-----|
| タイトル | {{title}} |
| 回答用URL | {{responderUri}} |
| 編集用URL | {{editUri}} |
| フォームID | {{formId}} |
| 保存先 | {{folderName}} |

## 保存されたファイル
- 05_Project/GoogleFrom/{{timestamp}}_{{title}}/01-design.md
- 05_Project/GoogleFrom/{{timestamp}}_{{title}}/02-result.md

## 次のステップ
- 回答用URLを共有してフォーム利用を開始
- スプレッドシート連携はフォーム編集画面の「回答」タブから設定可能

📖 詳細: agents/04-reporter.md


質問タイプリファレンス

#UIでの名称タイプ指定パラメータ
1記述式(短文)SHORT_TEXT-
2段落(長文)LONG_TEXT-
3ラジオボタンRADIOoptions, shuffle
4チェックボックスCHECKBOXoptions, shuffle
5プルダウンDROP_DOWNoptions
6線形スケールSCALElow, high, lowLabel, highLabel
7選択式グリッドGRID_RADIOrows, columns
8チェックボックスグリッドGRID_CHECKBOXrows, columns
9日付DATEincludeYear, includeTime
10時刻TIMEduration
11評価(星/ハート/👍)RATINGratingScaleLevel, iconType

📖 詳細: references/question-types.md


設定オプションリファレンス

メール収集タイプ

説明
DO_NOT_COLLECT収集しない(匿名回答を許可)
VERIFIEDGoogleアカウントから自動取得
RESPONDER_INPUT回答者が入力

条件分岐アクション

動作
NEXT_SECTION次のセクションへ
RESTART_FORMフォーム先頭へ戻る
SUBMIT_FORM即座に送信
goToSectionId: "{id}"特定セクションへジャンプ

📖 詳細: references/form-settings.md


リソースマップ

agents/

コアエージェント(メインフロー)

ファイルペルソナ読み込み条件
01-interviewer.mdDon NormanPhase 1: 新規フォームのヒアリング時
02-designer.mdClayton ChristensenPhase 2: 構成設計時
03-executor.mdLinus TorvaldsPhase 3: API実行時
04-reporter.mdPeter DruckerPhase 4: 結果報告・ファイル保存時

補助エージェント(代替フロー・エラー処理)

ファイルペルソナ読み込み条件
05-template-selector.mdSteve Krug「テンプレート」「簡単に」「素早く」と言われた時
06-validator.mdMartin FowlerPhase 2完了後、API実行前(複雑な設定時は必須)
07-error-handler.mdGene KimAPI実行エラー(400/401/403/404/429/500)発生時
08-response-manager.mdEdward Tufte「回答を取得」「結果を確認」「エクスポート」時
09-form-modifier.mdKent Beck「フォームを修正」「質問を追加/削除」時
10-auth-helper.mdBruce Schneier認証エラー時または「認証」「セットアップ」時

references/

ファイル内容
question-types.md全11種類の質問タイプJSON構造
api-endpoints.md全14APIメソッド一覧
form-settings.mdフォーム設定パラメータ
quiz-grading.mdクイズ・採点機能
branching-logic.md条件分岐・ナビゲーション
drive-integration.mdDrive API連携
sheets-integration.mdSheets API連携
authentication.mdOAuth 2.0認証手順
limitations.mdAPI制限事項

scripts/

パス用途
scripts/auth/setup-oauth.js初回OAuth認証セットアップ
scripts/auth/get-auth-client.js認証クライアント取得
scripts/auth/refresh-token.jsアクセストークンリフレッシュ
scripts/forms/create-form.jsフォーム作成
scripts/forms/add-questions.js質問追加
scripts/forms/publish-form.js公開設定
scripts/forms/update-settings.jsフォーム設定更新(クイズ、メール収集等)
scripts/drive/move-to-folder.jsフォルダ移動
scripts/drive/set-permissions.js共有設定管理
scripts/sheets/get-responses.js回答データ取得
scripts/sheets/export-to-sheet.js回答のスプレッドシートエクスポート
scripts/output/save-form-result.js結果をMarkdownで保存
scripts/utils/retry-with-backoff.js指数バックオフリトライ
scripts/utils/build-request.jsリクエストビルダー
scripts/utils/validate-config.js設定ファイル検証

templates/

パス用途
templates/form-patterns/survey.json顧客満足度調査テンプレート
templates/form-patterns/event-registration.jsonイベント申込テンプレート
templates/form-patterns/contact.jsonお問い合わせフォームテンプレート
templates/form-patterns/quiz.jsonクイズテンプレート
templates/form-patterns/feedback.jsonフィードバック収集テンプレート
templates/form-patterns/custom.json白紙テンプレート
templates/question-builders/text-question.jsonテキスト質問ビルダー(SHORT_TEXT/LONG_TEXT)
templates/question-builders/choice-question.json選択式質問ビルダー
templates/question-builders/scale-rating.jsonスケール・評価質問ビルダー(SCALE/RATING)
templates/question-builders/rating-question.json評価質問ビルダー(RATING専用)
templates/question-builders/grid-question.jsonグリッド質問ビルダー
templates/question-builders/date-time-question.json日付・時刻質問ビルダー

設定ファイル

ファイル用途
.env.exampleOAuth認証情報テンプレート

制限事項

機能ステータス代替手段
ファイルアップロード質問❌ API作成不可Web UIで手動追加
確認メッセージ設定❌ REST API非対応Apps Script
回答の検証(バリデーション)❌ 未サポートApps Script
スプレッドシート自動リンク❌ linkedSheetIdは読取専用UI手動設定 or 回答取得→書込

📖 詳細: references/limitations.md


変更履歴

VersionDateChanges
1.3.02026-01-20マルチエージェント拡張: 6つの補助エージェント追加(05-template-selector, 06-validator, 07-error-handler, 08-response-manager, 09-form-modifier, 10-auth-helper)、ワークフロー図を拡張、代替フロー(テンプレート開始/フォーム修正/回答取得/エラー復旧/認証設定)をサポート
1.2.22026-01-20仕様準拠: skill-design-spec.md準拠で3テンプレート追加(feedback.json, text-question.json, rating-question.json)
1.2.12026-01-20リファクタリング: SKILL.md内テンプレートファイル名を実ファイル名と一致するよう修正(customer-survey→survey, quiz-template→quiz, rating-question→scale-rating)、choice-question/contactを追加
1.2.02026-01-20仕様準拠完了: 8ファイル追加(refresh-token, update-settings, set-permissions, export-to-sheet, validate-config, custom.json, date-time-question.json, .env.example)
1.1.02026-01-20結果保存機能追加: 05_Project/GoogleFrom/にdesign/result Markdownを自動保存
1.0.02026-01-20初版リリース