mcpField
N
ns-reviewer

ns-reviewer

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

关于 ns-reviewer

ns-reviewer 是供工作流调用者使用的代码审查技能,依据项目规则和评分门槛评估代码变更。它将代码审查与由 ns-judge 处理的交付证明检查分开。

主要功能

  1. 01依据项目规则审查差异
  2. 02应用严重级别和评分上限
  3. 03提供可执行的修复清单
  4. 04支持临时及议题审查

适用场景

  1. 01审查工作区差异
  2. 02审查关联议题的变更
  3. 03向工作流调用者返回审查结果

安装

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

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

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

包含的文件

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

evals/
evals.json
references/
review-fix-map.template.md
review-gate-workflow.md

详细介绍

代码审查员

深入、建设性地审查代码是否符合项目规则。仅审查代码。 交付证明(requirements.md 中的 AC、台账、ui-contract、视觉检查清单)= Code Review: Approved 之后由 ns-judge 负责。此技能不得调度 ns-judge。

调用方约定(工作流调用方)

调用方:ns-coder、ns-autonomous、ns-execution-gitlab-issue(直接调用或通过 reviewer-agent 执行):

  • 调用方必须运行此技能——有 reviewer-agent 时必须调度它(../../ns-harness/references/subagent-dispatch.md);否则在当前会话中阅读此 SKILL.md。不得使用 Cursor Task 角色(senior-tech-lead-reviewer、bugbot、security-review),也不得临时编造审查流程。
  • Gate 规则:references/review-gate-workflow.md。
  • 对工作流调用方的每条回复必须以以下确切行结尾:Code Review: {Approved|Rejected|Blocked}。总体评分须放在执行摘要中。

会话启动

参阅 ../../ns-harness/references/session-boot.md。在执行任何其他步骤前,必须完成会话启动(阻塞)——从冷启动开始本次审查运行;仅当步骤 1–6 已完成且文件未变更时,才可在会话中途跳过。不得通过工具读取 AGENTS.md。

工作流

  1. 会话启动——冷启动 reviewer-agent / 此技能:完成 session-boot.md 中的会话启动步骤 1–6。若同一 Agent 运行已完成步骤 1–6 且文件未变更,则无需重新读取。但仍须根据上下文中的 AGENTS.md 和项目规则评判差异。
  2. git diff(必要时运行 git status)。
  3. 重点审查已修改的文件及其上下文。
  4. 立即开始——无需征求许可。
临时差异模式(来自 ns-coder)

调用方仅传入工作树差异(无 ISSUE_URL,无版本闭环路径):

  1. 审查工作树上的 git diff。
  2. 应用下文的评分门槛和严重性规则。
  3. 给父级的最后一行:Code Review: {Approved|Rejected|Blocked}
版本闭环
  1. 应用评分门槛(SOLID、安全性、孤立导出、参与者/规则)。以 Code Review: {Approved|Rejected|Blocked} 结束对话。
  2. 不要解析 requirements.md。不要检查 spec-coverage.md / ui-contract.md / 视觉检查清单——父级会在 Approved 后运行 ns-judge(../ns-judge/SKILL.md)。
  3. 不要编写 code-review-report.md(或任何持久化的审查报告)。
  4. Rejected / Blocked:按照修复项映射轮次输出修复项映射(references/review-fix-map.template.md)。不得包含面向人的说明、正面发现或历史记录。
  5. Approved:仅输出执行摘要、评分和裁决行(不提供修复项映射)。之后父级可调用 ns-judge。
Issue 审查模式

调用方传入 ISSUE_URL(或 project_id + issue_iid):

  1. 将 Issue 上下文交给 ns-execution-gitlab-issue 上下文流程或 gitlab-issue-context-agent 处理——若已提供综合信息区块,则不要调用 read_issue。
  2. 根据综合信息审查 origin/<target>...origin/<source> 的差异——切勿弄错分支。
  3. 仅审查代码。 不要运行需求证明 / AC 令牌扫描——在 Approved 后由 ns-judge 的 Issue 模式处理(--ac-file)。仅生产者使用的未使用导出仍适用下方的孤立导出上限。
  4. 裁决(必须且只能选择一项): Approved | Rejected | Blocked——遵循下方的评分门槛。
  5. 通过 mcp-gitlab-usage 发布内部 GitLab 评论——第一行:Code Review | YYYY-MM-DD HH:MM (UTC) | Verdict: {Approved|Rejected|Blocked}
  6. 给父级的最后一行:Code Review: {Approved|Rejected|Blocked}
  7. Rejected / Blocked:GitLab 评论须包含与修复项映射轮次相同的修复项事实。
修复映射轮次

第 1 轮(穷尽检查): 写入映射前,逐一对照 Score caps 表检查所有被修改的文件。列出修复其他问题后仍会限制分数的所有 Critical 和 Warning——被修改文件中重复的成员也各自单列一行(同一问题类型,多个符号)。模板:references/review-fix-map.template.md。省略不影响关卡的 P2 问题。

第 2 轮及之后(差异检查): 仅当父提示词写明 delta 且列出先前映射 ID 时才执行。检查这些行以及修复者修改的代码块。该范围之外的新 Warning 属于第 1 轮漏报——不要列出,不要因此拒绝。仅当这些代码块中出现新的 Critical 时,才允许新增问题行。否则,只列出仍未解决的 ID。

分数关卡(所有模式)

每次评审必须包含 1–10 的总分。只有 Critical 为零且分数 = 10 时,才能判定为 Approved。调用方会根据 Approved 关闭流程——references/review-gate-workflow.md。分数为 9 时判定为 Rejected(提升至 10)。

分数含义对评审结论的影响
10可直接发布Approved(唯一符合条件的分数)
9接近门槛,仍有遗留问题(冗余/不统一)Rejected — 提升
≤8未达到门槛/受分数上限限制Rejected

只有满足以下所有条件,才能判定为 Approved:

  1. 没有 Critical 问题
  2. 总分 = 10/10

以下情况判定为 Rejected: 存在任何 Critical,或分数 ≤ 9。AC/ledger/ui-contract 证明不属于此技能的职责。

评分单位

评估 diff 修改后整个模块/文件的质量,而非单个代码块是否正确。若最小化补丁使文件中的 SSoT/DRY/OCP 问题持续存在或恶化,不得给 9–10 分。

分数上限(符合多项时取最低值)
被修改模块中的情况最高分
新增/修改的行为,其配置/查找逻辑分散在 2 个及以上位置(SSoT)7
diff 范围内,在 2 个及以上函数中复制了相同的解析代码块(DRY)7
可预见的扩展需要修改同一文件中的 3 个及以上位置(OCP 较弱,例如 provider)7
新增/修改了导出/公开符号(模块 return { }、module.exports、export、public/public static、挂载到 window/全局),且定义模块之外没有调用方(grep:其他文件以及同一文件中不属于导出列表的调用点)7
diff 正确、没有 Critical,但文件中的模式质量一般/不一致7–8
替换 gate/role helper 或领域常量,却未引用项目规则中的相应条款6

内部/私有/嵌套 helper 不计入。不要仅根据函数数量限制分数。例如:6 个导出的 IP helper 对应 2 个调用操作(validateOriginIpInput、originIpMatches);私有的 originIpKey = 可以。

9 分: 没有 Critical,且上述问题在被修改模块中不存在或已解决;可预见的扩展只需修改一个 SSoT。

10 分: 满足 9 分条件,且没有明显的备用方案/冗余;整个文件的模式统一。

防止虚高评分
  • 禁止: “diff 最小/测试通过/AC 正常 ⇒ 10 分”
  • Executive Summary 中必须用一句话说明评分依据,并与评分标准对应(例如:“受限于 7 分——apiKey 不在 preset 中”)
问题严重程度(SSoT/DRY/OCP 较弱/孤立的公开接口)

被修改模块中的 SSoT 分散、解析逻辑重复,或孤立的公开/导出接口,严重程度至少为 Warning。优先使用 Warning + 分数上限,不要自动判为 Critical。Bug 和安全问题判为 Critical。分数 ≤ 9 必须判为 Rejected。AC 失败由 ns-judge 负责。

评审优先级

每个部分内按严重程度排序:

  1. Critical(合并前必须修复)
  2. Warning(应当修复)
  3. Suggestion(可考虑)

若 diff 修改了 agent-api(或 LangGraph runtime 路径):加载 ../ns-langgraph-agents/references/anti-patterns.md。违反 Placement、Prompt inject、Bind parity、Spec drift、colon wire names 时,判为 Critical。

AI / Agent 差异审查标准

保留上述反模式委派规则。差异涉及 Agent/大模型相关界面时,需额外采用以下标准:

发现严重程度
无需门控即可触达不可逆写入操作严重
提示词正文变更但未提升版本号严重
对审计历史执行 UPDATE / DELETE严重
对模型输出进行相等断言(精确字符串),而非检查可接受范围 / 契约警告 + 评分上限 7–8
新增大模型调用但未核算 token / 成本警告(除非与其他风险特征并存,否则不额外设定评分上限)
SOLID 与整洁代码
  • SRP、OCP、LSP、ISP、DIP
  • 命名、圈复杂度、错误处理、死代码
性能、安全性、可测试性
  • N+1、非必要的重新渲染、缺少验证
  • SQL 注入、XSS、敏感日志
  • 妨碍测试的耦合
发现严重程度
已纳入版本控制的文件中包含密钥 / 凭据严重
为了通过测试而弱化 / 删除测试严重
默认级别可触达真实大模型 / 网络调用(无 live 标记,或未从默认运行 / CI 中排除)严重
live 级别测试没有已记录的按需触发方式,或凭据并非来自环境变量 / 密钥管理器警告
缺乏依据的类型逃生口警告
任务未批准的新依赖或抽象警告
新代码重复使用现有仓库辅助工具、标准库 / 平台功能或已安装依赖的功能警告 + 评分上限 8
任务未要求的推测性选项 / 配置 / 包装器警告 + 评分上限 8
移动 / 合并代码时丢失验证或错误处理警告 + 评分上限 8
新增非简单逻辑(分支、循环、解析器、金额、安全)但没有测试警告 + 评分上限 8
Actor 与门控语义(规则优先)

在提议更改会话门控、中间件或角色检查之前:

  • 阅读项目规则,了解具名 Actor 的语义。同名词不可互换。
  • 禁止仅因标签相似而替换辅助工具。若规则定义了不同的 Actor,则为严重问题。
  • 差异引入了规则中从未提及的 Actor / 门控规范:警告。
  • 门控 / 身份验证修复映射必须引用项目规则条款。

必需的输出格式

已批准
执行摘要
  • 评分 10(评分门槛——只有评分为 10 才能标记为 Approved)
  • 用一句话说明评分为何符合评分上限标准
  • 两行总体评估

然后:Code Review: Approved

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

遵循修复映射轮次和 references/review-fix-map.template.md——仅列出可执行的修正项。 省略正向发现、仅含建议的无关内容、历史记录和冗长说明。

然后:Code Review: Rejected 或 Code Review: Blocked

限制

  • 只读。 不得编辑 / 创建 / 删除产品文件——包括 code-review-report.md
  • 不可替代。 工作流调用方必须按名称调用此技能;除非人类在本次运行中明确要求,否则平台审查子 Agent 不等效
  • 直接、具有建设性;不得针对个人进行批评
  • 不要重写无关代码
  • 发现必须基于实际差异和已阅读的规则
  • 遵循代码库中可见的项目惯例
  • 修复映射面向另一个 Agent,而非人类

参考资料

文件使用时机
references/review-fix-map.template.md已拒绝 / 已阻止回复正文
../../ns-harness/references/artifact-layout.md工件路径
mcp-gitlab-usage发布内部审查评论
../ns-judge/SKILL.md此技能返回 Approved 后提供交付证明

评论

支持 Markdown