mirror of
https://github.com/EveryInc/compound-engineering-plugin.git
synced 2026-06-19 15:41:46 +02:00
4826337c2d
Addresses two PR review findings empirically confirmed in a Claude Code
session: `printenv CLAUDE_SKILL_DIR` from the Bash tool returns
`NOT_SET`, proving CLAUDE_SKILL_DIR (and CLAUDE_PLUGIN_ROOT) are
SKILL.md content substitutions only, not environment variables exported
to Bash subprocesses.
ce-update probes (P1, Codex thread):
Previously, currently-loaded-version.sh and marketplace-name.sh read
`${CLAUDE_SKILL_DIR:-}` directly from the environment. Since the env
var is never set in subprocesses, both scripts always emitted
__CE_UPDATE_NOT_MARKETPLACE__ — meaning ce-update would never actually
perform version comparison even on real marketplace installs.
Fix: derive skill_dir from BASH_SOURCE[0] (the script's own location).
Adds regression tests that copy each script into a fake
marketplace-shaped path and run it with CLAUDE_SKILL_DIR explicitly
cleared from the env, asserting the correct version/marketplace
segments are extracted.
ce-setup platform check (P2, Codex thread):
The check at line 47 keyed off "non-empty AND not literal
${CLAUDE_PLUGIN_ROOT}", which incorrectly accepted unresolved command
strings like `echo "${CLAUDE_PLUGIN_ROOT}"` left in place by
non-Claude harnesses that don't process `!` pre-resolution. Tightened
to "starts with `/` and contains no `${`", which naturally rejects all
unresolved forms while accepting real absolute paths.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>