Skip to content
cccskills
FreePublished on GitHub

microsoft-forms-builder

Create and configure Microsoft Forms surveys through an owned browser session (Playwright over CDP): title, description, text/choice questions, free-text 'Other', required flags, external-respondent sharing, short URL and an anonymous-access check. Use for Microsoft Forms, forms.cloud.microsoft, アンケート作成, 事前アンケート, 事前ヒアリングフォーム, Forms の共有範囲, 短縮URL, or building a survey from a question table. Not for reading or analysing responses, quizzes, Power Automate flows or Forms Pro.

The English summary is being prepared. Showing the original description.

Works withPlaywright
See how to install

Files included (8)

  • SKILL.md5.5 KB
  • assets/spec.example.json718 B
  • LICENSE.txt264 B
  • references/ui-notes.md6.3 KB
  • scripts/browser_session.ps11.4 KB
  • scripts/build_form.py4.3 KB
  • scripts/forms_lib.py10.9 KB
  • skill-license.json712 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

Microsoft Forms Builder

Build a survey in Microsoft Forms from a question spec. Forms has no public API to create a form, so this drives the editor UI. The bundled scripts hold the working recipe; read UI notes before changing them.

When to Use

  • 「Forms でアンケートを作って」「事前アンケートを Forms にして」「共有範囲を外部にして」「短縮 URL がほしい」
  • A question table (Markdown, Excel, chat) must become a live Microsoft Form.
  • An existing form must become answerable by external users, with a verified anonymous link.

Not the Best Fit

  • Reading, exporting or analysing responses, quizzes, branching/sections, rating/date/ranking/file-upload questions (the scripts only build text and choice questions), Power Automate. Do those by hand or with another route.
  • Credentials, MFA and tokens stay with the user. Never type them, and never read a sign-in page's secrets.

Safety Gates

  • External respondents are a decision, not a default. The tenant default is "organisation only". Run --share anyone only after the user states that respondents are external and anonymous. Bind the approval to the form and the audience.
  • Sign in only by choosing the Windows-connected account on the account picker. If sign-in does not complete, stop and ask the user to finish it in that window.
  • Use your own Edge window (own port, throwaway profile). Never attach to another tool's CDP browser. The profile holds tokens: stop the window and delete the profile when done.
  • A test form may be deleted only if this run created it and its title matches exactly with one tile (My forms tab). Deletion goes to the Forms trash.
  • Do not click "new form" repeatedly: each click opens a new tab and leaves an empty untitled form.

Workflow

  1. Spec first. Turn the question table into spec.json (see below). Always include an optional long free-text question such as "anything else you would like to tell us?"; the validator rejects specs without one. For choice questions use other: true instead of listing "その他" as a plain option.
  2. python scripts/build_form.py spec.json --dry-run (spec check, no browser).
  3. Start the session: scripts/browser_session.ps1 -Action Start.
  4. python scripts/build_form.py spec.json --account <work account on the picker>. It creates the form, fills it, waits for "saved", reopens it and compares titles and required flags. Exit code 3 means the read-back failed.
  5. External respondents approved: python scripts/build_form.py spec.json --only-share <form id> (sets "anyone can respond", turns on a short URL, opens it in a cookie-less context). Report anonymousOk.
  6. Report the response URL (short URL when it exists), the sharing scope, and what was not checked (no test submission is made). Then browser_session.ps1 -Action Stop.

Run Python Playwright from an interpreter that has it installed; set PYTHONUTF8=1 and write Japanese output to a UTF-8 file, because the PowerShell pipe garbles it.

spec.json

{ "title": "...", "description": ["line 1", "line 2"],
  "questions": [
    {"type": "text", "title": "お名前", "required": true},
    {"type": "choice", "title": "...", "multiple": true, "required": false, "options": ["A", "B"], "other": true},
    {"type": "text", "title": "自由記述", "long": true, "required": false} ] }

assets/spec.example.json is a runnable sample. Put examples inside the question title, for example "(例: ...)": the subtitle control is not scripted.

Gotchas That Cost a Rerun

  • Every typing step must select-all first, or a resumed run appends a second copy of the text.
  • Match type tiles with exact names: collapsed question cards also contain "テキスト".
  • Added options come pre-filled ("オプション 3"); a plain option named "その他" is not the free-text "Other".
  • New questions inherit the previous required switch; the script sets it explicitly.
  • Leaving the page right after the last edit can lose it; wait for "保存済み", then reopen and verify.
  • The built-in "Other" must be added after the other options; it always renders last.

More selectors, failure signatures and the delete recipe: UI notes.

Done Criteria

  • Question titles, types, options and required flags match the spec after the editor was closed and reopened.
  • Sharing scope reported; external scope only with the user's approval, with anonymousOk: true.
  • The response link was opened in a cookie-less context and showed the title and question count.
  • The owned browser and its profile are removed; any test form created by this run is deleted.
  • Unverified items are stated: English UI, question types beyond text/choice, a real test submission.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Design, review, and debug agent workflows, and decide when a request should use a prompt, instruction, skill, agent, or hook before escalating to multi-agent design. Use for .agent.md / .instructions.md / .prompt.md / AGENTS.md work, workflow architecture, orchestration planning, scheduled automation model allocation, or when agent workflows may be overkill. Triggers on 'agent workflow', 'create agent', 'automation models', 'ワークフロー設計', 'orchestrator'.

The English summary is being prepared. Showing the original description.

aktsmm/Agent-Skills26Updated Oct 21, 2026

Design, run, and review fair performance, token, and cost comparisons across GitHub Copilot CLI, Codex CLI, and direct model APIs. Use for AI CLI benchmark, Copilot vs Codex, prompt-cache diagnosis, cache read/write analysis, fresh-process latency measurement, token-cost comparison, or when a benchmark must separate provider caching from local CLI caches.

The English summary is being prepared. Showing the original description.

aktsmm/Agent-Skills26Updated Oct 21, 2026

Analyze historical VS Code GitHub Copilot Chat sessions by model, reasoning effort, AIU, time, reliability, workflow behavior, and external quality evidence, or safely prune workspace-scoped local chat history by age. Use for session analysis, repeated-task retrospectives, model evaluation, cost/performance analysis, and old session cleanup.

The English summary is being prepared. Showing the original description.

aktsmm/Agent-Skills26Updated Oct 21, 2026

Create reproducible animated infographic GIFs from structured data or measured results, with audience-language labels, explicit timing semantics, representative-frame QA, and a static fallback. Use when asked for GIF生成, animated infographic, 動的インフォグラフィック, 結果が流れる図, animated benchmark, or a blog/SNS animation whose displayed metrics must remain traceable to source data.

The English summary is being prepared. Showing the original description.

aktsmm/Agent-Skills26Updated Oct 21, 2026

Create polished, validated architecture, workflow, sequence, data-flow, and lifecycle/state diagrams as explorable standalone HTML with inline SVG, dark/light themes, optional trace motion, and PNG/JPEG/WebP/SVG/WebM export. Accept plain-language requirements or pasted Mermaid flowchart, sequenceDiagram, and stateDiagram input; inspect repository evidence when the diagram must reflect real code. Use when the user asks to visualize system architecture, infrastructure, cloud/security/network topology, technical workflows, API call sequences, request lifecycles, data pipelines, ETL/ELT, data lineage, state machines, or to convert/beautify Mermaid. Also use for Archify, interactive or animated HTML diagrams, インタラクティブ図, 動く構成図. When an editable .drawio file is required, use the draw.io workflow instead and treat Archify HTML only as a supplement.

The English summary is being prepared. Showing the original description.

aktsmm/Agent-Skills26Updated Oct 21, 2026

Generate ASCII-art text banners for terminals, READMEs, and CLI startup messages. Use when a user asks for an ASCII banner, text art, バナー, アスキーアート, or a decorative header for a script/README.

The English summary is being prepared. Showing the original description.

aktsmm/Agent-Skills26Updated Oct 21, 2026

See all skills by aktsmm

Report a problem with this skill