agentsclimarketplace

Validation usability

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

102 AI Agent Skills for the full product lifecycle. Compatible with Trae / Claude Code. 9 modules from discovery to launch to growth. | 102 个覆盖产品全生命周期的 AI Agent Skills,兼容 Trae / Claude Code,9 大模块从探索发现到上线增长。

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.

What its author says it does

Copied from the file, not written here

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

SKILL.md

13.0 KB, 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"
      }
    ]
  }
}

Keep looking

Skills are one crate of 328,083. 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.