AGENTS.md@src/cli · git:20260903.08c59f3 · 2026-09-03 · sha256 54dd64d8478faeb1

AGENTS.md@src/cli git:20260903.08c59f3A

Immutable. This exact content is served forever at /api/v1/blob/54dd64d8478faeb1.

# CLI 领域规则

本文件补充仓库根 `AGENTS.md`,适用于 `src/cli/`。CLI 是 oclif 交付入口,参数解析、帮助文档、退出码和业务调用应保持单一接线路径。

## 领域约束

- 每个命令只通过 `await this.parse(Command)` 做一次 typed parse,不保留 legacy parser 或再次透传原始 argv。
- help 语言由 `resolveLang(process.argv)` 解析;`oclif/i18n.ts` 服务静态 help,`lib/i18n.ts` 服务运行期文案,两者不要合并。
- oclif 的 description/flags/args/examples 是 CLI 文档单一来源。修改后运行 `yarn build && yarn build:docs`。
- 业务测试优先使用 `test/helpers/run-command.ts`;只有真实 dispatcher、模块加载或独立进程边界才使用 `execFile`。

## Code Review Rules

- 必须拦截二次参数解析、公共退出码漂移或 stdout/stderr 契约混乱。安全路径:沿 oclif 单一路径实现,并保持成功为 `0`、业务失败为 `1`、参数校验失败为 `2`。
- 必须拦截把用户输入拼进 oclif description/flag/arg 文案,因为 help 会经 EJS 渲染。安全路径:静态 description 使用 `bilingual`,模板表达式只用于受控的 `examples[].command`。
- 必须拦截命令行为、双语 help 和生成文档之间的漂移。安全路径:补命令级接线测试,重建文档,并在行为依赖真实进程时运行隔离的生产入口验收。