For AI agents: the complete documentation index is available at https://scriptedalchemy.github.io/agent-bundle/zh/llms.txt, the full documentation bundle is available at https://scriptedalchemy.github.io/agent-bundle/zh/llms-full.txt, and this page is available as Markdown at https://scriptedalchemy.github.io/agent-bundle/zh/reference/hosts.md.
跳至主要内容
  • 简体中文
  • 宿主能力矩阵

    生成页面

    本页在文档构建时由固定版本的宿主能力表 amp-0.0.0-20260907001852-gf348fed.json、claude-2.1.260.json、codex-0.147.0.json、cursor-2026-08-28.json、portable-1.0.0.json 渲染而成。这些 JSON 文件是每个目标适配器编译时依赖的唯一事实来源;请修改它们而不是本页。表格内容保留英文原文。

    每个目标适配器都会把归一化后的 bundle 投影到一份固定的能力表上:这份 JSON 文档记录了证据所对应的宿主版本、宿主读取的路径,以及每项能力是 supported、degraded 还是 unavailable,并附带书面原因。没有任何推断:缺少证据的能力即为不可用,绝不会默默猜测。supported 的契约行不是现场执行;“运行时证明”一节记录这条单独的轴。

    固定宿主

    宿主观测版本插件清单市场清单钩子文档
    amp0.0.1788739286-gf348fe———
    claude2.1.260.claude-plugin/plugin.json.claude-plugin/marketplace.jsonhooks/hooks.json
    codex0.147.0.codex-plugin/plugin.json.agents/plugins/marketplace.jsonhooks/hooks.json
    cursor2026-08-28.cursor-plugin/plugin.json.cursor-plugin/marketplace.jsonhooks/hooks.json
    portable1.0.0plugin.json——

    运行时证明

    supported 或 degraded 的契约行不是宿主现场执行。仅当现场激活、工具或事件已与类型契约分开核查时,才会记录 runtimeProof 行。unverified 表示适配器已通过契约核对,现场激活尚未运行。没有该行的宿主只表示此处没有这类核查记录——并不等于已获证明。

    宿主状态说明
    ampunverifiedexperimental
    Experimental: contract-verified, runtime-unverified. The owner has no Amp account. Type and fake-PluginAPI proofs cover the generated factory, skill registration, and event-callback contract; live activation, thread, model, and tool execution are account-dependent and have not been run.
    2 条证据说明
    claude—未单独记录运行时证明行。
    codex—未单独记录运行时证明行。
    cursor—未单独记录运行时证明行。
    portable—未单独记录运行时证明行。

    安装方式

    宿主状态方式 / 命令作用域来源
    ampsupportedmethod: copy
    localRoot: .amp/plugins/<name> or $XDG_CONFIG_HOME/amp/plugins/<name>
    Agent Bundle copies only its generated Amp directory and records exact file ownership; plugins: reload remains an interactive operator action.
    project, userhttps://ampcode.com/docs/customize/plugins
    claudesupportedmarketplaceAdd: claude plugin marketplace add ./
    pluginInstall: claude plugin install <plugin>@<marketplace> --scope <scope>
    user, project, localhttps://code.claude.com/docs/en/discover-plugins
    codexsupportedmarketplaceAdd: codex plugin marketplace add ./
    pluginInstall: codex plugin add <plugin>@<marketplace>
    userhttps://developers.openai.com/codex/cli/reference
    cursorsupportedmethod: copy
    localRoot: ~/.cursor/plugins/local/<name>
    userhttps://cursor.com/docs/plugins
    portableunavailablePortable is a distribution profile, not a host runtime with one universal plugin installation location.—https://agent-plugins.org/

    路径令牌

    令牌amp 0.0.1788739286-gf348feclaude 2.1.260codex 0.147.0cursor 2026-08-28portable 1.0.0
    pluginData—${CLAUDE_PLUGIN_DATA}——${PLUGIN_DATA}
    pluginRoot—${CLAUDE_PLUGIN_ROOT}relative-with-plugin-root-cwd${CURSOR_PLUGIN_ROOT}${PLUGIN_ROOT}
    workspaceRoot—${CLAUDE_PROJECT_DIR}—${workspaceFolder}—

    MCP 传输与令牌字段

    宿主stdioStreamable HTTP任务增强调用接受路径令牌的字段
    ampsupportedsupportedunavailableargs:
    env:
    claudesupportedsupportedunavailablecommand: ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR}
    args: ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR}
    env: ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR}
    url: ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR}
    headers: ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR}
    headersHelper: ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR}
    codexsupportedsupportedunavailableNo host interpolation. command, args, env values, and cwd accept a leading ${PLUGIN_ROOT} only when cwd is the plugin root; the compiler rewrites it to a ./-relative path under cwd: "./". Embedded tokens, ${PLUGIN_DATA}, and workspace-root tokens are build errors.
    cursorsupportedsupportedunavailableargs: ${CURSOR_PLUGIN_ROOT}, ${workspaceFolder}
    env: ${CURSOR_PLUGIN_ROOT}, ${workspaceFolder}
    headers: ${CURSOR_PLUGIN_ROOT}, ${workspaceFolder}
    url: ${CURSOR_PLUGIN_ROOT}, ${workspaceFolder}
    portablesupportedsupportedunavailableargs: ${PLUGIN_DATA}, ${PLUGIN_ROOT}
    cwd: ${PLUGIN_DATA}, ${PLUGIN_ROOT}
    env: ${PLUGIN_DATA}, ${PLUGIN_ROOT}

    tasks 列记录固定版本的宿主客户端是否会发出任务增强的 tools/call 请求(MCP 2025-11-25 Tasks 工具:params.task、CreateTaskResult、tasks/get、tasks/result、tasks/cancel、tasks/list)。生成的服务器会为任何声明了 config.execution.taskSupport 的工具路由提供这一生命周期;本列描述的是宿主,而不是服务器。unavailable 表示文档或观测表明该宿主只发送普通调用,原因与证据见下表。

    各宿主的任务增强调用

    宿主状态说明
    ampunavailableThe pinned Amp skill MCP documentation does not state that the host issues MCP Tasks-augmented calls.
    claudeunavailableClaude Code never task-augments a tools/call (MCP 2025-11-25 Tasks): a main-conversation call still running after two minutes moves to a client-side background task (/tasks, CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS) while the call itself stays an ordinary tools/call held open against the server. A generated server's task-capable tools serve it as ordinary requests.
    3 条证据说明
    codexunavailableCodex 0.147.0 does not task-augment a tools/call. Its opt-in MCP 2026-07-28 support (mcp_2026_07_28) documents paginated discovery, multi-round requests, and non-blocking server startup; on that revision tasks are the io.modelcontextprotocol/tasks extension (resultType: "task", tasks/update), a shape the generated server's SDK does not serve. With the flag off it negotiates the legacy initialize handshake and sends no params.task.
    2 条证据说明
    cursorunavailableCursor does not task-augment a tools/call: its documented MCP protocol and extension support lists Tools, Prompts, Resources, Roots, Elicitation, and Apps, not Tasks, and recorded calls carry no params.task.
    2 条证据说明
    portableunavailableThe portable target pins no host client, so no host is recorded as issuing task-augmented calls. The generated server serves the 2025-11-25 Tasks utility to any client of that revision that sends params.task to a tool declaring execution.taskSupport — the MCP SDK client and the Workbench MCP page do.
    1 条证据说明

    structuredContentValidation 行记录固定版本的宿主客户端是否会把 tools/call 的参数对照 inputSchema、把 structuredContent 对照 outputSchema 进行校验,以及采用哪一种 JSON Schema 方言语义。生成的服务器公布的是可互操作的 2020-12 投影——元组表示为 prefixItems 加上取各位置 schema 并集的 items,绝不使用 items: false——因此合法结果既能通过 2020-12 校验器,也能通过非严格模式的 draft-07 校验器;degraded 表示宿主的校验器按不同于所声明方言的语义读取 schema,unavailable 表示没有记录到客户端侧校验,此时生成的服务器自身对照路由 zod schema 的校验是唯一一道检查。

    各宿主的结构化内容校验

    宿主状态说明
    ampunavailableThe pinned local skill MCP documentation does not state client-side structuredContent validation behavior.
    claudeunavailableClaude Code is not recorded as validating structuredContent against outputSchema, or arguments against inputSchema, client-side: the tuple-bearing result that Cursor's draft-07 validator rejects was accepted by Claude Code. The generated server's SDK-side validation of arguments and structuredContent against the route's zod schemas is the only check recorded, and the same interoperable 2020-12 projection is advertised to Claude Code unchanged.
    1 条证据说明
    codexunavailableCodex is not recorded as validating structuredContent against outputSchema, or arguments against inputSchema, client-side: the tuple-bearing result that Cursor's draft-07 validator rejects was accepted by Codex. The generated server's SDK-side validation of arguments and structuredContent against the route's zod schemas is the only check recorded, and the same interoperable 2020-12 projection is advertised to Codex unchanged.
    1 条证据说明
    cursordegradedCursor validates every tools/call result's structuredContent against the advertised outputSchema with an Ajv-style validator that applies draft-07 keyword semantics regardless of the schema's declared 2020-12 dialect: prefixItems is an unknown keyword it ignores and items: false is applied to every element, so a zod tuple advertised as plain 2020-12 fails with MCP error -32602: Structured content does not match the tool's output schema: … boolean schema is false before the result reaches the model. Generated servers therefore advertise the interoperable projection for outputSchema and inputSchema alike — prefixItems kept, items rewritten to the union of the positional schemas (and of the .rest() schema when there is one), minItems/maxItems kept — which both dialects accept for every value the route schema accepts; 2020-12 keeps positional precision through prefixItems, while draft-07 stays position-permissive because it applies the union to every element. Only the result-side check is observed; whether Cursor also validates arguments against inputSchema client-side is not recorded.
    2 条证据说明
    portableunavailableThe portable target pins no host client, so no client-side validation of arguments against inputSchema or of structuredContent against outputSchema is recorded. The generated server validates both against the route's zod schemas itself and advertises the interoperable 2020-12 projection — tuples as prefixItems plus items set to the union of the positional schemas, never items: false — so a valid result passes a non-strict draft-07 validator and a 2020-12 validator alike.
    1 条证据说明

    会话谱系

    每张表的 lineage 部分:宿主向常驻运行时提供了哪些关于 request.lineage 背后会话树的信息。subagent-events 表示宿主是否发出子代理 start/stop 钩子,root 表示每个载荷是否都给出根会话,parent 与 depth 表示子代理如何被放到其父节点之下(只有当子代理自己的载荷给出父节点时才是 supported;由运行时注册表按 spawn 调用顺序放置、再由宿主事后确认时为 degraded),mcp-correlation 表示生成的 MCP 工具调用如何匹配到产生它的钩子窗口。degraded 行记录注册表的做法及其确定程度;supported 行记录证据。request.lineage 上的 resolution 字段报告是哪条路径给出了答案(native、registry、confirmed、inferred)。

    谱系行amp 0.0.1788739286-gf348feclaude 2.1.260codex 0.147.0cursor 2026-08-28portable 1.0.0
    cloud———unavailable—
    depth—degradedsupporteddegradedunavailable
    mcp-correlation—supportedsupporteddegradedunavailable
    parent—degradedsupporteddegradedunavailable
    root—supportedsupporteddegradedunavailable
    subagent-events—supportedsupportedsupportedunavailable

    谱系行详情

    谱系行宿主状态说明
    cloudcursorunavailable2026-09-03: cloud agents run no user hooks (https://cursor.com/docs/hooks), so nothing feeds the registry there; request.lineage reports cloud-agent-no-user-hooks.
    depthclaudedegradedlive model 2026-09-03, Claude Code 2.1.257 and 2.1.259: no depth counter is delivered to hooks (#422; the result document's subagent_stats.max_depth and the stream-json task_started.spawn_depth are not hook fields); the registry derives it from the parent chain — the placed parent's depth plus one, re-based when a host confirmation moves the parent — so it is exactly as certain as parent, resolves as confirmed only when every edge up to the root is, and matched spawn_depth 1 and 2 in the 2.1.259 orchestration run.
    depthcodexsupported1 条证据说明
    depthcursordegraded2026-09-03: no depth counter is delivered (#424); derived from the inferred parent chain, so exactly as certain as parent.
    depthportableunavailable2026-09-03: Agent Plugins 1.0.0 defines no hooks.
    mcp-correlationclaudesupported3 条证据说明
    mcp-correlationcodexsupported1 条证据说明
    mcp-correlationcursordegraded2026-09-03: tools/call _meta carries only progressToken and the client name is cursor-vscode (#424); the generated server resolves the caller through the open preToolUse whose tool_name is MCP:<tool>. When open windows for that tool span several conversations it narrows by the arguments: the preToolUse tool_input is the call's arguments verbatim (fixtures/host-lineage/cursor-3.18.25.ndjson rows 44/45, 53/54: MCP:probe {"note":"subagent"} / {"note":"nested"} arrived at the server as exactly those arguments), so a concurrent call with different arguments resolves (resolution: inferred, provenance derived) and identical arguments stay id-not-resolvable — never a guess by name.
    1 条证据说明
    mcp-correlationportableunavailable2026-09-03: no pre-tool hook exists to open a correlation window and tools/call _meta is host-defined.
    parentclaudedegradedlive model 2026-09-03, Claude Code 2.1.257 and 2.1.259: no hook payload a subagent itself emits names its parent (#422: SubagentStart carries only the child agent_id and agent_type, and a subagent's own hooks carry session_id + agent_id; the hooks reference's common input fields list session_id, transcript_path, cwd, permission_mode, agent_id and agent_type, no parent). The runtime registry places the child under the Agent/Task PreToolUse that is the newest unclaimed spawn when SubagentStart fires (resolution: registry) — exact for sequential spawns and for the 2.1.259 parallel pair (the host serialises SubagentStart before the next Agent PreToolUse), verified at depth 1 and 2 in background, foreground and parallel spawn paths, refused as id-not-resolvable when two parents have unclaimed spawns, toolCallId withheld when siblings from one parent were claimed blind — and then takes the host's own word for the edge: the parent's Agent PostToolUse carries the spawn tool_use_id, the parent's identity and tool_response.agentId, the child. That hook confirms the edge (resolution: confirmed once every edge up to the root is host-named), fills in the sibling→tool_use_id assignment, places a start the window could not, and moves a child the window filed under the wrong parent, re-basing its descendants. It arrives right after SubagentStart for a background spawn (status async_launched; in 2.1.259 even before it) but only after the child's SubagentStop for a foreground one (status completed), so a foreground child's own events resolve as registry for their whole life. The host's stream-json task_started envelope (task_id, tool_use_id, spawn_depth) agrees with every placement but is not delivered to plugins.
    3 条证据说明
    parentcodexsupported2 条证据说明
    parentcursordegraded2026-09-03: parent_conversation_id appears only on the parent's subagentStart/subagentStop, which also omit the child conversation id (#424). The registry binds a never-seen conversation to the pending subagentStart only when exactly one is pending in the same workspace_roots (so windows sharing one durable registry never bind each other's children); with several pending — parallel workers — it stays id-not-resolvable until all but one have stopped, and a blind binding is undone — with anything started beneath it re-rooted — the moment the conversation carries a root-only event (the same Cursor root set — in practice sessionStart, sessionEnd, beforeSubmitPrompt, stop or preCompact), which a subagent never does, so a sessionEnd on a misbound chat retires that chat and never the parent it was filed under.
    parentportableunavailable2026-09-03: Agent Plugins 1.0.0 defines no hooks.
    rootclaudesupported2 条证据说明
    rootcodexsupported1 条证据说明
    rootcursordegraded2026-09-03: a child's events carry only their own fresh conversation_id (host gap tracked in #424), so the root is known only through the registry that bound the child (resolution: inferred); a Cursor root itself is established only by a root-shaped event (the registry's Cursor root set is the canonical session/start, session/end, prompt/submit, stop, compact/before, compact/after and workspace/open; Cursor documents no post-compact hook and workspaceOpen is sessionless, so on this host that means sessionStart, sessionEnd, beforeSubmitPrompt, stop or preCompact — none of which a subagent's conversation carries), never by a tool hook.
    rootportableunavailable2026-09-03: Agent Plugins 1.0.0 defines no hooks and the MCP request carries no conversation identity.
    subagent-eventsclaudesupported3 条证据说明
    subagent-eventscodexsupported1 条证据说明
    subagent-eventscursorsupported1 条证据说明
    subagent-eventsportableunavailable2026-09-03: Agent Plugins 1.0.0 defines no hooks, so no subagent start/stop event exists; request.lineage reports no-subagent-events.

    已记录的第三方客户端

    每张表的 clients 部分:会读取该目标已经产出的构件的其他代理,按其自身文档以及阅读文档的日期固定记录。这些客户端不是目标适配器——它们不会改变编译器写出的任何内容——因此每一行都是关于既有构件读取方的证据,而不是一种投影。tier 表示客户端加载什么:agent-plugins 把产出的包作为一个插件加载,skills 表示它不读取清单、只加载自己能识别的组件,none 表示按当前产出形态它什么都不加载。读取文档与运行文档所配置的内容是两行不同的记录:mcp 表示客户端会把产出的 mcp.json 当作 MCP 配置读取,而 placeholders 表示它会展开保留占位符 ${PLUGIN_ROOT} / ${PLUGIN_DATA} 并把它们提供给所启动的进程。优先级按文件、按界面生效——某个文件在 mcp 上胜出并不影响技能树被发现,只有清单胜出才会替换整个插件。安装操作带有其自身文档给定的角色——install 会把产物、或客户端唯一能识别的那个组件复制进它自己的存储,而 register 只是让客户端就地读取产出的目录树;对本产物没有已验证的本地目录安装形式的客户端,按其文档确实公布的来源记录:索引化的 marketplace 名称,或 Git repository。没有证据的界面一律为 unavailable 并附带带日期的原因,原因中明确写出该客户端实际需要的是什么。

    客户端宿主层级观测依据安装来源安装操作
    Antigravityportablenonedocs retrieved 2026-09-06; no product or CLI version is published on any page——
    Cascade (Devin Desktop)portableskillsdocs.devin.ai/desktop retrieved 2026-09-06; Windsurf renamed to Devin Desktop, Cascade documented as the legacy agent beside the Devin Local agentlocal-directoryinstall: cp -R skills/<skill> .agents/skills/<skill>
    Clineportableskills@cline/cli 0.0.13 exercised 2026-09-06; docs.cline.bot retrieved 2026-09-06 (@cline/sdk 0.0.82)local-directoryinstall: cp -R skills/<skill> ~/.cline/skills/<skill>
    CodeWhaleportableagent-pluginsHmbown/CodeWhale main 19d34a5fb6c07b34e0b7234beb74a1cf1969efb4, docs retrieved 2026-09-06 (native Agent Plugins v1.0.0 support since v0.9.4)local-directoryinstall: /plugin install ./<plugin directory>
    GitHub Copilot CLIportableagent-plugins@github/copilot 1.0.83, installed and exercised 2026-09-06local-directoryinstall: copilot plugin install <plugin directory>
    inspect: copilot plugins list
    verify: copilot --plugin-dir <plugin directory>
    Devin CLIportableagent-pluginsAgent Plugins 1.0.0; docs retrieved 2026-09-06, plugins documented as closed betalocal-directoryinstall: devin plugins install <plugin directory>
    inspect: devin plugins info <name>
    remove: devin plugins remove <name>
    Gemini CLIportableskills@google/gemini-cli 0.58.0, installed and exercised 2026-09-06local-directoryinstall: gemini skills install <plugin directory>/skills/<skill>
    inspect: gemini skills list --all
    Grok Buildportableskillsxai-org/grok-build main 72a61251fcffb464bcc687aeb5a998e5a98ec0c9, docs retrieved 2026-09-06marketplaceinstall: grok plugin install <marketplace plugin name> --trust
    trust: /hooks-trust
    enable: grok plugin enable <name>
    verify: grok plugin validate <plugin directory>
    Hermes Agentportableagent-pluginshermes-agent.nousresearch.com developer guide retrieved 2026-09-06; no version is printed on the pagerepositoryinstall: hermes plugins install <owner>/<repository> --no-enable
    JetBrains Junieportableskillsjunie.jetbrains.com/docs retrieved 2026-09-06, agent-skills page dated 01 September 2026; no CLI version is published on the pagelocal-directoryregister: junie --skill-location <plugin directory>/skills
    inspect: /skills
    Kiro (Powers)portableagent-pluginskiro.dev/docs/powers pages updated September 2, 2026 and August 4, 2026, retrieved 2026-09-06local-directoryinstall: Powers panel -> Add Custom Power -> Import power from a folder -> select <plugin directory> -> Install
    OpenClawportableagent-pluginsAgent Plugins 1.0.0; docs retrieved 2026-09-06local-directoryinstall: openclaw plugins install <plugin directory>
    inspect: openclaw plugins inspect <id>
    remove: openclaw plugins uninstall <id>
    OpenCodeportableskillsopencode-ai 1.18.29 exercised 2026-09-06; opencode.ai/docs retrieved 2026-09-06local-directoryinstall: cp -R skills/<skill> .agents/skills/<skill>
    Piportableskills@mariozechner/pi-coding-agent 0.73.1 installed from npm 2026-09-07; packaged docs/skills.md and docs/packages.md read from that releaselocal-directoryregister: pi --skill <plugin directory>/skills
    inspect: pi --help
    Qoder CLIportableskillsdocs retrieved 2026-09-06; no CLI version is published on any pagelocal-directoryinstall: qoder plugins install <plugin directory> --scope user
    verify: qoder plugins validate <plugin directory>
    inspect: qoder plugins list --json
    Swivalportableskillsdocs retrieved 2026-09-06; no product version is published on the documentation pageslocal-directoryregister: swival --skills-dir <plugin directory>/skills "<task>"
    inspect: swival skills list
    VS Code (Copilot agent plugins)portableagent-pluginscode.visualstudio.com/docs/agent-customization/agent-plugins, page footer 9/2/2026, retrieved 2026-09-06local-directoryregister: "chat.pluginLocations": { "<plugin directory>": true }
    Zed Agentportableskillszed.dev/docs retrieved 2026-09-06; no page publishes a version or last-updated datelocal-directoryinstall: cp -R skills/<skill> ~/.agents/skills/<skill>

    客户端界面

    客户端界面状态说明
    Antigravitymanifestunavailable2026-09-06: unproven. https://www.antigravity.google/docs/cli/plugins requires a root plugin.json and embeds a closed schema for it ("additionalProperties": false, "required": ["name"], properties name and description only) that omits every other Agent Plugins manifest field this artifact emits — including the $schema its own example shows — and the schema URL that example cites returns 404. No page states what install-time validation does with an unknown root key, and no CLI run against the emitted manifest is recorded here.
    Antigravityskillsunavailable2026-09-06: unproven. The root plugin.json is "a mandatory manifest located at the root of your plugin directory" (https://www.antigravity.google/docs/cli/plugins), so component discovery depends on the unproven manifest outcome above; Antigravity does document skills/<skill-name>/SKILL.md in its own plugin layout, and nothing here establishes whether the emitted tree is reached.
    Antigravitymcpunavailable2026-09-06: the plugin MCP file is mcp_config.json, not mcp.json, and remote servers key on serverUrl rather than url (https://www.antigravity.google/docs/cli/plugins, https://www.antigravity.google/docs/cli/gcli-migration: "Legacy schema keys: url or httpUrl -> Modern schema key: serverUrl").
    Antigravityplaceholdersunavailable2026-09-06: no ${PLUGIN_ROOT}, ${PLUGIN_DATA}, or other path placeholder is documented for Antigravity MCP or hook configuration.
    Antigravityhooksunavailable2026-09-06: Antigravity reads a root hooks.json as a named-hook map (https://www.antigravity.google/docs/hooks/); Agent Plugins 1.0.0 defines no hooks, so this projection emits no hooks document for it to read.
    Cascade (Devin Desktop)manifestunavailable2026-09-06: Cascade's documented customization units are Skills, Rules, Workflows, and AGENTS.md (https://docs.devin.ai/desktop/cascade/skills, https://docs.devin.ai/desktop/cascade/memories); no page defines a plugin manifest, so the emitted root plugin.json is read by nothing there.
    Cascade (Devin Desktop)skillsdegraded2026-09-06: the emitted package root is not a Cascade discovery root; each skill directory is copied into .windsurf/skills/, ~/.codeium/windsurf/skills/, or .agents/skills/ before Cascade sees it, and the copy is what loads.
    1 条证据说明
    Cascade (Devin Desktop)mcpunavailable2026-09-06: Cascade reads MCP servers from ~/.codeium/windsurf/mcp_config.json only (https://docs.devin.ai/desktop/cascade/mcp), where a remote server "requires a serverUrl or url field" and interpolation is ${env:VAR_NAME} / ${file:/path}; no page reads a plugin-relative mcp.json, so the emitted document is not a Cascade MCP source.
    Cascade (Devin Desktop)placeholdersunavailable2026-09-06: the documented interpolation patterns are ${env:VAR_NAME} and ${file:/path/to/file} in mcp_config.json (https://docs.devin.ai/desktop/cascade/mcp); ${PLUGIN_ROOT} and ${PLUGIN_DATA} are not documented anywhere for Cascade, so the reserved behavior of Agent Plugins 1.0.0 §9.1 is not provided.
    Cascade (Devin Desktop)hooksunavailable2026-09-06: Agent Plugins 1.0.0 defines no hooks, so this projection emits no hooks document for Cascade to read.
    Clinemanifestunavailable2026-09-06: a Cline plugin is installed from an npm, git, remote, or local source into ~/.cline/plugins/_installed/ with Cline's own layout; no upstream page documents reading a root Agent Plugins plugin.json, and @cline/cli 0.0.13 exposes no plugin subcommand to offer it to.
    Clineskillsdegraded2026-09-06: the skill tree must be copied into one of Cline's own roots; the emitted package is not a Cline install unit, and no CLI verb in @cline/cli 0.0.13 performs the copy.
    1 条证据说明
    Clinemcpunavailable2026-09-06: Cline reads mcpServers from its own configuration and the retrieved pages give three unreconciled paths for it (~/.cline/mcp.json, .cline/mcp.json, ~/.cline/data/settings/cline_mcp_settings.json); none is a plugin-root mcp.json, and Cline's remote transport is spelled streamableHttp rather than the standard's streamable-http.
    Clineplaceholdersunavailable2026-09-06: no ${VAR} interpolation syntax is documented for Cline MCP configuration, and no emitted document carrying the Agent Plugins 1.0.0 §9.1 tokens is read at this tier.
    Clinehooksunavailable2026-09-06: Cline loads hooks from its own hooks directory (--hooks-dir, default ~/.cline/hooks); Agent Plugins 1.0.0 defines no hooks, so this projection emits no hooks document for it to read.
    CodeWhalemanifestsupported1 条证据说明
    CodeWhaleskillssupported1 条证据说明
    CodeWhalemcpdegraded2026-09-06: CodeWhale narrows the standard at the plugin boundary. Its env rule — "Local stdio environment entries must use exact ${SOURCE_ENV} references" — rejects an emitted env value that is anything other than one whole variable reference. A remote server emitted into mcp.json is narrower still: the URL must be HTTPS (or explicit loopback HTTP) with no user information, query, or fragment, a literal header is rejected in favor of CodeWhale's own env_headers or bearer_token_env_var keys, redirects must stay on the reviewed origin, and the bundle must declare exactly the normalized endpoint host set in capabilities.network_hosts. That declaration rides in extensions["net.codewhale"], which this projection writes only when the author authors portable.extensions; a remote server emitted without it is a validation error, and "an active bundle must be … free of validation errors", so the whole bundle stays inactive there until the author declares the matching host set.
    2 条证据说明
    CodeWhaleplaceholdersunavailable2026-09-06: CodeWhale rejects PLUGIN_ROOT and PLUGIN_DATA as env entry names (as the 1.0.0 schema does), but its documentation never states whether it provides those variables or expands ${PLUGIN_ROOT} and ${PLUGIN_DATA} in args, env values, or cwd, so the reserved behavior of §9.1 is unproven there.
    CodeWhalehooksunavailable2026-09-06: docs/HOOKS.md documents CodeWhale's own hook layout; Agent Plugins 1.0.0 defines no hooks, so this projection emits no hooks document for it to read.
    GitHub Copilot CLImanifestsupported1 条证据说明
    GitHub Copilot CLIskillssupported1 条证据说明
    GitHub Copilot CLImcpdegraded2026-09-06: the probe listed one stdio server: no streamable-http server from an emitted mcp.json was registered, launched, or authenticated on 1.0.83, so the evidence covers the stdio subset of the document rather than every transport the projection can emit.
    1 条证据说明
    GitHub Copilot CLIplaceholdersdegraded2026-09-06: the probe proved the configuration Copilot records, not a spawned server: copilot mcp get prints static configuration, and spawning the server requires a GitHub Copilot login that was not performed.
    1 条证据说明
    GitHub Copilot CLIhooksunavailable2026-09-06: Copilot CLI 1.0.83 exposes hooks (documented separately at https://docs.github.com/en/copilot/reference/hooks-reference), but Agent Plugins 1.0.0 defines no hooks, so this projection emits no hooks document for it to read.
    Devin CLImanifestsupported1 条证据说明
    Devin CLIskillssupported1 条证据说明
    Devin CLImcpdegraded2026-09-06: the emitted document is read, and applied after a composite root's .mcp.json, "which wins on a server-name collision" — a server this bundle names identically to one there is overridden.
    2 条证据说明
    Devin CLIplaceholderssupported1 条证据说明
    Devin CLIhooksunavailable2026-09-06: Devin reads plugin hooks from a root hooks.json and documents them as "best effort and fail open" with SessionStart and SessionEnd excluded; Agent Plugins 1.0.0 defines no hooks, so this projection emits no hooks document for it to read.
    Gemini CLImanifestunavailable2026-09-06: gemini extensions validate /tmp/hostcli/fixture on 0.58.0 exited 1 with "Configuration file not found at /tmp/hostcli/fixture/gemini-extension.json" — Gemini CLI requires its own gemini-extension.json manifest, which this projection does not emit, and gemini extensions list then reported "No extensions installed."
    Gemini CLIskillssupported1 条证据说明
    Gemini CLImcpunavailable2026-09-06: Gemini CLI reads MCP servers from the mcpServers map of its own gemini-extension.json manifest or a settings.json (https://geminicli.com/docs/extensions/reference/, last updated May 14, 2026); with the manifest rejected, the emitted mcp.json is never consulted, and the skills install path copies only the skill directory.
    Gemini CLIplaceholdersunavailable2026-09-06: Gemini CLI documents ${extensionPath} for portability inside its own manifest, not the reserved ${PLUGIN_ROOT} and ${PLUGIN_DATA} of Agent Plugins 1.0.0 §9.1; no emitted document that carries those tokens is read at this tier.
    Gemini CLIhooksunavailable2026-09-06: Gemini CLI loads extension hooks from hooks/hooks.json and states "hooks are not defined in the gemini-extension.json manifest" (https://geminicli.com/docs/extensions/reference/); Agent Plugins 1.0.0 defines no hooks, so this projection emits no hooks document for it to read.
    Grok Buildmanifestunavailable2026-09-06: unproven. The root manifest is documented only as optional metadata and path overrides, with no published field list, validation rule, or precedence order, so nothing about Grok's handling of the emitted manifest is pinned.
    Grok Buildskillssupported1 条证据说明
    Grok Buildmcpunavailable2026-09-06: the only documented plugin MCP file is .mcp.json (https://docs.x.ai/build/features/mcp-servers: "MCP servers: a .mcp.json file"); no upstream page states that a root, non-dotted mcp.json is read, so the emitted mcp.json is not proven to load.
    Grok Buildplaceholdersunavailable2026-09-06: GROK_PLUGIN_ROOT and GROK_PLUGIN_DATA are documented only as hook environment variables ("Plugin hooks additionally receive GROK_PLUGIN_ROOT and GROK_PLUGIN_DATA in their environment"); no ${...} expansion inside plugin MCP configuration is documented.
    Grok Buildhooksunavailable2026-09-06: Grok reads plugin hooks from hooks/hooks.json and runs them only once the plugin is trusted (https://docs.x.ai/build/features/hooks); Agent Plugins 1.0.0 defines no hooks, so this projection emits no hooks document for it to read.
    Hermes Agentmanifestdegraded2026-09-06: the validation rule set is not published: the page never states that the manifest root is treated as closed or what happens to an unknown root key.
    1 条证据说明
    Hermes Agentskillssupported1 条证据说明
    Hermes Agentmcpsupported1 条证据说明
    Hermes Agentplaceholdersdegraded2026-09-06: the expansion sites are unpublished — the page does not say whether ${PLUGIN_ROOT} and ${PLUGIN_DATA} are expanded in args, env values, and cwd as §9.1 requires, only that the variables are provided.
    1 条证据说明
    Hermes Agenthooksunavailable2026-09-06: Hermes runs hooks from native plugin.yaml plus register(ctx) Python plugins, which the portable tier explicitly does not replace; Agent Plugins 1.0.0 defines no hooks, so this projection emits no hooks document either.
    JetBrains Juniemanifestunavailable2026-09-06: Junie's documented units are agent skills, guidelines, and MCP configuration (https://junie.jetbrains.com/docs/agent-skills.html); no page defines a plugin manifest, so the emitted root plugin.json is read by nothing there.
    JetBrains Junieskillsdegraded2026-09-06: the emitted skills/ root is not a default location, so it loads only once registered with --skill-location or the skill-locations config field, and "if a project-level and a user-level skills have the same name, the user-level skill will be skipped".
    1 条证据说明
    JetBrains Juniemcpunavailable2026-09-06: MCP servers are read from .junie/mcp/mcp.json or ~/.junie/mcp/mcp.json (https://junie.jetbrains.com/docs/junie-cli-mcp-configuration.html). --mcp-location adds "additional folders where MCP servers should be found", but no page states the file name it looks for inside them, and the documented server fields are command/args/env and url/headers with no type discriminator, so the emitted plugin-root mcp.json is not a proven Junie MCP source.
    JetBrains Junieplaceholdersunavailable2026-09-06: no ${PLUGIN_ROOT} or ${PLUGIN_DATA} expansion is documented for Junie MCP configuration or skills, so the reserved behavior of Agent Plugins 1.0.0 §9.1 is not provided.
    JetBrains Juniehooksunavailable2026-09-06: Agent Plugins 1.0.0 defines no hooks, so this projection emits no hooks document for Junie to read.
    Kiro (Powers)manifestdegraded2026-09-06: Kiro's "Required fields" table additionally requires version, description, author, and keywords, where the canonical schema requires only $schema and name — so a bundle that declares no portable author or keywords metadata does not meet Kiro's tightened manifest, and Kiro publishes no validation-error behavior to say what happens then.
    1 条证据说明
    Kiro (Powers)skillssupported1 条证据说明
    Kiro (Powers)mcpdegraded2026-09-06: only stdio is documented for a power's mcp.json; no Kiro page states that a streamable-http server in that file is read, so an emitted remote server is unproven there.
    1 条证据说明
    Kiro (Powers)placeholdersunavailable2026-09-06: no Kiro page documents ${PLUGIN_ROOT} or ${PLUGIN_DATA} expansion, or the provision of those variables to a power's MCP subprocess, so the reserved behavior of Agent Plugins 1.0.0 §9.1 is unproven there.
    Kiro (Powers)hooksunavailable2026-09-06: https://kiro.dev/docs/hooks/ documents Kiro's own hook configuration; Agent Plugins 1.0.0 defines no hooks, so this projection emits no hooks document for it to read.
    OpenClawmanifestsupported1 条证据说明
    OpenClawskillssupported1 条证据说明
    OpenClawmcpsupported1 条证据说明
    OpenClawplaceholderssupported1 条证据说明
    OpenClawhooksunavailable2026-09-06: https://docs.openclaw.ai/plugins/bundles supports bundle hooks only as OpenClaw hook packs (HOOK.md plus handler.ts or handler.js) and lists hooks/hooks.json as detect-only; Agent Plugins 1.0.0 defines no hooks, so this projection emits no hooks document at all.
    OpenCodemanifestunavailable2026-09-06: opencode plugin &lt;dir&gt; requires a package.json or index file and refused the emitted package on 1.18.29; OpenCode reads no root plugin.json.
    OpenCodeskillsdegraded2026-09-06: the skill tree must be copied into one of OpenCode's own roots; the emitted package as a whole is not an OpenCode install unit, and skill names must be unique across all roots ("Ensure skill names are unique across all locations").
    1 条证据说明
    OpenCodemcpunavailable2026-09-06: https://opencode.ai/docs/mcp-servers/ configures servers under the mcp key of opencode.json with OpenCode's own type: "local" | "remote" shape and a command array, not a standalone mcp.json with the standard's stdio and streamable-http types.
    OpenCodeplaceholdersunavailable2026-09-06: OpenCode substitutes {env:VAR} and {file:path} in its own configuration; it documents no expansion of the reserved ${PLUGIN_ROOT} and ${PLUGIN_DATA} of Agent Plugins 1.0.0 §9.1, and no emitted document carrying them is read.
    OpenCodehooksunavailable2026-09-06: OpenCode's event hooks are JavaScript functions returned by a plugin module (https://opencode.ai/docs/plugins/); Agent Plugins 1.0.0 defines no hooks, and this projection emits no plugin module for it to load.
    Pimanifestunavailable2026-09-07: Pi's package manifest is the pi field of package.json (docs/packages.md of 0.73.1); no documented path reads an Agent Plugins root plugin.json, so the emitted manifest has no reader there.
    Piskillsdegraded2026-09-07: the emitted skills/ root is not one of the scanned default roots, so it loads only when it is named with --skill or added to the skills settings array; discovery inside it is recursive once named.
    1 条证据说明
    Pimcpunavailable2026-09-07: the installed release's documentation set carries no MCP page and its CLI --help exposes no MCP option, so the emitted mcp.json has no reader there.
    Piplaceholdersunavailable2026-09-07: with no MCP document read, no ${PLUGIN_ROOT} or ${PLUGIN_DATA} placeholder of Agent Plugins 1.0.0 §9.1 is expanded.
    Pihooksunavailable2026-09-07: Agent Plugins 1.0.0 defines no hooks, so this projection emits no hooks document for Pi to read.
    Qoder CLImanifestunavailable2026-09-06: https://docs.qoder.com/cli/plugins-reference states the manifest "must not be placed in the plugin root directory", so the emitted root plugin.json is not a recognized manifest and the plugin is identified only by its directory name.
    Qoder CLIskillssupported1 条证据说明
    Qoder CLImcpsupported1 条证据说明
    Qoder CLIplaceholdersunavailable2026-09-06: QODER_PLUGIN_ROOT and QODER_PLUGIN_DATA are documented only for hooks (https://docs.qoder.com/cli/hooks-reference), and no ${...} placeholder is documented for MCP server configuration, so the emitted ${PLUGIN_ROOT} and ${PLUGIN_DATA} tokens are not proven to expand.
    Qoder CLIhooksunavailable2026-09-06: Qoder reads plugin hooks from hooks/hooks.json and requires the extra { "hooks": ... } wrapper (https://docs.qoder.com/cli/hooks-reference); Agent Plugins 1.0.0 defines no hooks, so this projection emits no hooks document for it to read.
    Swivalmanifestunavailable2026-09-06: Swival discovers skill directories and MCP configuration and publishes no plugin manifest of any kind (https://swival.dev/pages/skills.html, https://swival.dev/pages/mcp.html), so the emitted root plugin.json is read by nothing there.
    Swivalskillsdegraded2026-09-06: the emitted skills/ root is not a default location, so it loads only once registered with --skills-dir or the swival.toml skills_dir field, and it loses by name to the default roots: "If the same skill name exists in multiple locations, the first one in the precedence order wins", with .swival/skills/ and .agents/skills/ ahead of --skills-dir paths. A registered tree outside the project resolves as external, which Swival adds "as read-only roots".
    1 条证据说明
    Swivalmcpunavailable2026-09-06: MCP servers come from swival.toml [mcp_servers.] or .swival/mcp.json (https://swival.dev/pages/mcp.html). The emitted document is a shape Swival reads, but only an invocation that passes --mcp-config at it reads this one — the flag "replaces the default .swival/mcp.json lookup" rather than adding to it, and "TOML servers (swival.toml [mcp_servers.]) always win by server name over JSON servers" — and the registration recorded here does not, so this record claims no Swival MCP source.
    Swivalplaceholdersunavailable2026-09-06: no ${PLUGIN_ROOT} or ${PLUGIN_DATA} expansion is documented for Swival MCP configuration, and the documented substitution surface is the skill body and its own directory path, so the reserved behavior of Agent Plugins 1.0.0 §9.1 is not provided.
    Swivalhooksunavailable2026-09-06: Agent Plugins 1.0.0 defines no hooks, so this projection emits no hooks document for Swival to read.
    VS Code (Copilot agent plugins)manifestsupported1 条证据说明
    VS Code (Copilot agent plugins)skillssupported1 条证据说明
    VS Code (Copilot agent plugins)mcpsupported1 条证据说明
    VS Code (Copilot agent plugins)placeholdersunavailable2026-09-06: the page contradicts itself on the reserved placeholders — it names ${PLUGIN_ROOT} and ${PLUGIN_DATA} and in one place says they are expanded and in another that they are preserved — so §9.1 expansion in args, env values, and cwd is not established for the emitted mcp.json.
    VS Code (Copilot agent plugins)hooksunavailable2026-09-06: VS Code reads plugin hooks from com.github.copilot/hooks/hooks.json, a client-specific namespace directory this projection does not write, and Agent Plugins 1.0.0 defines no hooks; the surface is also documented as Preview.
    Zed Agentmanifestunavailable2026-09-06: no Zed page documents a plugin manifest of any shape for the Zed Agent; skills are installed as folders and MCP servers are configured in Zed's settings, so the emitted plugin.json has no reader.
    Zed Agentskillsdegraded2026-09-06: only the skill folders load, one copy at a time, and the catalog is capped — "50KB catalog budget… Skills that don't fit are dropped from the catalog with a warning in the UI" — so a large emitted skill set is not guaranteed to be wholly visible.
    1 条证据说明
    Zed Agentmcpunavailable2026-09-06: https://zed.dev/docs/ai/mcp configures servers under the context_servers key of Zed's own settings file, and no page documents auto-discovery of a project-local or plugin-root MCP file, so the emitted mcp.json has no reader.
    Zed Agentplaceholdersunavailable2026-09-06: with no emitted MCP document read, none of the reserved ${PLUGIN_ROOT} or ${PLUGIN_DATA} placeholders of Agent Plugins 1.0.0 §9.1 is expanded.
    Zed Agenthooksunavailable2026-09-06: none of the retrieved Zed Agent pages documents a lifecycle or hook mechanism, and Agent Plugins 1.0.0 defines no hooks, so this projection emits no hooks document either.

    客户端发现

    客户端读取的路径被以下文件遮蔽(按界面)
    Antigravity——
    Cascade (Devin Desktop)skills—
    Clineskills—
    CodeWhalemcp.json, plugin.json, skills—
    GitHub Copilot CLImcp.json, plugin.json, skills.plugin/plugin.json (manifest)
    .mcp.json (mcp)
    Devin CLImcp.json, plugin.json, skills.devin-plugin/plugin.json (manifest, skills, mcp, placeholders)
    .claude-plugin/plugin.json (manifest, skills, mcp, placeholders)
    Gemini CLIskills—
    Grok Buildskills—
    Hermes Agentmcp.json, plugin.json, skills—
    JetBrains Junieskills—
    Kiro (Powers)mcp.json, plugin.json, skills—
    OpenClawmcp.json, plugin.json, skillsopenclaw.plugin.json (manifest, skills, mcp, placeholders)
    .claude-plugin/plugin.json (manifest, skills, mcp, placeholders)
    .codex-plugin/plugin.json (manifest, skills, mcp, placeholders)
    .cursor-plugin/plugin.json (manifest, skills, mcp, placeholders)
    OpenCodeskills—
    Piskills—
    Qoder CLImcp.json, skills.mcp.json (mcp)
    Swivalskills—
    VS Code (Copilot agent plugins)mcp.json, plugin.json, skills—
    Zed Agentskills—

    插件组件

    每张表的 plugin 部分,按点分能力路径展开并按顶层键分组。布尔条目表示适配器会发出的组件;带状态的条目记录宿主证据支持或保留该能力的原因。证据说明保留在 JSON 文件中。

    amp 0.0.1788739286-gf348fe

    entry

    • entry — .amp/plugins/<name>/index.js

    manifest

    • manifest — null

    marketplace

    • marketplace — null

    commands

    • commands unavailable — Agent Bundle does not project command-palette commands from its canonical command documents.

    rules

    • rules unavailable — Amp plugin discovery has no plugin-root rules component.

    lsp

    • lsp unavailable — The pinned PluginAPI declares no language-server registration surface.

    nativeDiagnostics

    • nativeDiagnostics unavailable — The pinned PluginAPI declares no native diagnostics-provider component.

    nativeExtension

    • nativeExtension unavailable — The pinned PluginAPI declares no opaque native extension component.

    claude 2.1.260

    agents

    • agents.component unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately defers Agent Bundle's authored plugin agents/ component until a separate evidence-backed increment. · 2 条证据说明
    • agents.name unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent name field together with agents/ emission. · 3 条证据说明
    • agents.description unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent description field together with agents/ emission. · 2 条证据说明
    • agents.model unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent model field together with agents/ emission. · 2 条证据说明
    • agents.effort unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent effort field together with agents/ emission. · 2 条证据说明
    • agents.maxTurns unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent maxTurns field together with agents/ emission. · 2 条证据说明
    • agents.tools unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent tools field together with agents/ emission. · 2 条证据说明
    • agents.disallowedTools unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent disallowedTools field together with agents/ emission. · 2 条证据说明
    • agents.skills unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent skills field together with agents/ emission. · 2 条证据说明
    • agents.memory unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent memory field together with agents/ emission. · 2 条证据说明
    • agents.background unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent background field together with agents/ emission. · 2 条证据说明
    • agents.isolationWorktree unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds authored plugin-agent isolation: worktree together with agents/ emission. · 2 条证据说明
    • agents.hooks unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately defers the plugin-agent surface on which Agent Bundle would lower hooks as unsupported on Claude plugins: the sub-agents reference marks the field "Ignored for plugin subagents", so a re-admitted agents/ component must reject it with a diagnostic rather than emit a field the host drops silently. · 5 条证据说明
    • agents.mcpServers unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately defers the plugin-agent surface on which Agent Bundle would lower mcpServers as unsupported on Claude plugins: the sub-agents reference marks the field "Ignored for plugin subagents", so a re-admitted agents/ component must reject it with a diagnostic rather than emit a field the host drops silently. · 5 条证据说明
    • agents.permissionMode unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately defers the plugin-agent surface on which Agent Bundle would lower permissionMode as unsupported on Claude plugins: the sub-agents reference marks the field "Ignored for plugin subagents", so a re-admitted agents/ component must reject it with a diagnostic rather than emit a field the host drops silently. · 5 条证据说明
    • agents.color unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent color field together with agents/ emission. · 3 条证据说明
    • agents.initialPrompt unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent initialPrompt field together with agents/ emission. · 3 条证据说明
    • agents.experimentalCacheTtl unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent experimental.cacheTtl field together with agents/ emission. · 3 条证据说明

    bin

    • bin.bareCommands supported
    • bin.bashPath supported
    • bin.directory — bin
    • bin.enabledOnly supported
    • bin.organizationDistributionProhibited supported

    channels

    • channels.bindsToPluginMcpServer supported
    • channels.perChannelUserConfig supported

    commandFrontmatter

    • commandFrontmatter supported — fields.allowedTools: allowed-tools · fields.argumentHint: argument-hint · fields.description: description · fields.disableModelInvocation: disable-model-invocation · fields.model: model · 2 条证据说明

    commands

    • commands supported

    dependencies

    • dependencies.autoInstall supported
    • dependencies.autoInstallExceptions — command-source, headersHelper
    • dependencies.crossMarketplaceAllowlist — allowCrossMarketplaceDependenciesOn
    • dependencies.entryForms — name, object
    • dependencies.errorCodes — dependency-unsatisfied, range-conflict, dependency-version-unsatisfied, no-matching-tag
    • dependencies.objectFields — marketplace, name, version
    • dependencies.prereleaseOptIn supported
    • dependencies.prune supported
    • dependencies.rangeIntersection supported
    • dependencies.semverRanges supported
    • dependencies.tagConvention — {name}--v{version}

    distributionPolicy

    • distributionPolicy.skillsDirectoryPlugins unavailable — Agent Bundle emits a plugin directory but does not place it in a Claude skills directory or register the host-owned @skills-dir identity. · 2 条证据说明
    • distributionPolicy.skillsDirectoryProjectTrust unavailable — Agent Bundle cannot grant or inspect the workspace trust required before Claude loads a project-scope @skills-dir plugin. · 1 条证据说明
    • distributionPolicy.skillsDirectoryMcpApproval unavailable — Agent Bundle can emit plugin MCP configuration but cannot complete Claude's per-server approval for a project-scope @skills-dir plugin. · 1 条证据说明
    • distributionPolicy.skillsDirectoryLspTrust unavailable — Agent Bundle can emit plugin LSP configuration but cannot satisfy Claude's workspace-trust gate for a project-scope @skills-dir plugin. · 1 条证据说明
    • distributionPolicy.skillsDirectoryMonitors unavailable — Agent Bundle cannot make Claude load background monitors from a project-scope @skills-dir plugin, which the host explicitly skips. · 1 条证据说明
    • distributionPolicy.pluginInstallScopes supported — 3 条证据说明
    • distributionPolicy.pluginReload unavailable — Agent Bundle cannot reload or restart a running Claude session after plugin files or installed versions change. · 3 条证据说明
    • distributionPolicy.pluginTrustGates unavailable — Agent Bundle cannot accept Claude workspace-trust, server-managed-settings approval, or command-source confirmation prompts on a user's behalf. · 2 条证据说明
    • distributionPolicy.syncedPlugins unavailable — Agent Bundle cannot synchronize or administer the @synced plugins attached to a user's claude.ai account. · 2 条证据说明
    • distributionPolicy.managedPluginScope unavailable — Agent Bundle cannot create, remove, enable, or disable managed-scope plugins; Claude exposes that host-owned scope as read-only and update-only. · 1 条证据说明
    • distributionPolicy.managedStrictKnownMarketplaces unavailable — Agent Bundle does not emit or override the organization-managed strictKnownMarketplaces allowlist. · 2 条证据说明
    • distributionPolicy.managedBlockedMarketplaces unavailable — Agent Bundle does not emit or override the organization-managed blockedMarketplaces denylist. · 2 条证据说明
    • distributionPolicy.managedDisableSideloadFlags unavailable — Agent Bundle cannot configure or bypass disableSideloadFlags in Claude managed settings. · 1 条证据说明
    • distributionPolicy.managedDisableCommandPluginSources unavailable — Agent Bundle emits no managed setting that can permit, block, or exempt Claude command plugin sources. · 2 条证据说明
    • distributionPolicy.managedAllowManagedHooksOnly unavailable — Agent Bundle cannot configure allowManagedHooksOnly or claim that emitted plugin commands are exempt from that managed policy. · 2 条证据说明
    • distributionPolicy.managedPluginSuggestions unavailable — Agent Bundle does not emit the managed pluginSuggestionMarketplaces allowlist or marketplace relevance signals for contextual installation suggestions. · 2 条证据说明
    • distributionPolicy.pluginCliLifecycle unavailable — Agent Bundle emits Claude plugin artifacts but does not invoke Claude's plugin creation, installation, state, update, inspection, or release commands. · commands: init, new, install, uninstall, prune, enable, disable, update, list, details, tag · 2 条证据说明
    • distributionPolicy.marketplaceCliLifecycle unavailable — Agent Bundle emits marketplace manifests but does not add, list, remove, or update marketplaces in a user's Claude configuration. · commands: add, list, remove, update · 2 条证据说明

    packageLifecycle

    • packageLifecycle.nodeDependencyInstall unavailable — Agent Bundle emits compile-time plugin artifacts but does not currently place package.json plus a supported lockfile at the plugin root or run Claude's host-owned dependency install in a copied cache entry. · manifest: package.json · commands.bun.lock: bun install --frozen-lockfile --ignore-scripts · commands.bun.lockb: bun install --frozen-lockfile --ignore-scripts · commands.npm-shrinkwrap.json: npm ci --ignore-scripts · commands.package-lock.json: npm ci --ignore-scripts · lockfilePrecedence: bun.lock, bun.lockb, npm-shrinkwrap.json, package-lock.json · timeoutSeconds: 60 · 5 条证据说明
    • packageLifecycle.yarnPnpmInstallAlternative unavailable — Agent Bundle does not run automatic Yarn or pnpm installs; Claude skips those lockfiles at host install time, while authors must explicitly install such dependencies from a hook into persistent plugin data. · skippedLockfiles: yarn.lock, pnpm-lock.yaml · persistentDataToken: ${CLAUDE_PLUGIN_DATA} · 2 条证据说明
    • packageLifecycle.pluginCacheLifecycle unavailable — Agent Bundle emits compile-time artifacts; cache copying or linking, resolved-version directory naming, orphan marking and sweeping, symlink materialization, and host component path-escape rejection happen during Claude installation and runtime. · cacheRoot: ~/.claude/plugins/cache · orphanGraceDays: 14 · 6 条证据说明
    • packageLifecycle.pluginPathSubstitution degraded — Agent Bundle lowers and validates its canonical path tokens in structured Claude MCP, LSP, settings, generated-hook, and monitor fields, but authored Skill content and target-native hook documents remain opaque compile-time payloads and actual placeholder substitution is owned by Claude at runtime. · tokens: ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR} · fields.skillAndAgentContent: anywhere · fields.hookCommands: command, args · fields.monitorCommands: command · fields.mcpStdio: command, args, env · fields.mcpRemote: url, headers, headersHelper · fields.lsp: command, args, env, workspaceFolder · 4 条证据说明
    • packageLifecycle.pluginDataLifecycle unavailable — Agent Bundle can emit ${CLAUDE_PLUGIN_DATA} references but cannot observe the last installed scope, prompt for deletion, delete persistent data, or apply Claude's --keep-data uninstall option. · deleteOnLastScopeUninstall: true · cliDeleteDefault: true · keepDataFlag: --keep-data · 2 条证据说明

    experimentalThemes

    • experimentalThemes.defaultDirectory — themes
    • experimentalThemes.experimental supported
    • experimentalThemes.manifestField — experimental.themes
    • experimentalThemes.readOnly supported

    devtools

    • devtools.details supported
    • devtools.listJson supported
    • devtools.pluginDir supported
    • devtools.strictValidation supported
    • devtools.tag supported
    • devtools.validate supported

    lsp

    • lsp.config — .lsp.json
    • lsp.manifestField — lspServers
    • lsp.manifestFieldTypes — array, object, string
    • lsp.optionalFields — args, diagnostics, env, initializationOptions, maxRestarts, restartOnCrash, settings, shutdownTimeout, startupTimeout, transport, workspaceFolder
    • lsp.pathTokenFields — args, command, env, workspaceFolder
    • lsp.requiredFields — command, extensionToLanguage
    • lsp.transports — socket, stdio
    • lsp.vendorsServerBinary unavailable

    nativeDiagnostics

    • nativeDiagnostics unavailable — The pinned Claude plugin contract (2.1.260) documents no standalone diagnostics-provider component; diagnostics reach Claude Code only through the diagnostics option of an .lsp.json language server, which is the lsp kind. · 1 条证据说明

    nativeExtension

    • nativeExtension unavailable — The pinned Claude plugin contract (2.1.260) documents no editor or native extension component; Claude Code plugins are CLI-loaded component trees, and IDE integrations ship separately from the plugin manifest. · 1 条证据说明

    metadata

    • metadata.defaultEnabled.default supported
    • metadata.defaultEnabled.dependencyRequirementPrecedence supported
    • metadata.defaultEnabled.field supported
    • metadata.defaultEnabled.marketplaceEntryPrecedence supported
    • metadata.defaultEnabled.persistedEnabledPluginsPrecedence supported
    • metadata.displayName.fallback — name
    • metadata.displayName.field supported
    • metadata.freeform.field supported
    • metadata.freeform.hostReadsValues unavailable
    • metadata.freeform.nonObjectHandling — warning-and-ignore
    • metadata.freeform.strictValidation — failure
    • metadata.standardFields — $schema, author, description, homepage, keywords, license, repository, version

    monitors

    • monitors.commandTokens — ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR}, ${ENV_VAR}
    • monitors.config — monitors/monitors.json
    • monitors.defaultWhen — always
    • monitors.experimental supported
    • monitors.interactiveCliOnly supported
    • monitors.manifestField — experimental.monitors
    • monitors.monitorToolRequired supported
    • monitors.projectScopeSkillsDirectoryPlugins unavailable
    • monitors.userConfigSubstitution unavailable
    • monitors.unsandboxed supported

    manifest

    • manifest — .claude-plugin/plugin.json

    marketplace

    • marketplace — .claude-plugin/marketplace.json

    marketplaceManifest

    • marketplaceManifest.allowCrossMarketplaceDependenciesOn supported
    • marketplaceManifest.entryAuthenticationFields — headers, headersHelper
    • marketplaceManifest.entryMetadataFields — $schema, author, category, defaultEnabled, description, displayName, homepage, keywords, license, metadata, repository, strict, tags, version
    • marketplaceManifest.entryRelevanceSignals — cli, cwd, filesRead, hosts, manifestDeps
    • marketplaceManifest.generatedSourceForms — relative
    • marketplaceManifest.sourceMatrix.archiveIntegrity — sha256-64-hex
    • marketplaceManifest.sourceMatrix.authoredForms — relative, github, url, git-subdir, npm, archive, command
    • marketplaceManifest.sourceMatrix.generatedDefault — relative
    • marketplaceManifest.sourceMatrix.gitPinFields — ref, sha
    • marketplaceManifest.sourceMatrix.shaOverridesRef supported
    • marketplaceManifest.sourceMatrix.versionGates.archive — 2.1.224
    • marketplaceManifest.sourceMatrix.versionGates.command — 2.1.229
    • marketplaceManifest.sourceMatrix.versionGates.pluginRootBareName — 2.1.239
    • marketplaceManifest.renames supported
    • marketplaceManifest.topLevelFields — $schema, allowCrossMarketplaceDependenciesOn, description, metadata, name, owner, plugins, renames, version

    paths

    • paths.addsToDefault — skills
    • paths.fieldTypes — array, string
    • paths.ignoredDefaultFolderWarning supported
    • paths.marketplaceRootSkillsSubdirectoriesReplaceDefault supported
    • paths.relativePrefix — ./
    • paths.replacesDefault — agents, commands, experimental.monitors, experimental.themes, outputStyles, workflows
    • paths.skillsRootException — .
    • paths.skillsRootExceptionSince — 2.1.221

    outputStyles

    • outputStyles.allowedSuffixes — .md
    • outputStyles.directory — output-styles
    • outputStyles.frontmatterFields — description, force-for-plugin, keep-coding-instructions, name
    • outputStyles.manifestField — outputStyles
    • outputStyles.replacesDefault supported

    settings

    • settings.config — settings.json
    • settings.placeholderSubstitution unavailable
    • settings.precedesManifestSettings supported
    • settings.subagentStatusLineFields — command, type
    • settings.supportedKeys — agent, subagentStatusLine
    • settings.unknownKeysIgnored supported

    skillFeatures

    • skillFeatures.hostFrontmatter supported — 1 条证据说明
    • skillFeatures.markdownTokens supported — 1 条证据说明

    skills

    • skills supported

    userConfig

    • userConfig.envVarPrefix — CLAUDE_PLUGIN_OPTION_
    • userConfig.installConfigFlag supported
    • userConfig.optionalFields — default, max, min, multiple, required, sensitive
    • userConfig.projectSettingsIgnored supported
    • userConfig.requiredFields — type, title, description
    • userConfig.sensitiveStorage supported
    • userConfig.settingsSources — managed, --settings, user
    • userConfig.shellSubstitutionRejected — hookShellCommands, monitorCommands, mcpHeadersHelper
    • userConfig.substitutionToken — ${user_config.KEY}
    • userConfig.types — boolean, directory, file, number, string

    workflows

    • workflows.directory — workflows
    • workflows.fileContents — opaque
    • workflows.manifestField — workflows
    • workflows.replacesDefault supported

    web

    • web supported — browser host inside the composite artifact; <plugin> web runs from the installed root on any host

    codex 0.147.0

    apps

    • apps.registeredMcpMappings supported — 1 条证据说明

    components

    • components.lsp unavailable — The pinned Codex plugin contract publishes no LSP server surface; language-server configuration reaches Claude Code only. · 1 条证据说明
    • components.nativeDiagnostics unavailable — The pinned Codex plugin contract publishes no diagnostics-provider component; plugin-shipped diagnostics have no schema-backed authoring field, so the compiler emits none. · 1 条证据说明
    • components.nativeExtension unavailable — The pinned Codex plugin contract publishes no plugin-shipped editor or native extension component; the host-managed browser-extension part has no authoring field, so the compiler emits none. · 1 条证据说明

    overviewSurfaces

    • overviewSurfaces.mcpUi degraded — Agent Bundle compiles MCP Apps as ui:// resources with _meta passthrough served by the compiled MCP server, which is the open MCP Apps contract that ChatGPT renders; Codex CLI 0.147.0 renders no components, so the emitted UI is inert there and every tool remains usable without it. Rendering is a ChatGPT host surface, not a Codex plugin artifact. · 3 条证据说明
    • overviewSurfaces.browserExtensions unavailable — Browser extensions are host-managed plugin parts with no schema-backed authoring field in the pinned .codex-plugin/plugin.json contract; the compiler infers nothing and the closed manifest schema rejects any authored field until a package contract publishes one. · 2 条证据说明
    • overviewSurfaces.scheduledTaskTemplates unavailable — Scheduled task templates are host-managed plugin parts with no schema-backed authoring field in the pinned .codex-plugin/plugin.json contract; the compiler infers nothing and the closed manifest schema rejects any authored field until a package contract publishes one. · 2 条证据说明

    hookEnvironment

    • hookEnvironment.claudePluginData supported — 1 条证据说明
    • hookEnvironment.claudePluginRoot supported — 1 条证据说明
    • hookEnvironment.pluginData supported — 1 条证据说明
    • hookEnvironment.pluginRoot supported — 1 条证据说明

    interface

    • interface.assets supported — 1 条证据说明
    • interface.brandColor supported — 1 条证据说明
    • interface.categoryCapabilities supported — 1 条证据说明
    • interface.descriptions supported — 1 条证据说明
    • interface.identity supported — 1 条证据说明
    • interface.starterPrompts supported — 1 条证据说明
    • interface.urls supported — 1 条证据说明

    manifest

    • manifest — .codex-plugin/plugin.json

    marketplace

    • marketplace — .agents/plugins/marketplace.json

    manifestPackage

    • manifestPackage.manifestMetadata supported — fields: author.name, author.email, author.url, homepage, repository, license, keywords · 2 条证据说明
    • manifestPackage.manifestPaths degraded — The adapter emits canonical component locations and validates all documented forms, but it has no authored config surface for selecting custom component paths or inline component objects. · admitted.hooks: path, path-array, inline-object, inline-object-array · admitted.mcpServers: path, inline-object · admitted.skills: path · emitted.hooks: ./hooks/hooks.json · emitted.mcpServers: ./.mcp.json · emitted.skills: ./skills/ · 3 条证据说明
    • manifestPackage.optionalAssets unavailable — The Codex adapter copies selected assets but cannot author composerIcon, logo, logoDark, or screenshots references in the manifest. · assets: interface.composerIcon, interface.logo, interface.logoDark, interface.screenshots · 2 条证据说明
    • manifestPackage.submissionPolicy unavailable — Public submission requirements are portal-owned distribution policy with no compiler-authored or compiler-validation surface. · constraints: Apps Management write access, verified developer or business identity, listing and policy URLs, production MCP review materials, five positive and three negative test cases, country or region availability, release notes and policy attestations · 3 条证据说明

    mcpServerPolicy

    • mcpServerPolicy.approvalModes unavailable — Plugin MCP approval modes are host-owned user configuration under plugins.&lt;plugin&gt;.mcp_servers.&lt;server&gt;; the compiler emits plugin artifacts and does not write the user's config.toml. · 1 条证据说明
    • mcpServerPolicy.enabled unavailable — Plugin MCP enabled state is host-owned user configuration under plugins.&lt;plugin&gt;.mcp_servers.&lt;server&gt;; the compiler emits plugin artifacts and does not write the user's config.toml. · 1 条证据说明
    • mcpServerPolicy.tools unavailable — Plugin MCP tool selection is host-owned user configuration under plugins.&lt;plugin&gt;.mcp_servers.&lt;server&gt;; the compiler emits plugin artifacts and does not write the user's config.toml. · 1 条证据说明

    skillFeatures

    • skillFeatures.hostFrontmatter supported — 1 条证据说明
    • skillFeatures.markdownTokens unavailable — The pinned Codex skills contract (0.147.0) documents no Skill Markdown interpolation placeholders; a skill body token has no Codex equivalent and fails closed (AB3008). · 1 条证据说明

    skills

    • skills supported

    web

    • web supported — browser host inside the composite artifact; <plugin> web runs from the installed root on any host

    cursor 2026-08-28

    agents

    • agents.component unavailable — The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately defers Agent Bundle's authored plugin agents/ component; Cursor documents the component, but this compiler emits no agents/ directory or manifest agents pointer until a later stage admits it. · 2 条证据说明

    canvases

    • canvases unavailable — Cursor advertises plugin canvases without publishing a schema-backed authoring contract; no canvas component is inferred from marketplace examples, so this compiler emits none. · 1 条证据说明

    commandFrontmatter

    • commandFrontmatter unavailable — The pinned Cursor commands surface is frontmatter-free Markdown: the lowering emits the prompt body only, so authored command frontmatter fields do not reach Cursor. · fields: allowedTools, argumentHint, description, disableModelInvocation, model · 2 条证据说明

    commands

    • commands supported

    componentDiscovery

    • componentDiscovery supported — defaults.agents: agents/ (.md, .mdc, .markdown) · defaults.commands: commands/ (.md, .mdc, .markdown, .txt) · defaults.hooks: hooks/hooks.json · defaults.mcpServers: mcp.json · defaults.rootSkill: SKILL.md at the plugin root (only without skills/ and without a manifest skills field) · defaults.rules: rules/ (.md, .mdc, .markdown) · defaults.skills: skills/<name>/SKILL.md · emitted.commands: ./commands/ · emitted.hooks: ./.cursor-plugin/hooks.json · emitted.mcpServers: ./.cursor-plugin/mcp.json · emitted.rules: ./rules/ · emitted.skills: ./skills/ · replacement: manifest-path-replaces-default-scan · 2 条证据说明

    contract

    • contract — cursor-plugin

    distributionPolicy

    • distributionPolicy.autoRefresh unavailable — Agent Bundle emits marketplace documents but does not configure dashboard Auto Refresh, install the Cursor GitHub App, or trigger manual re-indexing. · 1 条证据说明
    • distributionPolicy.installModes unavailable — Installation modes are set per plugin by team admins in Dashboard -> Plugins; no plugin manifest or marketplace field declares them, so this compiler emits nothing for them. · modes: Default Off, Default On, Required · 1 条证据说明
    • distributionPolicy.localPluginImports unavailable — Agent Bundle's installer copies into ~/.cursor/plugins/local but cannot grant the admin-controlled Allow Local Plugin Imports setting a Teams or Enterprise user needs before Cursor discovers the copy. · 1 条证据说明
    • distributionPolicy.localSymlinkInstall unavailable — The generated installer and doctor guidance copy the built bundle instead of symlinking it: Cursor's docs now show a symlink, but the observed loader rejected symlinks resolving outside ~/.cursor/plugins/local, and a copy loads under both readings. · 3 条证据说明
    • distributionPolicy.marketplaceAccess unavailable — Marketplace scope and access are dashboard settings on the team's marketplace, not plugin-authored fields; this compiler emits nothing for them. · 1 条证据说明
    • distributionPolicy.marketplaceReview unavailable — Agent Bundle emits a checklist-conformant artifact (manifest, relative pointers, declared variables, copied logo) but does not host it in a Git repository, submit it, or complete Cursor's manual review. · 1 条证据说明
    • distributionPolicy.teamMarketplaces unavailable — Team marketplaces are created and populated in the Cursor dashboard from a Git repository; this compiler emits the repository-side .cursor-plugin/marketplace.json only. · 1 条证据说明

    formats

    • formats.agentPlugin unavailable — The cursor target emits the full Cursor Plugin format only; the portable Agent Plugin format is emitted by the portable target and is never mixed into this artifact. · manifest: plugin.json · 2 条证据说明
    • formats.cursorPlugin supported — manifest: .cursor-plugin/plugin.json · 1 条证据说明

    lsp

    • lsp unavailable — The pinned Cursor Plugin contract publishes no LSP server component; language intelligence is editor-owned and not a plugin component pointer, so language-server configuration reaches Claude Code only. · 1 条证据说明

    nativeDiagnostics

    • nativeDiagnostics unavailable — The pinned Cursor Plugin contract publishes no diagnostics-provider component, so the compiler emits none. · 1 条证据说明

    nativeExtension

    • nativeExtension unavailable — The pinned Cursor Plugin contract publishes no plugin-shipped editor extension component; editor extensions are outside the plugin manifest at this pin, so a plugin cannot vendor or register one. · 1 条证据说明

    ruleFrontmatter

    • ruleFrontmatter supported — fields: alwaysApply, description, globs · 1 条证据说明

    skillFeatures

    • skillFeatures.hostFrontmatter supported — 1 条证据说明
    • skillFeatures.markdownTokens unavailable — The pinned Cursor skills contract (2026-08-28) documents no Skill Markdown interpolation placeholders; a skill body token has no Cursor equivalent and fails closed (AB3008). · 1 条证据说明

    localInstall

    • localInstall.method — copy
    • localInstall.root — ~/.cursor/plugins/local/<name>

    manifest

    • manifest — .cursor-plugin/plugin.json

    manifestMetadata

    • manifestMetadata supported — authoredFields: author.name, author.email, homepage, repository, license, keywords, publisher, category, tags, minClientVersions · generatedFields: name, displayName, description, version, logo, commands, hooks, mcpServers, rules, skills, variables · schemaOnlyFields: displayName, publisher, category, tags, minClientVersions · 3 条证据说明

    marketplace

    • marketplace — .cursor-plugin/marketplace.json

    marketplaceManifest

    • marketplaceManifest supported — entryFields: name, source, description, version, author, homepage, repository, license, keywords, logo, category, tags, skills, rules, agents, commands, hooks, mcpServers, variables · generatedEntryFields: name, source, description · maxEntries: 500 · mergePrecedence: plugin-manifest-over-marketplace-entry · 3 条证据说明

    rootSkill

    • rootSkill unavailable — Agent Bundle always emits skills under skills/<name>/SKILL.md with an explicit manifest skills pointer, so the root SKILL.md single-skill fallback is never produced. · 1 条证据说明

    rules

    • rules supported

    schema

    • schema — cursor/plugins@070189284e702e8a4d2e3cc8913994b204c5337a:schemas/plugin.schema.json

    skills

    • skills supported

    variables

    • variables supported — acceptedKeywords: type, title, description, default, enum, const, properties, required, items, length and numeric constraints · secretValuesEmitted: false · 2 条证据说明

    web

    • web supported — browser host inside the composite artifact; <plugin> web runs from the installed root on any host

    portable 1.0.0

    cursorLocalInstall

    • cursorLocalInstall.placeholderExpansion supported — Cursor 3.18.25 expands no Agent Plugins placeholder, provides no PLUGIN_ROOT/PLUGIN_DATA, defaults an omitted cwd to the home directory and resolves ./ commands against the workspace (spec §7.2.1/§9); the emitted installer rewrites mcp.json in the ~/.cursor/plugins/local/<name> copy with absolute paths (PLUGIN_DATA = ~/.cursor/agent-bundle/plugin-data/<name>, created), keeps the shipped document in the receipt, and Doctor proves the expanded paths (AB7326). Never claimed as Cursor behaviour: the bundle itself still relies on the consuming client. · installer: install.mjs (emitted with the portable bundle) · provenance: derived · 2 条证据说明

    extensionDirectories

    • extensionDirectories unavailable — 2026-09-02: Agent Plugins 1.0.0 §8.2 reserves top-level reverse-domain directories for client-owned files; the compiler emits no client extension directory because no pinned client publishes a file-based namespace contract for this format (https://agent-plugins.org/specification).

    extensions

    • extensions supported — configKey: portable.extensions · 1 条证据说明

    lsp

    • lsp unavailable — The portable Agent Plugin contract (1.0.0) defines only skills and MCP components; it has no LSP server surface. · 1 条证据说明

    manifest

    • manifest — plugin.json

    manifestMetadata

    • manifestMetadata supported — configKey: portable · fields: author, homepage, keywords, license, repository · 1 条证据说明

    nativeDiagnostics

    • nativeDiagnostics unavailable — The portable Agent Plugin contract (1.0.0) defines only skills and MCP components; it has no native diagnostics surface. · 1 条证据说明

    nativeExtension

    • nativeExtension unavailable — The portable Agent Plugin contract (1.0.0) defines only skills and MCP components; it has no native extension surface, and its reverse-domain extensions metadata is not one. · 1 条证据说明

    skillFeatures

    • skillFeatures.hostFrontmatter unavailable — The Agent Skills specification pinned for the portable target defines only the portable frontmatter fields; host-specific extensions are not emitted in the portable SKILL.md. · 1 条证据说明
    • skillFeatures.markdownTokens unavailable — The Agent Skills specification pinned for the portable target documents no Skill Markdown interpolation placeholders; a skill body token has no portable equivalent and fails closed (AB3008). · 1 条证据说明

    skills

    • skills supported

    web

    • web supported — browser host inside the composite artifact; <plugin> web runs from the installed root on any host