Skill to debug semantic release issues when successful publication fails#28
Skill to debug semantic release issues when successful publication fails#28dlabaj wants to merge 1 commit intopatternfly:mainfrom
Conversation
| @@ -0,0 +1,97 @@ | |||
| --- | |||
There was a problem hiding this comment.
Skills need to live under plugins/<plugin-name>/skills/ — .cursor/skills/ isn't the right location. This is repo/release tooling, so plugins/pf-workflow/skills/semantic-release-troubleshooting/ would be the right home.
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
📝 WalkthroughWalkthroughA new troubleshooting guide for semantic-release has been added to the Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes 🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
.cursor/skills/semantic-release-troubleshooting/SKILL.md (1)
10-93: Consider shifting from step-by-step commands to outcome-focused guidance.The skill currently provides explicit shell commands for each troubleshooting scenario. Based on learnings, skills should describe what to accomplish rather than prescriptive implementation steps — the AI already knows how to use git, npm, etc.
Consider reframing sections to state desired outcomes (e.g., "Verify the tag exists and identify which branches contain it" instead of showing exact
git rev-listandgit branchcommands).Based on learnings: "Describe outcomes, not implementation in skills — tell the AI what to accomplish, not how to do it. The AI already knows how to use git, gh, grep, etc."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.cursor/skills/semantic-release-troubleshooting/SKILL.md around lines 10 - 93, The content is too prescriptive: in sections "2. Permission Error", "3. Squashed Commits", "4. Tag Conflict (`reference already exists`)" and "5. History Rewrite Recovery" replace explicit shell commands with outcome-focused guidance — state the verification goals (e.g., "confirm whether a tag exists and which branches contain it", "ensure package name/ownership and registry auth are valid", "ensure commit messages follow conventional-commits", "recover tags/notes so they point at the intended commit") and list the expected results and next high-level actions (delete or recreate tag/notes, update package name or permissions, rewrite commit message) rather than showing exact git/npm commands; keep one short example only if absolutely necessary and retain the existing section headings to locate where to edit.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.cursor/skills/semantic-release-troubleshooting/SKILL.md:
- Line 35: Update the two outdated npm docs links in the SKILL.md "Fix:" line:
replace the scope URL `https://docs.npmjs.com/misc/scope` with a current scope
doc such as `https://docs.npmjs.com/cli/v11/using-npm/scope/` (or
`https://docs.npmjs.com/about-scopes/`), and replace the team URL
`https://docs.npmjs.com/cli/team` with
`https://docs.npmjs.com/cli/v8/commands/npm-team/` so the "Fix:" sentence points
to valid, up-to-date npm documentation.
- Around line 70-74: Replace the incorrect git push usage in the "Delete the
orphaned tags" step where the command currently shows `git push origin -d :<TAG
NAME>`; use a valid single-syntax form instead — either the modern form `git
push origin -d <TAG NAME>` (recommended) or the older refspec form `git push
origin :<TAG NAME>` — and update the example and explanatory text accordingly so
the snippet no longer mixes `-d` with the colon refspec.
---
Nitpick comments:
In @.cursor/skills/semantic-release-troubleshooting/SKILL.md:
- Around line 10-93: The content is too prescriptive: in sections "2. Permission
Error", "3. Squashed Commits", "4. Tag Conflict (`reference already exists`)"
and "5. History Rewrite Recovery" replace explicit shell commands with
outcome-focused guidance — state the verification goals (e.g., "confirm whether
a tag exists and which branches contain it", "ensure package name/ownership and
registry auth are valid", "ensure commit messages follow conventional-commits",
"recover tags/notes so they point at the intended commit") and list the expected
results and next high-level actions (delete or recreate tag/notes, update
package name or permissions, rewrite commit message) rather than showing exact
git/npm commands; keep one short example only if absolutely necessary and retain
the existing section headings to locate where to edit.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 784d3f09-41a8-4ea3-8fc5-fd1b9d025c25
📒 Files selected for processing (1)
.cursor/skills/semantic-release-troubleshooting/SKILL.md
| npm-name <package-name> | ||
| ``` | ||
|
|
||
| **Fix:** Update `package.json` if name is taken, or use an [npm scope](https://docs.npmjs.com/misc/scope). Check [npm registry authentication](https://github.com/semantic-release/npm#npm-registry-authentication) and user [publish permissions](https://docs.npmjs.com/cli/team). |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
`Are these npm documentation URLs still valid:
- https://docs.npmjs.com/misc/scope
- https://github.com/semantic-release/npm#npm-registry-authentication
- https://docs.npmjs.com/cli/team`
💡 Result:
No, none of the provided URLs are currently valid. 1. https://docs.npmjs.com/misc/scope - Invalid. The current npm documentation for scopes is at https://docs.npmjs.com/cli/v11/using-npm/scope/ or https://docs.npmjs.com/about-scopes/. The /misc/ path no longer exists. 2. https://github.com/semantic-release/npm#npm-registry-authentication - Valid. The repository exists at https://github.com/semantic-release/npm, and the README contains a section titled "npm registry authentication". 3. https://docs.npmjs.com/cli/team - Invalid. The current npm documentation for the team command is at https://docs.npmjs.com/cli/v8/commands/npm-team/ (legacy v8 docs). No /cli/team path exists in current docs.
Citations:
- 1: https://docs.npmjs.com/cli/v11/using-npm/scope/
- 2: https://docs.npmjs.com/cli/v8/using-npm/scope/
- 3: https://github.com/semantic-release/npm
- 4: https://docs.npmjs.com/cli/v8/commands/npm-team/
Update two broken npm documentation links.
The scope link (https://docs.npmjs.com/misc/scope) no longer exists; use https://docs.npmjs.com/cli/v11/using-npm/scope/ or https://docs.npmjs.com/about-scopes/ instead. The team link (https://docs.npmjs.com/cli/team) should be updated to https://docs.npmjs.com/cli/v8/commands/npm-team/. The GitHub link is valid.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.cursor/skills/semantic-release-troubleshooting/SKILL.md at line 35, Update
the two outdated npm docs links in the SKILL.md "Fix:" line: replace the scope
URL `https://docs.npmjs.com/misc/scope` with a current scope doc such as
`https://docs.npmjs.com/cli/v11/using-npm/scope/` (or
`https://docs.npmjs.com/about-scopes/`), and replace the team URL
`https://docs.npmjs.com/cli/team` with
`https://docs.npmjs.com/cli/v8/commands/npm-team/` so the "Fix:" sentence points
to valid, up-to-date npm documentation.
| 1. **Delete the orphaned tags** (remote then local): | ||
| ```bash | ||
| git push origin -d :<TAG NAME> # e.g. git push origin -d :v2.0.0-beta.1 | ||
| git tag -d <TAG NAME> | ||
| ``` |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify git push syntax for deleting remote tags
git push --help | grep -A 5 "delete refs"Repository: patternfly/ai-helpers
Length of output: 162
🏁 Script executed:
#!/bin/bash
# Check if the file exists and view the content around lines 70-74
if [ -f ".cursor/skills/semantic-release-troubleshooting/SKILL.md" ]; then
echo "File found. Content around lines 70-74:"
sed -n '65,80p' ".cursor/skills/semantic-release-troubleshooting/SKILL.md"
else
echo "File not found. Searching for similar files..."
find . -name "SKILL.md" -o -name "*semantic-release*" 2>/dev/null | head -20
fiRepository: patternfly/ai-helpers
Length of output: 556
🌐 Web query:
git push delete remote tag syntax -d colon prefix
💡 Result:
To delete a remote Git tag using git push, there are two primary syntaxes: 1. Modern syntax (Git 1.8+): git push origin --delete or git push origin -d 2. Colon prefix syntax (older/precise): git push origin :refs/tags/ The colon syntax pushes an empty source reference (before the colon) to the destination refs/tags/, effectively deleting it on the remote. Use refs/tags/ prefix to avoid ambiguity if a branch with the same name exists. Optionally delete locally first: git tag -d Examples: git push origin --delete v1.0 # or git push origin :refs/tags/v1.0 The --delete flag is equivalent to prefixing with colon and is more intuitive. Both are supported in current Git versions (up to 2.53+ as of 2026).
Citations:
- 1: https://stackoverflow.com/questions/5480258/how-can-i-delete-a-remote-tag
- 2: https://git-scm.com/book/en/v2/Git-Internals-The-Refspec
- 3: https://git-scm.com/docs/git-tag.html
- 4: https://git-scm.com/docs/git-push
- 5: https://git-scm.com/book/en/v2/Git-Basics-Tagging
- 6: https://git-scm.com/book/en/v2/ch00/_deleting_tags.html
- 7: https://git-scm.com/docs/git-push.html
Fix incorrect git push syntax for deleting remote tags.
Line 72 contains git push origin -d :<TAG NAME>, which mixes two incompatible deletion syntaxes. The -d flag and : prefix are mutually exclusive approaches. Use one or the other:
- Modern (recommended):
git push origin -d <TAG NAME> - Older syntax:
git push origin :<TAG NAME>
Proposed fix
- git push origin -d :<TAG NAME> # e.g. git push origin -d :v2.0.0-beta.1
+ git push origin -d <TAG NAME> # e.g. git push origin -d v2.0.0-beta.1
git tag -d <TAG NAME>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.cursor/skills/semantic-release-troubleshooting/SKILL.md around lines 70 -
74, Replace the incorrect git push usage in the "Delete the orphaned tags" step
where the command currently shows `git push origin -d :<TAG NAME>`; use a valid
single-syntax form instead — either the modern form `git push origin -d <TAG
NAME>` (recommended) or the older refspec form `git push origin :<TAG NAME>` —
and update the example and explanatory text accordingly so the snippet no longer
mixes `-d` with the colon refspec.
Add skill to help debug issues when a specific release is not being published.
Summary by CodeRabbit