Skip to content

Skill to debug semantic release issues when successful publication fails#28

Open
dlabaj wants to merge 1 commit intopatternfly:mainfrom
dlabaj:semantic-release
Open

Skill to debug semantic release issues when successful publication fails#28
dlabaj wants to merge 1 commit intopatternfly:mainfrom
dlabaj:semantic-release

Conversation

@dlabaj
Copy link
Copy Markdown

@dlabaj dlabaj commented Mar 19, 2026

Add skill to help debug issues when a specific release is not being published.

Summary by CodeRabbit

  • Documentation
    • Added a semantic-release troubleshooting guide with diagnostic workflows and remediation steps for common publication issues, including permission errors, commit message compliance, tag conflicts, and recovery procedures.

@@ -0,0 +1,97 @@
---
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@patternfly patternfly deleted a comment from coderabbitai bot Apr 2, 2026
@patternfly patternfly deleted a comment from coderabbitai bot Apr 2, 2026
@patternfly patternfly deleted a comment from coderabbitai bot Apr 2, 2026
@patternfly patternfly deleted a comment from coderabbitai bot Apr 2, 2026
@patternfly patternfly deleted a comment from coderabbitai bot Apr 2, 2026
@jpuzz0
Copy link
Copy Markdown
Collaborator

jpuzz0 commented Apr 2, 2026

@coderabbitai full review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 2, 2026

✅ Actions performed

Full review triggered.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 2, 2026

📝 Walkthrough

Walkthrough

A new troubleshooting guide for semantic-release has been added to the .cursor/skills directory, providing diagnostic workflows and remediation procedures for common failure scenarios including permission errors, skipped releases, tag conflicts, and git history issues.

Changes

Cohort / File(s) Summary
Semantic-release Troubleshooting Guide
.cursor/skills/semantic-release-troubleshooting/SKILL.md
New documentation file providing diagnostic workflows and remediation procedures for semantic-release failure scenarios (permission errors, skipped releases, tag conflicts, git history issues). Includes decision tables, shell commands, and step-by-step recovery instructions.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: adding a skill guide to debug semantic-release publication failures, which directly matches the new SKILL.md documentation file added.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-list and git branch commands).

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

📥 Commits

Reviewing files that changed from the base of the PR and between 0e20625 and c1e217e.

📒 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).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

`Are these npm documentation URLs still valid:

  1. https://docs.npmjs.com/misc/scope
  2. https://github.com/semantic-release/npm#npm-registry-authentication
  3. 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:


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.

Comment on lines +70 to +74
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>
```
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 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
fi

Repository: 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:


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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants