用途:将已安装、可被智能体宿主发现的技能迁移到 skillctx,实现变量解析与可移植化,去除用户名、Slack 频道 ID、文件路径、组织名等硬编码值。触发场景包括让技能可移植、为新技能接入 skillctx,或用户说出 "skillctx-ify"、"migrate skill to skillctx"。前置条件为 Python 3.10+ 以及目标技能已安装且可被发现。
工作流分三阶段。第一阶段扫描与分类:按名称定位技能目录并跟随符号链接;检查 SKILL.md 中是否存在 <!-- skillctx:begin --> 标记及 frontmatter 的 metadata.skillctx.version,若版本与当前一致则报告已迁移并停止,若版本较旧则建议运行 skillctx-sync;读取 SKILL.md 及引用文件、references/known-patterns.md;识别用户或环境相关硬编码候选,判断其是否真为技能变量、归属哪个 vars 分类(默认 identity、slack、paths、blog)以及绑定键名;读取 ${XDG_CONFIG_HOME:-~/.config}/skillctx/config.json,值已存在则复用,不重复创建。
第二阶段确认与重写:以表格向用户展示硬编码值、文件与行号、绑定键、变量点路径及是否新增,等待确认;随后把硬编码值替换为 {binding_key} 占位符,在 SKILL.md 顶部注入 setup 块并包裹注释标记,更新描述、去掉已迁移值,并在 frontmatter 添加 metadata.skillctx.version: "0.1.0"。解析脚本的用法为 python <skill-dir>/scripts/skillctx-resolve.py resolve <skill-name>,缺失或需修改时用 python <skill-dir>/scripts/skillctx-resolve.py set <skill-name> <key> <value>。
第三阶段写回:把 scripts/resolve.py 复制为目标技能的 scripts/skillctx-resolve.py,必要时创建目录并赋予可执行权限;更新配置文件(必要时 mkdir -p);报告提取内容、绑定与改动文件。
绑定键命名:按角色而非值命名,如 channel_id 而非 standup_channel_id;视图技能视角,多频道时用 post_channel_id、alert_channel_id 区分;小写 snake_case,不加 var_、ctx_ 前缀;保持稳定,迁移后改名会破坏既有配置。
错误处理:技能目录未找到则报错并建议检查名称;已迁移且版本一致则报告并停止;版本较旧建议运行 skillctx-sync;无候选则报告并写入空绑定;配置文件格式错误则报告解析错误并建议手动修复。以上为资料所述内容,收费、价格、平台支持等暂未提供。