원클릭으로
create-pull-request
Create a GitHub pull request.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Create a GitHub pull request.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Provide additional context for messages based on the codebase and the context of the message to improve the quality of the translations.
Implement internationalization with Lingui in React and JavaScript applications. Use when adding i18n, translating UI, working with Trans/useLingui/Plural, extracting messages, compiling catalogs, or when the user mentions Lingui, internationalization, i18n, translations, locales, message extraction, ICU MessageFormat, or working with .po files.
Diagnose and fix Lingui SWC plugin compatibility errors with Next.js, Rspack, or other SWC runtimes. Use when seeing errors like "failed to invoke plugin", "failed to run Wasm plugin transform", "out of bounds memory access", or "LayoutError" during builds with @lingui/swc-plugin.
Upgrade all backend (.NET/NuGet), frontend (npm), and GitHub Actions dependencies to their latest versions, in that fixed order. Drives the developer CLI's update-packages command, parses its quiet dry-run output to separate trivial bumps from majors, ships trivial bumps as one bulk commit per side, and gives every major (and any code/config change) its own clean commit. Detects required toolchain installs (e.g. a new .NET SDK that needs sudo) and asks the user to run them up front so the backend upgrades first. Fixes the CLI itself when it produces a wrong outcome.
Query the local Postgres database of the active Aspire worktree via psql.
Apply a downstream brand to a PlatformPlatform fork. Edits one config file, drops in eight supplied logo assets, renames the solution and CLI to the new brand, and rotates UserSecretsId across every csproj. Skips all other source files. Use once per downstream fork after cloning, or to re-flip a brand later.
| name | create-pull-request |
| description | Create a GitHub pull request. |
Run in parallel (quick reads, not background):
git status - working tree stategit branch --show-current - local branchgit --no-pager log --format=%s --reverse $(git merge-base HEAD main)..HEAD - commits on the branchgit --no-pager diff main - full diffgit rev-parse @{u} 2>/dev/null - upstream presence (already pushed?)gh pr view --json number,url,state 2>/dev/null (only if upstream exists) - check if the branch already has an open pull requestEverything in this step starts in the background (run_in_background: true) so the workflow proceeds without waiting. Results are reconciled in STEP 10.
Skip anything already green this session. Only run what's genuinely uncertain.
When validation IS needed:
Run build first:
build (no flags - covers backend AND frontend; backend changes can break the frontend build via API contracts)build --frontendbuild --cliAfter build, in parallel (with --no-build where applicable):
aspire-restart - service / Aspire wiring changedformat --<target>, lint --<target> - for each target whose code changedtest --no-build - backend changee2e - frontend or shared E2E-covered code changed; use --smoke for low-impact changes (judgment)Use judgment to decide which target a file belongs to (e.g. project / manifest / lock files affect their owning build, even when the extension isn't obvious). Each item runs only if needed and not already green.
Three checks - all read-only at this stage; renames happen in STEP 8.
worktree- prefix. Local-only convention; never push it.fix-login-bug whose commits do a refactor), draft a new name.If either check 1 or check 3 fires, stash the proposed new name; STEP 4 will ask the user to confirm.
Ask everything upfront so the user doesn't wait through slow research/drafting just to be prompted at the end. Single AskUserQuestion call, up to four questions:
Enhancement, Bug, Deploy to Staging.[ ] item from .github/PULL_REQUEST_TEMPLATE.md in present-tense (e.g. for the current template: "Confirm you have added tests, done manual regression tests, and updated the documentation"). The alternative is "Leave checklist items unchecked".<current> to <proposed>?" with options Yes / No / Use a different name (free-text).Stash the answers; consumed in STEP 6, 7, 8, 11.
Look up .claude/reference/product-management/[PRODUCT_MANAGEMENT_TOOL].md for [Task] ID format and MCP tools.
Parse [Task] ID from branch name. The exact pattern depends on the configured [PRODUCT_MANAGEMENT_TOOL] — check .claude/reference/product-management/[PRODUCT_MANAGEMENT_TOOL].md. Strip worktree- first if present.
If [Task] detected, fetch via MCP. Use its title, description, and parent [Feature] to validate the draft in STEP 6 and spot drift.
Detect unrelated commits (rare). If some commits clearly belong to a different scope, offer to create a new [Task] as future follow-up - written as a fresh problem statement (future tense, what needs to happen). [Feature] choice: parent [Feature] of current branch's [Task] -> [Feature] with [Active] status -> ask.
If no [Task] in the branch name, ask: "No [Task] detected. Create one for this pull request?". If yes, draft a [Task] from the diff (problem statement, not what was done) and create it via MCP. Suggest a [Feature] using the same rules as above.
Write a fresh title based on the actual diff, commits, and [Task] context - not the branch name (branch names are often abbreviated and won't make a good title).
Use the official template at .github/PULL_REQUEST_TEMPLATE.md:
[ ] as [x] if the user picked "Mark all checklist items..." in STEP 4; otherwise leave them as [ ].Save the rendered title (as a level-1 heading) + body to .workspace/<branch-name>/pull-request.md. Use the un-prefixed branch name if STEP 3 stripped worktree-.
If the user picked "Show me before pushing" in STEP 4:
Otherwise skip this step.
If STEP 4 confirmed a rename, rename the branch and verify. Safe in a worktree (directory path is independent of branch name). The push step sets the new upstream.
git rev-parse @{u} 2>/dev/null.git push --set-upstream origin "$(git branch --show-current)").git log --oneline @{u}..HEAD (local-ahead)git log --oneline HEAD..@{u} (remote-ahead)git push.Check the status of the background tasks started in STEP 2.
Pre-flight: gh auth status. If not authenticated, surface and stop.
Use the existing pull request check result from STEP 1.
If an open pull request already exists for this branch:
gh pr edit <number> \
--title "<title>" \
--body-file ".workspace/<branch>/pull-request.md" \
--add-label "<each-selected-label>"
(Strip the level-1 heading from the body file before passing.) Tell the user the pull request was updated, not newly created. Don't change draft/ready state without an explicit ask.
If no pull request exists:
gh pr create \
--title "<title>" \
--body-file ".workspace/<branch>/pull-request.md" \
--base main \
--assignee @me
Append --label "<name>" per label from STEP 4. @me resolves to the authenticated user. Don't pass --draft; this workflow opens ready-for-review.
Capture the pull request URL from gh's output for STEP 12.
Print:
End with a clickable link to the saved file.
# DO: imperative, sentence case, no period
Add user profile image upload functionality
Fix data protection key sharing between self-contained systems
Upgrade dependency versions to latest stable releases
# DON'T: past tense, period, title case, prefixes
Added User Profile Image Upload Functionality.
PR: Implement new feature
Updating dependencies
### Summary & Motivation
Add data protection key sharing between self-contained systems to fix antiforgery token validation failures. Previously, each self-contained system had isolated encryption keys, causing tokens generated in one system to be invalid in another.
- Configure a common application name for all self-contained systems
- Store keys in a user-accessible directory on disk
# DO: stop here - no closing benefit summary
### Checklist
- [x] I have added tests, or done manual regression tests
- [ ] I have updated the documentation, if necessary
### Summary
# DON'T: personal pronouns, past tense, "pull request" term, vague descriptions
In this pull request we fixed a bug causing issues in our scs's.
- We added some configuration.
- Fixed a bug.
These changes make the system more robust and maintainable. # DON'T: closing summary
worktree- prefixLocal: worktree-fix-login-redirect -> propose fix-login-redirect (rename in STEP 8, push in STEP 9).
Local: fix-login-redirect. Actual work: refactored the login command and added auto-redirect.
Propose refactor-login-command-with-auto-redirect. Confirm in STEP 4; rename in STEP 8.
Branch: fix-login-redirect. Commits: the redirect fix + an unrelated typo fix in README.
Surface the typo commit. Offer to create a new [Task]: "Fix typo in README troubleshooting section" (problem statement, future tense). The pull request continues with both commits.
Pull request opened: https://github.com/<owner>/<repo>/pull/123
Title: Fix login redirect after OTP verification
Labels: Bug, Deploy to Staging
[Task]: linked via branch name (auto-detected by [PRODUCT_MANAGEMENT_TOOL])
Description: /absolute/path/to/repo/.workspace/fix-login-redirect/pull-request.md