@agent-teams/feature-module-standard

中文文档
0.3.2发布于 2026/11/02Apache-2.0TypeScriptES Module零依赖构建来源已验证近 30 天下载 4409

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

中文使用文档
文档目录4 节
  1. 它检查什么
  2. 固定设备
  3. 运行者
  4. 稳定

特性模块标准

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

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

它检查什么

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

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, (中文(简体) ), 因此,一个剖面图可以比较它和它所寄取的文摘. 适用情况如下: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窗口为伴发行做准备. 见 移徙和资格记录 用于未更改的跑道合同和所需的最后安装工艺门.

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 共发布 13 个版本,首次发布于 2026/10/17;过去 12 个月发布了 13 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.3.2latest2026/11/026 天前
0.3.12026/10/2910 天前
0.3.02026/10/2513 天前
0.2.42026/10/2315 天前
0.2.32026/10/2217 天前
0.2.22026/10/2117 天前

其他发布通道:bootstrap → 0.0.0。

关于 @agent-teams/feature-module-standard 的常见问题

@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 和提交记录判断。