Token导航 LogoToken导航TokenDH.com
开发操作浏览器clawhub未标认证来源可访问clear审计提醒

ms-forms-auto女士表格自动

Agent Skill

ms-forms-auto 用于记录任务执行中的错误、用户纠正、经验和能力缺口,适合在 OpenClaw 中希望让 Agent 持续沉淀问题、修正和最佳实践时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

3,599

周安装

147

GitHub Stars

公开资料未说明

下载量

1,164
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:ms-forms-auto(女士表格自动)
来源仓库:https://github.com/claireaicodes/ms-forms-auto
安装命令:
openclaw skills install ms-forms-auto
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install ms-forms-auto

简介

通过 M365 MFA 支持和双日历集成自动化 Microsoft Forms 每日提交,以自动填充培训、内容开发和学习时间。

SKILL.md

name
ms-forms-auto
description
Automate Microsoft Forms submission with dual-calendar integration and M365 MFA support. Use when: automating daily productivity log submissions, submitting Microsoft Forms with calendar-based auto-fill, setting up scheduled form submissions with training/content-dev/learning hour calculations, or working with org MS Forms that require M365 number-matching MFA. Triggers on phrases like "fill out MS form", "automate form submission", "daily form report", "submit Microsoft form", "daily productivity log", "training hours form".

MS Forms Auto

Automate Microsoft Forms submission with Playwright, dual-calendar auto-fill, and M365 number-matching MFA support.

Quick Start

1. Install Dependencies

cd <skill-directory>
npm install
npx playwright install chromium

2. Set Up Credentials (one-time)

node scripts/setup-credentials.js

Creates config/credentials.json (gitignored) with M365 email/password.

3. First Login with MFA

xvfb-run --auto-servernum node scripts/mfa-login.js

When prompted, enter the 6-digit code from your Authenticator app. Saves auth state to config/storageState.json for headless reuse.

4. Fetch Calendar Data

node scripts/calendar-fetch.js              # Today (SGT)
node scripts/calendar-fetch.js --date 2026-03-18  # Specific date

Returns JSON with all form fields auto-populated from both calendars.

5. Submit the Form

node scripts/submit-daily.js

Reads today's entry from daily-entries/YYYY-MM-DD.json and submits.

Architecture

Dual Calendar System

CalendarURL SourcePurpose
Training (TMS)Built into scriptTraining Hours (source of truth)
OutlookBuilt into scriptContent Dev Hours, Other Items

Field Logic

#FieldSource
1DateToday (M/d/yyyy)
2Training HoursTraining calendar events
3Content Dev HoursOutlook calendar (content dev blockouts)
4Content Dev TopicEvent description from Outlook
5Learning Hoursmax(0, 8 - training - contentDev)
6Learning Topic2-3 random topics + any KT Sessions
7Other Items"Preparation, testing, and rehearsal for my next class" + Outlook events (excludes KT Sessions, training duplicates)
8Team HoursBlank
9Team DescriptionBlank

Fallback Defaults (if calendars fail)

FieldFallback
Training Hours0
Content Dev Hours0
Content Dev TopicNA
Learning Hours8
Learning Topic3 random topics from pool
Other Items"Preparation, testing, and rehearsal for my next class"

Scripts

ScriptPurpose
scripts/calendar-fetch.jsFetch both calendars, output all form fields
scripts/submit-with-mfa.jsPrimary: Combined MFA login + form submit in one session
scripts/submit-daily.jsSubmit form using saved storageState (no MFA)
scripts/mfa-login.jsStandalone MFA login (headed mode, saves state)
scripts/fill-form.jsCLI form filler with --date, --training, etc. args
scripts/setup-credentials.jsOne-time credential setup

Automated Pipeline (via OpenClaw Cron)

5:45 PM SGT → Pre-Fill cron (isolated) → calendar-fetch.js → draft entry JSON
6:00 PM SGT → Submit cron (main session) → asks Master for MFA code → 
              submit-with-mfa.js --code CODE → login + submit in one session → done

Why main session? The submit job runs in the main session so it can ask Master Phil for the 6-digit Authenticator code. Speed is critical — the MFA code expires in ~30 seconds, so the login and submit happen in a single browser session via submit-with-mfa.js.

Configuration Files

FilePurposeGitignored?
config/credentials.jsonM365 email + password
config/storageState.jsonSaved browser session (cookies)
config/calendars.jsonCalendar URLs (contains auth tokens)
config/calendars.json.exampleTemplate for calendar URLs
config/form-values.jsonLegacy form value defaults
daily-entries/Daily submission audit trail

MFA Handling (Improved)

This skill now intelligently handles both MFA and non-MFA scenarios:

Smart Behavior

  1. Auto-detection: The script attempts credential login first, then checks if MFA is required
  2. Flexible invocation:

- node scripts/submit-with-mfa.js - Tries credentials only; if MFA appears, waits 30s for manual code entry or exits with code 2 - node scripts/submit-with-mfa.js --code XXXXXX - Provides MFA code upfront; uses it if MFA appears, otherwise proceeds

  1. Graceful fallback: If credentials alone are sufficient (no MFA prompt), it works without requiring a code
  2. Exit codes:

- 0 — Success - 1 — General error / invalid credentials - 2 — MFA required but no code provided (use --code flag) - 3 — MFA code wrong or expired - 4 — Form submission failed

Recommended Usage

For daily cron (6 PM SGT):

node scripts/submit-with-mfa.js --code [MFA_CODE_HERE]

This ensures speed (code ready) and handles both cases:

  • If MFA appears → code is used immediately
  • If no MFA → code is ignored, submission proceeds

For manual testing (unknown MFA requirement):

node scripts/submit-with-mfa.js

The script will wait 30 seconds on the MFA screen if needed, allowing you to manually type the code from your Authenticator app.

Why This Works

Microsoft's M365 authentication can be inconsistent:

  • Sometimes the OIDC cookie from previous login is still valid → no MFA needed
  • Sometimes the cookie expired → MFA required
  • Sometimes conditional access policies trigger MFA based on IP/device

The new logic eliminates the "always ask for MFA" problem by making the code optional and only using it when the MFA prompt actually appears.

Troubleshooting

  • Auth expired: Run xvfb-run --auto-servernum node scripts/mfa-login.js with a fresh Authenticator code
  • Calendar fetch fails: Script uses graceful fallbacks (0/NA defaults), form still submits
  • Form URL changed: Update the URL in scripts/submit-daily.js
  • Wrong field values: Run node scripts/calendar-fetch.js --date YYYY-MM-DD to verify calendar data
  • Detailed test plan: See references/TESTING_AUTH_WORKFLOW.md for comprehensive authentication workflow testing scenarios

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

71.3%
按下载量换算830

安全审计

VirusTotal

可疑

ClawScan

通过

Static analysis

可疑

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills