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 倉庫。

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

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

小夜