用途:对一个技能(skill)做并行评估并据此迭代。输入为技能路径参数(SKILL_PATH = $ARGUMENTS),为空时向用户询问路径。
流程:先校验 SKILL_PATH/SKILL.md 是否存在,不存在则报错;读取 SKILL.md 并从前置元数据提取名称与描述。随后加载或创建评估集:若存在 SKILL_PATH/evals/evals.json 则读取并询问用户沿用、修改或新建;否则依据技能内容生成 2-3 个贴近真实用户表达的测试提示,包含文件路径与具体请求等细节,经用户确认后保存。评估格式含 skill_name 与 evals 数组,每条含 id、prompt、expected_output、expectations。
在工作区 SKILL_PATH-workspace 下按最高 iteration-N 递增创建 ITER_DIR。对每个评估,在同一轮并行派生两个子代理:带技能运行读取 SKILL.md 并按其指令完成任务,输出存入 eval-<id>/with_skill/outputs/;基线运行无特殊指令,输出存入 eval-<id>/without_skill/outputs/。运行期间起草可客观验证的量化断言,写入各评估目录的 eval_metadata.json,主观类结果(写作风格、设计质量)不作断言。完成后调用 skill-grader 代理,基于期望、transcript 与输出评分。
结果呈现:逐评估展示提示、带技能与基线的通过率对比、输出关键差异及评分反馈,并给出汇总表(Eval、With Skill、Baseline、Delta),询问用户意见。若用户有反馈,则概括而非过拟合个别用例、精简无效指令、解释改动原因、识别重复性工作并打包脚本、查看 transcript 是否浪费时间,编辑 SKILL.md 后可重新从设置工作区开始新一轮迭代;满意则结束。
错误处理:子代理超时则记录超时并评分已有输出;无输出则判定该次全部期望失败;技能存在语法错误需先修复;用户要求停止迭代则接受并总结当前状态。