abhigyanpatwari/GitNexus · error · SandboxError
CE comparator requires the compound-engineering plugin manif
Error message
CE comparator requires the compound-engineering plugin manifest
What it means
Identity guard after a successful manifest parse. The parsed plugin.json must be a JSON object whose 'name' field is exactly 'compound-engineering'. Any other value (or a non-dict manifest) means the supplied tree is not the CE comparator plugin the harness expects, so mounting it would benchmark the wrong thing.
Source
Thrown at eval/workflow_bench/runtime_mounts.py:455
payload,
executable=executable,
)
entries.append(
{
"path": relative_text,
"sha256": hashlib.sha256(payload).hexdigest(),
"size": len(payload),
"executable": executable,
}
)
manifest_path = root / ".claude-plugin" / "plugin.json"
try:
plugin_manifest = json.loads(manifest_path.read_text())
except (OSError, UnicodeError, json.JSONDecodeError) as exc:
raise SandboxError(f"Compound Engineering plugin manifest is invalid: {exc}") from exc
if not isinstance(plugin_manifest, dict) or plugin_manifest.get("name") != "compound-engineering":
raise SandboxError("CE comparator requires the compound-engineering plugin manifest")
if plugin_manifest.get("version") != config.version:
raise SandboxError(
"Compound Engineering plugin version mismatch: "
f"expected {config.version}, got {plugin_manifest.get('version')!r}"
)
for skill in ("ce-plan", "ce-work", "ce-code-review"):
if not (root / "skills" / skill / "SKILL.md").is_file():
raise SandboxError(f"Compound Engineering plugin is missing required skill: {skill}")
canonical_manifest = json.dumps(
{
"schema_version": CE_PLUGIN_MANIFEST_SCHEMA_VERSION,
"files": entries,
},
sort_keys=True,
separators=(",", ":"),
).encode()
snapshot = CePluginSnapshot(View on GitHub (pinned to d540b00184)
Solutions
- Confirm the manifest name: 'python -c "import json;print(json.load(open('<plugin_dir>/.claude-plugin/plugin.json'))['name'])"' should print compound-engineering.
- Point --ce-plugin-dir at the correct plugin checkout (the one whose manifest name is compound-engineering).
- If you forked the plugin intentionally, restore the canonical name field; the harness only benchmarks the named plugin.
- Run 'git -C <plugin_dir> status' to confirm you are on the branch/release you intended.
Example fix
// before: .claude-plugin/plugin.json
{ "name": "ce-plugin-fork", "version": "1.0.0" }
// after
{ "name": "compound-engineering", "version": "1.0.0" } Defensive patterns
Strategy: validation
Validate before calling
import json
from pathlib import Path
plugin = Path("ce-plugin")
data = json.loads((plugin / ".claude-plugin" / "plugin.json").read_text())
if not isinstance(data, dict) or data.get("name") != "compound-engineering":
raise SystemExit(f"wrong plugin identity: {data.get('name')!r}") Type guard
import json
from pathlib import Path
def is_compound_engineering_plugin(plugin_dir: Path) -> bool:
try:
data = json.loads((plugin_dir / ".claude-plugin" / "plugin.json").read_text())
except (OSError, ValueError):
return False
return isinstance(data, dict) and data.get("name") == "compound-engineering" Try / catch
try:
snapshot = _build_ce_plugin_snapshot(config, destination_parent)
except SandboxError as exc:
if "requires the compound-engineering plugin manifest" in str(exc):
log.error("wrong plugin passed to --ce-plugin-dir")
raise Prevention
- Point --ce-plugin-dir only at a compound-engineering plugin checkout.
- Do not rename the manifest name field when forking.
- CI gate: assert manifest name equals compound-engineering.
When it happens
Trigger: Passing --ce-plugin-dir at a checkout of a different plugin (e.g. the gitnexus plugin, or a renamed fork), or a manifest whose name field was edited. The check fires only after error 548 confirms the file parses.
Common situations: Operator pointed at the wrong directory (e.g. the gitnexus-claude-plugin instead of compound-engineering); a fork renamed the plugin; a template was copied but the name not updated.
Related errors
- Compound Engineering plugin manifest is invalid: {exc}
- Compound Engineering plugin version mismatch: expected {conf
- Compound Engineering plugin is missing required skill: {skil
- Compound Engineering plugin file must be regular and non-sym
- Compound Engineering plugin file exceeds the per-file limit:
AI-assisted analysis of abhigyanpatwari/GitNexus@d540b00184 (2026-08-12).
Data as JSON: /api/errors/697a61838f024f8a.
Report an issue: GitHub.