弹窗问答测试引擎
一、为什么用"弹窗问答"做测试
弹窗问答(用户在选项中点选,而非自己打字组织语言)相比自由输入有天然优势,特别适合"测试"场景:
- 认知负担低:不用想"该怎么回答",直接选;
- 答案结构化:选项天然可计分、可分类、可统计;
- 引导性强:不会答非所问、跑题;
- 游戏化体验:逐题推进 + 实时反馈,比干巴巴问卷有趣。
本 Skill 把这种形态封装成通用测评引擎:主框架负责"确认→出题→弹窗逐题→实时计分→反馈报告",测评内容由可插拔的实际测评类型承载。
二、支持的测评类型(做实,不做务虚的"考试模拟")
| 类型 | 触发示例 | 内容形态 | 关键边界 |
|---|---|---|---|
| ① 知识测验 | "考我 Python 基础""出几道历史题" | 指定主题出单选/多选,逐题判分+解析 | 题库真实性(见红线) |
| ② 技能/掌握度自测 | "测测我的 Excel 掌握度" | 学完某技能后检验理解,输出薄弱点诊断 | 与①区分在"诊断反馈"而非单纯打分 |
| ③ 性格/职业倾向 | "测测我的性格""我适合什么职业" | 参考大五人格/兴趣模型简化量表,输出倾向画像+适配建议 | 注明参考向、非诊断 |
| ④ 决策辅助测评 | "该不该换工作""二选一帮我理清" | 系列加权追问,输出决策卡(选项×维度评分) | 不替用户做重大人生决策 |
| ⑤ 健康/生活习惯自评 | "测测我的生活习惯健康吗" | 睡眠/运动/饮食/压力多维筛查,输出改善建议 | 注明非医疗、不替代医生 |
> 长尾方向(如"沟通风格""时间管理倾向")可作为③的扩展参数,不单独堆死代码,避免臃肿。
三、标准流程
- 确认(弹窗/文本):
- 测评类型(①~⑤,可让用户从列表选);
- 主题(如"Python 基础""大五人格""睡眠质量");
- 题量节奏(见第八节内置选项)。 - 出题:
- 优先从references/assessment-library.md取内置真实量表/题;
- 冷门主题 → 联网检索权威公开题库/量表文献,整理成题;AI 现编题须标注「生成题·建议核对」;
- 逐题构造选项(含"不确定/不适用"等安全选项)。 - 逐题作答(核心交互):
- WorkBuddy 等支持弹窗的客户端:用弹窗逐题点选;
- 不支持弹窗的客户端:降级为纯文本逐步提问,每题列出选项编号,让用户回复"1/2/3";
- 单测控制在题量上限内,可分页,避免疲劳。 - 实时计分:按题型计分(单选对错、多选部分分、量表维度分、决策加权分)。
- 反馈报告:呈现得分/解析/倾向画像/薄弱点/改善建议;按用户选择决定是否导出 MD。
四、红蓝对抗固化(设计阶段已解决)
- 🔴 平台绑定(R15 最关键):弹窗是 WorkBuddy 的提问能力,Claude/Cursor 等无弹窗。
→ 已在流程第 3 步内置"纯文本降级"分支,功能不丢;SKILL.md 描述"使用当前环境的用户交互提问能力",不写死某平台。 - 🔴 题库不能胡编:内置模板取自公认模型(大五人格简化、健康筛查常见维度等);冷门主题联网取权威源;AI 现编题强制标注待核对。
- 🟡 主观测试科学性:③/④/⑤ 强制免责声明(参考模型、娱乐/自我觉察用、不替专业诊断或重大决定)。
- 🟡 计分逻辑分题型:主框架统一计分描述,各类型套用,避免混算。
- 🟡 过度融合臃肿:5 类主框架 + 长尾参数化,不堆死代码。
- 🟢 弹窗疲劳:题量上限 + 分页(见第八节)。
- 🟢 数据隐私:测试答案不持久化真实身份,报告用相对参数。
五、红线(P0/P1)
- 医学/心理安全责任(P0):③性格类、⑤健康类必须注明"参考模型、非临床诊断/非医疗建议,严重问题请就医或咨询专业人士";不输出诊断结论。
- 不替重大人生决策(P0):④决策辅助只给结构化参考,不替用户决定"你该怎么做"。
- 题库真实(P1):AI 现编题必须标注「生成题·建议核对」;不得把编造题伪装成权威题。
- 不持久化身份(P2):不在 Skill 内写文件留存用户真实个人信息。
六、适用边界
- 面向:想做结构化自测的个人用户(健康成年、普通自我觉察/学习/生活决策场景)。
- 不含:临床诊断与处方、竞技运动员选拔、教育考试代考、任何需持证专业资质的判断。
- 降级可用:无联网时仅用内置模板;无弹窗客户端自动转纯文本。
七、跨平台与相对路径(R15)
- 题库/量表文件:
references/assessment-library.md(技能目录相对路径,禁止硬编码~/.workbuddy等平台独占绝对路径)。 - 安装/运行说明见
USAGE.md,给出 WorkBuddy(~/.workbuddy/skills/)、Claude(~/.claude/skills/)、Cursor(~/.cursor/skills/) 等多客户端示例。 - 不绑定平台独占 MCP / 工具。
- 自检:删掉所有平台独占路径与字眼后,本 Skill 功能仍完整可用 ✅。
八、内置可选项(功能内置,向用户解释并让其选择)
A. 报告输出方式(默认对话内展示,用户可选导出):
- 对话内展示:直接在当前对话给出报告卡片;
- 导出 MD:生成一份 测评报告_YYYYMMDD.md 到用户指定目录,便于留存。
B. 题量节奏(默认标准版,用户可选):
- 快速版:约 5 题,碎片时间快速测;
- 标准版:约 15 题,较完整覆盖;
- 自定义:用户指定题数(建议 3–30)。
> 触发时主动说明这两个选项并让用户选,不要替用户默认到底。
九、输出样例(知识测验片段)
第 3/10 题(知识测验·Python 基础)
Q:以下哪个是可变数据类型?
1. tuple
2. list
3. str
4. 不确定
→ 用户选 2
✓ 正确!list 是可变序列,tuple/str 为不可变。
十、与其他 Skill 的边界(软路由)
- 与"健身方向指导教练":本引擎做通用测评,不含健身专项规划;若用户说"测测我的体能"可引导至健身 Skill 或按⑤健康自评处理。
- 与"电影口碑雷达":无重叠。
- 触发冲突时:以"测评/测验/出题/测一测"为主路由词,避免抢触发。