name: create-pr description: Create a pull request with proper description, changeset, and all required elements disable-model-invocation: true
Create PR
Create a pull request with proper description, changeset, and all required elements.
Prompt Variables
$TICKET_URL
Paste the JIRA or GitHub issue URL (e.g., https://ledgerhq.atlassian.net/browse/LIVE-1234)
$TICKET_DESCRIPTION
Describe the ticket context: What is the problem? What should be done? Include acceptance criteria if available.
$CHANGE_TYPE
Select the type of change: feat | fix | refactor | test | docs | chore
$CHANGE_SCOPE
What packages are impacted? (e.g., live-mobile, ledger-live-desktop, @ledgerhq/live-common)
$TEST_COVERAGE
Are changes covered by tests? yes | no | partial - If not fully covered, explain why.
$QA_FOCUS_AREAS
What specific areas should QA focus on when testing this PR?
$HAS_UI_CHANGES
Are there visual/UI changes? yes | no - If yes, you will need to edit the PR description to add screenshots.
Instructions
IMPORTANT: Before any git commit, read and follow the .agents/skills/git-workflow/SKILL.md skill. All commit messages MUST use the Conventional Commits format defined there (type(scope): description). Analyze the staged diff to pick the correct type and scope.
Step 1: Analyze the changes
- Read
.agents/skills/git-workflow/SKILL.mdto load commit conventions - Run
git statusandgit diffto understand current changes - Run
git log develop..HEAD --onelineto see commits on this branch - Identify all modified packages for the changeset
Step 2: Create the changeset
Use the create-changeset skill to add a changeset for the modified packages.
Step 3: Prepare the PR
Generate the PR body using this template, filled with the provided information:
### ✅ Checklist
- [x] `npx changeset` was attached.
- [{{TEST_CHECKBOX}}] **Covered by automatic tests.** {{TEST_EXPLANATION}}
- [x] **Impact of the changes:**
{{QA_FOCUS_AREAS}}
### 📝 Description
{{DESCRIPTION}}
{{SCREENSHOTS_SECTION}}
### ❓ Context
- **JIRA or GitHub link**: {{TICKET_LINK}}
---
### 🧐 Checklist for the PR Reviewers
- **The code aligns with the requirements** described in the linked JIRA or GitHub issue.
- **The PR description clearly documents the changes** made and explains any technical trade-offs or design decisions.
- **There are no undocumented trade-offs**, technical debt, or maintainability issues.
- **The PR has been tested** thoroughly, and any potential edge cases have been considered and handled.
- **Any new dependencies** have been justified and documented.
- **Performance** considerations have been taken into account. (changes have been profiled or benchmarked if necessary)
Step 4: Create the Pull Request
First, push the branch:
git push -u origin HEAD
Then create the PR as draft and capture the URL:
PR_URL=$(gh pr create --draft --title "{{PR_TITLE}}" --body "$(cat <<'EOF'
{{GENERATED_PR_BODY}}
EOF
)")
Then open the PR in the browser:
open "$PR_URL"
Important: Always run open "$PR_URL" after creating the PR to ensure it opens in the browser. Do NOT skip this step.
If there are UI changes ($HAS_UI_CHANGES is "yes"):
- The PR opens in your browser
- Click the "..." menu (top-right of the PR description) → "Edit"
- Scroll to the Before/After table
- Drag & drop your screenshots into the table cells
- Click "Update comment"
- When ready, click "Ready for review" to publish the PR
Step 5: Generate Slack Message
Use the slack-pr-message skill (.agents/skills/slack-pr-message/SKILL.md) to generate the Slack announcement message for the PR.
Template Fill Rules
PR Title:
{{CHANGE_TYPE}}({{SCOPE}}): {{SHORT_DESCRIPTION}}- Example:
feat(mobile): add dark mode toggle - Example:
fix(desktop): resolve transaction signing issue
- Example:
TEST_CHECKBOX:
xif $TEST_COVERAGE is "yes"(space) if "no" or "partial"
TEST_EXPLANATION:
- Empty if fully covered
- Add explanation in italics if partial/no:
_Explanation here_
QA_FOCUS_AREAS: Format as bullet list from $QA_FOCUS_AREAS
DESCRIPTION: Generate from $TICKET_DESCRIPTION:
- First paragraph: Problem statement
- Second paragraph: Solution approach
- Include code samples for library changes
- Include before/after for bug fixes
SCREENSHOTS_SECTION:
- If $HAS_UI_CHANGES is "yes":
- Add the table with placeholders:
| Before | After | | ------ | ----- | | _Drag & drop screenshot here_ | _Drag & drop screenshot here_ | - Tell the user: "Click '...' → 'Edit' on the PR description, then drag & drop your screenshots into the table."
- Add the table with placeholders:
- If "no", omit the section entirely
- If $HAS_UI_CHANGES is "yes":
TICKET_LINK: Format properly:
- JIRA:
[LIVE-1234](https://ledgerhq.atlassian.net/browse/LIVE-1234) - GitHub:
#123
- JIRA:
Example Output
For a feature adding portfolio analytics:
PR Title: feat(portfolio): add analytics dashboard
PR Body:
### ✅ Checklist
- [x] `npx changeset` was attached.
- [x] **Covered by automatic tests.**
- [x] **Impact of the changes:**
- Portfolio screen rendering and performance
- Analytics data fetching and caching
- Chart interactions and accessibility
### 📝 Description
This PR introduces a new analytics dashboard to the portfolio feature, providing users with detailed performance metrics and historical data visualization.
**Problem**: Users currently have no way to track their portfolio performance over time.
**Solution**: Added a new analytics screen with:
- Performance charts (daily, weekly, monthly views)
- Key metrics summary (gains, losses, total value)
- Export functionality for data
### ❓ Context
- **JIRA or GitHub link**: [LIVE-5678](https://ledgerhq.atlassian.net/browse/LIVE-5678)
Slack Message: Generated via the slack-pr-message skill.