From daishiman-skills
Generates Google Forms via API: interviews users interactively, previews in Markdown, creates forms with 11 question types, quizzes, branching logic, Drive/Sheets integration. Invoke for automated form building.
npx claudepluginhub daishiman/daishiman-skills --plugin daishiman-skill-creatorThis skill uses the workspace's default tool permissions.
Google Forms APIを使用してフォームを自動生成するClaude Code専用スキル。
agents/01-interviewer.mdagents/02-designer.mdagents/03-executor.mdagents/04-reporter.mdagents/05-template-selector.mdagents/06-validator.mdagents/07-error-handler.mdagents/08-response-manager.mdagents/09-form-modifier.mdagents/10-auth-helper.mdpackage.jsonreferences/api-endpoints.mdreferences/authentication.mdreferences/branching-logic.mdreferences/drive-integration.mdreferences/form-settings.mdreferences/limitations.mdreferences/oauth-setup-guide.mdreferences/question-types.mdreferences/quiz-grading.mdGenerates Google Apps Script code to automate Sheets and Workspace apps with menus, triggers, dialogs, emails, PDF exports, and API integrations.
Generates validated, accessible form pages for contact forms, registrations, surveys, sign-ups, and multi-step wizards. Detects project tech stack to produce matching code with real-time validation, error handling, and a11y.
Provides form UX best practices: inline validation with 'reward early, punish late' strategy, auto-save vs explicit save, error messages, multi-step wizards, toggles.
Share bugs, ideas, or general feedback.
Google Forms APIを使用してフォームを自動生成するClaude Code専用スキル。
ユーザーとの対話形式で要件をヒアリングし、Markdown形式で構成を確認後、 Google Forms APIを使用してフォームを作成する。
| カテゴリ | 機能 |
|---|---|
| 質問タイプ | 11種類(短文/長文/ラジオ/チェック/プルダウン/スケール/グリッド/日付/時刻/評価) |
| フォーム設定 | クイズモード、メール収集、公開設定 |
| 高度な機能 | 条件分岐、セクション、画像/動画埋め込み |
| 連携 | Google Drive(フォルダ移動)、Google Sheets(回答取得) |
.envファイルにGoogle OAuth認証情報が設定済みgoogleapisパッケージがインストール済み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 |
┌─────────────────────────────────────────────────────────────────┐
│ 開始トリガー │
└─────────────────────────────────────────────────────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 新規作成 │ │ テンプレート │ │ 既存修正 │
│ (01) │ │ (05) │ │ (09) │
└─────────────┘ └─────────────┘ └─────────────┘
│ │ │
└────────┬───────────┘ │
▼ │
┌─────────────┐ │
│ 構成設計 │ │
│ (02) │ │
└─────────────┘ │
│ │
▼ │
┌─────────────┐ │
│ 検証 │ │
│ (06) │ │
└─────────────┘ │
│ │
└────────────┬───────────────────┘
▼
┌─────────────┐
│ API実行 │←── エラー時 ──→ (07)
│ (03) │
└─────────────┘
│
▼
┌─────────────┐
│ 結果報告 │
│ (04) │
└─────────────┘
別パス:
・回答取得 (08) - 独立して実行可能
・認証設定 (10) - 認証エラー時または初回セットアップ時
ユーザーから以下の情報を収集する:
フォームの目的・用途
基本情報
質問項目(1問ずつ詳細にヒアリング)
設定オプション
📖 詳細: agents/01-interviewer.md
収集した要件をもとに:
# {{title}} - フォーム構成確認
## 基本情報
| 項目 | 値 |
|------|-----|
| タイトル | {{title}} |
| 説明 | {{description}} |
| クイズモード | {{isQuiz}} |
| メール収集 | {{emailCollectionType}} |
## 質問一覧
| # | 質問文 | タイプ | 必須 | 選択肢 |
|---|--------|--------|------|--------|
| 1 | ... | ... | ... | ... |
## この構成でフォームを作成しますか?
📖 詳細: agents/02-designer.md
ユーザー承認後、以下の順序でAPIを実行:
// 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
作成完了後、結果を 05_Project/GoogleFrom/ に保存し、以下の情報を報告:
05_Project/GoogleFrom/
└── {YYYYMMDD_HHMMSS}_{タイトル}/
├── 01-design.md # 下書き・設計情報(ヒアリング内容)
└── 02-result.md # URL情報・スプレッドシート情報等
## フォーム作成完了
| 項目 | 値 |
|------|-----|
| タイトル | {{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 | ラジオボタン | RADIO | options, shuffle |
| 4 | チェックボックス | CHECKBOX | options, shuffle |
| 5 | プルダウン | DROP_DOWN | options |
| 6 | 線形スケール | SCALE | low, high, lowLabel, highLabel |
| 7 | 選択式グリッド | GRID_RADIO | rows, columns |
| 8 | チェックボックスグリッド | GRID_CHECKBOX | rows, columns |
| 9 | 日付 | DATE | includeYear, includeTime |
| 10 | 時刻 | TIME | duration |
| 11 | 評価(星/ハート/👍) | RATING | ratingScaleLevel, iconType |
📖 詳細: references/question-types.md
| 値 | 説明 |
|---|---|
DO_NOT_COLLECT | 収集しない(匿名回答を許可) |
VERIFIED | Googleアカウントから自動取得 |
RESPONDER_INPUT | 回答者が入力 |
| 値 | 動作 |
|---|---|
NEXT_SECTION | 次のセクションへ |
RESTART_FORM | フォーム先頭へ戻る |
SUBMIT_FORM | 即座に送信 |
goToSectionId: "{id}" | 特定セクションへジャンプ |
📖 詳細: references/form-settings.md
| ファイル | ペルソナ | 読み込み条件 |
|---|---|---|
| 01-interviewer.md | Don Norman | Phase 1: 新規フォームのヒアリング時 |
| 02-designer.md | Clayton Christensen | Phase 2: 構成設計時 |
| 03-executor.md | Linus Torvalds | Phase 3: API実行時 |
| 04-reporter.md | Peter Drucker | Phase 4: 結果報告・ファイル保存時 |
| ファイル | ペルソナ | 読み込み条件 |
|---|---|---|
| 05-template-selector.md | Steve Krug | 「テンプレート」「簡単に」「素早く」と言われた時 |
| 06-validator.md | Martin Fowler | Phase 2完了後、API実行前(複雑な設定時は必須) |
| 07-error-handler.md | Gene Kim | API実行エラー(400/401/403/404/429/500)発生時 |
| 08-response-manager.md | Edward Tufte | 「回答を取得」「結果を確認」「エクスポート」時 |
| 09-form-modifier.md | Kent Beck | 「フォームを修正」「質問を追加/削除」時 |
| 10-auth-helper.md | Bruce Schneier | 認証エラー時または「認証」「セットアップ」時 |
| ファイル | 内容 |
|---|---|
| question-types.md | 全11種類の質問タイプJSON構造 |
| api-endpoints.md | 全14APIメソッド一覧 |
| form-settings.md | フォーム設定パラメータ |
| quiz-grading.md | クイズ・採点機能 |
| branching-logic.md | 条件分岐・ナビゲーション |
| drive-integration.md | Drive API連携 |
| sheets-integration.md | Sheets API連携 |
| authentication.md | OAuth 2.0認証手順 |
| limitations.md | API制限事項 |
| パス | 用途 |
|---|---|
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/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.example | OAuth認証情報テンプレート |
| 機能 | ステータス | 代替手段 |
|---|---|---|
| ファイルアップロード質問 | ❌ API作成不可 | Web UIで手動追加 |
| 確認メッセージ設定 | ❌ REST API非対応 | Apps Script |
| 回答の検証(バリデーション) | ❌ 未サポート | Apps Script |
| スプレッドシート自動リンク | ❌ linkedSheetIdは読取専用 | UI手動設定 or 回答取得→書込 |
📖 詳細: references/limitations.md
| Version | Date | Changes |
|---|---|---|
| 1.3.0 | 2026-01-20 | マルチエージェント拡張: 6つの補助エージェント追加(05-template-selector, 06-validator, 07-error-handler, 08-response-manager, 09-form-modifier, 10-auth-helper)、ワークフロー図を拡張、代替フロー(テンプレート開始/フォーム修正/回答取得/エラー復旧/認証設定)をサポート |
| 1.2.2 | 2026-01-20 | 仕様準拠: skill-design-spec.md準拠で3テンプレート追加(feedback.json, text-question.json, rating-question.json) |
| 1.2.1 | 2026-01-20 | リファクタリング: SKILL.md内テンプレートファイル名を実ファイル名と一致するよう修正(customer-survey→survey, quiz-template→quiz, rating-question→scale-rating)、choice-question/contactを追加 |
| 1.2.0 | 2026-01-20 | 仕様準拠完了: 8ファイル追加(refresh-token, update-settings, set-permissions, export-to-sheet, validate-config, custom.json, date-time-question.json, .env.example) |
| 1.1.0 | 2026-01-20 | 結果保存機能追加: 05_Project/GoogleFrom/にdesign/result Markdownを自動保存 |
| 1.0.0 | 2026-01-20 | 初版リリース |