用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ZhangXin8069/configure --skill test命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Use when a user asks to create, apply, list, inspect, search, delete, amend, or rewrite Git tags, especially stab/dev/bug/test tags, subversions, snapshots, patches, or remote annotations.
当用户要求分析、解析、解读或梳理仓库结构、代码与文档关系、项目思路,或要求生成可追溯 的分析报告/PDF,或要为后续 agent 建立仓库整体参考时使用;输入 `{~analy ...}` 或 `{$...}` 时也使用。用户虽未说“分析”但目标是理解仓库全貌、代码对象或配置加载链时同样使用; 分析报告或其下游展示出现版式溢出、内容遮挡、页脚/列边界侵入时也使用。
当用户输入 `{~pure 主题}` 或 `{$用户输入}`,或要求穷尽/深挖项目核心、核心算法与竞争力、物理 图像、公式推导、代码与物理对应、精剖,或要为后续 agent 建立核心细节参考时使用;目标是把 项目最有价值的部分挖到底时,即使未明说“pure”也使用;核心细节在展示稿中出现公式、代码、表格 或流程遮挡/截断时也使用。
正在显示 SKILL.md
| name | test |
| description | 当用户要求测试、验证、回归、跑测试,检查上次 agent 产出,或指定项目进行测试时使用;“测试一下”、 “验证 agent 产出”等说法也触发本技能。 |
| metadata | {"openclaw":{"emoji":"🧪"}} |
遵循当前目录 AGENTS.md「技能执行公共契约」;仅按需读取技能正文与 reference。
对目标项目执行可复现、证据驱动的系统化测试:解析测试对象(默认上次 agent 生成的工作, 可指定)、制定通过标准、逐项执行并保存全部证据;失败按 debug 循环修复、通过按 optim 循环优化; 支持设备切换(GPU/CPU/NPU)与多精度切换(默认单精度)。
.agent.*.list(用户输入清单)
与 Git 最近提交/未提交改动推断工作内容与产物;用户可随时指定测试项目。按以下优先级推断(仅在当前工作目录内收集证据):
.agent.*.list(用户输入清单,格式参考 .agent.*.list 最新一份):ls -1t .agent.*.list 2>/dev/null | head -3 # 最近用户输入清单
cat "$(ls -1t .agent.*.list 2>/dev/null | head -1)" # 读最近一份(含任务描述)
清单内每条用户输入即任务描述:上次任务做了什么、涉及哪些文件/功能,即默认测试对象。 2. Git 最近提交与工作树改动:
git log --oneline -5
git show --stat HEAD | head -30 # 最近提交新增/修改的产物文件
综合以上证据形成测试对象清单(被测文件/功能 + 预期行为 + 通过标准), 在终端摘要中说明任务定义,并向用户输出确认。
无法确定时:一次性列出全部候选对象(最近清单/Git 提交或改动中出现的文件),向用户提问,不逐次追问。
{~test <对象>} 或直接说明("测试 bin/agent.sh"、"测试上次的优化改动"),
按用户指定执行;对象为具体文件/功能/改动区间(如 git commit/tag 区间)。# GPU(CUDA)
nvidia-smi -L 2>/dev/null && nvidia-smi --query-gpu=name,memory.total --format=csv,noheader
python3 -c "import cupy; print('cupy', cupy.__version__, 'devices', cupy.cuda.runtime.getDeviceCount())" 2>/dev/null
python3 -c "import torch; print('torch', torch.__version__, 'cuda' if torch.cuda.is_available() else 'cpu')" 2>/dev/null
# NPU(如华为昇腾,可用时列为候选)
python3 -c "import torch_npu; print('torch_npu available')" 2>/dev/null || echo "NPU: not available"
# CPU 核数
nproc
TEST_DEVICE=cuda|cpu|npu(默认 cuda 可用则 cuda,否则 cpu),
或测试配置传入;设备选定后仅写入产物元数据。TEST_PRECISION=fp32|fp64|fp16 切换(fp16 仅当设备支持时用,
注意数值范围与溢出风险)。dtype=float32 等)。_fp32.npy,或伴随元数据 JSON);arr.astype(np.float32)),转换规则显式记录;rtol=1e-5, atol=1e-7;
fp64 可收紧;fp16 放宽),容差与比较结果一并记录;git rev-parse --is-inside-work-tree && git rev-parse --abbrev-ref HEAD && git log -1 --oneline
bash -n <被测脚本> # shell 脚本语法校验
# 设备探测与精度设置(见「设备与精度管理」),在终端摘要中说明
逐项执行测试计划;每个测试项:
exit=N;test_out/intermediate/(含 dtype/设备标注),
保存记录在终端摘要中说明;存在失败项时,按 debug 技能方法论循环处理:
审视优化空间(执行速度、资源占用、精度稳定性),按 optim 技能方法论循环:
test_out/results/(含 dtype/设备标注与元数据);test_out/figures/(如错误随迭代收敛图、GPU/CPU 性能对比图、
多精度误差对比图等);项目无图表需求时注明"无图表";✓ 测试完成
对象: <测试对象任务定义,如 bin/agent.sh 用户输入记录功能>
环境: <git 分支/HEAD> | <设备: cuda:0 RTX4090 / cpu / npu> | <精度: fp32>
计划: <N 项测试> 通过 <M> 失败 <K>(跳过 <S>: 原因)
debug: <N 次迭代>(修复: <文件:行号> <说明>,无则省略)
optim: <N 次迭代>(基线 → 优化后,收益量化,无则省略)
产物: test_out/intermediate/ (N 文件), test_out/results/ (N 文件), test_out/figures/ (N 图)
遗留: <未覆盖项/风险/待用户确认项,无则省略>
声明前自检(证据先于断言):输出上述"通过 M"前,逐项核对 M 个通过项均有本次会话的运行输出(退出码/数值)为证;缺失证据的项改为"未验证"或补跑后更新。
| 场景 | 处理 |
|---|---|
| 测试对象无法确定 | 一次性列出全部候选(最近 .list/Git 提交或改动中的文件)提问确认,不逐次追问 |
无 .agent.*.list 且无 Git | 报告无证据,要求用户指定测试对象 |
| 指定对象不在工作目录 | 先向用户确认路径与访问权限(一次问全),不越界访问 |
| 无 GPU | 报告并 CPU 执行;注明精度限制(fp64 可用性等) |
| NPU 探测到但生态不熟 | 列为候选,经用户确认后使用 |
| 无 Python/CuPy/Torch | 报告;纯 shell 项目用 bash -n + 功能测试验证 |
| 测试失败 | 进入 debug 循环(复现→定位→最小修复→回归),循环直至成功或用户终止 |
| 多次 debug 迭代仍失败 | 检查证据是否不足或方向错误;向用户报告进展与下一步,不无限循环 |
| 优化收益微小 | 报告权衡(复杂度 vs 收益),由用户决定取舍 |
| fp16 溢出/精度不足 | 报告并回退 fp32;记录容差与误差 |
| 跨精度比较失败 | 核对容差设置与 dtype 转换路径,修正后重测 |
| 数据读写精度不一致 | 显式记录 dtype、统一转换规则(astype + 容差),复测 |
| 非数值项目 | 设备/精度项标注"不适用(非数值项目)",跳过不报错 |
| 产物目录已存在 | 时间戳/序号命名避免覆盖(如 test_out_2/),不覆盖已有产物 |
| 测试对象本身有 bug | 先 debug 修复再继续测试;Git 改动按公共契约检查,不自动提交或推送 |