用途:在源代码发生变化后,对已有技能做外科式更新,只重新提取受影响的导出,保留 [MANUAL] 开发者内容,并为每条重新生成的指令标注代码来源(file:line)。未变更内容不会被触碰。
主要能力:基于 AST 的结构分析与来源驱动的变更检测;支持普通更新与 gap-driven 修复模式;stack 类型技能(metadata.json 中 skill_type: "stack")不在此更新,会重定向到 skf-create-stack-skill 重新组合。
使用方式:工作流分阶段执行——初始化与加载、检测变更、重新提取、合并、写入、报告、健康检查;gap-driven 模式下以 gap-driven 步骤替代检测与重新提取。通过 references/ 下的阶段文件按 frontmatter 的 nextStepFile 串联,每次只加载一个步骤文件。激活时从 {project-root}/_bmad/skf/config.yaml 读取配置,解析 headless 模式(--headless 或 -H,或 preferences.yaml 中 headless_mode: true),并创建运行目录:
mkdir -p "{project-root}/_bmad-output/.skf-run" && mktemp -d "{project-root}/_bmad-output/.skf-run/skf-update-skill-XXXXXXXX"
随后解析工作流定制:
uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow
限制:所有陈述必须有 AST 来源,不得臆造;[MANUAL] 段落零丢失;一次只加载一个步骤文件;若 {source_tree} 已绑定而 {source_root} 缺失,则以 blocked 状态中止;每个 HALT/ABORT 会撤销本次写入、移除私有源码树、释放运行锁。headless 调用契约见 references/invocation-contract.md。具体安装与依赖细节暂未提供。