mcpField
A
avonni-dynamic-components

avonni-dynamic-components

github.com/avonni开发254 次安装今天更新
代码仓库

关于 avonni-dynamic-components

通过 Avonni MCP 创建和更新 Avonni Dynamic Components 的技能。它指导用户规划组件、生成内容并保存元数据,仅适用于 dynamic 工具集。

主要功能

  1. 01创建和更新动态组件
  2. 02构建前规划组件
  3. 03由用户确认计划
  4. 04保存组件元数据
  5. 05要求 Avonni MCP dynamic 工具集

适用场景

  1. 01创建 Avonni Dynamic Component
  2. 02根据元数据更新组件
  3. 03通过 MCP 查阅组件文档

MCP 相关

使用 Avonni MCP 的 dynamic 工具集获取组件信息,支持创建或更新 Dynamic Components。组件 API 以 MCP 返回的数据为准。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/avonni/skills --skill avonni-dynamic-components

安装后在 Claude Code 中输入/avonni-dynamic-components确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
build-component.md
create-component-metadata.md
data-sources.md
get-object-documentation.md
interactions.md
nested-data-sources.md
plan-component.md
read-component-metadata.md
styling.md
visibility-rules.md
scripts/
create-component.mjs
namespace.mjs
query-versions.mjs
read-component.mjs
remove-last-modified-flag.mjs
validate-component.mjs

详细介绍

avonni-dynamic-components

工具集

此技能仅适用于 Avonni MCP 的 dynamic 工具集。所有 MCP 工具调用(如适用)都必须包含 toolset: "dynamic"。请勿将此技能用于标准 Avonni LWC 组件、Avonni Experience Sites 组件或 Avonni Flow Screen Components。

用法

此技能介绍如何使用 Avonni Dynamic Components MCP 创建或更新组件。对于任何旨在创建或更新 Avonni Dynamic Component 的用户请求,都应使用此技能。

如果在处理过程中发现该请求还需要构建其他类型的产物(例如此组件必须启动的 flow、Experience 站点页面或要打开的其他动态组件),请停止并告知用户重新使用 avonni-architect 技能;不要用此技能构建其他产物。如果没有名为 avonni-architect 的技能,请改用任何用于协调多产物 Avonni 解决方案的技能;如果也没有,请建议通过 npx skills avonni/skills 安装该技能。

前提条件

在步骤 0 之前检查以下内容。这些检查用于落实此技能的 compatibility frontmatter 中列出的要求。如果本会话中较早时候已完成某项检查(例如 avonni-architect 技能在移交前已执行),请勿重复检查;直接使用其结果:

  1. Node.js >= 18 — 运行 node --version。如果命令失败或主版本低于 18,请停止并让用户安装 Node.js 18 或更高版本。不要继续。
  2. Avonni MCP 服务 — 工作流中的首次 MCP 调用(list_components,并指定 toolset: "dynamic")同时用作可连接性检查。如果会话中无法使用 Avonni MCP 工具,或重试一次后调用仍失败,请停止并让用户配置带有 dynamic 工具集的 Avonni MCP 服务。没有 MCP 时,绝不要继续。
  3. Salesforce CLI — 运行 sf --version。如果失败,请勿停止:只需提醒用户一次,说明未安装 Salesforce CLI,因此将无法检索对象和字段文档、查询组件版本以及保存组件,然后继续。如果后续步骤需要使用它,则应在该步骤停止并提供安装说明(参见 references/get-object-documentation.md 和 references/create-component-metadata.md)。

执行工作流

要生成输出,必须按以下步骤操作。步骤必须始终按顺序执行,不可跳过。如果返回先前步骤,则之后的所有步骤都必须重新按顺序执行。

步骤 0 — 检测意图

确定用户是要创建新组件,还是从元数据文件更新现有组件。如果请求含糊不清,请先向用户询问以明确意图。

  • 如果是创建:遵循下方的创建路径。
  • 如果是更新:遵循下方的更新路径。

创建路径
  1. 阅读 references/plan-component.md。然后严格按照该文件中的说明制定组件构建计划。
  2. 请用户确认计划。
    • 如果用户接受计划且不要求修改,则继续步骤 3。
    • 如果用户要求修改,则返回步骤 1。
  3. 阅读 references/build-component.md。然后严格按照该文件中的说明生成计划中组件的 JSON。
    • 将 JSON 保留在内存中,不要写入磁盘。下一步会将其传递给保存脚本。
  4. 阅读 references/create-component-metadata.md,并遵循其中的说明创建自定义元数据记录文件。
  5. 向用户总结任务结果:
    • 告知用户组件文件已创建,并说明其位置。
    • 告知用户组件尚未部署。
    • 总结组件功能。
更新路径
  1. 阅读 references/read-component-metadata.md,并按照其中的说明解析现有元数据文件,然后向用户展示当前组件。
  2. 询问用户希望进行哪些更改。
  3. 阅读 references/plan-component.md。然后严格按照该文件中的说明制定更新后的组件构建计划,并纳入用户要求的更改。
  4. 请用户确认更新后的计划。
    • 如果用户接受计划原样不变,则继续执行第 5 步。
    • 如果用户要求更改,则返回第 3 步。
  5. 阅读 references/build-component.md。然后严格按照该文件中的说明生成更新后的组件 JSON。
    • 将 JSON 保留在内存中,不要写入磁盘。下一步会将其通过管道传递给保存脚本。
  6. 阅读 references/create-component-metadata.md,并按照其中的说明保存更新后的组件版本。
  7. 向用户总结任务结果:
    • 告知用户已创建或更新的文件及其位置。
    • 告知用户组件尚未部署。
    • 总结与上一版本相比有哪些更改。

权威来源

  • MCP 是 Avonni Dynamic Components API 的唯一事实来源。
  • 绝不能依赖对组件的既有知识或假设。
  • 如果 MCP 数据与既有知识冲突,以 MCP 数据为准。
  • 如果缺少必需信息,不要猜测,应向用户询问。

全局工具使用规则

  • 绝不重复请求相同的文档,应缓存结果。
  • 绝不能根据其他组件推断某个组件的文档。
  • 始终直接使用 MCP 返回的工具结果,即使输出很长也不例外。绝不能使用 Bash 命令、读取文件或任何其他工具来缩短、解析或重新处理 MCP 结果。
全局输出规则

提及组件或交互时,使用其标签,而非名称。 示例: dcLayout → Columns Container dcCard → Card CreateRecordFromRecordVariable → Create Record

提及属性或样式钩子时,将其名称转换为自然语言标签。 示例: iconName → 图标名称 hideTableHeader → 隐藏表格标题 --avonni-button-icon-image-radius-border → 图片圆角边框 border-color → 边框颜色 --avcmpbuilder-primitive-global-header-caption-text-color → 标题说明文字颜色

未知或含糊的请求

如果需要用户提供更多信息:

  • 停止生成。
  • 使用纯文本(而非 JSON)说明未知或含糊之处。
  • 请用户澄清,或提供正确的组件名称或属性名称。

故障处理

如果 MCP 工具调用失败:

  • 重试一次。

如果仍然失败:

  • 告知用户此技能必须连接 Avonni MCP 服务才能运行,然后停止。
  • 绝不能在没有 MCP 数据的情况下生成输出。

如果某个组件文档读取失败:

  • 继续处理读取成功的文档。
  • 报告读取失败的文档。

如果缺少某个组件:

  • 告知用户该组件可能不存在或尚无相关文档。

如果运行时验证失败:

  • 重新检查 MCP 文档,再判断组件是否存在问题。

评论

支持 Markdown