用途
这是一个面向 MiniMax Code 仓库的测试与验证工作流,用于为代码变更选择并执行仓库声明的测试套件和 CI 门禁,并按要求报告验证结果。适用于校验代码、技能(skills)等变更,覆盖从局部迭代到提交前完整验证的各个阶段。
主要能力
1. 从变更出发定位验证范围
工作流要求先查看变更文件,然后识别其所属的运行时、用户入口点以及最终可观察行为。需要阅读 AGENTS.md、CONTRIBUTING.md 以及 scripts/verify.mjs 中适用的步骤。
2. 聚焦式迭代测试
Vitest 文件归属于 test/vitest-suites.json 中声明的分组,别名与包含关系来自 vitest.oss.config.mjs。聚焦运行时需选择已声明的现有文件,例如:
pnpm exec vitest run --config vitest.oss.config.mjs packages/tui/test/unit/headless-contract.test.ts
新增的 Vitest 文件需在套件声明中注册,不得在 package scripts 或 Vitest 配置中添加硬编码文件列表。上游内置的测试套件不属于本发行版的验证范围。
3. 按范围对应的仓库门禁
资料中列出的门禁与适用范围如下:
- 运行时、TUI、providers、plugins 与 ACP:
pnpm test:capabilities - Headless CLI 与离线 BYOK 行为:
pnpm test:byok - CLI 产物冒烟:
pnpm test:smoke - 公开发布产物内容:
pnpm test:artifact - TUI 构建模式契约:
pnpm test:status-contract - macOS/Linux 权限门面:
pnpm test:policy - macOS 沙箱:
pnpm test:sandbox - 源码同步、工作流与发布工具:
pnpm test:release-tools - npm 发布归档安装:
MCODE_RELEASE_TAG=vX.Y.Z MCODE_RELEASE_ARCHIVE=/path/to/package.tar.gz pnpm verify --profile package - TUI 源码与测试 lint:
pnpm lint:tui - 类型与独立构建边界:
pnpm typecheck、pnpm build、pnpm check:standalone - 已发布文件与生成路径:
pnpm check:source、pnpm check:tsconfig
依赖产物的测试需要当前最新的 pnpm build。测试状态与报告应保存在仓库之外,使用合成数据与临时目录。
声明的 Vitest 门禁运行器在 Windows 上会串行化测试文件以降低文件系统争用,同时保留单个测试的截止时间。平台验收需运行所属门禁;直接调用 Vitest 会使用其默认 worker 数量。完整运行时冒烟子进程在 Windows 上有 30 秒启动预算(与 ACP 一致);轻量级帮助与校验检查仍保留 15 秒。
4. 交付验证
编辑过程中运行 git diff --check 和相关单项门禁。在用 node scripts/source-inventory.mjs --write 重新生成 release/public-source.json 之前,先检查新增或删除的文件。
打开 PR 前,需在已评审的提交上、工作区已跟踪文件干净的状态下运行 pnpm verify。源码导出读取已提交的 HEAD,并拒绝未提交的已跟踪变更;如果只能做迭代检查,需报告这一限制。
使用 pnpm verify --list 查看当前平台的门禁。仅当所有变更路径都符合 scripts/ci-changes.mjs 的条件时,才使用 docs profile。.agents/skills 下的技能、未知路径和清单变更需要 full profile。archive profile 用于源码归档校验,不能用来绕过干净提交导出要求。
package profile 会认证 npm 发布归档,安装到临时 npm prefix,并演练其启动器、原生依赖以及离线冒烟/BYOK 套件。它需要 MCODE_RELEASE_TAG 和 MCODE_RELEASE_ARCHIVE,且不能替代源码验证。release 命令会在打标签前提交匹配的根目录/TUI 源码版本。发布工作流会拒绝版本不匹配,并在包安装检查前运行 full profile。
5. 性能覆盖
使用 CONTRIBUTING.md 对变更分类。对于性能优化、历史/令牌处理、存储、流式或工具执行相关变更以及大型运行时重构,需添加 perf:full 标签。该标签会自动选择完整套件,并在后续提交中保持选中。合并前,需为最新 head 与目标 base 链接一次通过的、Suite: full 的性能运行。证据、限制与手动触发参见 Performance CI。
6. 手动证据与报告
对于 CLI 行为,需演练构建后的 dist/cli.js,并检查 stdout、stderr 和退出码。对于终端呈现,尽可能演练相关交互。对于 provider 或服务变更,需区分离线 fixture 与真实端点调用。
报告需包含范围、命令与结果、手动场景以及未测试的边界。实际检查使用 PASS/FAIL/BLOCKED 标记;未运行的检查需明确标注。本地 macOS 成功不能代表 Windows/Linux 或在线服务的验收通过。
使用方式
- 从变更文件入手,识别所属运行时、用户入口点与最终可观察行为。
- 阅读 AGENTS.md、CONTRIBUTING.md 和 scripts/verify.mjs 中适用步骤。
- 通过 test/vitest-suites.json 与 vitest.oss.config.mjs 选择已声明的测试文件进行聚焦运行;新文件需在套件声明中注册。
- 按变更范围运行对应的仓库门禁命令(见上表)。依赖产物的测试前先执行
pnpm build。 - 编辑期间运行
git diff --check与相关单项门禁;提交 PR 前在干净工作区运行pnpm verify。 - 按范围分类变更,必要时添加 perf:full 并链接性能运行。
- 按报告要求输出范围、命令、结果、手动场景与未测试边界。
适用场景
- 校验 MiniMax Code 仓库中的代码、技能等变更。
- 提交 PR 前的完整或定向验证。
- 发布交付验证与 npm 发布归档验证。
- 性能相关变更的完整套件验证。
- 需要区分平台差异(macOS/Linux/Windows)与在线/离线服务行为的验证场景。
限制
- 上游内置的测试套件不在本发行版的验证范围内。
- 源码导出读取已提交的 HEAD,并拒绝未提交的已跟踪变更;仅能做迭代检查时需如实报告该限制。
- archive profile 不能用于绕过干净提交导出要求。
- package profile 需要 MCODE_RELEASE_TAG 与 MCODE_RELEASE_ARCHIVE,且不能替代源码验证。
- 依赖产物的测试需要当前最新的
pnpm build。 - docs profile 仅在所有变更路径都符合 scripts/ci-changes.mjs 条件时可用;.agents/skills、未知路径与清单变更需 full profile。
- 本地 macOS 成功不代表 Windows/Linux 或在线服务验收通过。
- 资料未提供具体价格、收费方式、价格区间等信息,相关细节暂未提供。
- 资料未提供作者、发布时间、版本号等其他元信息,暂未提供。