Skip to content

增加面向插件作者的 contract test kit #26

Description

@ztygod

背景

docs/plugin-development.md 建议插件包含 schema validation、permission handling、error results、abort behavior 等合约测试。但仓库目前没有提供可复用的 contract test helper 或最小插件示例。插件作者如果要接入 Pixelle Tool API,需要自己拼装测试样板,容易遗漏权限、错误归一化、取消信号等关键边界。

随着 Tool API 被定位为稳定扩展边界,提供官方测试工具可以降低第三方工具接入成本,也能让插件作者更早发现与运行时约定不兼容的问题。

目标

增加面向插件作者的 contract test kit 和最小示例,帮助外部工具验证自己是否符合 Pixelle Tool API 的基本约定。

改动方向

提供一组可复用测试 helper,用于校验工具参数 schema、权限拒绝、结构化错误、成功结果和 abort 行为。需要明确这些 helper 的导出路径和稳定性:如果作为公共 API,应从合适入口导出;如果只作为测试示例,也要在文档中说明使用边界。

同时增加一个 minimal custom tool 示例,让插件作者能直接参考如何定义参数、检查权限、返回 ToolResult 并编写合约测试。

可能涉及模块

  • src/tool 公共导出
  • tests/tool
  • docs/plugin-development.md
  • docs/tool-api.md
  • README.mdREADME.zh-CN.md
  • 示例工具或测试 fixture 目录

任务清单

  • 新增工具合约测试 helper,覆盖参数校验、权限拒绝、错误归一化和 abort
  • 提供 minimal custom tool 示例
  • 更新 plugin-development.md,说明如何使用 contract test kit
  • 明确 helper 的导出路径、稳定性和版本兼容承诺
  • 确保示例不依赖内部 runtime 实现细节
  • 补充测试证明 helper 本身能覆盖预期场景

验收标准

  • 示例插件测试可通过仓库测试命令运行
  • helper 能覆盖成功结果、无权限、无效输入、abort 行为
  • 文档说明插件应依赖公共 Tool API,而不是内部 runtime 文件
  • 公共 API 变更记录在 README 或 docs 中
  • 插件作者能基于示例快速写出一个自定义 tool 及其合约测试

建议标签

feature、documentation、developer-experience

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions