SuperAPI AI 工具集

creating-backstage-plugin

编程与开发

查看项目

更新于 10-16 02:20

技能介绍

用途

该技能用于在 Backstage 仓库中引导创建新的 Backstage 包。适用场景包括:用户用自然语言描述想要的插件(例如“我想要一个列出我所在组的前端插件”),或者用户笼统地要求“搭建一个新插件”,此时技能会先询问用户具体需求。

主要能力

技能将用户描述映射为一份计划,包含:

  • packages:一个或多个包脚手架。大多数插件是单个包;但“连接型插件”(前端调用自己专用后端的插件)需要三个包:frontend-plugin、backend-plugin 和 plugin-common-library(用于共享类型)。
  • template(每个包):9 种受支持模板之一。
  • id(每个包):kebab-case 命名。对于连接型组合,三个 id 共享一个公共基础(例如 jira + jira-backend + jira-common)。
  • patterns(每个包):脚手架生成后要调用的模式技能。

连接型插件组合

当用户描述的插件同时具有 UI 界面和自己的专用后端时(例如“一个显示项目信息的 Jira 插件”),技能会建议使用三包组合而非单一模板:

包 模板 用途
<id> frontend-plugin UI
<id>-backend backend-plugin 后端路由;与上游系统通信
<id>-common plugin-common-library 双方共享的 TypeScript 类型

触发信号(出现任一即建议三包组合):插件描述提到需要认证/服务端调用的外部系统(Jira、ServiceNow、PagerDuty、未暴露给浏览器的内部 API);描述中提到“显示来自 X 的页面”且 X 需要后端计算、密钥或分页/聚合;用户明确要求“前端和后端”或同时提到两半。

不建议三包组合的情况:插件只读取已安装的 Backstage 后端(catalog、scaffolder 等);插件纯粹是展示性的(表单、计算器、静态数据仪表盘)。

使用方式

技能按以下步骤依次执行,在用户于第 3 步确认计划之前不会运行 yarn new:

  1. 捕获意图:如果用户已描述插件则解析;否则询问“你想要什么样的插件,它应该做什么?”
  2. 解析为计划:映射到 packages、template、id、patterns。
  3. 与用户确认:打印结构化摘要并等待明确批准。
  4. 运行 yarn new:确认后从仓库根目录为计划中的每个包运行。
    • 单包:yarn new --select <template> --option pluginId=<id>
    • 模块:yarn new --select backend-plugin-module --option pluginId=<host-plugin> --option moduleId=<module-id>
    • 连接型组合(按顺序,-common 优先):
      yarn new --select plugin-common-library --option pluginId=<id>-common
      yarn new --select backend-plugin --option pluginId=<id>
      yarn new --select frontend-plugin --option pluginId=<id>
      
    每次运行后验证目录:ls plugins/<id-or-suffix>。
  5. 脚手架后应用模式:通过 Skill 工具调用对应模式技能,传入新插件 id 并说明这是脚手架后调用。
    • 前端模板:始终调用 using-backstage-frontend-system 和 using-backstage-ui;按意图调用 using-backstage-catalog、using-backstage-identity、creating-backstage-scaffolder-field、creating-backstage-entity-page-extension、using-backstage-permissions。
    • 前端库:始终调用 using-backstage-ui。
    • 后端模板:始终调用 using-backstage-backend-system 和 using-backstage-backend-services;按意图调用 using-backstage-catalog、using-backstage-permissions。
    • 专用后端模板:catalog-provider-module 额外调用 creating-backstage-catalog-provider;scaffolder-backend-module 额外调用 creating-backstage-scaffolder-action。
    • 库模板:不自动调用。
    • 连接型组合:先填充 plugins/<id>-common/src/index.ts 的共享类型,将 common 包加入前端和后端依赖,运行 yarn install,再执行各包脚手架后流程。
  6. 提供扩展:询问是否添加其他模式(权限、自定义 API、路由、测试等)。
  7. 交接:打印最终摘要,提示运行 yarn dev 试用。

适用场景

  • 在 Backstage 仓库中创建新插件、模块、处理器、提供者、scaffolder action 或库。
  • 需要同时搭建前端、后端和共享类型库的连接型插件。
  • 希望在脚手架生成后自动接入 Backstage 前端/后端系统、UI、目录、身份、权限等标准模式。

限制与注意事项

  • id 必须为 kebab-case,yarn new 会拒绝 Foo 或 foo_bar。
  • 不要交互式运行 yarn new,始终传递 --select 和 --option pluginId=,两者都是非交互使用所必需的。
  • 如果仓库不是 Backstage 仓库(根目录没有 backstage.json),需在脚手架前向用户说明。
  • 每个模式技能期望在脚手架后模式下处理新生成的插件,文件结构可能与旧版 Backstage 不同;模式技能负责查找,不要向它们传递文件路径。
  • 关于收费、价格、平台、效果等具体信息,资料中暂未提供。