skill/
├── SKILL.md (13.12 KB) - 技能主文档
├── references/ - 参考文档目录
│ ├── add_plan_cases.md
│ ├── add_plan_comment.md
│ ├── create_plan.md
│ ├── create_testcase.md
│ ├── exe_plan_cases.md
│ ├── export_story_cases.md
│ ├── query_case_exes.md
│ ├── query_plan_cases.md
│ └── search_cases_by_link.md
└── scripts/ - 脚本文件目录(文件解压位置)
├── tpm_skill_application.yaml
├── tpm_skill_darwin_amd64
├── tpm_skill_darwin_arm64
├── tpm_skill_linux_amd64
└── tpm_skill_windows_amd64.exe
TPM Skill 是测试用例管理平台(TPM)面向 AI 场景的命令行工具集,旨在打通 TPM 平台与日常开发工作流。通过将平台能力封装为可供 AI 直接调用的命令,让测试用例融入编码、自测和评审的各个环节,助力测试驱动开发(TDD)。
> 当前支持的功能请参考下方 支持功能 列表,更多平台能力正在持续接入中。
在执行任何命令之前,必须严格遵守以下规则:
-user 参数(用户ID):如果配置文件中已保存了 auth.user,则 -user 可省略,无需询问。仅当配置文件中 auth.user 为空且用户未在命令中提供时,才需主动询问。在同一轮对话中,如果用户已经提供过用户ID,后续命令可以复用,无需重复询问-output 参数(输出目录):可选参数,用户未指定时默认为当前工作目录,无需询问示例交互流程:
加载本 Skill 时,需要检查是否需要更新。 通过版本缓存机制避免频繁重复更新:
SKILL_DIR/update_cache.txtauth.user 为空,必须先向用户询问用户IDauth.user,则 -user 参数可省略⚠️ 执行更新命令之前,必须先向用户输出以下温馨提示:
> 🔔 温馨提示:首次运行时,公司安全软件 iOA 可能会弹出网络访问确认窗口。如果您看到 iOA 弹窗,请点击「允许访问」即可,程序会自动重试完成操作。允许一次后,后续将不会再弹出。
# Windows(PowerShell)— 禁用进度条避免干扰,设置 UTF-8 编码避免中文乱码;通过 Tee-Object 同时输出到终端和文件
$ProgressPreference = 'SilentlyContinue'; [Console]::OutputEncoding = [System.Text.Encoding]::UTF8; cmd /c """<可执行文件路径>"" update [-user <用户ID>]" | Tee-Object -FilePath "SKILL_DIR\update_output.txt"
# Linux / macOS(tee 同时输出到终端和文件)
<可执行文件路径> update [-user <用户ID>] | tee "SKILL_DIR/update_output.txt"
其中 SKILL_DIR 为本 Skill 目录(即 SKILL.md 所在目录)的绝对路径。上述命令会同时在终端实时显示输出(方便用户看到 iOA 提示并及时处理)并写入文件供后续读取判定。
参数说明:
| 参数 | 必填 | 说明 |
|---|---|---|
| ------ | ------ | ------ |
-user | 配置文件中已设置 auth.user 时可省略 | 用户ID,命令行优先于配置文件 |
🔴 更新命令执行完毕后,必须读取 SKILL_DIR/update_output.txt 文件的内容,在其中搜索以下关键词,对号入座:
| 输出中搜索到的关键词 | 判定 | 操作 |
|---|---|---|
| --- | --- | --- |
http_status_code=403 | iOA 拦截 | 立即停止,禁止继续执行任何命令,按下方 🛡️ iOA 拦截处理规则 操作 |
已是最新版本 或 更新成功 | 更新成功 | 写入版本缓存后,继续响应用户的实际需求 |
| 以上关键词均未找到 | 其他失败 | 向用户简要说明更新失败,使用当前版本继续 |
📝 写入版本缓存:当判定为"更新成功"时,必须将当前 Unix 时间戳写入 SKILL_DIR/update_cache.txt(覆盖写入),格式为纯数字的 Unix 时间戳(秒),例如 1745308800。这样下次加载 Skill 时就能通过缓存判断是否跳过更新。
> 🚨 注意:http_status_code=403 的优先级最高。即使输出中同时包含"更新失败"等其他文字,只要找到 http_status_code=403 就必须判定为 iOA 拦截。
🚫 更新命令仅允许执行一次,无论结果如何,严禁再次执行。
公司安全软件 iOA 会拦截未放行程序的首次联网请求,返回 HTTP 403。程序已内置自动重试机制(5 次,每次间隔 6 秒),用户在 iOA 弹窗中点击「允许访问」后即可自动恢复,允许一次后后续不再拦截。
当任何命令的输出中检测到 http_status_code=403 时,必须判定为 iOA 拦截,并执行以下规则:
预编译的可执行文件位于本 Skill 目录下的 scripts/ 子目录中,即相对于本文件的路径为 scripts/。
> 重要提示:scripts/ 目录下共有 6 个可执行文件。某些文件浏览工具可能无法列出 .exe 文件,请勿因工具未显示而判断文件不存在。请直接根据下表中的文件名拼接完整路径使用,无需额外验证文件是否存在。
根据操作系统和架构选择对应的可执行文件(完整文件名列表):
| 平台 | 架构 | 完整文件名 | 文件路径(相对于本 Skill 目录) |
|---|---|---|---|
| ------ | ------ | ----------- | ------------------------------- |
| Windows | amd64 | tpm_skill_windows_amd64.exe | scripts/tpm_skill_windows_amd64.exe |
| Linux | amd64 | tpm_skill_linux_amd64 | scripts/tpm_skill_linux_amd64 |
| macOS | amd64 (Intel) | tpm_skill_darwin_amd64 | scripts/tpm_skill_darwin_amd64 |
| macOS | arm64 (Apple Silicon) | tpm_skill_darwin_arm64 | scripts/tpm_skill_darwin_arm64 |
文件选择规则:
windows 且以 .exe 结尾linux,无扩展名darwin,无扩展名amd64 对应 x86_64 / Intel 64 位,arm64 对应 ARM 64 位(如 Apple Silicon)每次加载本 Skill 时,必须在执行更新命令之前,先检查 Token 和用户 ID 的配置状态并自动处理。
SKILL_DIR/scripts/tpm_skill_application.yaml 文件auth.token 的值是否为空字符串 ""auth.user 的值是否为空字符串 ""场景 A:Token 为空(首次使用)
向用户输出以下提示,并等待用户提供 Token:
> 🔑 检测到尚未配置 API 访问令牌(Token)。首次使用需要配置 Token 才能正常调用平台接口。
>
> 请提供您的 API 访问令牌,我会自动帮您保存到配置文件中,后续使用无需重复配置。
用户提供 Token 后,直接将 Token 写入配置文件:
SKILL_DIR/scripts/tpm_skill_application.yamltoken: "" 替换为 token: "<用户提供的Token>"场景 B:Token 已配置(非空)
无需任何操作,直接跳过。
场景 C:用户 ID 为空
如果用户在当前对话中提供了用户 ID(例如执行 update 命令时),自动将用户 ID 持久化到配置文件:
SKILL_DIR/scripts/tpm_skill_application.yamluser: "" 替换为 user: "<用户提供的用户ID>"如果用户在当前对话中未提供用户 ID,暂不处理,等到首次执行命令时再询问并保存。
场景 D:用户 ID 已配置(非空)
无需任何操作,直接跳过。
> 💡 用户也可以通过命令行 -token 和 -user 参数临时传入,命令行参数优先级高于配置文件。
SKILL.md 所在目录),记为 SKILL_DIRSKILL_DIR/scripts/<完整文件名>,直接执行即可> ⚠️ Windows 执行注意事项:在 Windows 上必须使用 cmd /c 来执行,避免 PowerShell 将 stderr 输出转换为 CLIXML 格式导致显示乱码。
> 📄 输出文件规则:所有命令执行时都必须通过 Tee-Object(Windows)或 tee(Linux/macOS)将输出同时写入终端和 SKILL_DIR 下的 txt 文件。命令执行完毕后必须读取该 txt 文件内容,根据关键词判定执行结果。具体的输出文件名和判定规则请参见各命令的参考文档。
# Windows(PowerShell)— 通用格式
$ProgressPreference = 'SilentlyContinue'; [Console]::OutputEncoding = [System.Text.Encoding]::UTF8; cmd /c """<可执行文件路径>"" <命令> [参数]" | Tee-Object -FilePath "SKILL_DIR\<命令名>_output.txt"
# Linux / macOS — 通用格式
<可执行文件路径> <命令> [参数] | tee "SKILL_DIR/<命令名>_output.txt"
| 功能 | 命令 | 说明 | 参考文档 |
|---|---|---|---|
| ------ | ------ | ------ | ---------- |
| 导出需求测试用例 | export-story-cases | 根据需求ID导出关联的测试用例列表为 Markdown 文件 | export_story_cases.md |
| 查询用例执行记录 | query-case-exes | 根据用例ID查询最近60天的执行记录并导出为 Markdown 文件 | query_case_exes.md |
| 创建测试用例 | create-testcase | 在指定用例库和目录下创建测试用例 | create_testcase.md |
| 搜索用例 | search-cases-by-link | 按条件搜索用例并导出为 Markdown 文件 | search_cases_by_link.md |
| 创建测试计划 | create-plan | 在指定用例库下创建测试计划 | create_plan.md |
| 向计划添加用例 | add-plan-cases | 向指定测试计划中批量添加用例(异步) | add_plan_cases.md |
| 执行计划用例 | exe-plan-cases | 批量更新指定计划下用例的执行状态 | exe_plan_cases.md |
| 查询计划用例列表 | query-plan-cases | 查询计划下的用例列表并导出为 Markdown 文件 | query_plan_cases.md |
| 添加计划评论 | add-plan-comment | 为计划中的执行用例添加评论 | add_plan_comment.md |
共 5 个版本