SuperAPI AI 工具集

create-webroles

编程与开发

查看项目

更新于 10-15 15:23

技能介绍

用途 create-webroles 用于为 Power Pages 代码站点创建 Web 角色。Web 角色定义不同类型站点用户的权限与访问级别,涵盖已认证用户和匿名用户等。

前提条件 站点必须至少部署过一次,才能创建 Web 角色,因为部署会生成用于存储 Web 角色定义的 .powerpages-site 文件夹结构。

核心原则

  • 使用 TaskCreate/TaskUpdate 跟踪贯穿所有阶段的进度,在开始任何工作前先创建包含所有阶段的待办列表。
  • 始终使用 UUID 脚本:绝不手动生成 UUID,始终使用 ${PLUGIN_ROOT}/scripts/generate-uuid.js 为每个 Web 角色生成合法的 UUID v4 值。
  • 保留唯一性约束:只有一个角色可以设置 anonymoususersrole: true,只有一个角色可以设置 authenticatedusersrole: true。在设置这些标志前始终检查现有角色。
  • 调用方抑制模式是可选加入的:当被另一个技能(如 /add-ai-webapi)调用且 $ARGUMENTS 中出现 [CALLED-BY-PARENT-SKILL] 哨兵标记时,抑制本技能的部署提示(第一阶段缺失部署的询问、第六阶段第 3 步的部署询问以及结尾提醒),并在角色创建完成后立即返回。调用方在编排结束时统一批量执行部署。人工调用永不触发此模式。

工作流 该技能按以下阶段执行:

第一阶段:验证站点结构 —— 检查 .powerpages-site/web-roles/ 目录。定位项目根目录(**/powerpages.config.json)并检查 .powerpages-site/web-roles/。如果 .powerpages-site 不存在,在调用方抑制模式下停止并返回契约违例消息;否则通过 AskUserQuestion 询问用户是否先部署(选项:立即部署(推荐)、稍后再做)。如果 .powerpages-site 存在但 web-roles/ 不存在,创建该目录;如果两者都存在,进入第二阶段。

第二阶段:发现现有角色 —— 读取 .powerpages-site/web-roles/ 目录下所有 YAML 文件,每个文件代表一个 Web 角色,格式包含 anonymoususersrole、authenticatedusersrole、id、name 四个字段。解析每个文件并汇总现有 Web 角色列表(名称、id 和标志)呈现给用户;如果没有角色则告知用户。

第三阶段:确定新角色 —— 根据站点用途和现有角色,建议合适的 Web 角色,并通过 AskUserQuestion 与用户确认。Power Pages 站点常见角色包括:Administrators(站点管理完全访问)、Authenticated Users(已登录用户默认角色,设置 authenticatedusersrole: true)、Anonymous Users(未登录访客默认角色,设置 anonymoususersrole: true)、Content Editors(可编辑站点内容)、Moderators(可审核社区内容),以及基于业务需求的自定义角色。关键点:不要建议已存在的角色,在呈现选项前过滤掉任何现有角色名称。

第四阶段:创建 Web 角色文件 —— 对用户批准的每个新 Web 角色,在 .powerpages-site/web-roles/ 中创建 YAML 文件。使用 Node 脚本生成 UUID:node "${PLUGIN_ROOT}/scripts/generate-uuid.js"。文件名应为角色名称的 kebab-case 加 .yml 扩展名(例如 Administrators → administrators.yml)。文件格式精确包含四个字段,无多余空白或注释:anonymoususersrole、authenticatedusersrole、id、name。规则:只有一个角色可设置 anonymoususersrole: true,只有一个角色可设置 authenticatedusersrole: true,如果现有角色已设置某个标志为 true,则不要在新角色上再次设置,每个角色必须使用脚本生成的唯一 UUID。

第五阶段:校验 Web 角色 —— 列出 .powerpages-site/web-roles/ 中的所有文件并读取每个新文件,确认文件存在于预期路径、id 字段为合法 UUID v4 格式、name 字段匹配预期角色名、两个角色标志为合法布尔值。跨所有角色文件(现有+新建)验证唯一性约束:至多一个角色设置 anonymoususersrole: true,至多一个角色设置 authenticatedusersrole: true,不存在重复的 id 值。若有文件校验失败,在继续前修复。

第六阶段:审查与部署 —— 记录技能使用(使用 --skillName "CreateWebroles"),呈现创建摘要(角色名、ID、Anonymous、Authenticated)。在调用方抑制模式下,跳过部署询问和结尾提醒,向调用方返回创建摘要并停止。否则询问用户是否部署站点以应用新角色(选项:立即部署(推荐)、稍后部署)。如果选择立即部署,告知用户运行 /deploy-site;如果选择稍后,提醒用户在准备好时使用 /deploy-site 应用新 Web 角色。

关键决策点(等待用户)

  • 第一阶段后:如果 .powerpages-site 缺失,确认部署。
  • 第三阶段后:确认创建哪些角色。
  • 第六阶段后:部署或跳过。

进度跟踪 在开始第一阶段前,使用 TaskCreate 创建包含所有阶段的待办列表,包括:验证站点结构、发现现有角色、确定新角色、创建 Web 角色文件、校验 Web 角色、审查与部署。通过 TaskUpdate 在开始时将每个任务标记为 in_progress,完成时标记为 completed。

使用方式 该技能通过命令行或技能调用方式执行,初始请求通过 $ARGUMENTS 传入。

限制 暂未提供关于收费、价格、平台限制或效果的更多信息。