create-pr

Create a Pull Request for a Marshroom cart issue matching the current branch.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "create-pr" with this command: npx skills add vkehfdl1/marshroom/vkehfdl1-marshroom-create-pr

Create a Pull Request for a Marshroom cart issue matching the current branch.

Critical Requirements

  • state.json update is MANDATORY. After creating the PR, you MUST update the issue status to pending with prNumber and prURL in ${MARSHROOM_STATE:-~/.config/marshroom/state.json} . If this fails, stop and report the error — do NOT silently continue.

  • Use marsh pr if available; otherwise fall back to direct jq atomic write (see step 9).

Steps

  • Read ${MARSHROOM_STATE:-~/.config/marshroom/state.json} and parse the JSON

  • Run git branch --show-current to get the current branch name

  • Find the cart entry matching the current branch and repo. Use relaxed matching:

  • First try exact branchName match

  • Then try /#N suffix match (e.g., current branch HotFix/#20 matches cart entry with branchName: "Feature/#20" because both end with /#20 )

  • If no match, tell the user they're not on a cart issue branch 3-1. Commit the current changes. Give proper commit message to commits. Ask user permission if the changes are too large or suspicious (e.g. 100+ changes, dummy files, DB updates, logs, and so on)

  • Push the current branch: git push -u origin HEAD

  • Build the PR body:

  • Start with a brief description of the changes made

  • If the matched cart entry has an issueBody field (non-null), include it under a "## Original Issue" section for reviewer context

  • The body MUST include close #<issueNumber> (this is mandatory for auto-closing the issue)

  • Create the PR using gh pr create :

  • Title: the issue title from the matched cart entry

  • Body: the constructed body from step 5

  • After PR creation, verify the body contains the closing keyword:

  • Run gh pr view --json body -q '.body'

  • If close #<issueNumber> is NOT found in the body, fix it: gh pr edit --body "$(gh pr view --json body -q '.body')\n\nclose #<issueNumber>"

  • Capture the PR URL and number:

  • Run gh pr view --json number,url -q '.number,.url'

  • Update issue status (MANDATORY):

  • First try: marsh pr

  • If marsh is not found in PATH, fall back to direct atomic update using the PR number and URL from step 8: STATE_FILE="${MARSHROOM_STATE:-~/.config/marshroom/state.json}" TMP="$(mktemp "${STATE_FILE}.XXXXXX")" jq --argjson n ISSUE_NUMBER --argjson prNum PR_NUMBER --arg prUrl "PR_URL"
    '.cart |= map(if .issueNumber == $n then .status = "pending" | .prNumber = $prNum | .prURL = $prUrl else . end)'
    "$STATE_FILE" > "$TMP" && mv -f "$TMP" "$STATE_FILE"

  • Verify the update succeeded by reading state.json and confirming status is pending

  • Display the result:

  • PR URL

  • PR Number

  • Issue: #{issueNumber} {issueTitle}

  • Status: pending

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

start-issue

No summary provided by upstream source.

Repository SourceNeeds Review
General

validate-pr

No summary provided by upstream source.

Repository SourceNeeds Review
General

create-pr

No summary provided by upstream source.

Repository SourceNeeds Review
-593
n8n-io