Skip to main content
Mobile DevelopmentTencentBlueKing

yaml-pipeline-transfer

处理 BK-CI YAML 流水线导入导出、YAML 与 Model 双向转换、PAC、模板引用与 YAML 校验时使用。当用户提到 YAML 流水线、PAC、模板化、注释保留、表达式解析或转换调试时优先使用。

Stars
2,499
Source
TencentBlueKing/bk-ci
Updated
2026-05-28
Slug
TencentBlueKing--bk-ci--yaml-pipeline-transfer
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/TencentBlueKing/bk-ci/HEAD/ai/skills/yaml-pipeline-transfer/SKILL.md -o .claude/skills/yaml-pipeline-transfer.md

Drops the SKILL.md into .claude/skills/yaml-pipeline-transfer.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

YAML 流水线转换

适用场景

  • YAML 导入为流水线模型
  • 流水线模型导出为 YAML
  • PAC(Pipeline as Code)接入与同步
  • YAML 模板、Step/Job/Stage 模板引用
  • YAML 语法、表达式、注释保留、锚点处理相关问题

不适用场景

  • 只是单纯修改流水线模型结构,不涉及 YAML 表达
  • 只是代码库接入、权限、数据库或执行调度问题
  • 只是某个插件运行逻辑,而不是 YAML 到模型的转换问题

快速指导

  1. 先判断问题属于哪一类,再继续读对应参考文档:
    • 转换主链路:reference/1-transfer-flow.md
    • PAC 与模板:reference/2-pac-template.md
    • 表达式、切面、调试与扩展:reference/3-debug-extension.md
  2. YAML 转换问题通常不是单点问题,要区分:
    • YAML 文本解析
    • YAML 数据模型
    • YAML 到 Model
    • Model 到 YAML
    • 模板展开与 PAC 预处理
  3. 只要改 YAML 字段或结构,就要同时考虑:
    • Model 映射
    • 兼容旧 YAML
    • 导入与导出双向一致性
    • 模板引用和表达式是否受影响
  4. PAC、模板、表达式、切面经常彼此叠加,不要把它们当成完全独立的模块。
  5. 如果问题是“转换后执行不对”,先确认是 YAML 转换层问题,还是 process-module-architecture 的执行链放大了问题。

高信号规则

  • yaml-pipeline-transfer 负责“YAML 如何表示和转换”,pipeline-model-architecture 负责“模型长什么样”
  • TransferMapper 解决序列化、格式化、注释和锚点等文本层问题
  • ModelTransfer 更偏 YAML 与 Model 的业务转换
  • 模板、PAC、表达式和切面属于转换前后会共同影响结果的增强层
  • 改动 YAML 相关能力时,要始终以“双向一致”和“历史兼容”为目标

关键陷阱

  • 只修 yaml2Model,不修 model2Yaml,导致导入导出不对称
  • 只验证普通 YAML,不验证模板、PAC、注释保留和锚点场景
  • 把模型字段问题误判为 YAML 解析问题,或反过来
  • 忽略切面、表达式、模板预处理对最终结果的影响
  • 修改转换规则后,没有回归历史 YAML 和已有模板

延伸阅读

  • 转换主链路:reference/1-transfer-flow.md
  • PAC 与模板:reference/2-pac-template.md
  • 调试与扩展:reference/3-debug-extension.md
  • 涉及模型结构时:再看 pipeline-model-architecture
  • 涉及执行链路归属时:再看 process-module-architecture