skills/skill-tester-yashu/SKILL.md
对指定 Skill 进行真实运行测试(正常场景),输出测试报告。激活条件:用户消息必须包含以下关键词之一--`skill真实测试`、`跑一下这个skill`、`测试这个skill`、`真实测试skill`、`skill功能测试`。
npx skillsauth add steelan9199/wechat-publisher-skill skill-tester-yashuInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
对任意 Skill 进行真实运行测试,按"正常"单阶段执行(阶段0预检 + 阶段1正常场景)。
每完成一个阶段立即输出一份可见报告,避免用户长时间等待无产出。
| 变量 | 含义 |
| ------------------- | -------------------------------- |
| $SKILL_DIR | 本 skill(skill-tester)所在目录 |
| $TARGET_SKILL_DIR | 用户指定的被测试 skill 目录 |
;,禁止使用 && 或 &)$SKILL_DIR/scripts/check.js$TARGET_SKILL_DIR| 前置条件 | 说明 |
| ---------- | --------------------------------------------------- |
| Node.js | >=18.20.8,用于运行 $SKILL_DIR/scripts/check.js |
| 目标 Skill | $TARGET_SKILL_DIR/SKILL.md 必须存在且可读 |
| 脚本 | 功能 |
| ----------------------------- | ----------------------------------------------------------------------------- |
| $SKILL_DIR/scripts/check.js | 校验目标 skill 结构与 frontmatter 合法性(功能清单由主 AI 在阶段 0 自行分析) |
| 规则 | 说明 | | -------------- | ------------------------------------------------------------------------------------------------------------ | | 全量覆盖 | 必须为阶段0识别出的每一个功能生成并执行测试场景,任何功能不得跳过(无适用场景需在报告中标注原因) | | 分阶段交付 | 每阶段结束后必须立即输出报告,禁止连续执行多个阶段而不向用户汇报 | | 严格串行 | 同一阶段内的所有场景必须逐个执行,禁止并发 | | 真实执行 | 子 agent 必须真实调用目标 skill 的工具/API/脚本,禁止模拟 | | 凭证失效即熔断 | 预检或执行中出现凭证失效,立即终止依赖该凭证的后续场景 | | 脱敏显示 | 报告中的 token、secret 等敏感字段仅保留前后各 4 个字符 | | 产出物对比 | 仅阶段1(正常场景),对每个功能采集"预期输出"与"实际输出"并做匹配判定,详见产出物对比规则 |
| 用户输入触发词 | AI 执行动作 | | ----------------------------------- | ---------------------------------------------------------------------- | | "skill真实测试" / "跑一下这个skill" | 启动分阶段测试:先静态检查与凭证预检,再执行正常场景并输出第一阶段报告 |
| 文档 | 内容 | | ------------------------------------------------------------- | ----------------------------------- | | 检查脚本说明 | check.js 参数、输出结构与功能解析 | | 依赖检测指南 | 外部依赖识别、索要话术、凭证预检 | | 测试执行指南 | 分阶段执行、子 agent 协议、熔断机制 | | 评判标准指南 | 契约验证与通用维度评分 | | 报告模板 | 各阶段报告格式与模板变量 |
| 阶段 | 名称 | 执行内容 | 输出报告 |
| ----- | -------- | ---------------------------------------------------------------------- | ------------------------------------------------------ |
| 阶段0 | 预检 | 确认目标目录、运行静态检查、检测外部依赖、索要缺失凭证、预检凭证有效性 | 预检摘要(直接输出,不写入文件) |
| 阶段1 | 正常场景 | 为每个功能生成并执行 NORMAL 场景 | $TARGET_SKILL_DIR/{skill-name}-test-report-normal.md |
核心原则:测试是真实运行,不是静态分析。但用户可见的产出必须分阶段交付,禁止长时间无输出。
阶段0 必须从目标 skill 的 SKILL.md 中提取完整的可测试功能列表,作为后续测试的基准。
AI 从文档内容自主推断 > 全脚本索引清单(表格) > 触发映射表(表格)
SKILL.md 全文,从功能概述、使用方式、脚本文档索引等所有章节中提取可测试的功能点预检摘要中必须列出完整的功能列表,格式:
功能列表:
1. 功能名称A - 来源: AI分析, 脚本清单 - 对应脚本: xx.js - 预期输出: {产出描述}(来源: SKILL.md声明/AI推断)
2. 功能名称B - 来源: 触发映射 - 对应脚本: yy.js - 预期输出: {产出描述}(来源: SKILL.md声明/AI推断)
...
仅适用于阶段1(正常场景)。对每个功能的产出物进行"预期输出 vs 实际输出"对比,让用户一眼看到 skill 的真实产出效果。
| 优先级 | 来源 | 标注 |
| ------ | ---------------------- | ---------------- |
| 1 | 目标 SKILL.md 明确声明 | (SKILL.md声明) |
| 2 | AI 基于功能描述推断 | (AI推断) |
| 产出类型 | 记录方式 | | ---------- | -------------------------- | | 文本类 | 直接记录文本内容 | | 链接类 | 记录完整 URL(不下载) | | 文件类 | 记录本地绝对路径(不复制) | | 结构化数据 | 记录 JSON 或关键字段 |
| 判定 | 条件 | | -------- | -------------------------------------------------------- | | 一致 | 实际输出的类型、核心内容与预期吻合 | | 部分一致 | 方向一致但存在偏差(格式略不同、部分字段缺失) | | 不一致 | 明显不符(预期返回数据但返回错误、预期生成文件但未生成) |
从宽判定:只有明显不符才标"不一致",模糊地带标"部分一致"。判定须附简要说明。
详细判定标准参考 评判标准指南 第四节"产出物匹配判定"。
$TARGET_SKILL_DIR 存在且包含 SKILL.mdcd "$SKILL_DIR/scripts"; node check.js "$TARGET_SKILL_DIR"SKILL.md,按照「功能识别规则」提取所有可测试功能,输出功能列表预检摘要输出后,立即进入阶段1。
结束话术:
第一阶段「正常场景」测试已完成,报告已保存至:{report-path}
测试结束。
| 场景 | 处理方式 |
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| $TARGET_SKILL_DIR 不存在 | 提示用户路径无效,要求重新输入 |
| $TARGET_SKILL_DIR 无 SKILL.md | 提示该目录不是有效的 skill,终止测试 |
| $SKILL_DIR/scripts/check.js 不存在 | 提示 skill-tester 自身安装不完整,请重新安装 |
| check.js 执行失败(非零退出码) | 检查 Node.js 是否可用,报告错误 |
| check.js 返回内容不是合法 JSON | 输出原始 stderr 到报告,标注脚本异常 |
| AI 阶段0未识别到任何功能 | 在阶段1报告中标注"无可测试功能",终止测试 |
| 用户拒绝提供必需凭证 | 依赖该凭证的场景标记为"跳过(缺凭证)",其余场景正常测试 |
| 凭证预检:所有必需凭证均失效 | 直接终止测试,生成预检报告,标注"因基础凭证失效,测试终止" |
| 凭证预检:部分凭证失效 | 失效凭证相关的场景标记"跳过(凭证失效)",有效凭证覆盖的场景正常测试 |
| 执行中凭证失效(熔断触发) | 当前场景若已完成执行标记为"失败(凭证失效)",若尚未执行标记为"跳过(凭证失效)";后续依赖该凭证的场景标记"跳过(凭证失效)",已执行场景证据保留,生成报告 |
| 子 agent 执行超时或无响应 | 标记该场景为"失败(执行异常)",记录已采集的部分证据,继续下一个场景 |
| 子 agent 返回内容无法解析 | 将原始返回作为证据保留,判定为"失败(输出不可解析)" |
| 检测到授权保护信号 | 立即终止测试,记录触发输出到报告,标注"因授权保护,测试终止" |
用户:测试 feishu-docx 这个 skill
AI:
1. 阶段0:预检通过,功能列表 [上传Markdown, 下载Markdown, 解析链接, 获取token]
2. 阶段1:执行 4 个 NORMAL 场景 -> 生成 feishu-docx-test-report-normal.md
-> 测试结束
content-media
自动启停视频课程录制所需的辅助程序。激活条件:用户消息须包含以下关键词之一:`我要录制视频课程`、`开始录制视频课程`、`准备录课`、`视频课程录完了`、`录课结束`、`停止录制`。
content-media
生成扁平的 SVG 图(架构图、中心辐射图、流程图、简易时序图、思维导图、组织架构图、2×2对比矩阵、时间线、循环图、鱼骨图),也支持把已有 SVG 文件转成 PNG 图片。激活条件(满足任一即可):生成类关键词 `画架构图`、`画中心辐射图`、`画流程图`、`画时序图`、`画思维导图`、`画脑图`、`画组织架构图`、`画树形图`、`画对比矩阵`、`画四象限`、`画时间线`、`画循环图`、`画鱼骨图`、`画因果分析图`;转换类关键词`SVG 转图片`、`把 SVG 转成图片`、`把 SVG 转成 PNG`。
testing
检查指定技能文档中的废话文字并输出诊断报告。激活条件:用户消息须包含以下关键词之一:`检查技能废话`、`这个技能文档有没有多余内容`、`清理技能文档废话`、`审查技能文档废话`、`清理技能文档历史说明`。
testing
评审一个技能是否「自包含」——即其知识、经验、规范是否全部内置在技能文件内(SKILL.md + references/),不依赖特定 AI 客户端专有的知识接口命令(如 read_me / modules: / show_widget / Visualizer)去外部拉取,也不硬编码某个 AI 软件的私有路径(如 .workbuddy)。同时检查工具依赖(node、浏览器、命令行)是否仅作为用户自备工具声明、未写死私有路径。当用户要求「评审这个技能是否自包含 / 独立」「检查技能知识是否内置」「审查技能的独立性 / 可移植性」「audit / review a skill for self-containment」时触发。产出评审报告:结论(自包含 / 不独立)+ 问题清单(文件:行号 + 引用的外部依赖 + 为何影响独立性)+ 整改建议。