# Portable Skill Contract 本约定用于让 skill 能在不同 Agent 平台之间迁移。 ## 核心原则 能力归 skill,运行适配归平台。 - 脚本必须能独立执行。 - 平台工具注册只做薄封装,不承载业务逻辑。 - 没有工具注册能力的 Agent,可以阅读 `SKILL.md` 并直接执行脚本。 - 脚本输入输出都使用 JSON,避免自然语言解析。 ## 脚本输入 脚本必须支持: ```bash python scripts/.py --input input.json ``` 也必须支持从 stdin 读取 JSON: ```bash cat input.json | python scripts/.py ``` ## 脚本输出 stdout 只输出一个 JSON 对象。 成功: ```json { "ok": true, "result": {} } ``` 失败: ```json { "ok": false, "error": "错误原因" } ``` ## 输出路径 默认写入当前会话 `output/`,或调用方明确传入的输出目录。 脚本不得写项目源码目录、随机临时目录或用户未确认的外部路径。 ## 平台注册 `tools.yaml` 是平台适配层: - `name` 是平台注册后的工具名。 - `script` 指向真正执行能力。 - `input_schema` / `output_schema` 供平台生成工具 schema。 - `fallback` 告诉无注册环境如何手动调用。 如果平台不支持 `tools.yaml`,不影响脚本独立使用。