【免费下载链接】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),仅供参考