# @andypai/harness-doctor 中文文档

规范地址：https://npmcn.com/package/%40andypai/harness-doctor/

版本：2\.0\.0
npm 元数据更新时间：2026-07-18T04:44:02.467Z
中文译文更新时间：2026-11-06T03:44:08.163Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40andypai/harness-doctor
原文对照：https://npmcn.com/package/%40andypai/harness-doctor/?lang=original
项目主页：https://github.com/abpai/harness-doctor#readme
源码仓库：https://github.com/abpai/harness-doctor

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：992 kB，9 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：12 个
- 首次发布：2026-06-10T17:21:32.028Z
- 最新版本发布：2026-07-18T04:44:02.155Z
- 近 30 天下载量：16197（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：5（近 12 个月 5 个）

## 中文简介

扫描 repo 的代理- 健康准备状态: Docs 合同( AGENTS. md, docs/ system of record, spec contract), 供应链硬化, 和死代码 – 有准备积分, diff 模式, 以及 GitHub 动作

## 安装

```sh
npm install @andypai/harness-doctor
```

也可以使用：`pnpm add @andypai/harness-doctor`、`yarn add @andypai/harness-doctor`、`bun add @andypai/harness-doctor`

## README

# 医生

决定性的检查 让你的经纪人保持健康.

**[网站](https://abpai.github.io/harness-doctor/)** • 妇女 [无](https://www.npmjs.com/package/@andypai/harness-doctor) • 妇女 [文档](https://npmcn.com/package/docs/README.md)

编码代理只是和它运行的寄存器一样好. 如果公约 住在一个开发者的头, 如果没有进入点文件, 如果一个 存在是一个600行的文本壁——每个代理从零开始和猜测. 医生扫描可以阻止它的结构,报告什么 缺少, 并计分 0–100 这样您就可以观看它改善 .

这是框架不可知的,而且完全离线。 永远是同一个仓库 产生相同的诊断 和相同的分数: 没有模型呼叫, 没有网络, 没什么好说的.

## 它检查什么

-   **结构检查** 从磁盘上读取您的存储器——其文件、版式和 医生。 是否有特工进入点? 是一张短地图还是一张长相 手动? 有没有一个 `docs/` 目录,条目点是否实际点 进入它? 您的pnpm设置硬化 对于供应链攻击? 这些 检查是Harness医生如何解释 绳子本身,而不是代码 内在的.
-   **死码分析** 找到未用文件、 未用导出、 未用 依赖性和循环进口——误导代理人阅读的十字架 你的密码库.

每一个发现都有一个一行解释 什么是错的和混凝土 fix -- -- 由人阅读或直接交给编码代理人.

## 快开始

需要1.3.14号或更新的.

从任何工程的根 :

```bash
bunx --bun @andypai/harness-doctor@latest
```

你会得到审计和分数 添加 `--verbose` 以查看文件的每个查找 和行号.

在不进行任何检查的情况下检查确定性指挥表面:

```bash
bunx --bun @andypai/harness-doctor@latest signals
```

此打印的信号菜单为 JSON: 从根和 工作空间软件包, `.github/workflows/*.yml|*.yaml` `run:` 命令分组 工作流程/工作, Makefile目标, 和简单的食谱。 发现只读取文件; 它 不执行验证命令.

## 为代理安装

医生进入你经纪人的工作流程 读取发现 修正 并避免在下一个变化上滑动:

```bash
bunx --bun @andypai/harness-doctor@latest install
```

与克洛德代码(Claude Code),Cursor,Codex,OpenCode等合作.

## 在 CI 中运行

扫描每个拉动请求, 并留下内含的发现 :

```yaml
name: Harness Doctor

on:
  pull_request:
    types: [opened, synchronize, reopened, ready_for_review]

permissions:
  contents: read
  pull-requests: write
  issues: write

jobs:
  harness-doctor:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: abpai/harness-doctor@v1
```

硬化的CI,针 `@v1` 全力以赴的SHA 并让依赖或革新 撞起来.

## 配置

放下一个 `harness.config.ts` 在您的项目根。 医官载了第一个 匹配此顺序的配置 : `harness.config.ts`, (中文(简体) ), `.mts`, (中文(简体) ), `.cts`, (中文(简体) ), `.js`, (中文(简体) ), `.mjs`, (中文(简体) ), `.cjs`, (中文(简体) ), `.json`, (中文(简体) ), `.jsonc`; 或 一个 `harnessDoctor` 对象在 `package.json`。 。 。 .

```ts
// harness.config.ts
import type { HarnessDoctorConfig } from "@andypai/harness-doctor/api";

export default {
  deadCode: false,
  docsContract: true,
  baselineCheck: true,
  rules: {
    "harness-doctor/docs-structure/spec-contract-exists": "error",
    "knip/unused-file": "off",
  },
} satisfies HarnessDoctorConfig;
```

设定 `docsContract: true` 当一个 repo 选择了 Harness 文件结构时 并且应该保持持久 `docs/todos/INDEX.md` 甚至在打开待办事宜前队列 规格存在。 设定 `deadCode: false` 跳过heuristic的死码家族 首先运行; 死码诊断有用, 但动态加载的固定装置可以 是假阳性。 设定 `baselineCheck: true` 接受行为后 因此,当地运行和CI需要库存和分类账。 这个 外部 [`harness` 技能插件](https://github.com/abpai/skills) 创建 这些文物通过 `/harness baseline`编辑 `--baseline-check` 旗帜仍然可供一次性执行.

死码分析将捆绑的克尼普CLI作为孤立子进程运行. 克尼普语Name 自动读取拥有的仓库 `knip.json`, (中文(简体) ), `knip.jsonc`, (中文(简体) ), `.knip.json`, (中文(简体) ), `.knip.jsonc`, (中文(简体) ), `knip.js`, (中文(简体) ), `knip.ts`, (中文(简体) ), `knip.config.js`, (中文(简体) ), `knip.config.ts`,或 `package.json#knip`; 使用这个 动态切入点、生成代码、框架插件的配置 工作空间布局。 Knip 配置提示会传输到 stderr 。 节奏 医生报告Knip的发现是 `knip/<rule>` 重度键和 压制配置. 这是前一个破旧的重命名 `deslop/<rule>` 名称空间.

配置形状 :

```ts
interface HarnessDoctorConfig {
  $schema?: string;
  deadCode?: boolean;
  docsContract?: boolean;
  baselineCheck?: boolean;
  verbose?: boolean;
  warnings?: boolean;
  diff?: boolean | string;
  failOn?: "error" | "warning" | "none";
  share?: boolean;
  noScore?: boolean;
  rootDir?: string;
  respectInlineDisables?: boolean;
  ignore?: {
    rules?: string[];
    files?: string[];
    tags?: string[];
    overrides?: Array<{ files: string[]; rules?: string[] }>;
  };
  surfaces?: Partial<
    Record<
      "cli" | "prComment" | "score" | "ciFailure",
      {
        includeTags?: string[];
        excludeTags?: string[];
        includeCategories?: string[];
        excludeCategories?: string[];
        includeRules?: string[];
        excludeRules?: string[];
      }
    >
  >;
  rules?: Record<string, "off" | "warn" | "error">;
  categories?: Record<
    "Security" | "Bugs" | "Performance" | "Accessibility" | "Maintainability",
    "off" | "warn" | "error"
  >;
}
```

规则密钥在 `rules`, (中文(简体) ), `ignore.rules`, (中文(简体) ), `surfaces.*.includeRules`,以及 `surfaces.*.excludeRules` 必须是插件前缀。 使用 `harness-doctor/docs-structure/<rule>` 用于文件结构检查, `harness-doctor/require-pnpm-hardening` 用来硬化,和 `knip/<rule>` 为死码检查。 譬如说, `"docs-structure/spec-contract-exists": "off"` 不是一个有效的覆盖密钥; 使用情况 `"harness-doctor/docs-structure/spec-contract-exists": "off"`。 。 。 .

## JSON合同

`--json` 以 `schemaVersion: 1`。每个发现都是 诊断方法 `filePath`, (中文(简体) ), `plugin`, (中文(简体) ), `rule`, (中文(简体) ), `severity`, (中文(简体) ), `message`, (中文(简体) ), `help`, (中文(简体) ), `line`, (中文(简体) ), `column`,以及 `category`消费者应取消关键行为 `plugin/rule` 财务报告和审定财务报表 `schemaVersion`而不是说流言 报告还包括最高级别 `signals`,同样的决定性命令菜单 `harness-doctor signals`。 。 。 .

文件结构规则 `harness-doctor/docs-structure/proof-menu-command-exists` 核查 `docs/SPEC_CONTRACT.md` (原始内容存档于2017-10-21). proof-menu table still. 内容 `Validation command` 单元格只必须包含反链条命令,每个命令必须解决 切入到已存在的软件包脚本、 Makefile 目标, 或仅在其中发现的食谱 信号菜单.

## 文档

指南 [`docs/`](https://npmcn.com/package/docs/) 记录系统是:

-   [**文档/README.md**](https://npmcn.com/package/docs/README.md) - 从这里开始.
-   [**如何写支票**](https://npmcn.com/package/docs/HOW_TO_WRITE_A_CHECK.md) ——作者结构 检查.
-   [**检查修补的食谱**](https://npmcn.com/package/docs/CHECK_FIX_RECIPES.md) ——代理人如何补救 每一个结构发现.
-   [**文件索引**](https://npmcn.com/package/docs/INDEX.md) - 完整的文件地图.

## 捐款

虫子和想法受到欢迎——打开 [问题](https://github.com/abpai/harness-doctor/issues)。 。 。 .

麻省理工学院有执照.

## 承认

受到艾登·白的反应医生的启发——我很喜欢它,想要一个类似的系统 准备回波的牵引工程 健康医生是一个独立项目 并且不附属于或得到反应医生或其作者的认可.

## 常见问题

### @andypai/harness-doctor 是什么？

扫描 repo 的代理- 健康准备状态: Docs 合同\( AGENTS\. md, docs/ system of record, spec contract\), 供应链硬化, 和死代码 – 有准备积分, diff 模式, 以及 GitHub 动作

### 如何安装 @andypai/harness-doctor？

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

### @andypai/harness-doctor 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @andypai/harness-doctor 支持 ESM 还是 CommonJS？

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

### @andypai/harness-doctor 可以商用吗？

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

### @andypai/harness-doctor 的下载量有多少？

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

### @andypai/harness-doctor 还在维护吗？

最新版本 2\.0\.0 发布于 2026/07/18（3 个月前）；至今共发布 5 个版本，其中过去 12 个月发布了 5 个；首次发布于 2026/06/11。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

