mcpField
N
ns-judge

ns-judge

github.com/nextstage-brasil测试与质量069 次安装6 天前更新
代码仓库

关于 ns-judge

ns-judge 是用于代码评审通过后检查交付差异是否满足验收标准的会话内技能。它结合脚本检查与 LLM 补充评估,并按评分规则给出交付结论。

主要功能

  1. 01验收标准令牌验证
  2. 02差异绕过项扫描
  3. 03LLM 补充评估
  4. 04按评分门槛判定结论
  5. 05结构化发现与修复映射

适用场景

  1. 01按项目需求验证交付闭环
  2. 02根据综合文件检查 Issue 验收标准
  3. 03使用可选需求评估临时改动
  4. 04识别测试未覆盖的剩余问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nextstage-brasil/skills --skill ns-judge

安装后在 Claude Code 中输入/ns-judge确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

evals/
evals.json
references/
workflow.md
scripts/
mutate_prove_ac.py
prove_ac.py
review_gate.py
scan_bypasses.py
test_prove_ac.py

详细介绍

交付评审

证明已交付的差异符合输入 AC。不评 SOLID,不评安全性。代码质量已通过 ns-reviewer。

形式(不是照搬供应商内容):the-judge SKILL.md v1.4.0。在此重新实现。不要粘贴该文件。不要用 GitHub APPROVE、表情符号、禁用词门槛、六轮 LLM 检查或 post_review.py。

适用时机

父级已从 ns-reviewer / reviewer-agent 获得 Code Review: Approved。同一父级随后在当前会话中读取此 SKILL.md。v1 中没有 judge-agent。人工 /ns-judge 只是会话入口。

父级模式AC 来源
run-implementation 步骤 5closuresdd/requirements.md
ns-autonomous 独立收尾closure同上
ns-coder 临时调用 / C2adhoc如有则使用 --requirements / --ac-file;否则跳过 AC 证明
ns-execution-gitlab-issue 阶段 4issuesynthesis 提供的 --ac-file(Python 不会调用 GitLab)

ns-reviewer 不得分派此技能。

没有 Code Review: Approved → 停止。不要进行评审。告知父级先运行 reviewer。

会话启动

参阅 ../../ns-harness/references/session-boot.md。本次评审为冷启动:探测前先完成会话启动步骤 1–6。绝不要用工具读取 AGENTS.md。

探测(Python 可选)

运行 command -v python3。若缺少 Python,或任意脚本退出码为 1 → 跳过预检。仍须进行 LLM 剩余检查。绝不能因为缺少 Python 而判为 Blocked。

详情和 CLI:references/workflow.md。令牌正则只存在于 scripts/prove_ac.py 中,不在本文内。

工作流

  1. 确认最近一次代码评审结论为 Code Review: Approved。否则停止。
  2. 探测 Python。如果存在:
    • 针对当前模式运行 prove_ac.py
    • 始终运行 git diff \| python3 scripts/scan_bypasses.py(退出码始终为 0)
  3. prove_ac.py 退出码为 2 → 按格式生成修复映射(../ns-reviewer/references/review-fix-map.template.md),最后一行写 Delivery Review: Rejected。不进行 LLM 剩余检查。
  4. LLM 剩余检查(脚本已跳过 或 prove 退出码为 0):检查测试尚未发现的遗留问题。不要重复报告 phpunit/lint 的结果。对 scan_bypasses.py 发现的裸抑制项,在剩余检查中进行评审。所有主张都需要证据(Pass E,要求更严格:AC 令牌)。
  5. 写入 findings.json。运行 review_gate.py。若门禁未通过,编辑 JSON 并重新运行。这不是产品 Blocked。
  6. 最后一行写:Delivery Review: {Approved|Rejected|Blocked}。在 Executive Summary 中写明分数。

分数门禁(与 ns-reviewer 使用相同表格)

复制此表,不要另创一套评分标准。Approved = Critical 项为零且分数 = 10。分数为 9 = Rejected(Lift)。

分数含义对评审结论的影响
10可直接交付Approved(唯一符合条件的分数)
9AC/ledger/ui-contract 项目仍有接近门槛的遗留问题Rejected — Lift
≤8未达门槛 / 缺少 AC 令牌 / ledger 未满足Rejected

只有同时满足以下所有条件,才能给出 Approved:

  1. Critical 发现为零
  2. 总分 = 10/10
  3. 每个计分 AC 令牌均在仓库中命中(存在 AC 来源时)

缺少 AC 令牌 / ledger 未满足 / 缺少 testid → 判为 Critical 或分数上限为 8 → 不可能得到 10 分。

跳过 Python 时进行的剩余检查:同样遵循仅 10 分可通过的规则。LLM 仍须给出分数和结论。

review_gate.py 会拒绝以下 JSON:分数不等于 10 却声明 Approved,或存在 P0 发现却声明 Approved。

模式

closure

prove_ac.py --mode closure [--repo .] [--version VERSION_SAN] [--requirements PATH]

规则:#### Acceptance criteria: 下的复选框行。令牌:反引号内容、引号字符串、data-testid、HTTP \b[1-5][0-9]{2}\b(位于脚本中)。至少有 1 个令牌且仓库中命中数为 0 → P0 Rejected。某行没有令牌 → 不计分(由剩余检查处理)。脚本不会证明功能有效。

另需检查:ledger 缺失 / 未映射;ui-contract testid/文案;视觉检查清单中的字面值。判定门槛相同:Rejected。

issue

--mode issue --ac-file PATH。使用 synthesis 文件。Python 不会调用 GitLab。

adhoc

除非使用 --requirements 或 --ac-file,否则跳过 AC 证明。仍会运行 Residual。父级报告可将 AC 证明标记为 n/a。

必需输出

已批准
执行摘要
  • 评分 10
  • 用一句话对照评分标准
  • 两行评估
  • AC 证明:pass | n/a(adhoc,无来源)

然后:Delivery Review: Approved

已拒绝 / 已阻止
执行摘要
  • 评分 1–10
  • 一句话说明
  • 两行评估
修复映射(Agent)

../ns-reviewer/references/review-fix-map.template.md

然后:Delivery Review: Rejected 或 Delivery Review: Blocked

约束

  • 对产品文件只读
  • 不从 ns-reviewer 派发任务
  • 不调用 GitHub review API
  • P0/P1 的发现必须包含 evidence: [{type:internal,ref:path:line}]
  • Residual 不重复陈述测试已捕获的问题

参考资料

文件适用时机
references/workflow.md探查、跳过、CLI、findings.json
../ns-reviewer/references/review-gate-workflow.md父级流程(先代码,后评审)
../ns-reviewer/references/review-fix-map.template.md被拒绝时的正文
scripts/prove_ac.pyAC / ledger / ui-contract / visual law
scripts/scan_bypasses.pyDiff stdin 候选项
scripts/review_gate.pyfindings.json 门禁

评论

支持 Markdown