From daishiman-skills
Generates Google Forms via API after user interview and Markdown preview. Supports 11 question types, quizzes, conditional branching, Drive/Sheets integration.
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 code, configurations, and step-by-step guidance for survey creator operations in business automation workflows with spreadsheets and email processing.
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.
Integrates HTML forms on static sites with Google Sheets via Apps Script, adding auto-retry, toast notifications, and Zalo/contact error fallbacks.
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 | 初版リリース |