Community编程与开发github.com

Plugin SDK 影响评估

统计在实时 ClawHub 发布版本和捆绑的 OpenClaw 插件中,Plugin SDK 的消费者数量,以支持弃用、移除或行为变更决策;支持公开发布版本的日期过滤。

Plugin SDK 影响评估 是什么?

该技能用于评估 Plugin SDK 变更对生态的影响。它通过结合 ClawHub 库存和所有捆绑的 OpenClaw 插件的源代码扫描(包括那些不在 ClawHub 上的插件),来帮助开发者做出兼容性决策。该技能支持的平台包括 ClawHub 和 OpenClaw 项目。其工作流程包括:首先识别受影响的公共 API 表面和导出项,然后使用 Plugin Inspector 对每个捆绑插件进行静态分析,接着通过查询工具统计特定 API 的消费者数量和覆盖率,最后检查匹配的证据并根据计数结果提出兼容性建议。该技能会分别报告 ClawHub 公开版本、捆绑源代码以及两者合并后的消费者计数,并包含覆盖率缺口信息。用户可以通过 `--months` 或 `--since` 参数过滤公开发布版本的时间窗口。该技能严格基于静态引用分析,不会执行插件代码,并强调覆盖率缺口和未知结果不能替代零。

兼容平台~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/plugin-sdk-impact

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Plugin SDK 影响评估 是做什么的?

结合当前的 ClawHub 库存和对每个捆绑的 OpenClaw 插件的源代码扫描(包括那些不在 ClawHub 上的插件),以做出兼容性决策。静态使用情况标识依赖关系,但不能证明执行或依赖特定行为。有关批准和弃用规则,请遵循 SDK 边界指南 的权威说明。

调查

  1. 从源代码识别所有受影响的公共表面,包括备选的 SDK 导出和运行时路径。根据定义和已知调用者验证拼写;不正确的键可能会返回具有误导性的零结果。同时追踪分组门面、SDK 帮助器和注册读取器:一个平面别名可能对受支持的分组方法的直接插件调用为零。

  2. 在干净的 OpenClaw 检出目录中,使用 Plugin Inspector 的静态源代码分析扫描每个捆绑插件。请使用已安装的 Inspector 0.4.3 或更新版本;否则,请在单独的临时目录中安装它,无需生命周期脚本:

    inspector_dir=$(mktemp -d)
    npm install --prefix "$inspector_dir" --ignore-scripts @openclaw/[email protected]
    node {baseDir}/scripts/scan-bundled.mjs \
      --inspector "$inspector_dir/node_modules/@openclaw/plugin-inspector" \
      --out /tmp/openclaw-bundled-sdk-usage.json
    

    扫描器默认使用此技能的检出目录;使用 --root <checkout> 选择其他目录。它会发现 extensions/*/openclaw.plugin.json,从不执行插件代码,并记录提交、输入指纹、Inspector 版本、每个插件以及不完整的分析。扫描失败或超时会留下缺口。没有声明入口点的插件也会留下覆盖率缺口,因为 Inspector 可能会遗漏隐式入口点。中断的语料库扫描不能用作完成的库存。当源保持不变时,可以重用报告进行多次查询。更改的提交、插件列表或未提交的源代码会使报告失效;请重新扫描,不要编辑现有收据。

  3. 使用两个来源查询每个规范键:

    node {baseDir}/scripts/query.mjs 'api-member:api.registerTool' \
      --bundled /tmp/openclaw-bundled-sdk-usage.json
    

    如需查询“在过去三个月内更新的”结果,请添加 --months 3。这意味着最新的符合条件的公开发布版本是在从现在起算的三个日历月内上传的,以 UTC 时间衡量(月末会被截断)。列表编辑和重新扫描不计为更新。存储的发布日期是其创建/上传时间;公开批准可能发生得更晚。使用 --since 2026-07-16T12:00:00Z 接受一个明确的截止日期。报告来自 releaseWindow 的确切包含截止日期,而不是猜测的日期。公共消费者和覆盖率在每个页面上使用相同的时间窗口。捆绑的源代码没有可比较的上传日期:即使问题涉及近期发布版本,也应单独报告,不经过滤。合并计数是该公开发布版本窗口和当前捆绑源代码的并集,而不是近期发布版本的计数。

    该帮助工具会跟踪所有使用和覆盖率页面,包括空的中间页面。计数和覆盖率包含每个结果;items、gaps 和 warnings 包含有界示例,省略的计数在 output.omitted 中。混合引用会在运行时和类型总计中重复计数。对于需要每个消费者或缺口的研究,请将 --full 输出保存到文件并分段读取:

    node {baseDir}/scripts/query.mjs 'api-member:api.registerTool' \
      --bundled /tmp/openclaw-bundled-sdk-usage.json --full > sdk-usage.json
    

    --help 文档记录了本地端点和遍历限制。

  4. 检查匹配的证据与提议的变更。方法调用可能并不使用正在被变更的行为。仅用于类型的消费者对于类型/导出移除仍然重要。分别查询相关的成员;模块导入不能证明使用了每个导出。插件中的重复引用计为一个消费者。

  5. 对于使用计数的问题,报告键、查询时间、确切的发布版本窗口(如果要求)、ClawHub 和捆绑计数、它们的合并计数、捆绑提交以及两者的覆盖率缺口。顶层的 distinctPlugins 和 coverage 仅限 ClawHub;bundled 描述源代码结果;combined 只合并一次确切包身份。某些捆绑插件没有包名称:当它们可能与公共匹配重叠时,combined.distinctPlugins 为 null,并且 distinctPluginBounds 报告可能的范围。observedPluginIdentities 在这种不确定重叠之前计算源代码身份。报告范围,而不是将其上限报告为确切计数。不同的名称始终保持不同;永远不要根据显示名称猜测别名。缺少捆绑证据会使合并影响不可用。 对于提议的 SDK 变更,还要报告匹配的证据、间接调用者以及您的兼容性建议。使用维护者的决策完成变更调查:保留行为、弃用并提供迁移路径,或根据现有政策继续。绝不要根据计数推断权限。

规范键

表面示例
SDK 模块sdk-module:openclaw/plugin-sdk/core
命名的 SDK 导出sdk-export:openclaw/plugin-sdk/core#OpenClawPluginApi
插件 API 方法api-member:api.registerTool
宿主运行时成员runtime-member:runtime.channel.reply.dispatchReplyFromConfig
命名的钩子hook:hook.before_agent_start
清单契约manifest-contract:manifest.contracts.tools:example_tool

键描述 SDK 身份,而非本地别名。api.runtime 成员被规范化为 runtime.*。库存包括受支持和已弃用的引用;非空的 deprecationCodes 选择与现有警告关联的条目。可按插件在 https://clawhub.ai/api/v1/sdk-usage/plugin?package=<encoded-name> 进行审查;跟踪其 nextCursor 直到 null 以获取完整库存。

解释结果

结果报告
观察到的消费者报告公共、捆绑和合并计数及其各自的范围。在判断行为变更之前检查证据。
无观察到的消费者,覆盖率完整“在 N 个公共/捆绑插件身份中未检测到静态引用。”需要两次扫描;排除私有非捆绑插件和非捆绑依赖项。不能证明没有人使用该 API。
部分、失败、缺失、不兼容或未解决的分析说明观察到的匹配项、缺口计数和代表性缺口。零匹配意味着影响未知。
空语料库未观察到符合条件的插件;这不能提供生态系统保证。
端点不可用、结果格式错误或遍历不完整影响未知。保留错误并使用本地证据;绝不要用零代替。

覆盖率与当前发布版本/工件和分析版本相关。符合条件的 ClawHub 报告具有 inputKind: "artifact";捆绑报告使用 "source"。源代码检出基准无法确定已发布包包含的内容。仅源代码的类型引用对于 SDK 类型和导出移除仍然重要;保留每个匹配的源。旧的扫描时间戳本身不会使不可变工件过时。证据是采样的;每次扫描报告其证据/未知的限制。页面是实时读取的,而不是单个快照:如果在调查期间发布版本或可见性发生变化,请重新运行。帮助工具会标记其观察到的更改,但无法建立事务范围的快照。

不要仅仅因为没有观察到消费者就 dismissing 安全问题。描述使用证据如何影响兼容性风险;安全性和 SDK 所有者仍决定修复方案以及对正常迁移窗口的任何例外。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

相关技能