Skip to content

Refresh Cursor plugin contract coverage against current public docs #189

Description

@ScriptedAlchemy

Summary

The Cursor adapter is pinned to the full Cursor Plugin contract from PR #131, but Cursor's public plugin reference now documents additional surfaces and exposes at least one incorrect capability claim in the current table. Track those deltas as one host umbrella under #100/#107.

Observed 2026-09-01:

Confirmed mismatch

adapters/capabilities/cursor-2026-08-28.json and cursor.ts mark marketplace support unavailable, while the public reference defines .cursor-plugin/marketplace.json for multi-plugin repositories, its fields, component overrides, and merge/resolution behavior.

workspaceOpen is marked supported as a canonical route, but its native contract is distinct: it fires outside an agent session, omits conversation fields, and returns pluginPaths. The current shared Cursor wrapper/result vocabulary does not model that output. Do not retain a supported claim without a fixture proving the actual envelope.

The running SubagentStart/SubagentStop correction lane remains authoritative for those two events.

Checklist

Every item must become implemented, credited to an active lane, or explicitly unavailable/deferred in the capability table with a reason.

Plugin formats and components

  • Record both formats explicitly: portable Agent Plugin (plugin.json, skills/MCP) and full Cursor Plugin (.cursor-plugin/plugin.json)
  • Full Cursor Plugin metadata, minClientVersions, logo/assets, category/tags/publisher where schema-supported
  • Rules, agents, and commands discovery/path lowering (already in Compile capability-aware host component bundles #100 stage 3; Cursor rules first)
  • Complete variables schema and secret-value separation; every ${VAR} used by MCP config declared
  • Default discovery versus manifest replacement for skills/rules/agents/commands/hooks/MCP/root SKILL.md
  • .cursor-plugin/marketplace.json schema, max entries, entry component overrides, manifest merge precedence, and resolution
  • Marketplace install modes (Default Off, Default On, Required), scope/access, local-import admin control, Git auto-refresh, and manual review/publish flow
  • Local physical install under ~/.cursor/plugins/local, while preserving PR fix(cursor): conform local plugin artifacts to real host #131's realpath/symlink safety finding

Hooks

  • Pin all documented Agent events: sessionStart, sessionEnd, preToolUse, postToolUse, postToolUseFailure, subagentStart, subagentStop, beforeShellExecution, afterShellExecution, beforeMCPExecution, afterMCPExecution, beforeReadFile, afterFileEdit, beforeSubmitPrompt, preCompact, stop, afterAgentResponse, afterAgentThought
  • Pin Tab events beforeTabFileRead/afterTabFileEdit and app event workspaceOpen
  • Model cloud-agent event/handler availability separately from desktop/CLI availability
  • Support or explicitly reject prompt hooks, failClosed, loop_limit, timeout, and matcher semantics by event
  • Correct workspaceOpen input/output (pluginPaths) and prove it independently of agent-session wrappers
  • Treat shell/MCP/read/edit specialty hooks as selector-rich native variants of canonical tool routes where semantics align; otherwise record why a dedicated route family is required
  • Keep response/thought and Tab events deferred unless a canonical consumer need is accepted; capability rows must still name them

Acceptance

  • The marketplace capability claim matches the public reference.
  • Every documented Cursor component and hook event has a supported/degraded/unavailable/prohibited state with dated evidence.
  • workspaceOpen, subagent lifecycle, and tool lifecycle each have native fixture replay using their actual distinct payloads and output channels.
  • No Agent Plugin and Cursor Plugin paths/tokens are mixed.

Related: #107 #100 #97 #101 #108 #131 #133 #181

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingenhancementNew feature or requesthost-integrationAgent host capabilities, projection, discovery, and lifecyclemeta-frameworkAgent Bundle compiler-coupled meta-framework

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions