SuperAPI AI 工具集

create-project

编程与开发

查看项目

更新于 10-16 01:59

技能介绍

用途

create-project 用于从 Very Good CLI 模板脚手架生成新的 Dart 或 Flutter 项目。它覆盖的模板包括 flutter_app、dart_package、flutter_package、flutter_plugin、dart_cli 等(资料中列举未完整展开)。

主要能力

  • 使用 Very Good CLI MCP 服务器脚手架生成项目并安装依赖。
  • 根据上下文推断模板:根据用户想构建的内容确定合适的模板,而非让用户选择子命令名称。
  • 仅在无法推断时使用 AskUserQuestion,最常见缺失信息是项目名称和组织名。
  • 创建完成后安装依赖。

使用方式

工作流分为三步:

  1. 理解用户想构建什么:从用户描述中推断子命令;可用子命令及其描述由 Very Good CLI MCP 服务器定义。如果意图不明确,使用 AskUserQuestion 提出关于“要构建什么”的高层问题,而不是问用户想要哪个子命令。
  2. 收集缺失参数:在一次调用中使用 AskUserQuestion 收集无法推断的信息。除非用户主动提出,否则可选参数(description、输出目录、application ID)保持默认值。
  3. 创建与设置:通过 Very Good CLI MCP 服务器创建项目;再通过该服务器安装依赖,向 packages_get 传入 directory: '<path-to-created-project>',使其针对新建项目而不是工作区根目录运行。

跨宿主回退:在缺少该插件 Bash 钩子且未连接该 MCP 服务器的主机上,直接运行等价的 very_good create … 和 very_good packages get 命令。在缺少 AskUserQuestion 的主机上,调用宿主提供的等价用户提问工具;若没有,则以普通编号文本方式提出相同问题。

关键领域知识

  • 在分层架构模式中,数据层与仓库层包应使用 dart_package(而不是 flutter_package)——这些包不得依赖 Flutter SDK。
  • 如果用户提供的项目名称包含连字符,应转换为下划线——Dart 包名只允许小写字母、数字和下划线。
  • 生成应用、插件或游戏类项目的模板需要组织名,不可跳过,否则会回退为占位值。
  • 如果创建后 packages_get 失败,检查 directory 是否指向新项目,以及 Dart SDK 是否在 PATH 中。

反模式

  • 让用户挑选模板名称:用户以“要构建什么”思考,而非 CLI 子命令,正确做法是从上下文推断模板。
  • 过度询问可选参数:拖慢工作流,正确做法是只询问无法推断的信息。
  • 数据层使用 flutter_package:会引入不必要的 Flutter SDK 依赖,正确做法是对数据层与仓库层包使用 dart_package。
  • 跳过应用/插件的组织名:会回退为占位值,应在模板需要时询问。

适用场景与限制

适用于需要基于 Very Good CLI 模板快速创建 Dart 或 Flutter 项目的流程。需要 Very Good CLI MCP 服务器支持;在缺少该 MCP 服务器的主机上需改为直接执行等价命令。关于价格、平台支持、具体模板完整清单等事实,资料暂未提供。