fix(3561): gate ultraplan runtime on Claude Code markers

This commit is contained in:
Tom Boucher
2026-05-15 12:47:54 -04:00
parent 1a4e6df6b3
commit 18397fb7f5
2 changed files with 15 additions and 3 deletions

View File

@@ -29,7 +29,16 @@ Use /gsd:plan-phase for stable local planning.
Check that the session is running inside Claude Code:
```bash
echo "$CLAUDE_CODE_VERSION"
if [ "$CLAUDECODE" = "1" ] || [ -n "$CLAUDE_CODE_ENTRYPOINT" ]; then
CC_VERSION="$(claude --version 2>/dev/null | awk '{print $1}')"
if [ -n "$CC_VERSION" ] && [ "$(printf '%s\n' "2.1.91" "$CC_VERSION" | sort -V | head -n1)" != "2.1.91" ]; then
echo ""
else
echo "claude-code:${CC_VERSION:-unknown}"
fi
else
echo ""
fi
```
If the output is empty or unset, display the following error and exit:

View File

@@ -86,8 +86,11 @@ describe('ultraplan-phase workflow beta marker', () => {
describe('ultraplan-phase workflow runtime gate', () => {
const content = fs.readFileSync(WF_PATH, 'utf-8');
test('checks CLAUDE_CODE_VERSION to detect Claude Code runtime', () => {
assert.ok(content.includes('CLAUDE_CODE_VERSION'), 'workflow must gate on CLAUDE_CODE_VERSION env var');
test('checks Claude Code runtime markers instead of version env var', () => {
assert.ok(
content.includes('CLAUDECODE') || content.includes('CLAUDE_CODE_ENTRYPOINT'),
'workflow must gate on Claude Code runtime marker env vars'
);
});
test('error message references /gsd-plan-phase as local alternative', () => {