skills的check与test:双模型交叉评审+验收标准AC溯源,让AI代码上线前双重验证
【免费下载链接】skillsAgentic Development skills behind the JS Mastery workflow项目地址https://gitcode.com/gh_mirrors/skills45/skills点击查看免费下载在 skills 这个开源工程工作流里check和test是 AI 代码上线前的两道闸门check负责验证改动真的能跑、并由另一个模型交叉评审test负责给改动写出可回溯到验收标准AC的测试套件。两者配合构成一套行为验证 独立复核 契约溯源的双重验证机制帮新手也能把 AI 写出的代码放心地合并进项目。这套技能遵循 Agent Skills 开放格式每个阶段一个技能状态全部落在文件里而不是聊天里所以工作可以跨会话、跨成员延续。本文带你读懂check与test到底做了什么、为什么换模型看代码更可靠以及验收标准AC是如何从设计一路追踪到测试的。 先搞懂位置check 与 test 在工作流里站在哪整条交付链路如下check和test都处在开发完成之后、合并之前的收尾段idea → /scope → /audit → /architect → /develop → /check verify → /test → /check review → /document → /sync/check verifydevelop之后立刻跑证明功能真的能运行。/test把验证过的行为固化成永久测试。/check review合并前换一个模型做资深代码评审。也就是说同一个check技能承担两种角色再加一个test三者合力完成双重验证。完整背景可看 docs/workflow-guide.md。 check 技能一个技能两种模式check在 skills/check/SKILL.md 里定义为合并前的门。它有两个互不混淆的模式通常都要跑且建议先verify再review模式一句话职责产物对代码/check verify运行真实应用证明改动按规格生效每条验收标准都达标聊天报告 截图/日志只读不改代码/check review用另一个模型做资深代码评审按严重度排序问题写入docs/reviews/只读只报告两种模式都从不修改你的代码verify发现失败会指向/debug或/developreview则把发现留给实现者去修。第一步永远是路由check的第一个动作永远是判断该进哪个模式而不是急着读文件或碰仓库参数以verify或run开头 → 走运行时证明读 skills/check/modes/verify.md。参数以review开头 → 走代码评审读 skills/check/modes/review.md。没带模式、或有歧义 →不猜、不默认直接停下来问你要哪个verify/review/both。这个裸/check也安全的设计让新手可以放心地什么都不带就输入技能会用纯文本面板停下来等你选而不是自作主张。⚖️ 双模型交叉评审为什么要让另一个模型看代码review模式的灵魂是评审必须跑在一个和写代码不同的模型上。原因在于一个模型给自己写的代码做评审会和自己共享同样的盲点而换一个模型能看见第一个模型错过的东西。这套机制写在 skills/check/modes/review.md 里核心是一张作者模型 → 评审模型的对照表写代码的模型作者自动派生的评审模型opussonnetsonnetopusfableopushaikusonnet几条硬规则见 skills/check/modes/review.md#L69-L73评审模型绝不能和作者同一家族——这是这个技能存在的唯一不变量。绝不用haiku评审评审是高价值推理要用强模型。如果组织限制了可用模型、或客户端子代理只能继承父模型则退回到最强的、且不同于作者的模型若实在没有不同的强模型就会在作者模型上内联评审并明确说明——这是一个共享作者盲点的降级评审不再享有跨模型保证。评审时你还能用自然语言转向/check review默认对照模型、/check review with opus强制指定评审者、/check review uncommitted只看工作区未提交改动。评审到底在看什么评审子代理会按优先级检查八类问题标准定义在 skills/check/review-guide.md正确性逻辑错误、off-by-one、错误的条件分支、未处理的null、竞态。安全未校验输入、注入、缺失鉴权、密钥泄漏、IDOR。错误处理与韧性吞掉的错误、空catch、资源泄漏。性能与规模N1 查询、无界循环、热循环里的重活。API 与契约设计破坏性接口变更、命名不一致。可维护性死代码、重复、魔法数字。约定与决策遵守是否违反项目AGENTS.md规则、是否与规格矛盾。测试充分性按项目的测试信号判断见下文。每条发现都要具体file:line、有理由为什么重要、可执行该做什么并给出严重度 Blocker合并前必改、 Major、 Minor、⚪ Nit。最终判定分为Approve/Approve with nits/Changes requested/Blocked四档。发现会写成docs/reviews/日期-分支.md而主模型只转述一个紧凑摘要不把整份 diff 贴回来。 想要更独立的第二意见把活动模型换掉在你的 AI 工具里/model换一个或把 diff 贴进另一个助手再跑一次review即可——不需要任何 API key。 验收标准 AC 溯源从设计到测试的一条直线这是整套工作流最优雅的一点architect在写规格时会把每条需求变成带编号的验收标准AC-1、AC-2…它同时就是后续所有步骤要对齐的契约。这条线索贯穿三个阶段阶段与 AC 的关系architect写规格时定义AC-N每条都可观察、可测试check verify逐条AC-N给出判定达标 / 规格要求但没建 / 建了但没生效 / 受阻test为每条可自动化的AC-N写测试并用covers: AC-3之类的标签回溯到契约规格模板里的AC长这样见 skills/architect/spec-template.md#L31-L39AC-1feature 要正确就必须成立的、可观察可测试的结果verify 如何逐条 AC验证/check verify在加载规格契约后skills/check/modes/verify.md#L52-L70会优先读取规格旁边的verify.md/develop生成的、已带AC-N标签的具体验证步骤没有则回退到规格的## Requirements自己把每条AC-N变成可观察的检查项。然后为每条AC-N和每个规格声明过的界面页面、路由、表、迁移给出判定✅达标检查通过 / 界面存在且行为符合规格。规格要求但缺失写了要求却完全没实现作用域漏项。⚠️建了但没生效代码在但运行时检查失败比如迁移提交了但列没进库。⚠️受阻缺数据/凭据无法验证。证据门槛一个不能伪造的判定这是新手最容易忽略、却最关键的设计。verify存在一个证据门槛skills/check/modes/verify.md#L136-L145它要求没证据就没有 ✅一个行为只有在能引用命令输出URL截图路径请求状态码查询结果时才记为达标引用不了就是blocked。没启动就没有 PASS没真正跑起来就不得对任何东西输出 PASS。用不了的工具算受阻不算通过没有浏览器、没有数据库连接、缺凭据、构建起不来——都让相关行为记为blocked。说出你没检查的部分部分跑了就必须在Blocked里列出来不能把部分跑谎报成全通过。这个原则一句话总结读代码、看到测试是绿的、推理它应该能跑都不算观察。一个伪造的 PASS 是这个技能唯一绝不允许的输出因为后续每一步都信任它。 test 技能按文件类型选策略测试可回溯到 AC/testskills/test/SKILL.md扮演资深测试工程师目标只有一个给你刚改、还没提交的代码写出一套配得上它的测试不多不少。它测试的是调用者依赖什么、什么会真的弄坏用户而不是为凑覆盖率刷行数。自动锁定范围 按类型分类test用git工作树自动圈定改了但没提交的文件然后按路径/文件名给每个文件分类并为不同类型选择不同测试策略文件信号分类测试策略*.tsx/*.jsx/*.vue/*.svelte非路由component组件测试渲染 交互 断言 DOM/ARIAapp/**/page.*、*Screen.*、*View.*page/flowE2E 候选 零件的组件测试app/**/route.*、pages/api/**、*.controller.*api/server集成测试调用 handler在边界处 mock普通.ts/.js/.py/.gologic单元测试输入→输出、边界、错误cli.*、bin/**、cmd/**cli集成测试调用命令本身完整分类表见 skills/test/SKILL.md#L68-L74覆盖优先级只写happy path不算完成对每个文件覆盖按以下优先级排skills/test/writing-guide.md正常路径最常规的使用。边界情况空、null、零、最大长度、Unicode。错误状态非法输入、依赖失败、网络错误、未授权、未找到。状态迁移初始 → 操作 → 期望新状态。可访问性键盘可达、ARIA 存在、可访问名称正确。⚠️ 一条铁律只写了 happy path就不算完成。此外遇到认证、会话、支付、PII 相关代码默认补上越权、凭据过期/被篡改、敏感字段不泄漏等安全用例。让每个测试都能回溯到验收标准当存在治理规格时TRACE_TO_CONTRACT yestest会读验收标准并把每一条能固化为稳定断言的AC-N都写成一个自动测试且在测试里打标例如covers: AC-3注释或测试名里带AC-3让整条测试套件能追溯回契约skills/test/SKILL.md#L177。而那些没法自动化的标准视觉 / 手动 / 环境相关比如邮件真的发出去了不会被硬造而是记进NOT_COVERED并注明交给/check verify的手动步骤去验。报告里还会有一段Traceability逐条列出AC-N ✅ 已锁定 测试文件 · 测试名。它绝不改代码让测试变绿test只写测试从不修改被测代码。迭代时有两种失败要诚实区分测试写错了坏导入、错选择器、错期望→ 修测试只重跑那个失败文件。应用代码确实错了代码违反自己契约或规格→ 这正是测试在起作用留红不修记进BUGS_FOUND绝不为通过而弱化断言。最后test会问一句每次都问写完后要不要直接跑套件并修到绿还是只写、交给你手动跑。若套件通过且验证已绿这个功能才能被标记为done规格从In Progress变成Accepted。 三者配合上线前的双重验证闭环把前面串起来就是 AI 代码上线前的完整防线关卡谁证明什么不通过怎么办/check verify主模型跑真实应用功能行为对且每条 AC 达标、每个规格界面都建了指向/debug//develop/test主模型写测试把通过的行为固化成永久断言可回溯 AC留红 bug 记BUGS_FOUND/check review另一个模型评审代码质量/安全/可维护性没有明显问题按严重度列发现交实现者修这套行为验证 独立复核 契约溯源的叠加正是 skills 敢让功能在verify与test都通过后才算完成的底气。相关的分层防线设计思路可看 docs/specs/0002-decision-completeness-gate.md。 快速上手安装用npx skills按你的 agent 选一行装进技能目录后重启即可# Claude Code装进 .claude/skills npx skillslatest add JavaScript-Mastery-Pro/skills -a claude-code # 通用 .agents/skillsCodex 等可读 npx skillslatest add JavaScript-Mastery-Pro/skills把装好的技能文件夹提交进仓库全团队就能共享同一套工作流。最小可用的验证路径一个小改动/develop之后直接/check verify就够一个正式功能则按verify → test → review走完双重验证。❓ 常见疑问是不是两个 check 模式都必须跑不必。verify是证明能跑review是独立复核。低风险小改动可以只verify高风险功能建议两个都跑且先verify后review。换模型评审会不会把我的代码发出去不会。技能本身从不把代码发到任何外部跨模型只是在你的客户端内部用一个不同模型的子代理来读代码。想要更独立自己/model切换再跑即可。没有规格也能用吗能。verify和test在没有治理规格时就基于观察到的行为来验证一旦有规格二者都会自动切换到逐条 AC 溯源的更强模式。test 和 verify 会不会重复劳动不会。test写的是永远能跑的断言verify是打开一次真实应用确认它是真的。前者是长期保险后者是合并前的一次性事实确认。一句话记住这套机制check verify让你亲眼看到功能在跑、每条验收标准都达标test把这些通过的行为锁成可回溯到 AC 的永久测试check review再换一个模型做独立复核。三道关卡各司其职、互不替代让 AI 写出的代码在上线前获得真正可信的双重验证。赞分享【免费下载链接】skillsAgentic Development skills behind the JS Mastery workflow项目地址https://gitcode.com/gh_mirrors/skills45/skills点击查看免费下载相关推荐CCG Workflow Review Audit 策略全解析双模型交叉验证的代码审查工作流CCG Workflow Review Audit 策略全解析双模型交叉验证的代码审查工作流 导读 review audit 是 CCG Workflow 引人工智能AI 应用开发工具CLIAI Agentdsh-pluginDeepSeekccg-workflow /review 命令详解双模型并行代码审查与交叉验证的完整实现ccg workflow /review 命令详解双模型并行代码审查与交叉验证的完整实现 本篇技术指南围绕 ccg workflow 仓库中的 /reviewCCG-Workflow 的 Antigravity 代码审查者角色提示词解析只读审查、四维评分与双模型交叉验证机制CCG Workflow 的 Antigravity 代码审查者角色提示词解析只读审查、四维评分与双模型交叉验证机制 本篇以 templates/prompt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

游戏引擎基础架构:动态协作协议与四重主循环锚点

游戏引擎基础架构:动态协作协议与四重主循环锚点

1. 为什么“引擎基础架构”不是一张静态框图,而是一套动态协作协议很多人第一次接触游戏引擎时,看到官方文档里那张经典的“渲染层/物理层/音频层/脚本层”分层架构图,下意识就把它当成了某种固定蓝图——仿佛只要照着画出来,就能…

2026/10/12 3:28:03 阅读更多 →
游戏引擎基础架构设计核心:解耦分层与确定性

游戏引擎基础架构设计核心:解耦分层与确定性

1. 项目概述:为什么“引擎基础架构”是游戏开发者的必修底层课你打开任何一款现代3D游戏,按下F12(或类似调试键),看到的不只是画面和音效——背后是一整套精密咬合的齿轮系统:资源加载器在后台预取下一段过…

2026/10/12 3:28:03 阅读更多 →
上海等地方2000坐标系与CGCS2000坐标转换方案研究(温州2000 武汉2000 北京2000 长春2000 天津2000均类似)

上海等地方2000坐标系与CGCS2000坐标转换方案研究(温州2000 武汉2000 北京2000 长春2000 天津2000均类似)

博文简介:上海2000相对独立平面坐标系统是上海市现行法定测绘坐标系,广泛应用于上海国土测绘、工程建设、GIS开发、政府采购招投标等场景。日常工作中经常需要实现上海2000平面坐标 ↔ CGCS2000大地坐标/平面坐标双向转换。本文基于已知资料、实战案例&a…

2026/10/12 3:28:03 阅读更多 →

最新新闻

DeepSeek开源算力地基:FlashMLA与DeepEP如何加速国产大模型?

DeepSeek开源算力地基:FlashMLA与DeepEP如何加速国产大模型?

先说明一下我的第一反应:看到“致敬,DeepSeek 最新开源的不是模型,是国产算力的地基”这个标题,我以为是又一个大模型权重开源了。结果点进仓库一看,里面没有模型文件,躺着的全是 FlashMLA、DeepEP、DeepGE…

2026/10/12 7:08:08 阅读更多 →
NumPy随机函数与广播机制:维度对齐、代码实战与踩坑全解

NumPy随机函数与广播机制:维度对齐、代码实战与踩坑全解

【day 48】随机函数与广播机制,打卡到这个组合的时候,我明显感觉身边不少同学开始卡壳了:随机函数单独用没问题,广播规则单独看也能理解,但真到写代码的时候,要么随机生成的数组形状对不上,要么…

2026/10/12 7:08:08 阅读更多 →
MTCNN人脸检测详解:P-Net、R-Net、O-Net三级网络训练与部署实战

MTCNN人脸检测详解:P-Net、R-Net、O-Net三级网络训练与部署实战

简介:面向深度学习和计算机视觉研究者,这份完整代码基于MTCNN级联卷积网络实现人脸检测,清晰覆盖P-Net候选框提议、R-Net边界框精修、O-Net关键点定位的完整流程。包体共80个文件,以Python源码为核心,包含48个py文件&a…

2026/10/12 7:08:08 阅读更多 →
物联网通信技术选型与架构设计:从链路预算到协议栈的工程实践指南

物联网通信技术选型与架构设计:从链路预算到协议栈的工程实践指南

干了十几年通信,最明显的感觉是:打电话的人越来越少,问"能不能帮我把这个箱子里的定位数据传回来"的人越来越多。物联网这个概念被炒了很多年,别人看到的是智能家居、智慧城市、大风口,我看到的是另一件事—…

2026/10/12 7:08:08 阅读更多 →
MyBatis查询功能全解析:从动态SQL到性能优化的实战指南

MyBatis查询功能全解析:从动态SQL到性能优化的实战指南

项目标题: MyBatis各种查询功能用到一定年头你就会发现,MyBatis的查询功能说难不难,说简单也绝不是写个select标签就完事。日常开发里,动态条件、分页、多表嵌套、批量操作,任何一个场景都能写出好几种不同写法,而每种…

2026/10/12 7:08:08 阅读更多 →
老毛桃UEFI启动盘v7.0:稳过Secure Boot,原生支持NVMe与Win11架构识别

老毛桃UEFI启动盘v7.0:稳过Secure Boot,原生支持NVMe与Win11架构识别

简介:老毛桃U盘启动盘制作工具(UEFI版 装机版)v7.0是一款面向电脑初学者与系统维护人员的轻量级系统辅助工具,专为快速制作兼容UEFI与传统BIOS的U盘启动盘、安装原版Windows系统及执行PE环境下的故障排查而设计。资源包共2个文件&…

2026/10/12 7:07:08 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →