# @aurelienbbn/conformance-core 中文文档

规范地址：https://npmcn.com/package/%40aurelienbbn/conformance-core/

版本：0\.2\.0
npm 元数据更新时间：2026-10-16T14:37:14.236Z
中文译文更新时间：2026-11-07T05:38:34.121Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40aurelienbbn/conformance-core
原文对照：https://npmcn.com/package/%40aurelienbbn/conformance-core/?lang=original
项目主页：https://github.com/aurelienbobenrieth/harness/tree/main/packages/conformance-core#readme
源码仓库：https://github.com/aurelienbobenrieth/harness

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

- 包体积（解压后）：147 kB，13 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：^22\.19\.0 \|\| ^24\.11\.0
- 运行依赖：1 个
- peer 依赖：vitest \>=4\.1\.11 \<6\.0\.0
- 首次发布：2026-09-25T09:45:49.085Z
- 最新版本发布：2026-10-16T14:37:13.884Z
- 近 30 天下载量：2262（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：4（近 12 个月 4 个）

## 中文简介

堆积不可知的回波卫生检查 包装为维特套房.

## 安装

```sh
npm install @aurelienbbn/conformance-core
```

也可以使用：`pnpm add @aurelienbbn/conformance-core`、`yarn add @aurelienbbn/conformance-core`、`bun add @aurelienbbn/conformance-core`

## README

# @aurelienbn/符合核心条件

[![npm](https://img.shields.io/npm/v/@aurelienbbn/conformance-core)](https://www.npmjs.com/package/@aurelienbbn/conformance-core) [![downloads](https://img.shields.io/npm/dm/@aurelienbbn/conformance-core)](https://www.npmjs.com/package/@aurelienbbn/conformance-core) [![CI](https://github.com/aurelienbobenrieth/harness/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/aurelienbobenrieth/harness/actions/workflows/ci.yml) [![license](https://img.shields.io/npm/l/@aurelienbbn/conformance-core)](https://github.com/aurelienbobenrieth/harness/blob/main/packages/conformance-core/LICENSE) [![node](https://img.shields.io/node/v/@aurelienbbn/conformance-core)](https://github.com/aurelienbobenrieth/harness/blob/main/packages/conformance-core/package.json)

**对任何类型Script repo进行6个回放检查. 普通函数或一个 Vitest 文件 .**

```ts
// conformance.test.ts
import { coreConformance } from "@aurelienbbn/conformance-core/vitest";

coreConformance({ root: process.cwd(), tsconfigStrictness: {} });
```

`vitest` 是一个可选的对等点( e)`>=4.1.11 <6.0.0`; 节点 `^22.19.0 || ^24.11.0`。 。 。 .

## 报告从不把"不违规"和"没有证据"混为一谈

```text
skipped      excluded by skipChecks · CSS probe or tsconfig gate unconfigured
unsupported  tool absent (jscpd, knip) · no tsconfig found
failed       timeout · bad report · throw · bad options   (tools cap at 120 s, Vitest tests at 125 s)
evaluated    ran to completion, can still hold violations

report.status   failed      any error finding or failed check
                incomplete  any check not evaluated
                passed      otherwise  (configured static checks, not whole-project compliance)
```

| 评价 | 测试 |
| --- | --- |
| 不支持的警告 | qq 跳过, 警告已打印 |
| 不支持的错误( n)`requireTool`, (中文(简体) ), `requireKnipConfig`,明确 tsconfig `files`(中文(简体) ) | 失败 |
| 失败 | 失败,即使警告严重 |
| 已评估 : 错误 : 仅警告 | \- 通过 |

## 三个入境点

```ts
import { runCoreConformance, runCoreConformanceReport } from "@aurelienbbn/conformance-core";

const findings = await runCoreConformance({
  root: process.cwd(),
  skipChecks: ["duplication-budget"],
}); // legacy, same severities
const report = await runCoreConformanceReport({ root: process.cwd() }); // { status, checks[], findings[] }
```

`coreConformance` (单位:千美元)`/vitest`)每检查一次测试. 查找 : `check`, (中文(简体) ), `severity`, (中文(简体) ), `message`, (中文(简体) ), `path?`, (中文(简体) ), `docs` URL( URL) , (英语), `evaluation` 当证据不见了.

完整实例、样本报告、其他出口

```ts
coreConformance({
  root: process.cwd(),
  duplication: { maxClones: 0 },
  deadExports: { requireKnipConfig: true },
  closedDesignSystem: {
    stylesheet: "theme.css",
    requiredSelectors: [".token"],
    forbiddenSelectors: [".raw"],
    buildCommand: [
      process.execPath,
      "-e",
      "require('node:fs').writeFileSync(process.argv[1], '.token {}')",
      "{output}",
    ],
  },
  tsconfigStrictness: {
    waivers: {
      exactOptionalPropertyTypes: "Vendor SDK typings assign undefined to optional fields.",
    },
  },
});
```

`runCoreConformanceReport({ root, tsconfigStrictness: {}, skipChecks: ["duplication-budget"] })` 在工作空间,修剪:

```json
{
  "status": "failed",
  "checks": [
    { "check": "dependency-overlap", "status": "evaluated", "findings": [] },
    {
      "check": "duplication-budget",
      "status": "skipped",
      "reason": "Excluded by skipChecks.",
      "findings": []
    },
    {
      "check": "closed-design-system-probe",
      "status": "skipped",
      "reason": "No CSS build/selector probe configured.",
      "findings": []
    },
    {
      "check": "tsconfig-strictness",
      "status": "evaluated",
      "findings": [
        {
          "check": "tsconfig-strictness",
          "severity": "error",
          "message": "packages/agentlint-plugin-core/tsconfig.json: `noUncheckedIndexedAccess` is unset; set it to true in compilerOptions.",
          "path": "packages/agentlint-plugin-core/tsconfig.json",
          "docs": "https://github.com/aurelienbobenrieth/harness/tree/main/packages/conformance-core#tsconfig-strictness"
        }
      ]
    }
  ]
}
```

也导出 : `coreChecks`, (中文(简体) ), `activeChecks`,每个检查对象(`dependencyOverlap`, (中文(简体) ), `duplicationBudget`, (中文(简体) ), `deadExports`, (中文(简体) ), `closedDesignSystemProbe`, (中文(简体) ), `tsconfigStrictness`, (中文(简体) ), `instructionBlocks`) (中文(简体) ).

## 检查

### 依赖重叠

**内建家庭警告(工具可以互补) `dependencyOverlapGroups` 替换它们和错误; `[]` 禁用 .** 每个根和工作空间 `package.json` 独自判断.

30个家庭,工作空间发现

读取 `dependencies` + 键 `devDependencies`。工作空间: `pnpm-workspace.yaml` `packages:` 文字路径和单级 `dir/*` 惟有弃绝和深厚的污名.

```text
dayjs date-fns moment luxon
axios got ky node-fetch superagent
uuid nanoid cuid cuid2 @paralleldrive/cuid2 ulid
zod yup joi ajv superstruct valibot arktype
lodash lodash-es ramda remeda es-toolkit
chalk picocolors kleur colorette ansis
dotenv dotenv-flow
jest vitest
winston pino bunyan loglevel consola
glob fast-glob globby tinyglobby
commander yargs cac citty meow
inquirer @inquirer/prompts prompts @clack/prompts enquirer
p-limit p-queue p-map promise-pool @supercharge/promise-pool
yaml js-yaml
papaparse csv-parse fast-csv
prisma drizzle-orm kysely knex typeorm sequelize
ws socket.io
immer mutative
zustand jotai valtio @xstate/store
fs-extra graceful-fs
semver compare-versions
marked markdown-it remark micromark
cheerio parse5 linkedom node-html-parser
execa zx tinyexec
rimraf del
cross-env env-cmd
nodemon tsx-watch watchexec
mime mime-types
deepmerge defu ts-deepmerge
query-string qs
```

### 重复预算

[页:1](https://github.com/kucherenko/jscpd),忽略 `node_modules`, (中文(简体) ), `dist`, (中文(简体) ), `coverage`, (中文(简体) ), `.git`。超预算: 与前3名克隆人. **在任何预算下不正确的克隆行会失败 .**

### 废导出

[树脂](https://knip.dev/) `--reporter json`:未使用的文件,导出,类型,命名空间,enum,和类成员(已列出10个). 先检查报告形状 。 默认: 没有 knip 配置仍然运行; 没有 knip 警告; 超时或输出失败 .

### 闭路设计系统探测器

**有限选择器探测器 并非彻底关闭的证据.** 在您解析的构建输出中需要/ 禁止选择 . **没有默认构建器, 没有默认安装**;构建者必须包含探测器输入. 超时, 非零出站, 无输出, 无效 CSS → 失败 .

> \[尖叫声\] Windows:通过本地可执行文件或 `node` 加上工具的JS切入点. 果壳香( Sell shims (英语)`.cmd`, (中文(简体) ), `.bat`, (中文(简体) ), `npx`, (中文(简体) ), `npm`, (中文(简体) ), `pnpm`, (中文(简体) ), `yarn`)被拒绝.

道具:关闭 Tailwind v4 主题并证明

1.  打开 `--*: initial` 在顶层 `@theme` (单位:千美元)[尾风主题文件](https://tailwindcss.com/docs/theme)因此,只有你的代币 产生公用事业, 然后迁移受影响的用途。 静态公用事业和任意的价值观仍然有效:这关闭了符号集,而不是类列表.
2.  探测样式表: 一个孤立的文件, 导入真实的文件, 并请求允许和禁止的类 `@source inline(...)` (单位:千美元)[语法](https://tailwindcss.com/docs/detecting-classes-in-source-files)) (中文(简体) ). 没有它,一个缺失的选取者可能仅指"从未发现".
3.  以被绑定的本地 CLI 构建为可执行文件加参数数组;从未下载过浮动 CLI . `buildCommand` 因为核心兼容性没有框架默认.
4.  电线像 [实例](https://github.com/aurelienbobenrieth/harness/blob/main/examples/conformance-core/closed-design-system-probe.example.ts)。 。 。 .

对于完整的类允许列表,还要检查类构建和源中的任意值. 一个失败的构建或缺失的工具意味着未经评价,从不"禁止缺席". 调查候选者 远离生产来源.

### tsconfig 限制

**松散的tsconfig悄悄地降解出有意识的类型(`no-unnecessary-condition`, (中文(简体) ), `strict-boolean-expressions`, (中文(简体) ), `no-unsafe-*`而AST规则没有看到JSON.** 检查有效选项 `extends`; 消息名称为设置每个值的文件.

要求数 `strict: true` **写下来,没有继承**· ; `noUncheckedIndexedAccess`, (中文(简体) ), `exactOptionalPropertyTypes`, (中文(简体) ), `verbatimModuleSyntax`, (中文(简体) ), `erasableSyntaxOnly` 真实; 不关闭严格的家族旗帜; 不 `ignoreDeprecations`无论它的价值如何.

严格的家庭,默认文件,放弃,失败模式, `extends` 决议

-   严格的家庭 : `strictNullChecks`, (中文(简体) ), `noImplicitAny`, (中文(简体) ), `strictFunctionTypes`, (中文(简体) ), `strictBindCallApply`, (中文(简体) ), `strictPropertyInitialization`, (中文(简体) ), `strictBuiltinIteratorReturn`, (中文(简体) ), `noImplicitThis`, (中文(简体) ), `useUnknownInCatchVariables`, (中文(简体) ), `alwaysStrict`。 。 。 .
-   `erasableSyntaxOnly` 以编译器保证取代一个由enum/namespace/parameter-property lint规则组成的家族.
-   默认 `files`数字 : `tsconfig.json` + 键 `tsconfig.*.json` 在根和每个 pnpm 工作空间包中,减去溶解文件(`"files": []`,没有 `include`)和只作为另一个被检查的配置的配置 `extends` 基础.
-   `additionalRequiredFlags`: 必须增加旗帜 `true`,比如说. `noImplicitOverride`。 。 。 .

| 投入 | 结果 |
| --- | --- |
| 放弃(国旗-理由-3个字) | 警告在每份报告中重复原因 |
| 放弃支票不拥有的旗帜或理由 < 3个字 | 抛出( 报告评价失败) |
| 放弃不匹配 | 暂停警告 |
| 缺少或循环 `extends`,不可读或格式错误的文件 | qq 评估失败,从未通过 |
| 缺少列表文件 | qq 失败 |
| 未发现 tsconfig | qq 不支持( qq 出错 ) `files` 明确) |

`extends` 解析度: 有无的相对路径 `.json`; 数组, 以后的条目获胜; 包指定符来自 `node_modules` 通过字符串 `exports` 目标或清单 `tsconfig` 字段; JSONC 注释, 后面的逗号, 一个 BOM。 仅读 JSON : 不 `tsc` 运行,不需要安装类型脚本.

### 指令块

**代理必须遵循的一条规则 每一个答复都属于它总是加载的文件, 但应该写一次.** 每个已配置的块 `AGENTS.md` (或 `file`)必须将其源文件的确切文本保存在 `<!-- harness:<name>:start -->` 财务报告和审定财务报表 `<!-- harness:<name>:end -->`。行尾和周围的空白行被忽略;其他的都是漂移.

```ts
instructionBlocks: {
  blocks: {
    communication: ".agents/skills/communication/core.md";
  }
}
```

| 投入 | 结果 |
| --- | --- |
| 区块文本与来源不同 | {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}漂来漂去 复制来源 |
| 没有标记, 未关闭, 在开始前结束, 重复标记 | 命名要添加的标记 |
| 缺少指令文件 | ❌ |
| 缺少源, 为空 `blocks`,非kebab 块名 | 抛出( 评估失败) |
| 未配置的块的标记 | 忽略 |

## 选项

| 选项 | 默认 | 页:1 |
| --- | --- | --- |
| `skipChecks` | `[]` | 未知的ID 丢弃 |
| `dependencyOverlapGroups` | 30个家庭 | 换掉他们 |
| `duplication.maxClones` • 妇女 `.minLines` • 妇女 `.minTokens` | `0` • 妇女 `8` • 妇女 `60` | 安全整数; `maxClones` ,其他 > 0 |
| `duplication.ignorePatterns` | `[]` | 生成/复仇花纹 |
| `duplication.requireTool` | `false` | 没有jscpd或坏运行 === |
| `deadExports.requireKnipConfig` | `false` | 无配置( n)`knip.json(c)`, (中文(简体) ), `.knip.json(c)`, (中文(简体) ), `knip(.config).ts/js`, (中文(简体) ), `package.json#knip`页:1 |
| `closedDesignSystem` | 未设置( 已滑动) | `stylesheet`, (中文(简体) ), `buildCommand` 参数 `{stylesheet}` `{output}`, (中文(简体) ), `requiredSelectors`, (中文(简体) ), `forbiddenSelectors` |
| `tsconfigStrictness` | 未设置( 已滑动) | `{}` = 违约; `files`, (中文(简体) ), `additionalRequiredFlags`, (中文(简体) ), `waivers` |
| `instructionBlocks` | 未设置( 已滑动) | `blocks` (名称-根-相对来源), `file` (默认) `AGENTS.md`(中文(简体) ) |

## 移徙

-   未知 `skipChecks` ID投出而不是默默地失去例外:修正打错.
-   缺少可选工具会被跳过测试; 输出不良或运行失败失败 。 两者都可以通过之前仅作为警告性的测试.
-   重复限制必须是有限度的安全整数;即使预算很宽大,jscpd行也失败了.

## 登记的合同库存

从软件包导出 `pnpm catalog`. 规则特定选项和限制在上文和源测试中都有描述.

| 规则/检查 | 触发或审查范围 |
| --- | --- |
| `closed-design-system-probe` | 已建 CSS 包含每个自有的符号工具并排除已配置的被禁选择器 . |
| `dead-exports` | 密码库( knip) 中没有未使用的文件或导出 . |
| `dependency-overlap` | 每个已知的重复依赖家庭只能安装一个包. |
| `duplication-budget` | 复制版块保留在已配置的克隆预算(jscpd)内. |
| `instruction-blocks` | 在代理指令文件中被标记的块与他们的源文件完全匹配. |
| `tsconfig-strictness` | 已解析的 tsconfig 文件保留了严格的编译器基线,没有关闭严格的家族旗. |

### 信用概念

-   由Sandro Maglione(启发、独立重新执行)自动操作
-   代码由 Asyrafhussin (MIT,概念被重新执行)
-   由 Peter O'Malley 拆解(仅概念,没有代码再使用)

## 常见问题

### @aurelienbbn/conformance-core 是什么？

堆积不可知的回波卫生检查 包装为维特套房\.

### 如何安装 @aurelienbbn/conformance-core？

在项目目录运行 npm install @aurelienbbn/conformance-core，或使用 pnpm add / yarn add / bun add。

### @aurelienbbn/conformance-core 支持 TypeScript 吗？

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

### @aurelienbbn/conformance-core 支持 ESM 还是 CommonJS？

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

### @aurelienbbn/conformance-core 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js ^22\.19\.0 \|\| ^24\.11\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @aurelienbbn/conformance-core 可以商用吗？

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

### @aurelienbbn/conformance-core 的下载量有多少？

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

### @aurelienbbn/conformance-core 还在维护吗？

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

