mcpField
C
create-verification-skill

create-verification-skill

github.com/mdsmithaustin测试与质量8156 次安装今天更新
代码仓库

关于 create-verification-skill

create-verification-skill 是一项 Agent 技能,用于生成针对特定代码库的应用验证技能,并采集行为证据。它从代码库提取启动、交互和观察步骤,并要求端到端运行生成的流程。

主要功能

  1. 01检查应用界面与启动方式
  2. 02生成代码库专属验证技能
  3. 03梳理用户功能及状态
  4. 04定义证据采集与清理方法
  5. 05运行生成的验证流程

适用场景

  1. 01为代码库添加可重复的应用检查
  2. 02记录 Agent 如何操作 CLI 或界面
  3. 03为面向用户的功能采集证据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mdsmithaustin/pstack --skill create-verification-skill

安装后在 Claude Code 中输入/create-verification-skill确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/feature-map-example/
create-note.md
README.md
search.md

详细介绍

创建验证技能

每个严肃的项目都需要一种脚本化方式来驱动真实应用并验证其行为:启动应用,像用户一样体验某项功能,并采集证据。此技能会针对代码仓库生成一个项目本地技能(.agents/skills/verify-<app>/)。你要编写生成器的输出,供下一个 Agent 使用,而不是给人类阅读:它会由一个从未见过该应用的 Agent 在任务进行中直接读取。

1. 了解代码仓库,而非询问用户

从代码库中寻找以下问题的答案,只询问用户无法观察到的内容:

  • 界面: 用户实际会接触什么?Web UI、CLI/TUI、桌面应用、API、移动应用,还是库?代码仓库可能包含多个界面;选出主要界面,并注明其他界面。
  • 运行: 如何在本地启动应用?优先采用代码仓库文档中记载的开发命令(package scripts、Makefile、README 快速入门)。注明端口、环境变量、种子数据和身份验证方式。
  • 驱动: Agent 如何以编程方式与应用交互?先检查现有测试框架——Playwright/Cypress 测试、expect 脚本、PTY 辅助工具、可用 curl 访问的端点、调试端口等。只有在没有现成方案时,才选择通用方案:Web 和 Electron 使用浏览器/CDP,CLI/TUI 使用 tmux/PTY 框架,服务使用普通 HTTP。
  • 观察: 可以采集哪些证据?屏幕截图、终端记录、响应正文、日志、退出码、数据库状态。
  • 隔离: 能否让两个实例并行运行(端口、数据目录、配置文件)?如果不能,就在生成的技能中说明:拒绝同时驱动共享实例,也好过破坏用户会话。

如果当前检出版本无法构建或启动,请先修复(或准确报告问题),再生成技能;针对有问题的基础编写的技能会教错步骤。如果某项无关的缺失资源阻碍了启动(例如 API 从未提供的静态目录、示例配置),生成的技能可以创建它,但必须明确标记为验证脚手架,并在清理时将其移除。

2. 生成技能

编写 .agents/skills/verify-<app>/SKILL.md,然后将技能目录链接到当前使用的 CLI 可发现技能的目录(npx skills 安装时会维护这些目录),确保每个 CLI 都能找到它。使用 YAML frontmatter(包含 name: verify-<app>,以及一个说明应用、界面和适用场景的 description;没有 frontmatter,技能就永远不会注册),并包含以下各节,每节都必须以访谈实际发现的内容为依据(不能留下占位符):

  • 启动: 启动应用以进行验证的确切命令,以及如何判断应用已就绪(例如日志行或提示符)。从空数据目录启动后,应用必须达到可用状态,包括完成任何迁移并填充种子数据。就绪意味着可以使用,而不只是进程有响应。数据库健康检查可能通过,但初始化脚本仍在运行。包含关闭步骤。对于生命周期较短的 CLI 或 TUI,无需让服务保持运行:启动意味着构建一次二进制文件(或安装依赖),然后在独立的 PTY 或 tmux 会话中启动每次驱动。
  • 诊断: 一个只读检查,用于回答“这个实例值得驱动吗?”——进程正在运行、版本或构建正确、端口由本实例占用、身份验证有效。每当出现异常时,Agent 都应先运行此检查。
  • 驱动: 使用本仓库中的真实选择器或命令编写的测试框架操作步骤,而非示例。优先使用稳定的句柄(ARIA 标签、data 属性、提示字符串、路由路径),而非坐标和 Tab 键顺序。
  • 证据: 说明要为证明捕获哪些内容,以及保存位置。明确证明标准:运行真实用户路径,而非内部 setter 或仅供测试使用的端点;捕获操作和操作后的状态,而不只是最终屏幕;验证可见内容之外的副作用(写入的文件、插入的行、发送的消息);仅在生产边界已隔离外部系统时使用模拟。若安全路径是 dry-run 或测试模式,应通过观察实际跳过的内容(文件、网络、Git 引用)来验证,而非相信模式名称:某些 dry-run 仍会访问网络或打开浏览器。
  • 清理: 说明如何关闭本次运行创建的实例。绝不要按进程名称结束进程;只结束自己启动的进程。清理时移除实例和临时状态,但绝不删除证据:证明产物必须在清理后保留,并存放在技能中注明的位置。
  • 辅助工具: 技能附带的任何脚本都必须可执行,并且技能正文中要展示其调用方式。需要读者自行逆向分析的工具不算辅助工具。

3. 填充功能图谱

创建 .agents/skills/verify-<app>/features/README.md,并为可识别的每个面向用户的功能创建一个文件(先从路由、命令、菜单或文档中挑选 3–5 个主要功能)。遵循 references/feature-map-example/ 中的结构,包含 README 索引和每个功能对应的文件。从用户视角出发,每个文件都要说明:功能是什么、如何访问、如何使用测试框架驱动,以及什么可观察的最终状态能够证明功能正常。四个二级标题分别为 Sub-features、How to get to it (user POV)、Driving it with <harness> 和 Gotchas。如果种子数据缺少某段操作流程所需的前置条件,该流程应报告失败,并在相应功能的 Gotchas 中说明原因。绝不要为了让流程通过而降低标准。此图谱是仓库维护的验证依据;若图谱列出了多个入口,只验证一个方便的入口并不完整。

对于 UI 功能,在 Sub-features 下列出每个元素的相关状态。考虑空、加载中、错误、有数据、部分数据、溢出、零项、一项、多项和长文本等状态,并为每个适用状态提供一种触发方式和驱动说明中的可观察通过条件。检查时应记录证据或明确指出缺口。跳过该功能不可能出现的状态。

4. 交付前证明生成的技能有效

端到端运行一次技能自身的指令:启动、运行 doctor、驱动一个已映射功能(一个就够;这份映射是为了后续运行覆盖其余功能)、收集证据、清理。清理后,确认指定位置仍有证据——如果清理操作删除了证据,就不算通过此步骤。修复所有失败之处,并且每次迭代失败后都运行生成的清理操作,以免失败的尝试遗留进程和端口。未经实际运行的生成技能只是草稿,不是可交付成果。如果你是在真实目标的替代环境中验证的(例如用容器代替全新的 VM,用本地技术栈代替远程技术栈),请列出替代环境执行、而目标环境不会执行的所有设置步骤。在真实目标上运行并覆盖这些步骤之前,它们都仍未经过验证。

5. 提供维护流程

引导用户使用 /maintain-verification-skill,以便在应用发生变化时保持映射准确。只有在用户询问时,才建议维护周期。

评论

支持 Markdown