# @agent-teams/feature-module-standard 中文文档

规范地址：https://npmcn.com/package/%40agent-teams/feature-module-standard/

版本：0\.3\.2
npm 元数据更新时间：2026-11-01T17:26:17.007Z
中文译文更新时间：2026-11-06T06:42:15.853Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40agent-teams/feature-module-standard
原文对照：https://npmcn.com/package/%40agent-teams/feature-module-standard/?lang=original
项目主页：https://github.com/agent-teams-ai/engineering-foundation#readme
源码仓库：https://github.com/agent-teams-ai/engineering-foundation

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

- 包体积（解压后）：223 kB，76 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：^24\.18\.0 \|\| ^26\.0\.0
- 运行依赖：0 个
- peer 依赖：@agent-teams/engineering-foundation ^1\.8\.0 \|\| ^2\.0\.0 \|\| ^3\.0\.0
- 首次发布：2026-10-17T14:14:20.128Z
- 最新版本发布：2026-11-01T17:26:16.683Z
- 近 30 天下载量：4409（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：13（近 12 个月 13 个）

## 中文简介

Feature Module Standard的Opt-in检查:一个纯内核,共享的固定装置和一个在Foundation文件图上的节点跑道.

## 安装

```sh
npm install @agent-teams/feature-module-standard
```

也可以使用：`pnpm add @agent-teams/feature-module-standard`、`yarn add @agent-teams/feature-module-standard`、`bun add @agent-teams/feature-module-standard`

## README

# 特性模块标准

对该组织的抽查 [特性模块标准](https://github.com/agent-teams-ai/.github/blob/main/docs/architecture/feature-module-standard/v1.1.md) (单位:千美元)`agent-teams.feature-module-standard`) (中文(简体) ). 软件包以标准命名 目的:标准定义了一个架构的布局和词汇,所以 它的检查从未进入架构中立的基金会核心. 一个仓库 不采用标准 绝不装入此软件包, 也没有核心软件包 依赖它; 唯一的依赖方向是从此包到中性 核心(见 [建筑中立](https://npmcn.com/package/docs/architecture/executable-capabilities.md#architecture-neutrality)) (中文(简体) ).

开发与CI只使用. 不要从产品运行时代码导入它 .

## 它检查什么

内核验证一个出产模块的申报结构. 没有 运行时的依赖性, 不读取文件, 不运行解析器, 并拓宽策略: 每 事实(地貌根源、角色目录、地表、共和国、宣布) 使用边缘)是输入,消费者存储库保持其外观和决定.

```ts
import { checkFeatureModule } from '@agent-teams/feature-module-standard';

const report = checkFeatureModule({
  // The profile's declared structure: every feature root and the directories or files mapped to roles.
  featureRoots: ['src/features/orders', 'src/features/billing'],
  roleRoots: [{ root: 'src/features/orders/domain', role: 'domain' }, { root: 'src/features/orders/api.ts', role: 'application' }],
  files, // production files, repository-relative, `/` separators
  surfaces: { public: [...], compositionContract: [...], compositionSurface: [...] },
  imports, // resolved edges: { from, to, mode: 'runtime' | 'type-only', line, reexport? }
});
// report.ok, report.diagnostics, report.features, report.metrics
```

规则执行特性模块标准 v1 和 v1.1 添加 次级地物和组成合同. `STANDARD` 出口 `{ id, version: 'v1.1', digest }` 会 议 日 程 和 议 程 已执行文本( blob) `bd949a9a670862fea851a7791fce772fdef3b4fc`, (中文(简体) ), [固定组织blob](https://api.github.com/repos/agent-teams-ai/.github/git/blobs/bd949a9a670862fea851a7791fce772fdef3b4fc), (中文(简体) ), 因此,一个剖面图可以比较它和它所寄取的文摘. 适用情况如下:a 子特性只存在于 `featureRoots` 宣布,所以在任何其他模块 (单位:千美元) `features` 特性内的目录保留其v1含义.

| 规则 | 诊断代码 |
| --- | --- |
| 树: 特性根于 `<features root>/<name>` 财务报告和审定财务报表 `<parent>/features/<name>`,一个容器名称,只有角色目录,在特征根下方的容器和映射文件 | `feature-root-placement`, (中文(简体) ), `feature-duplicate`, (中文(简体) ), `feature-undeclared`, (中文(简体) ), `container-file`, (中文(简体) ), `container-empty`, (中文(简体) ), `entry-unmapped` |
| 测试所有权:一个测试属于最深的特性,子地物测试活在镜像测试根上,一个测试只通过公共的,内部的API和测试表面使用另一个可见特性 | `test-unowned`, (中文(简体) ), `test-misplaced` (警告:标准说应该), `not-visible`, (中文(简体) ), `deep-import` |
| 可见度和地平面:子地平面可见于其父母和父母后人;无深入入入出 | `not-visible`, (中文(简体) ), `deep-import`, (中文(简体) ), `surface-unowned` |
| 图层方向(v1):域和应用程序从不导入合同;适配器通过应用程序核心联系到兄弟姐妹 | `layer-direction` |
| 组成合同(单元级组成由 `moduleComposition`:它们是组成代码,只有组成代码取决于它们,只有可见特征 | `composition-contract-misplaced`, (中文(简体) ), `composition-contract-layer`, (中文(简体) ), `not-visible` |
| 组装:只有父母的组装物会把它直接的分地层接上,它会把每个暴露出组装物表面的组装物接上线 | `assembly-misplaced`, (中文(简体) ), `assembly-missing` |
| 共和国:从一个直接次地层上宣布一个级别 | `republication-undeclared`, (中文(简体) ), `republication-skips-level`, (中文(简体) ), `republication-invalid`, (中文(简体) ), `republication-mismatch`, (中文(简体) ), `republication-not-sub-feature` |
| 当消费者有特征时,宣布使用边缘 | `use-undeclared`, (中文(简体) ), `use-edge-invalid` |
| 循环:向下和横向使用边缘,运行时间和类型相同;不同特性的文件之间的负载时间循环 | `feature-cycle`, (中文(简体) ), `load-cycle` |
| 增长:深度预警和每个地貌的衡量标准(档案、测试、次地貌、消费者档案组) | `depth-warning` |

每个代码都在 `ERROR_CODES` 或者说 `WARNING_CODES`; 标准的 MUST 是错误, 应该警告 这不会使模块失效。 诊断是分类和稳定的. `invalid-path` 报告输入路径 不是一个寄存器相对路径 `/` 分会者.

对于一个遵循默认布局的树(`<features root>/<feature>/<role directory>`, (中文(简体) ), `inferDirectoryLayout` 正在建设 `featureRoots`, (中文(简体) ), `featuresRoots` 财务报告和审定财务报表 `roleRoots` 从文件列表和角色指南地图.

用于仓库所属检查器的小块 : `layerDirectionAllowed`, (中文(简体) ), `findCycles`, (中文(简体) ), `findOverlappingRoots`, (中文(简体) ), `analyzeFeatureTree`。 。 。 .

## 固定设备

`@agent-teams/feature-module-standard/fixtures` 出口 `exampleSources`,示例树作为真实来源 文档(`import`, (中文(简体) ), `export * from`, (中文(简体) ), `import type {}` (a) 跑者实现并背出 `conformanceCases`页:1 有关标准、巢穴-地貌周期案例和 作为完整单元说明的合编合同案及其预期 诊断代码。 内核测试 和每个通过检查器作为它的 符合性测试,运行相同的数据.

## 运行者

`@agent-teams/feature-module-standard/node` 检查磁盘上的模块。 它读取 宣布的根 通过 `@agent-teams/engineering-foundation/source-graph`中,运行内核,并比较每个地貌度量与 增长预算 `@agent-teams/engineering-foundation/ratchet` (仅警告). 工程基金会 `^1.8.0 || ^2.0.0 || ^3.0.0` 是一个 可选对等依赖: `.` 财务报告和审定财务报表 `./fixtures` 不需要这个. 基金会3窗口为伴发行做准备. 见 [移徙和资格记录](https://npmcn.com/package/docs/development/feature-module-standard-foundation-3-migration.md) 用于未更改的跑道合同和所需的最后安装工艺门.

```ts
import {
  checkFeatureModuleOnDisk,
  formatNodeReport,
} from "@agent-teams/feature-module-standard/node";

const report = await checkFeatureModuleOnDisk({
  consumerRoot: process.cwd(),
  sourceRoots: ["src"],
  testRoots: ["tests/features"],
  testFeaturesRoot: "tests/features",
  structure: {
    featuresRoot: "src/features",
    roleDirectories: { domain: "domain", application: "application" },
  },
  surfaces: { public: ["src/features/orders/contracts/public.ts"] },
  budgets: [{ metric: "sourceFiles", max: 40 }],
});
process.stdout.write(formatNodeReport(report));
```

配置为数据. `structure` 要么是默认布局( y)`featuresRoot`, (中文(简体) ), `roleDirectories`,已声明 `subFeatureRoots`)或剖面图本身的映射(`featureRoots`, (中文(简体) ), `roleRoots`) (中文(简体) ). 预算可用计量是: `depth`, (中文(简体) ), `subFeatures`, (中文(简体) ), `sourceFiles`, (中文(简体) ), `testFiles` 和每个名字 `fileGroups` (常规表达来源). 文件解析器 无法读取运行失败, 因为它的导入会从支票中丢失 。 光谱不是边缘: 文件图表报告包和别名作为外部,所以不显示指向特性的 tsconfig别名. `moduleComposition` 命名允许使用组成合同或钢丝特征表面的模块级文件; 省略或提供空列表时, 宣布没有模块级组成 。 运行时间和唯一类型导出 参考文献在传递到内核时保留其共和国出处. 未解决的字面目标和计算出来的运行时参考文献仍在 `unresolved` 财务报告和审定财务报表 `unresolvedRuntimeReferences`; 两者之一 `ok` 虚假的. `formatNodeReport` 打印这些源覆盖错误 与内核的架构诊断分离. 进口的外部包件不在内 特征图,需要消费者的依赖政策.

`testRoots` 选择文件被视为测试而非生产的全部目录。 选中的测试文件必须 位于已声明或推断的特征根(一个位于同一位置的测试目录)内,或位于显式 `testFeaturesRoot` 镜像显示所有权。 运行者拒绝两个映射以外的文件,而不是默默地跳过它们 所有权、衡量标准和进口检查. `mappedFiles` 直接在特征根下方的名称文件; 它不映射一个 外部测试树到特性所有者 。 使用专用的同地位测试目录而不是混合制作 目录. 模块级的软件包和黑盒测试 特性所有权之外需要自己的消费者 检查,但此示例不选中.

运行者观察到文件, 而不是空目录, 因此它本身不能对空作用或空容器进行资格验证 规则。 它提供标有解析的参考文献 `runtime` 作为内核的负载图; 该保守的图是 不证明动态导入或普通JS 负载何时执行 。 消费者保留其选定的语法简介 和补充源检查而不是治疗 `ok` 作为完整的语言或标准符合.

## 稳定

版本为"0.x". API或诊断码船作为小释放的中断 并附有更改日志条目和迁移说明.

## 常见问题

### @agent-teams/feature-module-standard 是什么？

Feature Module Standard的Opt-in检查:一个纯内核,共享的固定装置和一个在Foundation文件图上的节点跑道\.

### 如何安装 @agent-teams/feature-module-standard？

在项目目录运行 npm install @agent-teams/feature-module-standard，或使用 pnpm add / yarn add / bun add。

### @agent-teams/feature-module-standard 支持 TypeScript 吗？

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

### @agent-teams/feature-module-standard 支持 ESM 还是 CommonJS？

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

### @agent-teams/feature-module-standard 需要什么版本的 Node\.js？

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

### @agent-teams/feature-module-standard 可以商用吗？

@agent-teams/feature-module-standard 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @agent-teams/feature-module-standard 的下载量有多少？

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

### @agent-teams/feature-module-standard 还在维护吗？

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

