II.
Page JSON
Structured · livepage:docs-harness-features-backlog-gaps-ecosystem-gap-eco-001
GAP-ECO-001: CC Plugin Compatibility Layer json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "page:docs-harness-features-backlog-gaps-ecosystem-gap-eco-001",
"_kind": "Page",
"_file": "wiki/docs/harness-features-backlog/gaps/ecosystem/gap-eco-001.md",
"_cluster": "wiki",
"attributes": {
"nodeKind": "Page",
"sourcePath": "docs/harness-features-backlog/gaps/ecosystem/GAP-ECO-001.md",
"sourceKind": "repo-docs",
"title": "GAP-ECO-001: CC Plugin Compatibility Layer",
"displayName": "GAP-ECO-001: CC Plugin Compatibility Layer",
"slug": "docs/harness-features-backlog/gaps/ecosystem/gap-eco-001",
"articlePath": "wiki/docs/harness-features-backlog/gaps/ecosystem/GAP-ECO-001.md",
"article": "\n# GAP-ECO-001: CC Plugin Compatibility Layer\n\n| Field | Value |\n|-------|-------|\n| Category | ecosystem |\n| Priority | Critical |\n| Effort | XL |\n| Status | Missing |\n\n## Description\nRun Claude Code plugins natively within babysitter's orchestration environment.\nCC has a 43-file plugin system (`src/utils/plugins/`) with its own manifest format,\nmarketplace protocol, and component loading. CC plugins provide commands, agents,\nskills, hooks, output-styles, MCP servers, and LSP servers. Babysitter needs to\nload and execute CC plugins so that the orchestration platform benefits from the\nCC plugin ecosystem.\n\n**This is NOT about babysitter's existing plugin system** (`packages/sdk/src/plugins/`).\nBabysitter already has harness-integration plugins (`plugins/babysitter/`,\n`plugins/babysitter-codex/`, etc.) and a marketplace (`plugins/a5c/marketplace/`).\nThis gap is about a NEW compatibility layer that bridges CC's plugin format into\nbabysitter's runtime.\n\n## CC Plugin Architecture (what we need to support)\n\nCC's `LoadedPlugin` type provides:\n```typescript\n{\n name: string\n manifest: PluginManifest // plugin.json with components\n path: string\n source: string // marketplace identifier\n commandsPath?: string // directory of /command files\n commandsPaths?: string[] // additional command paths\n agentsPath?: string // agent definitions\n agentsPaths?: string[]\n skillsPath?: string // skill definitions \n skillsPaths?: string[]\n outputStylesPath?: string // custom output renderers\n hooksConfig?: HooksSettings // hook definitions\n mcpServers?: Record<string, McpServerConfig> // MCP servers\n lspServers?: Record<string, LspServerConfig> // LSP servers\n}\n```\n\nCC plugin loading (`src/utils/plugins/`):\n- `pluginLoader.ts` -- loads plugin from directory\n- `pluginInstallationHelpers.ts` -- install/uninstall\n- `loadPluginCommands.ts` -- load command components\n- `loadPluginAgents.ts` -- load agent definitions\n- `loadPluginHooks.ts` -- load hook configurations\n- `loadPluginOutputStyles.ts` -- load output style renderers\n- `mcpPluginIntegration.ts` -- MCP server integration\n- `lspPluginIntegration.ts` -- LSP server integration\n- `pluginVersioning.ts` -- version management\n- `pluginPolicy.ts` -- policy/trust enforcement\n- `pluginBlocklist.ts` -- block malicious plugins\n- `pluginAutoupdate.ts` -- auto-update from marketplaces\n- `validatePlugin.ts` -- manifest validation\n- `schemas.ts` -- PluginManifest Zod schema\n\n## Current State\nBabysitter has its OWN plugin system (`packages/sdk/src/plugins/`) with:\n- `PluginRegistryEntry`, `MarketplaceManifest` types\n- `readPluginPackage`, `listMarketplacePlugins` functions\n- Migration support (`parseMigrationFilename`, `resolveMigrationChain`)\n- CLI: `plugin:install`, `plugin:list-installed`, `plugin:add-marketplace`\n\nBut this system manages babysitter-specific harness integrations (how babysitter\ntalks to each harness CLI). It does NOT load or execute CC plugin components\n(commands, agents, skills, hooks, MCP/LSP servers).\n\n## Target State\nA CC plugin compatibility adapter that:\n1. Reads CC `plugin.json` manifests\n2. Loads CC plugin components into babysitter's runtime\n3. Maps CC hooks to babysitter hook types where possible\n4. Exposes CC plugin skills as available task kinds\n5. Connects CC plugin MCP servers to babysitter's MCP infrastructure\n6. Validates plugins using CC's schema and trust rules\n\nThis enables babysitter to use the CC plugin ecosystem (including marketplace\nplugins like `context7`, `playwright`, `plugin-dev`) without requiring\nseparate plugin implementations.\n\n## Dependencies\n- [GAP-ECO-002](GAP-ECO-002.md) -- CC marketplace protocol support\n- [GAP-ECO-003](GAP-ECO-003.md) -- plugin trust and provenance\n\n## Key Files\n| Component | Path |\n|-----------|------|\n| Babysitter plugins module | `packages/sdk/src/plugins/` |\n| CC plugin loader | `src/utils/plugins/pluginLoader.ts` |\n| CC plugin schema | `src/utils/plugins/schemas.ts` |\n| CC plugin types | `src/types/plugin.ts` |\n| CC plugin commands UI | `src/commands/plugin/` (17 files) |\n\n## Recommendation\nPhase 2-3. Start by implementing PluginManifest schema parsing compatible with\nCC's format. Then implement component loaders one at a time: skills first (most\nuseful for orchestration), then hooks, then MCP servers. Commands and output-styles\nare lower priority since they're host-harness-specific.\n",
"documents": []
},
"outgoingEdges": [],
"incomingEdges": [
{
"from": "page:docs-harness-features-backlog",
"to": "page:docs-harness-features-backlog-gaps-ecosystem-gap-eco-001",
"kind": "contains_page"
}
]
}