Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/platformplatform/PlatformPlatform --skill create-pull-request명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
SOC 직업 분류 기준
| 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