Noema:在 DSH 任务结束后用复杂度变化聚焦 Code Review

前言

用 DeepSeek Harness(DSH)做 AI 辅助开发时,模型往往一次改多个文件。Diff 能说明「改了什么」,却很难直接回答「哪些改动把控制流变复杂了、哪些函数嵌套加深了」。人工逐行扫一遍成本高,又容易漏掉结构性风险。

Noema 是 DSH 社区插件,在每一轮编码任务结束后,对比任务前后工作区,展示受支持语言文件的复杂度指标变化,帮助你在 Review 时先盯住可能需要细看的文件和函数。分析在本地执行,结果不进入模型上下文。

这是什么

Noema(dsh-plugin-noema)由维护者 wjw99830 发布,分类为工作流类插件。一句话定位:在每次 coding task 完成后,用圈复杂度、认知复杂度和最大嵌套深度三类指标的前后对比,把 Review 注意力引到复杂度变化上。

仓库与目录页:

  • GitHub:https://github.com/wjw99830/dsh-plugin-noema
  • 社区目录:https://www.skillhub.cn/plugins/wjw99830/dsh-plugin-noema

当前 npm 包版本为 0.2.1-alpha.1,采用 MIT 许可证。

核心功能

三类复杂度指标

Noema 在每个任务前后对比同一工作区(含该轮内你手动编辑的内容),对变更涉及的代码计算并展示差值:

指标 含义
Cyclomatic complexity(圈复杂度) 代码中独立路径的数量
Cognitive complexity(认知复杂度) 跟随控制流的难易程度,计入分支、嵌套与递归
Maximum nesting depth(最大嵌套深度) 函数内控制结构的最深嵌套层数

README 强调:分数变低并不自动等于「更好」;应结合代码语境判断。

文件与函数层级展示

界面中可展开文件或函数,在内部定位具体变化。聚合指标包含其下代码;[Top Level] 将命名子函数与文件顶层自身代码分开统计。默认隐藏未变更代码,需要时可展开查看。

语言与变更范围

当前支持 TypeScript(含 TSX)、Python、Go。JavaScript 与 TypeScript 声明文件(.d.ts)不在分析范围内。

若没有受支持的代码变更(例如只改注释或格式化),不会出现 Noema 卡片;即便复杂度分数不变,只要有受支持的代码改动,仍会展示变更信息。

运行方式

分析在本地完成,比较的是每轮对话开始与结束时的工作区快照。输出留在插件侧,不写入模型上下文。

安装与启用

Noema 要求 DSH 版本为 ^0.1.7-rc.2 || ^0.2.0-rc.2 || ^0.2.1-alpha.1,Node.js 为 ^22.19.0 || >=24.0.0。

在 Web Profile 中安装 npm 包并启动 DSH:

dsh plugin --profile web add dsh-plugin-noema
dsh web

若 DSH 已在运行,安装后需重启进程并刷新浏览器。Noema 从安装之后的新轮次开始分析;可让 DSH 修改一份受支持的源文件以验证卡片是否出现。

典型用法

1. 完成一轮编码任务

与平时一样在 DSH Web 中让智能体修改代码。该轮结束时,Noema 自动对比轮初与轮末工作区并生成复杂度变化视图。

2. 按指标筛 Review 重点

查看文件级与函数级指标增减,优先打开复杂度上升或嵌套加深的条目,再结合 Diff 做人工判断。

3. 配置分析文件范围

在 Web 侧栏打开 Plugins → Noema → Files to analyze,按工作区相对路径设置 include / exclude,例如 src/**、**/*.test.ts,或使用 Add common test exclusions。配置作用于当前 Profile;exclude 优先于 include,保存后从下一轮生效。

Noema 默认尊重 .gitignore,并排除常见依赖与构建目录。

适用场景与注意

适合谁: 在意交付代码质量、希望在 AI 改码后快速发现「结构变复杂」而非仅看行数 Diff 的 DSH 用户;主要技术栈为 TypeScript/TSX、Python 或 Go 的项目。

权限与安全: DSH 插件以当前 DSH 进程权限运行,可访问该进程能读写的文件与网络。安装前请自行查看仓库源码与 MIT 许可证,确认符合你的安全与合规要求。

生态说明: DeepSeek Harness 采用「一切皆插件」的扩展方式;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,本文介绍的是社区维护的 dsh-plugin-noema,非官方应用商店内置能力。

更多设计细节与计分规则见仓库内 docs/design.md、docs/scoring.md。

结尾

Noema 把「复杂度是否因本轮任务而变」从主观印象变成可对照的三项指标,适合作为 DSH 工作流里 Review 前的本地辅助视图。进一步了解可访问 SkillHub 目录页 与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜