一句话数据收集器(QuickForm 数据大屏工坊)

SKILL研究检索
研究检索 未标注权限 许可证不明确
安装这个技能

一句话帮老师/HR/活动组织者创建数据收集任务并生成配套网页——智能体调 QuickForm 体验站 API 自动建任务、生成数据收集页面和实时数据大屏页面,还支持 AI 分析报告。触发词:数据收集、收集学生信息、课堂投票、问卷收集、报名登记、数据大屏、实时统计大屏、quickform、表单收集、作品提交、一键收集。

一句话选型结论

按资料字段整理

一句话数据收集器(QuickForm 数据大屏工坊)是研究检索类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类研究检索 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_a5827f21/quickform-datacollect
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

研究检索
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_a5827f21仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791716199
正文体量32.5 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
查资料并整理出处

让模型按主题查资料,并把引用来源整理成清单。

网页与文献要点提炼

把长文、论文、网页压成能直接看的要点。

竞品与行业汇总

按关键词汇总竞品动态与行业信息。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在研究检索场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
一句话数据收集器(QuickForm 数据大屏工坊)当前 未标注权限 未标注 未标注 未标注 有
寻找技能 浏览器控制 GitHub 仓库 3120.0 万 Codex、Claude、Cursor 有
自我改进 Agent 接触敏感数据 ClawHub 市场 1646.4 万 OpenClaw 有
灵魂追踪 联网访问 GitHub 仓库 758.9 万 Codex、Claude、Cursor 有
自我完善 联网访问 ClawHub 市场 682.9 万 OpenClaw 有
微软代工厂 调用外部服务 GitHub 仓库 661.4 万 Codex、Claude、Cursor 有

SKILL.md 全文

32.5 KB
模型实际读到的说明书原文,来自技能仓库

一句话数据收集器(QuickForm 数据大屏工坊)

> 老师说一句「帮我做个课堂作品投票」,你交付:一个数据收集网页 + 一个实时数据大屏 + 后台自动建好的任务。
> 学生打开收集页填写,数据秒级进库;老师投屏打开大屏,看着数字实时跳动。
> 还能一句话让 AI 出一份专业的数据分析报告。

🔑 重要(v1.2 起):每个任务先起一个「名字」,记在本地台账里。
以后老师说「维护下那个单词练习」,就按名字找回同一个任务(数据不丢)重新生成页面,
绝不重复新建。详见下方《本地任务台账 —— 先起名、按名字维护》。

先看效果(在线演示大屏,模拟数据实时变化):
https://modeai-quickform.ms.show/demo

什么时候用我

老师说的话 你要交付什么
"帮我做个课堂投票/报名/问卷收集" 收集页 HTML + 数据大屏 HTML(先亮家底 + 起名)
"再给我新建一个 XX / 另一个网页+数据大屏" 换新名字 create(会顺带告诉老师现在共有几个任务、都叫什么)
"改一下那个网页 / 换个字段 / 大屏再调调 / 这个不合适重做" 按名字 resolve → 用原 apiid 原地覆盖原网页(不新建任务、数据不丢)
"看看现在收集了多少" 调 API 报数字 + 打开大屏看
"分析一下学生提交的数据" 调 AI 分析接口,返回报告
"我都有哪些任务 / 现在有几个" python references/qf_registry.py brief(或 list)——只读本地台账,不联网

> 🔑 一句话区分:说"改"→ 复用同一个任务原地改;说"再建/新建一个"→ 换名字建新任务。
> 拿不准就先 brief 亮出清单,问一句"你是要改已有的,还是新建一个?"

默认环境(开箱即用,零配置)

  • BASE(唯一正确域名):https://modeai-quickform.ms.show
  • API Token(体验站共享,开箱即用):不需要记、也不写死在任何文件里——Token 是公开共享的且会轮换,
    运行时自动从公开 docs 端点获取(qf_token.py 已内置:环境变量 > 本地缓存 24h > 实时拉取)。
    手动查看当前 Token:python references/qf_check.py token;401 时脚本会自动换新 Token 重试。

⚠️ 三个实测必踩的坑(2026-09-17 全流程验证)

坑 1:必须伪装浏览器 User-Agent,否则一律 403。
这是最高频失败原因。体验站网关有 WAF,curl/8.x、Python-urllib/3.x 等默认 UA 会被判为爬虫直接 403,
而同一个请求带上浏览器 UA 立刻 200。实测矩阵:

请求 结果
X-API-Token + 浏览器 UA 200 ✅
X-API-Token + 默认 UA(不加 -A) 403 ❌
Authorization: Bearer <token> 403 ❌

浏览器 UA 固定用这一串:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36

坑 2:绝不能改用 studio-xxx.api-inference.modelscope.net 域名。
网关被拦时,本能反应是换成魔搭的 API 专用地址 + 魔搭 SDK Key——这条路是死路,不要走:
该网关对浏览器 OPTIONS 预检返回 401 且不附带任何 CORS 头,前端 fetch 必然报
No 'Access-Control-Allow-Origin' header is present on the requested resource。
而且它会污染需求:一旦用了它,网页就必须内嵌魔搭 Key,用户再也做不到"零配置"。
结论:网页只用 ms.show 公开接口,不带任何 Token,谁双击都能用。

坑 3:Windows 下中文数据会乱码。
cmd/PowerShell/Git Bash 默认 GBK,含中文的 -d '{...}' 会被服务端解析失败(报"缺少 title")。
解决:title 用 ASCII,或改用 Python urllib 显式 .encode("utf-8") 提交(见 references/qf_check.py)。

坑 4:体验站是共享空间,卫生铁律(违者垃圾任务满天飞)。
所有使用者共用同一个 Token 和任务空间,自检/测试留下的任何东西所有人可见:

  1. 自检只允许用「自检-链路测试」这一个固定任务(qf_check.py 已固化:存在就复用,不存在才建一次)——绝不每次自检都新建任务
  2. 自检/验证产生的测试数据绝不插进真实任务,只进自检任务或刚创建的目标任务
  3. qf_render.py 的端到端验证会自动提交带「【连通性验证-可删】」标记的测试数据,验证通过后自动调用 DELETE 清掉
  4. 留下了垃圾就用清理端点收尾:python references/qf_check.py delete <apiid> 删任务、python references/qf_check.py purge <apiid> "标记" 清数据

另外:不要用 Authorization 请求头——魔搭平台网关会拦截带 Authorization 头的请求返回 403,必须用 X-API-Token。

体验站为共享演示环境(所有使用者共享数据空间),正式使用请自部署 QuickForm 教师版并用自己的 Token(部署方法见文末)

⭐ 本地任务台账 —— 先起名、按名字维护(v1.2 核心)

为什么要有它:QuickForm 开放接口只能「新建任务」,没有「改任务」。如果每次都 create,
用户第二次想改就会又建出一个新任务、还找不到对应关系(因为创建完就忘了)。
台账在用户本机记下「名字 → apiid」,让同一个名字永远指向同一个任务:

第一次:create 建任务 + 登记名字
之后  :按名字查到旧 apiid → 复用同一个任务重新生成页面(数据不丢)
想另起:换个名字;确实要同名重建才加 --force

台账文件:~/.workbuddy/quickform/registry.json
(Windows:C:\Users\<用户名>\.workbuddy\quickform\registry.json)
可用环境变量 QF_REGISTRY 或参数 --file 覆盖。它是本机的,每个同事各自一份,互不影响。

🔒 铁律:任何"新建数据收集任务"的动作,都要先起名、先查台账,再决定新建还是维护。

# 0) 亮家底:目前共有几个任务、都叫什么(新建前先亮给老师看)
python references/qf_registry.py brief

# 1) 这个名字建过没有?(退出码 0=已存在,1=没有)
python references/qf_registry.py has "<名字>"

# 2) 没建过 → 新建并登记(一条命令内部就调云端建好任务,别再用裸 curl)
python references/qf_registry.py create --name "<名字>" --title "<任务标题>" --desc "<说明>"

# 3) 建过 → 看它的 apiid,直接用这个 apiid 重渲染页面(数据保留,见第 2 步)
python references/qf_registry.py get "<名字>"

# 4) 看全部 / 只想看名字
python references/qf_registry.py list
python references/qf_registry.py names

> 数据来源(务必分清):
> path / list / names / has / get / resolve / brief / add / update / set-files / remove 只读本地台账、不联网——
> 所以"我有哪些任务"永远只显示你自己登记过的,不会列出别人的。
> 只有 create(新建任务)和 sync(与云端对齐)会连云端;其中 sync 的云端接口返回共享空间里所有人的任务,
> 故其默认行为是"只刷新、不新增"(详见下方 sync 说明)。

"维护"到底能改什么(务必跟用户讲清楚,别让 TA 误以为能改云端任务本体):

能否 说明
收集页字段 / 大屏样式文案 ✅ 能 复用同一 apiid 重渲染页面,学生数据不丢
云端任务标题本身 ❌ 不能 接口没有 update;台账里的名字是本地别名,改了只影响本地与页面标题
换一套收集字段且不想混新旧数据 💡 建议新建 换个名字建新任务更干净

同事第一次用、或以前建过任务没记名字 → 与云端对齐:

python references/qf_registry.py sync            # 默认【只刷新】:只更新台账里已有任务的提交数,不新增
python references/qf_registry.py sync --add-all  # 才把云端任务补录进台账

> ⚠️ 体验站是共享空间(所有人共用同一个 Token),GET /api/cli/tasks 返回的是所有人的任务。
> 所以 sync 默认不新增任何条目,只会刷新你自己台账内任务的提交数;
> 它会把"云端有、你台账没有"的任务列出来提示你,由你确认后再决定是否 add 单独登记或 --add-all 全量补录。
> 绝不要为了让列表"全一点"就无脑 --add-all——那会把别人的任务灌进你的台账。

🔁 改网页 —— 复用同一个任务,绝不新建(最易翻车,务必照做)

触发语:老师说「这个网页不合适,改一下」「换个字段」「大屏再调调」「重做收集页」「加一列」……
只要是对已经做过的任务动刀,就必须走这条"改网页"路径,不能新建任务。

  1. 先按名字取回它的 apiid 和原来的网页路径:
    bash python references/qf_registry.py resolve "<名字>"
    返回 apiid=xxx、collect=<原收集页路径>、dashboard=<原大屏路径>。
    - 若返回"未找到" → 这是新需求,回到《第 0 步》起名新建;绝不能默默新建一个来糊弄。
  2. 用同一个 apiid 重新渲染(带 --name "<名字>"):
    bash python references/qf_render.py <上一步的 apiid> "<标题>" "<说明>" \ --fields fields.html --name "<名字>"
    qf_render.py 发现台账里已登记过该任务的网页,会原地覆盖原来那两个文件,
    并打印 ♻ 复用同一个任务 apiid=xxx,原地覆盖上次的网页(未新建任务)。
    → 老师的数据一条都不会丢,只是页面换了。
  3. 交付时明确说:「已改好,还是在原来那个任务上(数据没丢)」。

⚠️ 三条红线
- 查不到名字 → 先问老师改的是哪一个任务,或给个名字;不要擅自 create 新任务。
- 改网页绝不再调 POST /api/cli/tasks(那是新建);复用旧 apiid 就好。
- 非模板页面(如自制的小游戏收集页)也要登记路径,否则下次"改网页"不知道改哪个文件:
bash python references/qf_registry.py set-files --name "<名字>" \ --collect <收集页路径> --dashboard <大屏路径>

先跑自检,再干活(强烈建议)

本技能自带 references/qf_check.py(零依赖,Python 3 标准库),它已把上面三个坑全部规避掉:

python references/qf_check.py            # 全链路自检:鉴权/读取/提交/入库/中文建任务,逐项打印 HTTP 码
python references/qf_check.py create "课堂作品投票" "收集作品名与评分"
python references/qf_check.py data <apiid>
python references/qf_check.py analyze <apiid>

跑出第一个 HTTP 200 之前,不要生成任何网页。 这样一次做对,不用回头排查。

标准工作流(严格按此执行)

第 0 步:先亮家底 + 起名 + 查台账(必做,防止重复建任务)

  1. 先亮一下"家底":python references/qf_registry.py brief
    会打印「目前共有 N 个数据任务:A、B、C」。
    - 老师提的是新建需求("再给我做一个 XX")→ 把清单转述给他再动手:
    > 「你目前已有 N 个数据任务:A、B、C。要【改】哪个就说它的名字;要【新建】我就按新名字建一个。」
    - 老师其实是改("那个不行 / 改一下 / 换个字段")→ 走《🔁 改网页》,不要 create(见下)。
  2. 再确定这次的任务名(短名,便于口头引用,如「三年二班单词练习」)。
    用户话里带了名字就用;没带就
    问一句**:「这个数据表起个什么名字?以后我按名字帮你维护。」
  3. 查台账:python references/qf_registry.py has "<名字>"
  4. 按结果分支:
    - 没有(退出码 1)→ 走新建:
    python references/qf_registry.py create --name "<名字>" --title "<标题>" --desc "<说明>"
    拿到 apiid 后进第 2 步。优先用这条,不要用裸 curl 建任务(裸 curl 不登记名字,下次又找不到)。
    命令建完会自动打印"你目前共有 N 个数据任务:…"——把这句转述给老师。
    - 已有(退出码 0)→ 先停下问用户:
    > 「这个名字已经有一个任务了(apiid=xxx,现有 N 条提交)。你是想【继续用它】(只改页面、保留已有数据),还是【另建一个】?」
    • 选「继续用」→ 记下它的 apiid,直接进第 2 步重渲染(数据保留)。
    • 选「另建」→ 让用户换个名字,或 create ... --force。

第 1 步:创建数据任务(备用:裸 curl,不登记名字,非必要不用)

TOKEN=$(python references/qf_check.py token)
curl -X POST "https://modeai-quickform.ms.show/api/cli/tasks" \
  -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36" \
  -H "X-API-Token: $TOKEN" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{"title": "课堂作品投票", "description": "提交作品名称并给喜欢的设计打分(1-5)"}'

> 注意 -A 那个浏览器 UA 不能省(坑 1),中文在 Windows 终端下可能乱码(坑 2/坑 3),
> 遇到乱码直接改用 python references/qf_check.py create "标题" "描述"。

返回 task.apiid 和 task.submit_url(如 https://modeai-quickform.ms.show/api/AbC123XYz)。

第 2 步:用模板生成两个网页(核心交付物)

本技能自带两个单文件 HTML 模板(零依赖、双击即用),放在 references/ 目录:

> ✅ 推荐用渲染脚本,别手工替换:references/qf_render.py
> 手工替换很容易翻车——全量 replace 会把注释/提示文字里的占位符一起改掉(出错信息会变成一串 URL),
> 也常漏替某个占位符导致页面"点了没反应"。脚本会渲染 + 五项自动校验:
>
> bash > python references/qf_render.py <apiid> "<任务标题>" "<一句话说明>" \ > --fields fields.html --name "<任务短名>" # 新建时可再跟 --out ./交付目录 >
> 带上 --name 时,一旦校验通过,脚本会自动把 apiid/标题/页面路径写回本地台账:
> · 新建:用 --out <目录> 决定落盘位置;
> · 改网页:同一个 --name 再跑一次,脚本会原地覆盖上次那两个网页
> (复用同一 apiid,打印 ♻ 复用同一个任务…未新建任务),老师的数据不会丢。
> 校验项:①占位符是否替换干净 ②实际请求地址 ③地址是否合规(必须 ms.show)
> ④页面是否混入 Token ⑤真实请求一次确认 apiid 有效(写错 apiid 会直接报 HTTP 404)。
> fields.html 里写你要的表单控件(见下方格式),不含 importToken 之类的东西。

若确实要手工替换,务必逐个替换且只替换这五个占位符,并在生成后跑一遍上述校验。

  1. collect_template.html —— 数据收集页(发给学生填)
    替换占位符:
    - __TASK_TITLE__ → 任务标题
    - __TASK_DESC__ → 一句话填写说明
    - __FIELDS_HTML__ → 按老师需求生成表单控件,每个控件必须有 name 和 data-label(提交时作为字段名),例:
<div class="fg"><label>你的姓名</label><input name="name" data-label="姓名" required></div>
<div class="fg"><label>作品名称</label><input name="work" data-label="作品名称" required></div>
<div class="fg"><label>评分(1-5 分)</label>
  <select name="score" data-label="评分"><option>5</option><option>4</option><option>3</option><option>2</option><option>1</option></select></div>
<div class="fg"><label>一句建议</label><textarea name="advice" data-label="建议"></textarea></div>
  • __SUBMIT_URL__ → 第 1 步返回的 task.submit_url
  1. dashboard_template.html —— 实时数据大屏(老师投屏看)
    替换占位符:
    - __TASK_TITLE__ / __TASK_DESC__ → 同上
    - __DATA_URL__ → task.data_url(即 {BASE}/api/<apiid>/all)

大屏自动:6 秒轮询新数据、统计卡数字跳动、60 分钟趋势图、自动识别选择类字段画分布条、最新提交列表(最新在前、可滚动)。不需要任何配置。

> 📌 交付的是非模板页面时(比如自制的小游戏收集页、定制大屏):交付后务必把它的路径登记进台账,
> 否则下次老师说"改网页"时,智能体不知道改哪个文件:
> bash > python references/qf_registry.py set-files --name "<名字>" --collect <收集页路径> --dashboard <大屏路径> >

把两个文件保存到老师指定的目录(没指定就存到当前工作目录,文件名用任务标题命名)。

第 2.5 步:交付前自检(防止翻车,别跳过)

验证一律走 HTTP 请求(默认已固化在渲染器里),不要用无头浏览器——沙箱环境里 Chrome/Edge headless 经常跑不起来(要求 --user-data-dir、禁 GUI 进程),白白卡几分钟还验不出东西。

qf_render.py 渲染时会自动执行以下校验,全程约 3~10 秒:

  1. 占位符是否替换干净
  2. 实际请求地址是否为 https://modeai-quickform.ms.show/api/...(否则会被 CORS 拦)
  3. 页面是否零凭证(Token/Key 绝不能出现在学生可见的页面里)
  4. 数据地址连通性实测(浏览器 UA 直 GET)
  5. 端到端提交回读:自动构造一条标记为「【连通性验证-可删】」的测试数据 POST 到收集接口,再 GET 回来确认入库——这一步同时验证了收集页提交链路和大屏数据链路,等价于"替学生点一次提交、替老师看一次大屏"

判据:渲染器最后输出 校验结果:全部通过,可直接交付 即通过。若第 5 项失败但第 4 项 OK,先怀疑容器冷启动(等 1 分钟重跑一次再下结论)。

> 跳过端到端验证(不想留测试数据时):qf_render.py ... --no-verify
> 跳过在线托管(只要本地文件时):qf_render.py ... --no-host

第 6 步 · 在线托管(默认自动执行):渲染校验通过后,渲染器自动把两个页面上传到体验站
(POST /api/cli/tasks/<apiid>/pages),拿到永久在线链接:
- 收集页 https://modeai-quickform.ms.show/p/<apiid> —— 发给学生填
- 大屏 https://modeai-quickform.ms.show/p/<apiid>/screen —— 老师投屏
- 重复上传自动覆盖 = 改版;本地 HTML 文件仍会生成,作为备份交付
- 托管失败不阻断交付(本地文件照常给),并把失败原因打印出来

无头浏览器仅作可选深度排查——只有当老师本人反馈"页面打不开/点了没反应"、且 HTTP 验证又全过时,才考虑本地真开浏览器(或让老师按 F12 看控制台)定位前端渲染问题。不要把它写进常规交付流程。

第 3 步:告知使用方式(固定话术)

> ✅ 已创建完成!任务名:「<名字>」(以后说这个名字我就能帮你维护,不会重复新建)
> 📋 你目前共有 N 个数据任务:<逐个列出名字> —— 要改哪个直接说它的名字
> 📝 收集页(在线链接,发这个给学生):<page_url>
> 📊 数据大屏(在线链接,投屏看):<screen_url>
> 💾 本地备份已存:<文件路径>(链接丢了或想改版,说「改一下「<名字>」」即可,还是同一个任务,数据不丢)
> 🤖 想看 AI 分析随时说「分析一下数据」;想再做一个就说「再新建一个 XX」

第 4 步:查数据 / AI 分析(老师追问时)

# ⚠️ 下面每条命令都必须带浏览器 UA,否则 403(见坑 1)
UA=&quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36&quot;
TOKEN=$(python references/qf_check.py token)   # 运行时获取,不写死(Token 会轮换)

# 查看全部提交
curl -A &quot;$UA&quot; -H &quot;X-API-Token: $TOKEN&quot; \
  &quot;https://modeai-quickform.ms.show/api/cli/tasks/&lt;apiid&gt;/data&quot;

# AI 智能分析(10-30 秒,返回 Markdown 报告)
curl -A &quot;$UA&quot; -X POST -H &quot;X-API-Token: $TOKEN&quot; \
  &quot;https://modeai-quickform.ms.show/api/cli/tasks/&lt;apiid&gt;/analyze&quot;

# 云端任务列表(⚠️ 共享空间:这里是**所有人的**任务,不是你自己的)
# 想看你**自己的**任务,用本地台账:python references/qf_registry.py brief
curl -A &quot;$UA&quot; -H &quot;X-API-Token: $TOKEN&quot; \
  &quot;https://modeai-quickform.ms.show/api/cli/tasks&quot;

API 速查

端点 方法 说明 鉴权
/api/cli/tasks GET 任务列表(含提交数)⚠️ 共享空间:所有人的任务 X-API-Token 头
/api/cli/tasks POST 创建任务 {title, description?} X-API-Token 头
/api/cli/tasks/&lt;apiid&gt;/data GET 全部提交数据 X-API-Token 头
/api/cli/tasks/&lt;apiid&gt;/analyze POST AI 分析报告 X-API-Token 头
/api/cli/tasks/&lt;apiid&gt; DELETE 删除整个任务(自检/测试遗留清理用) X-API-Token 头
/api/cli/tasks/&lt;apiid&gt;/data DELETE 按标记清提交:body {&quot;marker&quot;: &quot;&lt;子串&gt;&quot;} X-API-Token 头
/api/&lt;apiid&gt; POST 公开提交(收集页用,任意 JSON) 无(apiid 即凭据)
/api/&lt;apiid&gt;/all GET 公开查全部数据(大屏用,带 CORS) 无
/api/&lt;apiid&gt;/count GET 公开查提交数 无

附:本技能自带的文件

文件 用途
references/collect_template.html 收集页模板(双击即预览,含地址异常提示)
references/dashboard_template.html 大屏模板(双击即预览,含失败横幅)
references/qf_registry.py 本地任务台账:亮家底(brief)、先起名、按名字维护/新建、补录云端任务
references/qf_check.py 服务端自检:鉴权 / 读取 / 提交 / 入库 / 中文建任务
references/qf_render.py 客户端渲染:替换占位符 + 五项合规校验 + 自动登记台账

两个模板都自带「预览模式」(直接双击就能看效果)

模板里占位符尚未替换时,页面会自动进入预览模式:收集页填入一组示例字段、可点提交体验交互;
大屏页用内置示例数据渲染出完整图表,并显示黄色「模板预览模式」横幅。
渲染成真实任务地址后,预览模式自动关闭、横幅消失、改为拉云端真实数据——所以同一个文件既是能试的预览页,也是最终交付页,不需要额外维护两套。

模板实测状态(2026-09-17,无头浏览器真实点击/提交验证):
收集页提交成功并入库(姓名/作品名/评分/建议),大屏四张卡与实时流正常渲染
(累计 5 · 今日 5 · 平均分 4.2 · 参与 5)。

本轮修复的两处缺陷:
1. 大屏原来用 .catch(function(){}) 静默吞错——地址填错时页面一片空白且无任何提示,老师只能说"用不了"。
现改为红色横幅 + LIVE 灯转灰,并直接打印失败原因、当前请求地址和对应的修正办法。
2. 收集页提交失败时也会提示"提交地址不正确,应为 https://modeai-quickform.ms.show/api/&lt;任务ID&gt;"。

两点高危坑(2026-09-17 第二次实测补充,详见更新日志 1.1.2):
1. 接口 submitted_at 是 UTC,直接显示会差 8 小时(如北京 22:23 显示成 14:23),
且趋势图会按本地时区解析 UTC 串 → 新提交被误判为 8 小时前、挤出 60 分钟窗口而"看不到点"。
模板现统一按北京时间(+8)换算(常量 TZ_OFFSET,换时区只改这一处)。
2. 大屏"最新提交"列表原来取接口返回的前 7 条 + overflow:hidden,而接口是按时间正序返回(最旧在前),
导致最新一条排在最底部且被裁掉、还不能滚动。现改为按提交时间倒序(最新在前)+ 列表可滚动。

完整文档(把此链接发给任何智能体即可自动接入):
https://modeai-quickform.ms.show/api/cli/docs

注意事项

  • 收集页/大屏页是纯静态单文件 HTML:本地双击、微信发送、托管到任何静态空间都行
  • 公开接口响应带 CORS *,网页直接 fetch,无跨域问题
  • 体验站免费容器长时间无访问会休眠,首次调用如超时等 1 分钟重试一次即可
  • 体验站为共享环境:不要收集敏感个人信息;正式使用建议自部署(开源教师版,Docker 一键部署,项目地址见 https://github.com/wstlab/quickform )
  • AI 分析基于魔搭 ModelScope 免费推理,体验站已默认接好,无需配置 APIKEY

大屏长什么样

深色科技风:顶部 LIVE 呼吸灯 + 四个统计卡(累计/今日/平均分/参与人数)+ 提交趋势面积图 + 字段分布条 + 最新提交实时滚动。在线体验:https://modeai-quickform.ms.show/demo

更新日志

  • 1.4.0(2026-09-26)
    1. 交付从"本地文件"升级为"在线链接":体验站新增页面托管能力(POST /api/cli/tasks/&lt;apiid&gt;/pages),
    渲染器校验通过后自动上传收集页+大屏,回传永久在线链接 https://modeai-quickform.ms.show/p/&lt;apiid&gt;
    与 /p/&lt;apiid&gt;/screen——学生/老师点链接即用,不用再传文件。
    2. 重复上传自动覆盖 = 原地改版;本地 HTML 仍生成作备份;托管失败不阻断交付。
    3. qf_render.py 新增 host_pages() 与 --no-host;台账新增 page_url/screen_url 字段;
    固定话术改为链接优先。
    (配套:体验站空间同日上线托管路由,/p/&lt;apiid&gt; 公开访问带 CSP sandbox 防护)

  • 1.3.1(2026-09-26)
    1. 根治"敏感授权卡死"问题:SKILL.md 与全部脚本中的硬编码 Token 全部移除(共 6 处)。
    Token 本就是公开共享且会轮换的,写死在技能文件里毫无收益,却会让平台安全扫描把整个技能
    判成"敏感",每次加载都弹授权——弹窗超时技能就加载失败,这是"用户调不动"的第一大原因。
    2. 新增 references/qf_token.py 统一取 Token:环境变量 QF_TOKEN > 本地缓存 24h > 公开 docs 端点实时拉取。
    qf_check.py 自检遇 401 自动换新 Token 重试一次(Token 轮换不再需要人工干预)。
    3. 新增 python references/qf_check.py token 子命令(可 --refresh 强制刷新)。

  • 1.3.0(2026-09-18)
    1. 修复共享空间垃圾任务问题:自检 check 不再每次新建"自检-中文编码"任务,改为复用固定的"自检-链路测试"任务(apiid 固定),也绝不向你的真实任务插测试数据。
    2. 服务端新增 DELETE 接口(CLI 文档同步更新):DELETE /api/cli/tasks/&lt;apiid&gt; 删除任务、DELETE /api/cli/tasks/&lt;apiid&gt;/data(body {&quot;marker&quot;:...})按标记清理测试数据;qf_check.py 新增 delete / purge 子命令。
    3. qf_render.py 端到端验证后自动删除测试数据;新增 --no-verify 跳过验证;修复 /all 读回字段层级判断 bug。

  • 1.2.3(2026-09-18)
    1. 验证流程提速:去掉沙箱内易挂起的 Headless 浏览器验证,改为一次 HTTP 请求端到端验证(POST 测试数据 → GET 读回确认 → 自动清理),约 1~2 秒完成。
    2. 修复 qf_render.py 读回结果取值 bug(顶层字段误取 data 子对象)。
  • 1.2.2(2026-09-18)
    1. sync 默认改为"只刷新、不新增":体验站是共享空间,GET /api/cli/tasks 返回所有人的任务,
    原实现会把别人的任务全量灌进你的台账。现默认只刷新台账内已知任务的提交数,
    并把"云端有、你台账没有"的任务列出来提示,由你确认后再 add 单独登记或 sync --add-all 全量补录。
    2. 明确"数据来源"边界并写进文档:path/list/names/has/get/resolve/brief/add/update/set-files/remove
    只读本地台账、不联网("我有哪些任务"只显示你自己的);只有 create / sync 连云端。
    3. 第 4 步与 API 速查里的云端任务列表补注:那是共享空间里所有人的任务,要看自己的请用本地 brief。
  • 1.2.1(2026-09-18)
    1. 新增"亮家底":qf_registry.py brief 一句话汇报「目前共有 N 个数据任务:A、B、C」,
    并提示"要改哪个直接说名字 / 要新建就说换个新名字"。
    2. create 建完任务后自动打印这份清单,智能体可直接转述给老师——
    老师随时知道已经建了几个、都叫什么,不会稀里糊涂又建重复。
    3. SKILL.md 第 0 步新增「先亮家底」;"什么时候用我"表明确区分 说"改"→原地改 与 说"再建/新建一个"→换名新建;
    交付话术固定带上"你目前共有 N 个数据任务:…"。
  • 1.2.0(2026-09-18)
    1. 新增本地任务台账 references/qf_registry.py,解决"第二次调用又新建一个任务、找不到对应关系"的痛点:
    流程改为 先起名 → 查台账 → 同名维护(复用 apiid,数据不丢)/ 异名新建。
    2. qf_render.py 新增 --name / --registry:渲染校验通过后自动把 apiid/标题/页面路径写回台账。
    3. 新增 sync 子命令:把云端已有任务一键补录进台账(只读云端)。
    4. 改网页 = 复用同一任务、原地覆盖原文件:qf_render.py 带同一个 --name 再跑时,若台账已登记过网页,
    就原地覆盖原文件、复用同一 apiid(不新建任务、学生数据一条不丢);新增 qf_registry.py resolve
    一次取回 apiid + 原网页路径。改网页绝不再调 POST /api/cli/tasks。
    5. SKILL.md 新增《本地任务台账》《🔁 改网页 —— 复用同一个任务,绝不新建》《第 0 步:先起名 + 查台账》,
    并明确边界(能改页面,改不了云端任务标题)。
    6. 明确:非模板交付页面(小游戏等)须用 set-files 登记路径,否则下次"改网页"不知道改哪个文件。
  • 1.1.2(2026-09-17)
    1. 大屏"最新提交"顺序修复:接口按时间正序返回,原来取前 7 条导致最新一条排在最底部且被 overflow:hidden 裁掉、无法滚动。现改为按 submitted_at 倒序(最新在前)+ 列表可滚动(最多 12 条)。
    2. 大屏时间统一按北京时间(+8)显示:服务端 submitted_at 为 UTC,原来直接显示差 8 小时;趋势图也因时区错位把新提交挤出 60 分钟窗口。现统一换算(常量 TZ_OFFSET=8,可改)。
    3. 「今日提交」改为按北京日期统计,避免跨零点错位。
    4. 预览模式示例时间同步适配(demo 数据按 UTC 生成,展示仍为北京时间)。
  • 1.1.1(2026-09-17) 承接 1.1.0 修复,通过市场审核并上线。
  • 1.1.0(2026-09-17)
    1. 两个模板新增预览模式:未渲染时双击即可试(收集页出示例表单、大屏页用示例数据渲染),渲染后自动关闭、接真实数据。
    2. 大屏失败不再静默:改为红色横幅 + LIVE 灯转灰,并打印失败原因与当前请求地址。
    3. 明确「坑 1:必须带浏览器 UA」,并新增 references/qf_render.py(渲染 + 五项校验)与 references/qf_check.py(全链路自检)。
  • 1.0.0 首版。

常见问题

5 问
答案由本站依据条目字段整理
一句话数据收集器(QuickForm 数据大屏工坊)怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_a5827f21/quickform-datacollect。安装方式为未标注。装完刷新技能列表或重开客户端。

一句话数据收集器(QuickForm 数据大屏工坊)支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

一句话数据收集器(QuickForm 数据大屏工坊)权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

一句话数据收集器(QuickForm 数据大屏工坊)收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

一句话数据收集器(QuickForm 数据大屏工坊)用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。