agentsclimarketplace

Validation usability

Skill LuckyOneTwoThree/pm-skill/pm-03-design/skills/validation-usability

当需要辅助可用性测试时使用。可用性测试辅助工具,在测试前、中、后各阶段提供AI辅助支持:测试前生成任务脚本和招募问卷,测试后整理数据并生成洞察报告。注意:实际测试执行必须由人类研究员主持。关键词:可用性测试、任务脚本、招募筛选、问题聚类、洞察提炼、用户体验测试、测试任务。From its SKILL.md

Install
npx -y skills add LuckyOneTwoThree/pm-skill --skill validation-usability

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

13.0 KB, ~4.1k tokens by cl100k_base, as published. Nobody here has run it

可用性测试辅助

核心原则

  1. 用户行为比用户意见更真实——观察用户做了什么,而非听用户说了什么
  2. 5个用户发现85%的问题——可用性测试不需要大样本,5-8人即可发现主要问题
  3. 严重程度决定修复优先级——致命问题必须修复,次要问题可以排期
  4. 测试报告必须可行动——每个发现必须对应一个改进建议,不可行动的发现是噪音

基本信息

属性
Pipeline ID15
名称可用性测试辅助
执行模式👤→🤖 人类执行,AI辅助
输入假设地图 + MVP功能 + 测试目标

交互模式

🤖→👤 AI建议人类审批

输入

输入项类型必填来源说明
可用性测试计划objectoutput/pm-design/validation-assumption-map/assumption-map.json测试目标、假设地图、MVP功能
测试参与者object用户提供目标用户画像、招募筛选标准
测试任务场景objectoutput/pm-design/design-prototype/prototype.json待验证的可用性假设与任务脚本

执行步骤

⚠️ 重要说明

可用性测试是唯一必须由人类研究员主持执行的环节。AI在此流程中提供辅助支持:

阶段执行者AI辅助内容
测试前👤准备生成任务脚本、招募问卷、观察记录表
测试中👤执行人类研究员主持测试
测试后👤+🤖AI整理分析,人类审核确认

测试前 AI 辅助

Step 1: 确定测试目标

根据假设地图确定可用性测试目标:

{
  "test_goals": [
    {
      "goal_id": "TG001",
      "related_assumption": "A001",
      "goal_description": "验证用户能否顺利完成推荐内容浏览"
    }
  ]
}

Step 2: 生成任务脚本

规则: 每个任务对应一个待验证的可用性假设

{
  "task_script": [
    {
      "task_id": "T001",
      "task_description": "在3秒内找到一条感兴趣的推荐内容",
      "related_assumption": "A002",
      "success_criteria": "3秒内完成点击",
      "hints": ["提示信息(如需要)"]
    },
    {
      "task_id": "T002",
      "task_description": "将推荐内容分享给好友",
      "related_assumption": "A003",
      "success_criteria": "成功分享",
      "hints": []
    }
  ]
}

Step 3: 生成招募筛选问卷

筛选标准:

  • 目标用户画像匹配
  • 产品使用经验要求
  • 无利益冲突
{
  "recruitment_survey": {
    "screening_questions": [
      {
        "question_id": "SQ001",
        "question": "您是否使用过类似推荐功能的产品?",
        "options": ["经常使用", "偶尔使用", "从未使用"],
        "correct_answer": "经常使用|偶尔使用"
      },
      {
        "question_id": "SQ002",
        "question": "您每周使用推荐类产品的频率是?",
        "options": ["每天多次", "每天一次", "每周几次", "很少"],
        "correct_answer": "每天多次|每天一次|每周几次"
      }
    ],
    "target_sample_size": 8,
    "oversample_ratio": 1.25
  }
}

Step 4: 生成观察记录表模板

{
  "observation_template": {
    "participant_id": "",
    "test_date": "",
    "tasks": [
      {
        "task_id": "T001",
        "time_on_task": "秒",
        "success": true/false,
        "errors": ["错误描述"],
        "observations": "观察记录",
        "quotes": ["用户原话"]
      }
    ],
    "overall_notes": "整体观察"
  }
}

测试后 AI 辅助

Step 5: 测试记录结构化整理

将原始测试记录转换为结构化数据:

{
  "structured_records": [
    {
      "participant_id": "P001",
      "task_results": [
        {
          "task_id": "T001",
          "time_seconds": 5,
          "completed": true,
          "errors": [],
          "critical_incidents": []
        }
      ]
    }
  ]
}

Step 6: 问题自动聚类

聚类维度:

维度说明
严重程度致命/严重/一般/轻微
频率高频/中频/低频
影响环节导航/操作/反馈/内容

严重程度定义:

等级定义影响
致命 (P0)任务无法完成导致用户放弃
严重 (P1)任务需大量帮助严重影响效率
一般 (P2)任务有困难但完成影响用户体验
轻微 (P3)操作不便但可接受优化项
{
  "problem_clusters": [
    {
      "cluster_id": "PC001",
      "severity": "P1",
      "frequency": "3/8 用户",
      "affected_element": "推荐列表",
      "problem_description": "用户难以理解推荐内容的相关性",
      "evidence": ["证据1", "证据2"]
    }
  ]
}

Step 7: 洞察提炼

三类洞察:

类型说明示例
假设验证假设是否被验证A001假设成立/不成立/部分成立
设计修改需要调整的设计点推荐展示位置调整
未预期发现测试中发现的新问题/机会发现新的用户场景
{
  "insights": [
    {
      "type": "assumption_validation",
      "assumption_id": "A001",
      "result": "confirmed|rejected|partial",
      "evidence": "支持/反对的证据"
    },
    {
      "type": "design_changes",
      "element": "推荐列表",
      "change_needed": "需要增加解释文案"
    },
    {
      "type": "unexpected_findings",
      "description": "用户希望有筛选功能",
      "opportunity": "可作为后续迭代点"
    }
  ]
}

Step 8: 生成改进建议

优先级排序规则:

  1. P0问题 → 立即修复
  2. P1问题 → 高优先级
  3. P2问题 → 中优先级
  4. P3问题 → 低优先级
{
  "improvement_suggestions": [
    {
      "suggestion_id": "IS001",
      "suggestion": "在推荐内容旁增加「为什么推荐」的解释文案",
      "priority": "P1",
      "problem_ref": "PC001",
      "effort_estimate": "中",
      "expected_impact": "高"
    }
  ]
}

输出

存储路径output/pm-design/validation-usability/ 输出文件:usability_report.json

{
  "usability_report": {
    "test_summary": {
      "test_date": "2024-01-15",
      "participant_count": 8,
      "test_duration_minutes": 60,
      "test_goals": ["验证学员能否快速找到适合的课程", "验证课程播放器操作是否流畅"]
    },
    "problems": [
      {
        "problem_id": "P001",
        "severity": "P1",
        "frequency": "3/8",
        "affected_element": "课程推荐列表",
        "description": "学员无法理解推荐课程与自身学习进度的关联",
        "evidence": ["6/8学员表示不确定推荐依据", "3名学员跳过推荐直接搜索"]
      }
    ],
    "insights": [
      {
        "type": "assumption_validation",
        "assumption_id": "A001",
        "result": "confirmed",
        "description": "假设A001部分成立:学员关注推荐课程但需更多上下文信息"
      },
      {
        "type": "design_changes",
        "element": "课程推荐卡片",
        "change_needed": "在推荐卡片上增加「基于你的学习进度推荐」标签说明"
      },
      {
        "type": "unexpected_findings",
        "description": "学员期望按学习目标筛选课程而非仅看推荐",
        "notes": "可作为后续迭代增加学习目标筛选功能的依据"
      }
    ],
    "improvement_suggestions": [
      {
        "suggestion": "在课程推荐卡片增加推荐理由和学习进度匹配度展示",
        "priority": "P1",
        "problem_ref": "P001",
        "effort": "中",
        "impact": "高"
      }
    ]
  }
}

输出校验规则:详见下方输出校验规则章节

决策规则

情况处理方式
P0问题(任务无法完成)立即修复,阻塞发布
同一问题3/8以上用户遇到标记为高频问题,优先处理
假设被推翻更新假设地图,调整设计方向
测试参与者<5人结果仅供参考,建议补充测试

质量检查

检查项通过条件检查结果
问题严重程度分级P0/P1/P2/P3分级合理pass/fail
洞察假设关联洞察与假设地图有对应关系pass/fail
改进建议可执行建议明确、可操作pass/fail
数据完整性测试数据完整无遗漏pass/fail

降级策略

缺失的上游输入降级方案输出影响
原型数据缺失用户提供设计描述,生成测试脚本缺乏原型数据,测试任务可能不够精准
假设地图缺失用户提供设计描述,生成测试脚本缺乏假设地图数据,测试目标可能不够聚焦
原型+假设地图均缺失用户提供设计描述,生成测试脚本整体置信度降低,测试脚本可能不够完整
所有上游文件均缺失提示用户先执行前序阶段,或基于用户描述生成测试脚本输出仅为基本测试框架

输出校验规则

字段路径类型必填说明
usability_reportobject可用性测试报告
usability_report.test_summaryobject测试摘要
usability_report.test_summary.participant_countinteger参与者数量
usability_report.test_summary.test_goalsarray测试目标列表
usability_report.problemsarray问题列表
usability_report.problems[].problem_idstring问题唯一标识
usability_report.problems[].severitystring严重程度(P0/P1/P2/P3)
usability_report.problems[].frequencystring出现频率
usability_report.problems[].affected_elementstring受影响元素
usability_report.problems[].descriptionstring问题描述
usability_report.insightsarray洞察列表
usability_report.insights[].typestring洞察类型
usability_report.improvement_suggestionsarray改进建议列表
usability_report.improvement_suggestions[].suggestionstring建议内容
usability_report.improvement_suggestions[].prioritystring优先级
usability_report.improvement_suggestions[].problem_refstring关联问题ID

上游变更响应

上游变更影响

上游变更影响范围响应策略
原型变更(页面/交互修改)测试任务、测试脚本标注受影响的测试任务,建议人类确认是否更新测试脚本
假设地图变更(假设增删/评分变更)测试目标、假设验证项标注受影响的测试目标,建议人类确认是否调整测试重点
MVP范围变更测试范围标注受影响的测试范围,建议人类确认是否调整测试覆盖

下游通知机制

可用性测试报告变更类型通知范围通知方式
问题发现增删design-prototype、interaction-spec标记问题变更,触发原型和交互规范更新
假设验证结果变更validation-assumption-map、validation-mvp标记验证结果变更,触发假设地图和MVP范围更新
改进建议变更design-prototype标记建议变更,触发原型更新

使用示例

测试执行: 人类研究员主持,8名用户参与

AI辅助输出:

{
  "usability_report": {
    "test_summary": {
      "participant_count": 8,
      "test_goals": ["验证推荐内容发现性"]
    },
    "problems": [
      {
        "problem_id": "P001",
        "severity": "P1",
        "affected_element": "推荐列表",
        "description": "用户不清楚推荐内容的相关性"
      }
    ],
    "insights": [
      {
        "type": "assumption_validation",
        "assumption_id": "A002",
        "result": "rejected",
        "description": "假设被推翻:用户无法快速理解推荐逻辑"
      }
    ],
    "improvement_suggestions": [
      {
        "suggestion": "增加『为你推荐』的解释文案",
        "priority": "P1",
        "problem_ref": "P001"
      }
    ]
  }
}

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.