@duyquangnvx/harness

中文文档
0.6.3发布于 2026/11/08MITES Module零依赖近 30 天下载 3921

共享 repo 配置: Biome, tsconfig, 左上角和 Ruff 预设以及 Claude Code 的 lint- on-edit 钩子

中文使用文档
文档目录4 节
  1. 这个 harness 命令
  2. 设置回购
  3. 在npm 12和pnpm 11下的基特钩
  4. 释放此软件包

@ duyquangnvx/ 痛苦

共享重播配置: Biome, tsconfig, lefthook and Ruff 预设和克洛德代码的lint-on-edit钩. Repo 扩展了预设, 并保留了自己文件中的覆盖; 包的 harness 命令设置,检查并升级. 发布软件包的回放 @duyquangnvx/release。 。 。 .

文件这是什么一个回扣用它作为
biome.preset.json材料和机械规则: any, (中文(简体) ), !, (中文(简体) ), enum, (中文(简体) ), console,嵌入式三角形,复杂度,文件长度,详尽无遗的开关"extends": ["@duyquangnvx/harness/biome"]
tsconfig.strict.jsonstrict 加上它不给的支票"extends": ["@duyquangnvx/harness/tsconfig.strict.json"]
lefthook.yml承诺前:Biome在已上演的文件中,然后 tsc --noEmit,两者来自 node_modules/.bin 在任何软件包管理器下extends: [node_modules/@duyquangnvx/harness/lefthook.yml]
ruff.tomlPython 行长和规则选择extend = "node_modules/@duyquangnvx/harness/ruff.toml"
lint-on-edit.mjs克劳德代码 PostToolUse 钩子:格式和指针 每个编辑的文件, 退出2手 剩下的Claude。 仅在 Repo 安装时运行 Biome, 仅在 Ruff 配置存在时运行 下面的命令

Biome预设是平的,因为一个文件Biome扩展不能再扩展另一个. 生化取光谱,没有 .json。 。 。 .

这个 harness 命令

命令它会做什么
init设置重播 : 下级
doctor [--json]说,改变什么, 它运行的git repo是什么 和这个机器缺少或有后面, 每个有命令或线 修复它。 Repo:在npmjs上对最近的包,Biome在版本的包针上,每个配置扩展其预设,林特钩,左上钩,一个 AGENTS.md (单位:千美元) CLAUDE.md 进口它, 和旧的复制 - 任何东西都留下。 机器:规则链接在 ~/.claude/rules/harness,则 duyquangnvx 插件, 和Matt在标记此软件包名称时的技能
context [--json]说,改变什么, 克劳德代码在启动时在它运行的文件夹中加载什么, 并有一个粗略的符号数: 指令文件及其导入,规则(那些带有 paths: 技术和副剂说明 ~/.claude, (中文(简体) ), .claude 并启用插件。 它命名了两个已装入的文件, 以及从 repo 根上方装入的任何文件(ADR 0010 (英语)(中文(简体) )
upgrade添加数 @duyquangnvx/harness@latest 与Repo的软件包管理器,将Biome设定到它所标注的版本,并打印所改变的东西. Python 唯一回波运行 npx @duyquangnvx/harness@latest upgrade,它再次复制了钩子和 Ruff 配置;当运行的软件包落后于 npmjs 上的最新数据时,它拒绝

运行它 npx @duyquangnvx/harness <command> 在安装软件包之前,然后通过软件包管理器(pnpm exec harness doctor) (中文(简体) ). init 财务报告和审定财务报表 upgrade 拒绝写入未承诺的更改. harness <command> --help 有细节.

退出含义
0没什么好修的
1使用错误
2用于在 repo 或 机器 中修复的东西, 输出名称
70错误

设置回购

npx @duyquangnvx/harness init

在一次追债中 package.json 和一个锁文件, init 添加软件包和工具其预设运行到 devDependencies 使用软件包管理器锁定文件名称, 制作 lefthook install 页:1 prepare 没有脚本时, 请拒绝左上角安装脚本为 下级,在下面的配置缺失时写出,并将钩子添加到 .claude/settings.json,指向一个开着旧副本的钩子 .claude/hooks/lint-on-edit.mjs 放在包裹里 无类型脚本的重播( 无) tsconfig.json,没有 typescript 软件包和无 .ts file git sees) 获得的既不是 typescript 也没有 tsconfig.json,以及 doctor 不要求一个 tsconfig.json。它从不重写 repo 已有的文件: 它打印文件需要的行并退出 2 .

在每一次重播中, Python -Only, init 写入 AGENTS.md 持有 ## Project status (绿地默认)和占位符 ## Commands, (中文(简体) ), ## Coding standards 财务报告和审定财务报表 ## Agent skills 各节,每节只写一个注释,说明属于何处,以及 CLAUDE.md 仅持有 @AGENTS.md,所以克劳德代码 和其他特工读一个文件。 A 类 CLAUDE.md 和它自己的内容 获得如何移动 AGENTS.md。 。 。 . doctor 检查一下 AGENTS.md 它只持有一个特工自己找不到的东西 所以命令 package.json 或读取器已经放弃.

通过手,同样的设置是:

pnpm add -D @duyquangnvx/harness lefthook typescript
pnpm add -D --save-exact @biomejs/[email protected]

biome.json中,在 extends数字 :

{
  "$schema": "https://biomejs.dev/schemas/2.6.2/schema.json",
  "extends": ["@duyquangnvx/harness/biome"]
}

tsconfig.json,在带有类型脚本的重播中:添加 "extends": ["@duyquangnvx/harness/tsconfig.strict.json"]。 。 。 .

lefthook.yml。任务按名称合并,如果两个文件都设置了密钥,则包的值将获得胜利,所以Repo会添加自己的任务,或者密钥,例如 root,除了包裹的:

extends:
  - node_modules/@duyquangnvx/harness/lefthook.yml

工作运行工具 从repo's node_modules/.bin,所以预设在 npm 和 pnpm 下工作,从不获取缺失的工具. pnpm exec 在 npm repo 中失败,并且 npx 增加约半秒的工作,解决登记册上一个缺失的名字.

.claude/settings.json;在第一个安装包丢失之前,然后钩子退出 0:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "f=\"$CLAUDE_PROJECT_DIR/node_modules/@duyquangnvx/harness/lint-on-edit.mjs\"; [ -f \"$f\" ] || exit 0; node \"$f\""
          }
        ]
      }
    ]
  }
}

旁边有 Python 的重播 package.json数字 : ruff.toml 持有 extend 线条上。 仅限Python的回放,无 package.json没有 node_modules显示 : init 复制钩子到 .claude/hooks/lint-on-edit.mjs 此配置为 .claude/harness.ruff.toml,添加 node "$CLAUDE_PROJECT_DIR/.claude/hooks/lint-on-edit.mjs" 作为钩入 .claude/settings.json,并撰写 ruff.toml 持有 extend = ".claude/harness.ruff.toml" 当雷波没有 Ruff 配置时; a ruff.toml, (中文(简体) ), .ruff.toml 或者说 pyproject.toml [tool.ruff] 它自己得到的行 代替打印.

在npm 12和pnpm 11下的基特钩

两个左撇子的 postinstall,这是用来安装 gi钩。 由npm 12.2.0,pnpm 11.8.0和左旋 2.2.2

  • npm 12 安装软件包但离开 .git/hooks 空出,警告脚本"没有被允许的脚本所覆盖".
  • pnpm 11 安装失败(ERR_PNPM_IGNORED_BUILDS,退出 1 ,直到允许或拒绝建造.
  • 左旋二进制来自平台可选依赖性,运行时没有 postinstall。 。 。 .

因此repo安装了钩子本身,并否认了"左克"的脚本,在两者下都有效:

  • package.json数字 : "scripts": { "prepare": "lefthook install" },并在 npm 下 "allowScripts": { "lefthook": false }。 。 。 .
  • 时间 : pnpm-workspace.yaml 持有 allowBuilds: 与 lefthook: false。 。 。 .

lefthook install,以及 lefthook run,它首先同步了钩子,然后写到 repo 共享 .git/hooks:安装在任何工作树上,为所有人安装钩子.

一个 pnpm repo 也列出 '@duyquangnvx/harness' 下级 minimumReleaseAgeExclude 内 pnpm-workspace.yaml这样 upgrade 安装发售日,而不是一天后.

释放此软件包

它从这个文件夹中发布 @duyquangnvx/release. 对已建成的 dist/数字 : pnpm test 先盖起.

版本与发布记录

@duyquangnvx/harness 共发布 18 个版本,首次发布于 2026/10/16;过去 12 个月发布了 18 个版本。

版本发布日期距今
0.6.3latest2026/11/084 天前
0.6.22026/11/066 天前
0.6.12026/11/0310 天前
0.6.02026/11/0211 天前
0.5.22026/10/2420 天前
0.5.12026/10/2420 天前

关于 @duyquangnvx/harness 的常见问题

@duyquangnvx/harness 是什么?

共享 repo 配置: Biome, tsconfig, 左上角和 Ruff 预设以及 Claude Code 的 lint- on-edit 钩子

如何安装 @duyquangnvx/harness?

在项目目录运行 npm install @duyquangnvx/harness,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 harness,可以用 npx harness 直接运行。

@duyquangnvx/harness 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/duyquangnvx__harness 是否存在。

@duyquangnvx/harness 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@duyquangnvx/harness 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.18.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@duyquangnvx/harness 可以商用吗?

@duyquangnvx/harness 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@duyquangnvx/harness 的下载量有多少?

根据 npm 官方下载统计,@duyquangnvx/harness 在 2026/10/13 – 2026/11/11 这 30 天内被下载 3,921 次,日均约 131 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@duyquangnvx/harness 还在维护吗?

最新版本 0.6.3 发布于 2026/11/08(4 天前);至今共发布 18 个版本,其中过去 12 个月发布了 18 个;首次发布于 2026/10/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。