用途
pipeline-model-interpreter 用于解释 BK-CI 流水线或创作流的 Model JSON,帮助 AI 理解 Model -> Stage -> Container(Job) -> Element 的含义、启动参数、矩阵、Finally、审核与常见插件语义。
适用场景包括:
- 用户直接贴出 BK-CI 流水线或创作流的 Model JSON
- 用户询问“这个流水线做了什么”“这个编排什么意思”“帮我理解这个 Stage/Job/插件”
- 用户要求解释启动参数、矩阵、Finally、审核、脚本插件、商店插件输入输出
- 用户给出 atomCode、elementId、stepId、jobId 等信息,要求说明其在编排中的含义
主要能力
- 把 JSON 还原成 Model -> Stage -> Container -> Element 四层结构。
- 优先解释第一个 Stage 里的 TriggerContainer.params 作为启动参数入口;触发器插件本身通常不作为业务步骤展开。
- 先判断容器类型:trigger、vmBuild、normal,再判断插件类型:linuxScript、windowsScript、marketBuild、marketBuildLess、subPipelineCall、manualReviewUserTask 等。
- 解释插件时同时参考 @type、atomCode、name、data.input、data.output 和 additionalOptions。
- 结合 runCondition 判断节点执行时机;Element / Job / Stage 三层各有独立枚举,不混用。
- 遇到未知 atomCode 时不臆测功能,明确标注“需结合插件文档确认”,并列出关键输入输出字段。
使用方式
- 用户问整体含义时,先说明主流程、关键 Stage/Job、启动参数入口和可能产出;只问某个节点时,只解释相关切片。
- 创作流与流水线使用同一套模型结构,该技能同时适用于两者。
- containerHashId、jobId、element.id、stepId 语义不同,不能混用。
- status、startEpoch、elapsed、executeCount、timeCost 等运行态字段默认忽略,除非用户明确询问运行状态。
- additionalOptions.enable=false、jobControlOption.enable=false、stageControlOption.enable=false 需明确标注为已禁用。
- 敏感参数或 PASSWORD 类型只标注为敏感,不回显默认值。
- 详细分析步骤、常见插件速查和参数类型速查见 reference 目录;如果用户没有 Model JSON,可先用 managing-devops-pipeline 或构建 Agent 的编排查询工具获取。
适用场景
主要面向需要解读 BK-CI 流水线/创作流编排数据的场景,例如理解整体流程、单个 Stage/Job/插件含义、启动参数入口、矩阵与 Finally 结构、审核控制等。
限制
不适用于:修改模型代码、加字段、做兼容性改造;排查构建运行时失败日志或执行状态;设计固定摘要模板输出;理解 YAML 转换、持久化、版本兼容实现细节。
常见陷阱
- 把 TriggerContainer 里的触发器插件当成业务主流程
- 把运行态字段当成编排语义来解释
- 忽略矩阵展开后的子 Job、Finally Stage、审核控制和互斥组
- 只看 atomCode 不看 data.input / data.output,导致插件理解失真
- 对未知商店插件直接猜功能,而不是保守说明边界
延伸阅读
- 详细分析步骤:reference/1-json-analysis-playbook.md
- 容器、插件与参数类型速查:reference/2-common-plugin-and-container-hints.md
- classType / dispatchType / 枚举字面量清单:reference/3-classtype-and-enum-catalog.md
- 理解模型代码结构、版本兼容或 YAML 转换:pipeline-model-architecture