ワンクリックで
pr
// Create a GitHub PR for the current branch. Use when the user asks to create a PR, send a PR, or invokes /pr.
// Create a GitHub PR for the current branch. Use when the user asks to create a PR, send a PR, or invokes /pr.
Resolve a single Liferay test failure end-to-end.
Create a Jira bug ticket in the LPD project through the REST API. Use when the user asks to create or file a Jira bug or LPD ticket.
Create a Jira task in the LPD project through the REST API. Use when the user asks to create a Jira task or LPD task ticket.
Check that a PR is ready to be sent for review.
Format source files to align with Liferay's coding standards.
Start work on a Jira ticket.
| allowed-tools | ["Bash","Glob","Grep","Read","Skill"] |
| argument-hint | [optional target-org/repo, message hint, or --skip-pr-check] |
| description | Create a GitHub PR for the current branch. Use when the user asks to create a PR, send a PR, or invokes /pr. |
| name | pr |
Create a GitHub PR for the current branch, transition the linked Jira ticket to review, and record the PR URL on that ticket.
At least one commit adds tests. When none do, ask the user for a rationale and refuse to proceed without one. The only exceptions are PRs with no code changes (e.g., language key updates or markdown changes).
The current branch is a development branch, not master or any other protected branch.
The pr-check skill must pass. Skip only when ${ARGUMENTS} contains --skip-pr-check.
The current Git branch must contain the commits ready to ship.
Resolve a ticket key in priority order:
User Argument — when ${ARGUMENTS} supplies a ticket key, prefer that value.
Branch Name — extract the ticket from the current branch (e.g., branch LPD-83847 yields ticket LPD-83847).
Recent Commits — when neither produces a ticket, scan recent commit messages for a ticket prefix.
Fallback — when nothing surfaces, prompt the user.
The ticket key follows the pattern LPD-12345, LCD-12345, LRCI-1234, and similar forms (uppercase letters, hyphen, digits).
The target repository defaults to <fork-owner>/liferay-portal. When ${ARGUMENTS} names a different org/repo, use that; when it matches an alias below, expand the alias; otherwise, ask the user to choose <fork-owner> from one of the team forks:
liferay-acliferay-appsecliferay-bpmliferay-commerceliferay-content-managementliferay-core-infraliferay-database-infraliferay-devtoolsliferay-frontendliferay-headlessliferay-page-managementliferay-platform-experienceliferay-searchliferay-site-managementThe following short aliases resolve to a target repository:
brian → brianchandotcom/liferay-portalThe PR head is <github-username>:<branch-name> (the GitHub username is read from the user's origin remote URL — e.g., git@github.com:brianchandotcom/liferay-portal.git yields brianchandotcom), and the base is master.
Push the current branch to the user's remote when it has not been pushed yet or when new local commits exist.
The title is concise (under 72 characters) and prefixed with the Jira ticket:
LPD-83847 Fix OutOfMemoryError during batch engine import
The body follows this format:
https://liferay.atlassian.net/browse/TICKET-ID
## What Is Being Fixed
Explain the problem or bug that motivated the change — what was going wrong or what was missing.
## How It Is Being Fixed
Explain the approach taken across all commits. Describe the key changes and the reasoning behind the approach. Write in plain prose rather than bullet points.
## Why Are There No Tests?
This optional section is only included when the commits do not add any tests. It should contain the rationale provided by the user.
Use a direct, to-the-point style. Avoid being verbose. Present the proposed title and body to the user before submitting, and proceed once they approve.
When pr-check passes, invoke the pr-check-publish skill with the newly created PR URL.
Fetch the input ticket (issue type, status, subtasks) and resolve the target ticket — the one whose status reflects active work and on which the PR URL is recorded:
| Ticket Type | Target |
|---|---|
Bug (10004) | The bug itself |
Task (10002) | Its Technical Task (10153) subtask |
Technical Task (10153) | Itself |
When the target is not already in an in-progress status, transition it first:
| Target Type | Destination | Transition ID |
|---|---|---|
| Bug | In Progress | 61 |
| Technical Task | In Progress | 41 |
Then transition it to review:
| Target Type | Destination | Transition ID |
|---|---|---|
| Bug | In Review | 71 |
| Technical Task | In Peer Review | 31 |
When the review transition fails (for example, because the ticket is already in a later status), still proceed to record the PR URL.
Set the Git Pull Request field (customfield_10201) on the target ticket to the new PR URL.
When the Git Pull Request field already holds one or more PR URLs, ask the user whether the new PR supersedes the existing one or is added alongside it.
When the user chooses supersede:
Overwrite Git Pull Request with the new PR URL, dropping the previous value.
Add a comment on the previous PR, linking to the new one (for example, Superseded by <new-pr-url>.).
Close the previous PR when possible. When the user lacks permission to close it directly, add a ci:close comment instead, so the CI bot closes it.
When the user chooses add:
Report back to the user with: