用途:为 Metabase CLI 项目端到端新增一个 Metabase API 资源,覆盖五层——领域 schema、资源方法、展示视图、命令、测试,并在任务结束前执行强制的收尾流程(先 /review 再 /simplify)。顺序不可颠倒,前面的层为后面的层提供类型。
主要能力与产出:领域 schema 放在 packages/client/src/domain/<r>.ts;资源方法放在 packages/client/src/resources/<r>.ts;CLI 侧展示绑定放在 packages/cli/src/output/views/<r>.ts;list/get 命令放在 packages/cli/src/commands/<r>/;端到端测试放在 tests/e2e/<r>.e2e.test.ts。同时需更新 client.ts 命名空间、index.ts 导出、version/requirements.ts 与 version/features.ts、main.ts 命令注册与 command-help.test.ts 的 ALL_COMMANDS。
使用方式:先做强制预检,阅读既有同风格文件(domain、resources、client、views、命令、e2e 测试与 harness、output/types.ts、output/window.ts);再按 Step 1 领域 schema、Step 1a 跨 major 版本差异处理、Step 2 资源方法的顺序实现。命令的形态为:解析 flags,调用 client.<resource>.<method>(…),渲染结果;所有 /api/ 路径、查询参数与 HTTP 调用只出现在 resources/<r>.ts。
关键约定:schema 用 .loose(),Compact 必须 .pick().strip(),用 z.infer 推导类型而非手写 interface;可选与可空需依据实际响应判断;封版校验用 z.enum。禁止在 CLI 侧声明 schema、禁止 Array<Record<string, unknown>> 等类型、禁止为 fixture 写同义反复的解析测试。
适用场景:向 Metabase CLI 客户端与命令层新增资源命令。限制:资料未提供具体安装命令、版本兼容细节之外的支持矩阵、发布时间或维护状态。