Summary
.claude/skills/release/SKILL.md uses several bare all-caps tokens as placeholders that are meant to be substituted with real values when the skill actually runs, but nothing in the text visually distinguishes them from literal strings:
VERSION -- the actual version being released (e.g. 2.2.0). Appears 45 times, including inside real bash command blocks like git tag VERSION and git push PGXNTOOL_UPSTREAM VERSION.
PGXNTOOL_UPSTREAM / PGXNTOOL_TEST_UPSTREAM -- the actual git remote name for each repo (e.g. upstream), extracted by the pre-flight script in Run Pre-flight Checks. Also used bare inside real bash blocks, e.g. git push PGXNTOOL_UPSTREAM master.
Read literally, a command like git push PGXNTOOL_UPSTREAM VERSION looks like it could be executed verbatim -- there's nothing marking PGXNTOOL_UPSTREAM or VERSION as "substitute the real value here" rather than a literal remote name / tag name.
Proposal
Switch to an unambiguous placeholder notation throughout the skill, e.g. $VERSION / $PGXNTOOL_UPSTREAM (shell-variable style) or <VERSION> / <PGXNTOOL_UPSTREAM> (angle-bracket style) -- pick whichever reads better in the surrounding bash blocks and prose, and apply it consistently to all three tokens.
Scope
Checked other skills under .claude/skills/*/SKILL.md -- this pattern (bare-word placeholders inside real bash blocks) doesn't show up elsewhere, so this is scoped to the release skill only.
Summary
.claude/skills/release/SKILL.mduses several bare all-caps tokens as placeholders that are meant to be substituted with real values when the skill actually runs, but nothing in the text visually distinguishes them from literal strings:VERSION-- the actual version being released (e.g.2.2.0). Appears 45 times, including inside real bash command blocks likegit tag VERSIONandgit push PGXNTOOL_UPSTREAM VERSION.PGXNTOOL_UPSTREAM/PGXNTOOL_TEST_UPSTREAM-- the actual git remote name for each repo (e.g.upstream), extracted by the pre-flight script in Run Pre-flight Checks. Also used bare inside real bash blocks, e.g.git push PGXNTOOL_UPSTREAM master.Read literally, a command like
git push PGXNTOOL_UPSTREAM VERSIONlooks like it could be executed verbatim -- there's nothing markingPGXNTOOL_UPSTREAMorVERSIONas "substitute the real value here" rather than a literal remote name / tag name.Proposal
Switch to an unambiguous placeholder notation throughout the skill, e.g.
$VERSION/$PGXNTOOL_UPSTREAM(shell-variable style) or<VERSION>/<PGXNTOOL_UPSTREAM>(angle-bracket style) -- pick whichever reads better in the surrounding bash blocks and prose, and apply it consistently to all three tokens.Scope
Checked other skills under
.claude/skills/*/SKILL.md-- this pattern (bare-word placeholders inside real bash blocks) doesn't show up elsewhere, so this is scoped to the release skill only.