用途
该技能定位为 MuleSoft 的 XML 文档专家,用于为 Mule 配置文件中的 XML 元素添加 doc:description 属性。当用户要求为 Mule XML 添加描述、注释或 doc:description 属性时,应首先且仅调用此技能。
主要能力
- 扫描 Mule 项目 src/main/mule/ 目录下的配置 XML 文件。
- 为缺少 doc:description 或描述不准确的元素添加或更新描述。
- 描述要求为 1-2 句、有意义的用途说明,且不得超过 150 字符。
- 覆盖的元素类型包括:flow、sub-flow、batch:job、源元素(如 http:listener、salesforce:*-listener、scheduler)、处理器(logger、set-variable、set-payload、remove-variable)、路由器(choice、when、otherwise、scatter-gather、foreach、until-successful)、转换(ee:transform、ee:message、ee:set-payload、ee:set-variable)、引用(flow-ref)、错误处理(error-handler、on-error-propagate、on-error-continue)、连接器操作、全局连接器配置、连接元素、configuration-properties、校验器、批处理元素,以及 MUnit 测试元素(munit:suite、munit:test、munit:behavior、munit:execution、munit:validation、munit:set-event、munit:set-attributes、munit-tools:assert-that、munit-tools:assert-equals、munit-tools:mock-when、munit-tools:then-return、munit-tools:verify-call 等)。
使用方式
- 验证项目结构:检查当前工作目录下是否存在 src/main/mule 目录,若不存在则提示这似乎不是 Mule 应用项目。
- 查找所有 Mule XML 文件:使用 Glob 查找 src/main/mule/**/*.xml,若无文件则告知用户并退出。
- 逐个完整处理文件:先读取整个文件内容,不得假设文件内容或使用其他文件作为模板;读取后分析并明确列出找到的 flow、sub-flow、batch:job、全局配置、全局错误处理器的数量与名称;随后识别需要文档的元素并生成描述;最后在单次 Write 操作中完成该文件的所有编辑。
- 提交更改以供审批:汇总添加的 doc:description 数量(按元素类型),说明跳过的元素及原因;Write 工具会自动提示用户审批。
- 对所有文件重复上述流程。
- 最终汇总:扫描文件数、修改文件数、添加的 doc:description 总数、更新的 doc:description 总数。
关键规则
- doc:description 必须为 1-2 句、有意义的用途描述,且不超过 150 字符。
- 完整保留所有现有 XML 结构、属性、CDATA 块和内容,不得修改、添加或删除任何非 doc 属性或元素。
- 不得修改现有 doc:name 属性。
- 确保根元素上存在 xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"。
- 关键:绝不在同一轮中调用 Read 和 Write。读取在一轮,分析并准备更改,下一轮再写入。
- 每个文件必须在一次 Write 操作中完整完成,不得分批编辑。
- 为所有适用元素添加 doc:description,包括 logger、处理器、连接器、配置等。
- 不更改已准确存在的描述,仅在描述模糊或错误时更新。
- 保持 XML 格式,保留缩进和结构。
- 描述要具体,避免“processes data”“handles request”等泛化措辞。
- 强制执行 150 字符限制。
错误处理
- 若文件无法读取,跳过并报告错误。
- 若 XML 解析似乎有问题,告知用户。
- 若不确定组件用途,生成保守描述或询问用户。
适用场景
适用于 MuleSoft 集成项目,需要为 Mule 配置 XML 中的流程、连接器配置、错误处理、MUnit 测试等元素批量补充或修正文档描述的场景。
限制
- 仅处理 src/main/mule/ 目录下的 XML 文件。
- 描述长度硬性限制为 150 字符。
- 不修改任何非文档属性或元素,不修改 doc:name。
- 关于收费、价格、平台支持范围等事实,资料中暂未提供。