pr
npx skills add https://github.com/benjaming/ai-skills --skill pr
Agent 安装分布
Skill 文档
Publish PR
!IMPORTANT: Follow this process, no matter what. Do not deviate from it.
Publish a pull request by following this automated workflow.
Arguments: $0 = [type] [JIRA-ID] (both optional)
/prâ auto-detect type, no Jira/pr fixâ fix PR, no Jira/pr fix MITB-565â fix PR with Jira/pr MITB-565â auto-detect type with Jira (detected via[A-Z]+-\d+pattern)
1. Review the Full Diff
For mk-copilot project:
git --no-pager diff develop # Inspect everything that changed vs. develop
For all other projects:
First ensure you’re in the right directory:
pwd
If not in the project directory:
cd <project-directory>
Then inspect the diff:
git --no-pager diff master # Inspect everything that changed vs. master
or
git --no-pager diff main # Inspect everything that changed vs. main
If anything looks off, pause and ask for confirmation. Use AskUserQuestion tool to ask the user for confirmation.
1.5. Determine PR Type (MANDATORY if not provided)
Skip this step only if:
- PR type was explicitly provided via
/pr [type]argument. - You are confident in the type based on the diff.
Analysis Approach:
- Examine file paths changed (e.g.,
*.test.*,docs/, configuration files) - Analyze the diff content for patterns (new features, bug fixes, refactoring, etc.)
- Review the scope and scale of changes
- Check for conventional commit indicators in changes
Type Detection Rules:
- feature (feat): New functionality, new files/directories, significant additions to existing files
- fix: Bug fixes, error handling, small focused changes addressing issues
- chore: Dependency updates, config changes, build files, maintenance tasks
- refactor: Code restructuring, reorganization without changing behavior
- docs: Documentation, README, or content-only changes
- test: Test file additions or modifications
- perf: Performance optimizations
- style: Formatting, linting, or style-only changes
Mandatory Action Items:
- Analyze the diff output from Step 1
- Identify which files changed and what type of changes they represent
- Determine the most likely PR type based on rules above
- Present your analysis: “Based on the diff, I determined this is a [TYPE] PR because [specific reason from the changes]”
- Ask for confirmation if confidence < 100%: “Does this look correct, or would you prefer [alternative type]?”
- Use AskUserQuestion tool to ask the user for confirmation before proceeding to Step 2
1.6. Jira Issue Detection (Optional)
Detect Jira issue ID to include in branch name and PR title.
Detection Order:
- Check if Jira ID passed as argument (pattern:
[A-Z]+-\d+) - Search conversation context for Jira references
- Check current branch name:
git rev-parse --abbrev-ref HEAD | grep -oE '[A-Z]+-[0-9]+' - Check recent commits:
git log --oneline -5 | grep -oE '[A-Z]+-[0-9]+' | head -1
If Jira ID found:
- Store it for use in branch naming (Step 2) and PR title (Step 5)
- Confirm: “Detected Jira issue: [JIRA-ID] â using in branch and PR title”
If no Jira ID found:
- Continue without Jira (it’s optional)
- Note: “No Jira issue detected â proceeding without Jira reference”
2. Ensure on a Dedicated Branch
git rev-parse --abbrev-ref HEAD
- If already on a suitable branch, continue.
- Otherwise create one:
git checkout -b <branch-name>
Branch naming format:
- With Jira:
{type}/{JIRA-ID}-{description}âfeat/MITB-565-add-auth - Without Jira:
{type}/{description}âfeat/add-auth
3. Stage and Commit All Pending Changes
git add .
git commit -m "<concise-imperative-summary (⤠50 chars)>"
!IMPORTANT: NEVER commit changes to the main, master, or develop branch. Always create a new branch and commit your changes to that branch.
4. Push the Branch
git push -u origin HEAD
5. Open a Pull Request
Configuration:
- Base branch:
developfor mk-copilot projects,masterfor all other repos - PR title format:
- With Jira:
{type}({JIRA-ID}): descriptionâfeat(MITB-565): add user auth - Without Jira:
{type}: descriptionâfeat: add user auth
- With Jira:
- PR body: Use the appropriate template below based on the PR type
Fix PR Template (type = “fix”):
### Issue Description
<what the user experienced>
### Root Cause
<why it happened>
### Screenshots
<before / after>
### Related Issues
<linked issues or #numbers>
**Jira issue**: https://hgdata.atlassian.net/browse/{JIRA-ID} <!-- Include only if Jira ID exists -->
Feature PR Template (type = “feature” or “feat”):
### Feature Description
<what the feature does and why>
### Screenshots
<UI shots, API examples or GIFs>
**Jira issue**: https://hgdata.atlassian.net/browse/{JIRA-ID} <!-- Include only if Jira ID exists -->
Chore PR Template (type = “chore”):
### Description
<brief description of maintenance work or updates>
### Details
<what was updated and why>
### Related Dependencies
<any related updates or breaking changes>
**Jira issue**: https://hgdata.atlassian.net/browse/{JIRA-ID} <!-- Include only if Jira ID exists -->
Refactor PR Template (type = “refactor”):
### Overview
<summary of code structure improvements>
### Changes
<what was reorganized or restructured>
### Impact
<any performance or maintainability improvements>
### Testing
<confirm no behavior changes>
**Jira issue**: https://hgdata.atlassian.net/browse/{JIRA-ID} <!-- Include only if Jira ID exists -->
Docs PR Template (type = “docs”):
### Documentation Updated
<which docs were updated>
### Changes
<summary of content changes>
### Reason
<why these docs needed updating>
**Jira issue**: https://hgdata.atlassian.net/browse/{JIRA-ID} <!-- Include only if Jira ID exists -->
Test PR Template (type = “test”):
### Test Coverage Added
<description of tests added>
### Coverage Improvement
<what scenarios are now tested>
### Related Code
<link to the code being tested>
**Jira issue**: https://hgdata.atlassian.net/browse/{JIRA-ID} <!-- Include only if Jira ID exists -->
Performance PR Template (type = “perf”):
### Performance Improvement
<what was optimized>
### Metrics
<performance gains (before/after benchmarks)>
### Changes
<technical details of optimization>
### Impact
<affected components or users>
**Jira issue**: https://hgdata.atlassian.net/browse/{JIRA-ID} <!-- Include only if Jira ID exists -->
Style PR Template (type = “style”):
### Style Updates
<what was changed (formatting, linting, etc.)>
### Tool/Config
<which linting or formatting tool was applied>
### Scope
<which files were affected>
**Jira issue**: https://hgdata.atlassian.net/browse/{JIRA-ID} <!-- Include only if Jira ID exists -->
6. Request Review on Slack (MANDATORY)
Generate a brief, friendly message that includes the PR link using the template below based on the PR type:
Message Templates by Type:
| PR Type | Template |
|---|---|
| fix | :wrench: Fixed [issue summary] â would appreciate a review: [PR-URL] |
| feature | :rocket: New feature: [feature name] ready for review! [PR-URL] |
| chore | :broom: Maintenance update: [what was updated] needs review: [PR-URL] |
| refactor | :recycle: Code refactor for [area/component] â feedback welcome: [PR-URL] |
| docs | :books: Documentation updated: [what changed] [PR-URL] |
| test | :test_tube: Added test coverage for [feature/area]: [PR-URL] |
| perf | :zap: Performance improvement in [area] ready for review: [PR-URL] |
| style | :art: Code style/formatting updates applied: [PR-URL] |
Action:
- Select the appropriate template based on the PR type from the table
- Fill in the bracketed sections with actual details from the PR
- Output the complete Slack message for the user to copy and paste into Slack
Execution Notes
Critical Rules:
- Execute each step sequentially in order (1 â 1.5 â 1.6 â 2 â 3 â 4 â 5 â 6)
- Do not skip Step 1.5 unless PR type was explicitly provided via arguments
- Step 1.6 is optional â proceed without Jira if none detected
- Do not skip Step 6 â Slack message is mandatory before considering PR complete
- Wait for user confirmation before proceeding if any diff looks unexpected
Type Argument Behavior:
- If PR type ($0) is provided: Skip Step 1.5 and use the provided type directly
- If PR type is NOT provided: Unless you are confident in the type, complete PR type analysis with user confirmation at Step 1.5 before proceeding
Standard Workflow:
- Execute Step 1 (diff review)
- MANDATORY: Complete Step 1.5 (type detection & confirmation) â unless type was provided as argument or you are confident in the type
- Execute Step 1.6 (Jira detection) â optional, use if found
- Execute Steps 2-5 (branch, commit, push, create PR)
- MANDATORY: Complete Step 6 (generate and output Slack message)
- Confirm PR is ready: all steps completed, Slack message generated
Optional Arguments: /pr [type] [JIRA-ID]
/prâ Auto-detect PR type, no Jira/pr featureâ Create feature PR, no Jira/pr fixâ Create fix PR, no Jira/pr fix MITB-565â Create fix PR with Jira ID/pr MITB-565â Auto-detect type with Jira ID