npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-code-check

v0.3.0

Published

Code review tool for DeepSeek Harness: integrates ESLint, Prettier and heuristic checks to produce structured review reports with fix suggestions.

Readme

dsh-code-check

DeepSeek Harness (dsh) 代码审查插件:整合 ESLint 静态检查、Prettier 格式校验与启发式问题分析,输出包含问题列表、分级与修复建议的结构化审查报告。

功能特性

  • 🔍 多步审查流水线:读取目标 → ESLint 检查 → Prettier 格式校验 → 启发式分析 → 生成报告
  • 📁 目录审查:path 指向目录时递归扫描(自动排除 node_modules/.git/dist 等),聚合生成总评分 + 文件清单 + 逐文件问题详情
  • 📐 TypeScript / JSX 支持:通过 typescript-eslint 正确解析 .ts/.tsx/.jsx,提供类型级规则(no-explicit-any、no-unused-vars 等)
  • 🎚 规则集档位:preset 可选 lenient(宽松)/ standard(标准)/ strict(严格),同时调整内置 ESLint 规则级别、启发式阈值(行宽 160/120/100)与评分权重
  • 🧾 机器可读 JSON:output: "json" 输出统一结构的审查数据(score/grade/counts/issues/nextActions),供 CI 与上层 Agent 程序化消费
  • 📋 结构化报告:评分(A-D)、问题概览表、错误/警告分区、修复建议、下一步行动
  • 🛠 工具整合:调用 ESLint CLI(JSON 输出解析)+ Prettier API,支持项目自有 eslint.config,缺失时使用内置通用配置
  • 💡 修复建议知识库:常见 ESLint 规则 → 中文修复指引,并标注可 --fix 自动修复的条目
  • 🔒 路径安全:文件审查限制在 dsh 工作目录内,拒绝 .. 逃逸与符号链接越权
  • 🔧 fix 模式:可选先执行 eslint --fix 再输出修复后的报告

安装

npm install dsh-code-check

或在 dsh 配置中引用插件路径:

plugins:
  - id: code-check
    name: "绝对路径/dsh-code-check/index.js"

工具说明

code_review

参数

| 参数 | 类型 | 必填 | 说明 | |---|---|---|---| | path | string | 与 snippet 二选一 | 要审查的文件或目录路径(相对 dsh 工作目录),目录会递归审查 | | snippet | string | 与 path 二选一 | 要审查的代码片段文本 | | language | string | 否 | snippet 的语言:javascript/typescript/json/css/html/markdown(默认 javascript) | | fix | boolean | 否 | 为 true 时先执行 eslint --fix 再出报告(默认 false) | | maxFiles | number | 否 | 目录审查时最多扫描的文件数(默认 200) | | preset | string | 否 | 规则集档位:lenient 宽松 / standard 标准(默认)/ strict 严格 | | output | string | 否 | 报告格式:markdown(默认)/ json(机器可读) |

使用示例

对话中直接说:

审查一下 src/index.ts

Agent 会调用:

{ "path": "src/index.ts" }

目录审查:

审查一下 src 目录

Agent 会调用:

{ "path": "src", "maxFiles": 200 }

审查代码片段:

{
  "snippet": "var a = 1\nif (a == 1) { console.log(a) }",
  "language": "javascript"
}

严格档位 + JSON 输出(接入 CI 门禁):

{
  "path": "src",
  "preset": "strict",
  "output": "json"
}

CI 可依据 score / counts.errors 决定是否拦截合入。

报告结构(Markdown / JSON 同源)

# 📋 代码审查报告
**审查目标**: src/index.js(124 行,3.2 KB)
**整体评分**: ⭐ A(96/100)

## 📊 问题概览        —— 错误/警告/可自动修复/格式/建议 计数表
## ❌ 必须修复(Error) —— [行:列] 规则名 + 说明 + 修复建议
## ⚠️ 建议改进(Warning)
## 💡 风格与潜在问题    —— TODO 标记、console 残留、超长行、eval 风险等
## 🎨 代码格式          —— Prettier 差异行数与修复命令
## 🔧 下一步行动        —— 可执行的修复入口

设计要点

  • 档位三合一:preset 只改规则的级别与启发式阈值/评分权重,不改变规则覆盖面——严格档不新增需要特殊配置的解析器依赖,任何陌生项目都能直接跑
  • TypeScript / JSX 解析:内置兜底配置按文件后缀分流——JS/JSX 用通用规则并开启 ecmaFeatures.jsx,TS/TSX 接入 typescript-eslint 推荐规则与解析器;无需项目自带 tsconfig(未开启类型信息类规则)
  • 子进程调用:ESLint 通过 child_process.execFile 运行,--format json 输出后解析为结构化消息列表;片段审查时以临时目录为 cwd,避免规则匹配范围外文件被忽略
  • 配置回退:优先使用被审查项目自己的 eslint.config.*;缺失时报错信息识别后自动切换插件内置 eslint.fallback.config.mjs
  • 启发式检查:对所有语言生效(TODO/FIXME、console、超长行、行尾空白、Tab 缩进、eval)
  • 评分模型:基础权重 8×错误 - 3×警告 - 6×格式失败 - 1×建议(A≥90 / B≥75 / C≥60 / D<60),按档位缩放——宽松误差减权、严格全面加码
  • JSON 同源:Markdown 与 JSON 共用 collectReport / collectDirectoryReport 结构化数据,保证两种输出的评分与问题口径一致

开发与测试

cd dsh-code-check
pnpm install
pnpm test    # 47 项断言:报告结构、问题检出、格式校验、参数校验、路径安全、渲染独立性、目录审查、TS 审查、规则集档位、JSON 输出、JSX/TSX 解析、工具注册校验
pnpm lint

扩展方向

  • 已支持目录级审查,可继续增强:并行分片、按 git diff 只审查变更文件
  • 集成 stylelint(CSS)、markdownlint、Ruff(Python)等更多语言工具
  • 报告同时输出 JSON 结构,供上层 Agent 程序化消费

源码与发布地址

  • 源码:https://github.com/geeklei/dsh-plugins/tree/main/dsh-code-check
  • npm:https://www.npmjs.com/package/dsh-code-check

典型场景

1. 提交前自检

用户:这段代码提交前帮我审一下有没有明显问题

对片段跑 code_review,在落盘前发现语法错误、危险模式与风格问题。

2. 模型生成代码的快速把关

用户:AI 给我的这段实现靠谱吗

把生成的片段交给 code_review 做静态检查,避免直接信任未验证代码。

3. 多语言片段混检

用户:这个 JS 和这段 Python 都看一下

对每段分别调用,插件按语言选择对应检查器。

4. 教学/评审场景补充说明

用户:这段代码哪里不规范

输出的问题清单可直接作为评审意见的补充材料。

安全边界

  • 只读分析:仅做静态解析与规则检查,不执行被检查代码,不产生副作用。
  • 不落盘:检查过程在临时目录进行,结束后清理,不修改工作区文件。
  • 路径敏感:会按调用时解析路径(不在模块顶层固化 cwd),保证任意工作目录下行为一致。
  • 结论非权威:静态检查存在误报与漏报,不能替代真实测试与人工评审。

RoadMap

v0.2(已随 0.3.0 落地)

  • ✅ 支持 TypeScript / JSX 语法解析
  • ✅ 增加可配置规则集(宽松/严格档位)
  • ✅ 输出机器可读 JSON,便于接入 CI

v0.3(展望)

  • 与 dsh-todo-audit(二期 D13)联动:审查同时收集 TODO/FIXME
  • 按 git diff 只审查变更文件,与流水线结合

版本说明

  • 0.1.0:初始版本——code_review 片段静态检查(语法、危险模式、风格)。
  • 0.2.0:目录批量审查——path 指向目录时递归扫描并聚合报告;修复工具 schema 的非法 required: false(此前在插件注册时即抛错)。
  • 0.3.0:规则集档位(lenient/standard/strict)+ 机器可读 JSON 输出 + JSX/TSX 解析;测试扩展至 47 项断言。

其他插件集成说明

代码质量体检可与下列插件组合,形成「体检 → 定位 → 修复 → 复核」闭环。

| 协作插件 | 集成方式 | |---|---| | dsh-markdown-lint | 源码与文档分别体检:code-check 管源码,markdown-lint 管文档 | | dsh-regex-lab | 自定义规则可先用 test_regex 验证,再落库 | | dsh-diff-writer | 修复建议确认后用 apply_patch 精确落盘 | | dsh-hash-checksum | 审查前后比对文件摘要,确认只有预期文件被改动 | | dsh-fs-inspector | 审查前用 dir_size / recent_files 掌握改动范围 |

FAQ

Q:为什么 CI 里检查结果和本地不同? 插件在调用时惰性解析路径,但检查器(如 ESLint flat config)对工作目录敏感。请在调用前确认 cwd,或在测试脚本中显式切换到目标目录。

Q:会执行我的代码吗? 不会。只做静态解析,任何"运行结果"都不在检查范围内。

Q:支持哪些语言? 按片段特征自动识别常见语言(JS/TS/Python 等);未识别的语言会给出可读性提示而非报错。

Q:能自动修复问题吗? 不能,本插件只报告问题;修复由你或 dsh-diff-writer 落地。