Summary
Claude Code plugins can ship Language Server Protocol configs as .lsp.json at the plugin root, or lspServers in .claude-plugin/plugin.json (Claude Code 2.1.x). Agent-bundle's Claude adapter does not emit that surface, so a plugin that needs Effect tsgo (or any LSP) cannot be produced by the meta-framework.
Evidence (current main)
packages/agent-bundle/src/adapters/capabilities/claude-2.1.250.json plugin keys are manifest, marketplace, skills only. No LSP.
packages/agent-bundle/src/adapters/schemas/claude/plugin.schema.json properties are author, description, hooks, name, version. No lspServers.
claudeArtifactPaths / artifact validation list hooks/hooks.json, .claude-plugin/marketplace.json, .mcp.json, .claude-plugin/plugin.json. No .lsp.json.
- Design note in
docs/plans/2026-08-13-agent-bundle-design.md: "commands, agents, rules, and LSP servers are explicitly outside the v1 portable format."
Ask
Add Claude plugin LSP to the host adapter:
- Recognize
.lsp.json (and/or lspServers on the plugin manifest).
- Extend the pinned Claude plugin schema so
lspServers is valid.
- Emit
.lsp.json in Claude and unified plugin bundles when the source declares an LSP server.
- Document that the language server binary is not vendored; the bundle only wires
command / extensionToLanguage / diagnostics.
Why now
ScriptedAlchemy/effect-ts needs Effect tsgo (effect-tsgo lsp, fallback typescript-language-server) for Claude Code. That plugin currently wires .lsp.json by hand because agent-bundle cannot emit it. Codex is handled separately via PostToolUse hooks (additionalContext), which agent-bundle already supports.
No change requested to cargo-conductor.
Summary
Claude Code plugins can ship Language Server Protocol configs as
.lsp.jsonat the plugin root, orlspServersin.claude-plugin/plugin.json(Claude Code 2.1.x). Agent-bundle's Claude adapter does not emit that surface, so a plugin that needs Effect tsgo (or any LSP) cannot be produced by the meta-framework.Evidence (current main)
packages/agent-bundle/src/adapters/capabilities/claude-2.1.250.jsonpluginkeys aremanifest,marketplace,skillsonly. No LSP.packages/agent-bundle/src/adapters/schemas/claude/plugin.schema.jsonproperties areauthor,description,hooks,name,version. NolspServers.claudeArtifactPaths/ artifact validation listhooks/hooks.json,.claude-plugin/marketplace.json,.mcp.json,.claude-plugin/plugin.json. No.lsp.json.docs/plans/2026-08-13-agent-bundle-design.md: "commands, agents, rules, and LSP servers are explicitly outside the v1 portable format."Ask
Add Claude plugin LSP to the host adapter:
.lsp.json(and/orlspServerson the plugin manifest).lspServersis valid..lsp.jsonin Claude and unifiedpluginbundles when the source declares an LSP server.command/extensionToLanguage/diagnostics.Why now
ScriptedAlchemy/effect-tsneeds Effecttsgo(effect-tsgo lsp, fallbacktypescript-language-server) for Claude Code. That plugin currently wires.lsp.jsonby hand because agent-bundle cannot emit it. Codex is handled separately via PostToolUse hooks (additionalContext), which agent-bundle already supports.No change requested to cargo-conductor.