Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions src/agentseam/data/vendors/cursor.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
"loads_claude_plugins": {
"basis": "vendor-docs",
"date": "2026-10-17",
"test": "tests/test_claude_plugins.py::test_each_entry_records_the_discovery_row"
"test": "tests/test_claude_plugins.py::test_only_the_witnessed_agents_carry_a_witness"
},
"tools": {
"basis": "live-run-partial",
Expand Down Expand Up @@ -117,12 +117,13 @@
},
"loads_claude_plugins": {
"deny_reply": "unknown",
"hooks": "unknown",
"how": "n/a for the documented formats (.cursor-plugin/plugin.json and a root plugin.json); unknown via the Third-Party Plugins toggle",
"loads": "unknown",
"notes": "recorded no for the documented plugin formats and unknown via the Third-Party Plugins toggle, so unknown overall; Claude Code settings hooks (not plugins) run by default, event and tool names mapped (Bash to Shell), HSO and exit 2 honoured",
"payload": "unknown",
"source": "https://cursor.com/docs/reference/plugins, https://cursor.com/docs/reference/third-party-hooks (org-plan discovery/2026-10-17-claude-plugin-compat.md)"
"hooks": "yes",
"how": "n/a for the documented formats (.cursor-plugin/plugin.json and a root plugin.json); via the Third-Party Plugins toggle (Include Third-Party Plugins, Skills, and Other Configs), Cursor imports a Claude Code plugin installed and enabled in Claude Code (claude plugin marketplace add <dir>, claude plugin install, claude plugin enable); disabled Claude plugins are not imported",
"loads": "yes",
"notes": "recorded no for the documented plugin formats and unknown via the Third-Party Plugins toggle; the toggle route settled as loads and hooks called by the 2026-10-18 witness, deny unknown (see witnessed); Claude Code settings hooks (not plugins) run by default, event and tool names mapped (Bash to Shell), HSO and exit 2 honoured",
"payload": "Cursor's own (hook_event_name preToolUse/stop/sessionStart; tool_name Shell, Write, Read, Grep), as witnessed",
"source": "https://cursor.com/docs/reference/plugins, https://cursor.com/docs/reference/third-party-hooks (org-plan discovery/2026-10-17-claude-plugin-compat.md)",
"witnessed": "hooks called, chock never ran, no verdict: Cursor imported the enabled Claude Code plugin (Customize -> Plugins listed chock-witness; Customize -> Hooks mapped its 8 hooks as preToolUse x5, stop x2, sessionStart x1) and its Execution Log shows every hook called with Cursor's own payload, but every hook's output is (empty) and chock logged no line from the session; the git commit --no-verify ran and the unpinned workflow write landed, so no refusal, and whether Cursor honours a Claude deny from an imported plugin is unsettled; cause unmeasured (the single-quoted hook command in Cursor's Windows hook shell, or CLAUDE_PLUGIN_ROOT unset); Cursor 3.25.9 (Execution Log) on Windows 11, 2026-10-18; plugin installed into Claude Code 2.1.302 by claude plugin marketplace add <dir>, claude plugin install chock-witness@chock-local and claude plugin enable chock-witness@chock-local (org-plan witness/results/witness-cursor-claude-plugin-2026-10-18.md at 0938b50)"
},
"needs_trust": false,
"tools": {
Expand Down
2 changes: 1 addition & 1 deletion src/agentseam/data/vendors/vscode_copilot.json
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@
"notes": "VS Code: the Local harness ignores matchers, so every nested command for the event runs; HSO deny and exit 2 block. Copilot CLI (chock's copilot client builds for this entry): loads yes via copilot plugin install <mkt entry | OWNER/REPO | git URL | ./path> or --plugin-dir, legacy manifest includes .claude-plugin/plugin.json, copilot plugin marketplace add anthropics/claude-code; hooks yes (hooks.json or hooks/hooks.json); payload Claude Code for PascalCase events (Claude tool names, e.g. Bash), Copilot camelCase otherwise; deny partial: exit 2 denies, flat permissionDecision documented, nested hookSpecificOutput unknown from the docs (closed source), settled by the Copilot CLI 1.0.98 witness for a shell command and a file write (see witnessed)",
"payload": "Claude-shaped snake_case, but VS Code's own Local tool names",
"source": "microsoft/vscode-docs@ef0ca127 docs/agents/reference/agent-plugin-reference.md; Copilot CLI: github/docs@dae83f7d content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md (org-plan discovery/2026-10-17-claude-plugin-compat.md)",
"witnessed": "VS Code Copilot agent on Windows 11, 2026-10-18, VS Code version unmeasured; plugin loaded by chat.plugins.enabled and chat.pluginLocations -> <dir>: in the Chat panel with the folder open, guard (shell command) and gate (file write, tool Edit) refused by preToolUse deny; in an Agents-window chat with no workspace the guard was refused (gate not tried); an Agents-window session bound to a repo (Copilot SDK) ran no hooks and refused nothing (org-plan witness/results/witness-vscode-claude-plugin-2026-10-18.md at 34272c0). Copilot CLI: guard (shell command) and gate (file write) refused by preToolUse deny; GitHub Copilot CLI 1.0.98 on Windows 11, 2026-10-17; plugin installed by copilot plugin install <dir> (a local path, which Copilot warns is deprecated) (org-plan witness/results/witness-copilot-cli-claude-plugin-2026-10-17.md at 6516f57)"
"witnessed": "VS Code Copilot agent on Windows 11, 2026-10-18, VS Code version unmeasured; plugin loaded by chat.plugins.enabled and chat.pluginLocations -> <dir>: in the Chat panel with the folder open, guard (shell command) and gate (file write, tool Edit) refused by preToolUse deny; in an Agents-window chat with no workspace the guard was refused (gate not tried); an Agents-window session bound to a repo (Copilot SDK) ran no hooks and refused nothing (org-plan witness/results/witness-vscode-claude-plugin-2026-10-18.md at 34272c0). Copilot CLI: guard (shell command) and gate (file write) refused by preToolUse deny; GitHub Copilot CLI 1.0.98 on Windows 11, 2026-10-17; plugin installed by copilot plugin install <dir> (a local path, which Copilot warns is deprecated) (org-plan witness/results/witness-copilot-cli-claude-plugin-2026-10-17.md at 6516f57). Copilot CLI marketplace route: guard (shell command) and gate (file write, tool Edit) refused by preToolUse deny; GitHub Copilot CLI 1.0.98 on Windows 11, 2026-10-18; plugin installed by copilot plugin marketplace add <dir> and copilot plugin install chock-witness@chock-local, loaded live (nothing copied), no deprecation warning; the add first failed with Marketplace \"chock-local\" already registered (chock's earlier Copilot build held the name) until copilot plugin marketplace remove chock-local; copilot plugin uninstall only disables a live plugin and leaves it on disk (org-plan witness/results/witness-copilot-cli-claude-plugin-marketplace-2026-10-18.md at 423231e)"
},
"needs_trust": false,
"tools": {
Expand Down
23 changes: 22 additions & 1 deletion tests/test_claude_plugins.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,14 @@
"deprecated",
"witness/results/witness-copilot-cli-claude-plugin-2026-10-17.md",
"6516f57",
"Copilot CLI marketplace route: guard",
"copilot plugin marketplace add <dir>",
"copilot plugin install chock-witness@chock-local",
"no deprecation warning",
'Marketplace "chock-local" already registered',
"uninstall only disables",
"witness/results/witness-copilot-cli-claude-plugin-marketplace-2026-10-18.md",
"423231e",
),
"codex_cli": (
"guard",
Expand All @@ -56,6 +64,19 @@
"witness/results/witness-codex-claude-plugin-2026-10-17.md",
"eb303f4",
),
"cursor": (
"hooks called, chock never ran, no verdict",
"every hook's output is (empty)",
"no refusal",
"unsettled",
"cause unmeasured",
"Cursor 3.25.9",
"Windows 11",
"2026-10-18",
"claude plugin enable chock-witness@chock-local",
"witness/results/witness-cursor-claude-plugin-2026-10-18.md",
"0938b50",
),
"devin": (
"turn-end gate only",
"the matcherless pre_tool hook and Stop ran",
Expand All @@ -77,7 +98,7 @@
"claude_code": ("yes", "yes", "yes"),
"cline": ("no", "n/a", "n/a"),
"codex_cli": ("yes", "yes", "yes"),
"cursor": ("unknown", "unknown", "unknown"),
"cursor": ("yes", "yes", "unknown"), # unknown in discovery; loads and hooks called settled by its witness
"devin": ("yes", "partial", "partial"), # hooks: unknown in discovery, settled partial by its witness
"factory_droid": ("yes", "yes", "yes"),
"gemini_cli": ("no", "n/a", "n/a"),
Expand Down
15 changes: 8 additions & 7 deletions tools/recount/claude_plugins.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,13 @@
"basis": "vendor-docs",
"entry": {
"deny_reply": "unknown",
"hooks": "unknown",
"how": "n/a for the documented formats (.cursor-plugin/plugin.json and a root plugin.json); unknown via the Third-Party Plugins toggle",
"loads": "unknown",
"notes": "recorded no for the documented plugin formats and unknown via the Third-Party Plugins toggle, so unknown overall; Claude Code settings hooks (not plugins) run by default, event and tool names mapped (Bash to Shell), HSO and exit 2 honoured",
"payload": "unknown",
"source": "https://cursor.com/docs/reference/plugins, https://cursor.com/docs/reference/third-party-hooks (org-plan discovery/2026-10-17-claude-plugin-compat.md)"
"hooks": "yes",
"how": "n/a for the documented formats (.cursor-plugin/plugin.json and a root plugin.json); via the Third-Party Plugins toggle (Include Third-Party Plugins, Skills, and Other Configs), Cursor imports a Claude Code plugin installed and enabled in Claude Code (claude plugin marketplace add <dir>, claude plugin install, claude plugin enable); disabled Claude plugins are not imported",
"loads": "yes",
"notes": "recorded no for the documented plugin formats and unknown via the Third-Party Plugins toggle; the toggle route settled as loads and hooks called by the 2026-10-18 witness, deny unknown (see witnessed); Claude Code settings hooks (not plugins) run by default, event and tool names mapped (Bash to Shell), HSO and exit 2 honoured",
"payload": "Cursor's own (hook_event_name preToolUse/stop/sessionStart; tool_name Shell, Write, Read, Grep), as witnessed",
"source": "https://cursor.com/docs/reference/plugins, https://cursor.com/docs/reference/third-party-hooks (org-plan discovery/2026-10-17-claude-plugin-compat.md)",
"witnessed": "hooks called, chock never ran, no verdict: Cursor imported the enabled Claude Code plugin (Customize -> Plugins listed chock-witness; Customize -> Hooks mapped its 8 hooks as preToolUse x5, stop x2, sessionStart x1) and its Execution Log shows every hook called with Cursor's own payload, but every hook's output is (empty) and chock logged no line from the session; the git commit --no-verify ran and the unpinned workflow write landed, so no refusal, and whether Cursor honours a Claude deny from an imported plugin is unsettled; cause unmeasured (the single-quoted hook command in Cursor's Windows hook shell, or CLAUDE_PLUGIN_ROOT unset); Cursor 3.25.9 (Execution Log) on Windows 11, 2026-10-18; plugin installed into Claude Code 2.1.302 by claude plugin marketplace add <dir>, claude plugin install chock-witness@chock-local and claude plugin enable chock-witness@chock-local (org-plan witness/results/witness-cursor-claude-plugin-2026-10-18.md at 0938b50)"
}
},
"devin": {
Expand Down Expand Up @@ -191,7 +192,7 @@
"notes": "VS Code: the Local harness ignores matchers, so every nested command for the event runs; HSO deny and exit 2 block. Copilot CLI (chock's copilot client builds for this entry): loads yes via copilot plugin install <mkt entry | OWNER/REPO | git URL | ./path> or --plugin-dir, legacy manifest includes .claude-plugin/plugin.json, copilot plugin marketplace add anthropics/claude-code; hooks yes (hooks.json or hooks/hooks.json); payload Claude Code for PascalCase events (Claude tool names, e.g. Bash), Copilot camelCase otherwise; deny partial: exit 2 denies, flat permissionDecision documented, nested hookSpecificOutput unknown from the docs (closed source), settled by the Copilot CLI 1.0.98 witness for a shell command and a file write (see witnessed)",
"payload": "Claude-shaped snake_case, but VS Code's own Local tool names",
"source": "microsoft/vscode-docs@ef0ca127 docs/agents/reference/agent-plugin-reference.md; Copilot CLI: github/docs@dae83f7d content/copilot/reference/copilot-cli-reference/cli-plugin-reference.md (org-plan discovery/2026-10-17-claude-plugin-compat.md)",
"witnessed": "VS Code Copilot agent on Windows 11, 2026-10-18, VS Code version unmeasured; plugin loaded by chat.plugins.enabled and chat.pluginLocations -> <dir>: in the Chat panel with the folder open, guard (shell command) and gate (file write, tool Edit) refused by preToolUse deny; in an Agents-window chat with no workspace the guard was refused (gate not tried); an Agents-window session bound to a repo (Copilot SDK) ran no hooks and refused nothing (org-plan witness/results/witness-vscode-claude-plugin-2026-10-18.md at 34272c0). Copilot CLI: guard (shell command) and gate (file write) refused by preToolUse deny; GitHub Copilot CLI 1.0.98 on Windows 11, 2026-10-17; plugin installed by copilot plugin install <dir> (a local path, which Copilot warns is deprecated) (org-plan witness/results/witness-copilot-cli-claude-plugin-2026-10-17.md at 6516f57)"
"witnessed": "VS Code Copilot agent on Windows 11, 2026-10-18, VS Code version unmeasured; plugin loaded by chat.plugins.enabled and chat.pluginLocations -> <dir>: in the Chat panel with the folder open, guard (shell command) and gate (file write, tool Edit) refused by preToolUse deny; in an Agents-window chat with no workspace the guard was refused (gate not tried); an Agents-window session bound to a repo (Copilot SDK) ran no hooks and refused nothing (org-plan witness/results/witness-vscode-claude-plugin-2026-10-18.md at 34272c0). Copilot CLI: guard (shell command) and gate (file write) refused by preToolUse deny; GitHub Copilot CLI 1.0.98 on Windows 11, 2026-10-17; plugin installed by copilot plugin install <dir> (a local path, which Copilot warns is deprecated) (org-plan witness/results/witness-copilot-cli-claude-plugin-2026-10-17.md at 6516f57). Copilot CLI marketplace route: guard (shell command) and gate (file write, tool Edit) refused by preToolUse deny; GitHub Copilot CLI 1.0.98 on Windows 11, 2026-10-18; plugin installed by copilot plugin marketplace add <dir> and copilot plugin install chock-witness@chock-local, loaded live (nothing copied), no deprecation warning; the add first failed with Marketplace \"chock-local\" already registered (chock's earlier Copilot build held the name) until copilot plugin marketplace remove chock-local; copilot plugin uninstall only disables a live plugin and leaves it on disk (org-plan witness/results/witness-copilot-cli-claude-plugin-marketplace-2026-10-18.md at 423231e)"
}
},
"windsurf": {
Expand Down
5 changes: 3 additions & 2 deletions tools/recount/sourced.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,9 @@
#: Whether each agent loads a Claude Code plugin, transcribed from org-plan
#: discovery/2026-10-17-claude-plugin-compat.md (CC-1, read 2026-10-17); unknown and partial
#: rows stay so. Grok (org-plan 25b9d9d), vscode_copilot's Copilot CLI (org-plan 6516f57) and VS Code
#: (34272c0), codex_cli (eb303f4) and devin (df71db6, which settles its hooks as partial) add the
#: owner's witness runs, from witness/results.
#: (34272c0) and marketplace route (423231e), codex_cli (eb303f4), devin (df71db6, which settles its
#: hooks as partial) and cursor (0938b50, loads and hooks called, deny unknown) add the owner's witness
#: runs, from witness/results.
with open(os.path.join(os.path.dirname(__file__), "claude_plugins.json"), encoding="utf-8") as _fh:
LOADS_CLAUDE_PLUGINS = json.load(_fh)
_CLAUDE_PLUGINS_READ = "2026-10-17"
Expand Down
Loading