بنقرة واحدة
pr
Publish a pull request with automated type detection, Linear/Jira linking, PR templates, and Slack review message.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Publish a pull request with automated type detection, Linear/Jira linking, PR templates, and Slack review message.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
This skill should be used when the user wants to find AI-generated code slop — unnecessary comments, defensive checks, `any` casts, and style inconsistencies — in a branch's changes. Produces suggestions only; does not apply edits.
Workflow-native quality gate for branch changes — parallel reviewers (Bug, SOLID, Security, Simplify+Slop, optionally React/a11y/i18n/migration) with tier-scaled adversarial verify, CLAUDE.md/ADR enforcement, and a stable PASS / PASS WITH NOTES / FAIL verdict. Read-only. Runs from a static shipped workflow script.
This skill should be used when the user wants to triage a pull request's review feedback and CI status — retrieving inline review comments, review summaries, conversation comments, and failing status checks, then classifying each item as P1 / P2 / Nit and proposing an ordered action plan. Triggers on "review PR feedback", "check PR comments", "what's blocking my PR", "classify review comments", "PR CI failures", "triage PR", or a bare PR number/URL.
This skill should be used when the user wants to write their end-of-day / evening "build-in-public" update for a given Linear project — 2-3 impact-focused bullets plus a Next line synthesized from the project's Linear activity and the repo's git/PR shipping evidence, ready to paste into the pod thread. Invoke as /build-in-public with a Linear project ID. Triggers on "build-in-public post", "evening update", "what did I ship today", "end-of-day update", or any variant of "what did I do today" for a work update — even without the word "skill". Default to drafting; never post anywhere automatically.
Babysit your open PRs on a loop. Each tick scans your PRs for new reviews, bot comments, and CI, triages via /pr-feedback, batches clear nits through /pr-respond, and PushNotifications on APPROVE or a merge-ready PR. Triggers on "babysit my PRs", "surveille mes PRs", "watch my open PRs".
Watch a PR's CI hands-free after a push. A persistent Monitor streams each check as it lands; the skill auto-handles the mechanical (rebase a clean conflict, fix lint) and STOPs on any judgment (failing tests, a stack restack, going ready). Triggers on "watch CI", "surveille la CI", "attends la CI", or right after /pr or a push.
استنادا إلى تصنيف SOC المهني
| name | pr |
| description | Publish a pull request with automated type detection, Linear/Jira linking, PR templates, and Slack review message. |
| argument-hint | [type] [ISSUE-ID] |
!IMPORTANT: Follow this process, no matter what. Do not deviate from it.
Publish a pull request by following this automated workflow.
Arguments: $0 = [type] [ISSUE-ID] (both optional)
/pr — auto-detect type, no issue/pr fix — fix PR, no issue/pr fix ENG-1234 — fix PR with a Linear issue/pr fix MITB-565 — fix PR with a Jira issue/pr ENG-1234 — auto-detect type with an issue ID ([A-Z]+-\d+ matches both Linear and Jira; tracker is resolved in Step 1.6)git --no-pager diff develop # Inspect everything that changed vs. develop
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.
Skip this step only if:
/pr [type] argument.Analysis Approach:
*.test.*, docs/, configuration files)Type Detection Rules:
Mandatory Action Items:
Detect an issue ID (Linear or Jira) to include in branch name, PR title, and PR body. IDs from both trackers share the [A-Z]+-\d+ shape, so the tracker is resolved after the ID is found.
Detection Order (find the ID):
[A-Z]+-\d+)git rev-parse --abbrev-ref HEAD | grep -oE '[A-Z]+-[0-9]+'git log --oneline -5 | grep -oE '[A-Z]+-[0-9]+' | head -1Resolve the tracker (if an ID was found):
Try Linear first, fall back to Jira:
if linear issue view <ID> >/dev/null 2>&1; then
TRACKER=Linear
ISSUE_URL=$(linear issue url <ID>)
else
TRACKER=Jira
ISSUE_URL="https://hgdata.atlassian.net/browse/<ID>"
fi
ID, TRACKER, and ISSUE_URL for use in branch naming (Step 2), PR title (Step 5), and PR body (Step 5).Requires the linear CLI on PATH (provided by the linear-cli skill). If linear is unavailable, treat the ID as Jira.
If no ID found:
git rev-parse --abbrev-ref HEAD
git checkout -b <branch-name>
Branch naming format:
{type}/{ID}-{description} → feat/ENG-1234-add-auth or feat/MITB-565-add-auth{type}/{description} → feat/add-authgit 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.
git push -u origin HEAD
Configuration:
gh pr create --draft). The PR is born draft whatever the path afterwards; it goes ready later, by hand or via /ci-watch.develop for mk-copilot projects, master for all other repos{type}({scope}): description [{ID}] — the scope is the primary package or domain modified (inferred from the diff, e.g. api, web, backoffice), and the issue ID goes in trailing square brackets, not in the scope.
feat(api): add user auth [ENG-1234] or feat(web): add user auth [MITB-565]{type}({scope}): description → feat(api): add user auth, or {type}: description when no scope stands out → feat: add user auth! suffix, no BREAKING CHANGE: footer, no combined prefixes; keep it concise (under ~60 chars before the trailing [ID])..github/PULL_REQUEST_TEMPLATE.md if present; otherwise fall back to the per-type template below (see the PR body section).After creating, apply the merge-queue label (skips silently in repos that don't define it — this skill is multi-repo):
gh pr edit <pr-url> --add-label merge-queue-validation-gate 2>/dev/null || true
Choose the structure before writing:
.github/PULL_REQUEST_TEMPLATE.md, fill that template in full — every section gets real content drawn from the diff, no placeholders left behind. This takes precedence over the per-type templates below.Tracker link: when an issue ID was detected in Step 1.6, append Closes [{ID}]({ISSUE_URL}) at the bottom of the body — in both cases (repo template or per-type fallback). The per-type templates already carry a **{TRACKER} issue**: line; keep it, and add the Closes … line at the end.
The Description Writing Principles below apply to whichever structure you picked.
fix and feature)The description exists to make the point understandable — not to recite the code. Always open with the functional story, in plain language: what a user saw going wrong (fix) or what they can now do (feature). Write for someone unfamiliar with the code and with this part of the product.
Then judge the nature of the change and calibrate technical detail to it:
Both cases:
For the other types (chore, refactor, docs, test, perf, style), fill the templates as-is — these principles do not apply.
See references/pr-description-style.md for a worked before/after example.
### What this fixes
<In plain terms, what someone using the product saw going wrong. Name the
feature/screen and who hits it. Use the real example if there is one.>
### Why it happened
<The cause in everyday language — an analogy is welcome. No symbol names, file
paths, or data-flow walkthroughs.>
### How it's fixed
<What now behaves differently, at the behaviour level — not which functions changed.
If existing data was repaired, say so in one line.>
### Screenshots
<before / after — optional but encouraged for UI bugs>
### Related Issues
**{TRACKER} issue**: {ISSUE_URL} <!-- Include only if an issue ID was detected in Step 1.6. {TRACKER} is "Linear" or "Jira". -->
### What this adds
<In plain terms, what the feature lets someone do and why it matters to them. Lead
with the user-facing outcome, not the architecture.>
### How to see it
<Where it shows up in the product / how to try it. Screenshots, a short GIF, or an
API example.>
### Related Issues
**{TRACKER} issue**: {ISSUE_URL} <!-- Include only if an issue ID was detected in Step 1.6. {TRACKER} is "Linear" or "Jira". -->
### Description
<brief description of maintenance work or updates>
### Details
<what was updated and why>
### Related Dependencies
<any related updates or breaking changes>
**{TRACKER} issue**: {ISSUE_URL} <!-- Include only if an issue ID was detected in Step 1.6. {TRACKER} is "Linear" or "Jira". -->
### Overview
<summary of code structure improvements>
### Changes
<what was reorganized or restructured>
### Impact
<any performance or maintainability improvements>
### Testing
<confirm no behavior changes>
**{TRACKER} issue**: {ISSUE_URL} <!-- Include only if an issue ID was detected in Step 1.6. {TRACKER} is "Linear" or "Jira". -->
### Documentation Updated
<which docs were updated>
### Changes
<summary of content changes>
### Reason
<why these docs needed updating>
**{TRACKER} issue**: {ISSUE_URL} <!-- Include only if an issue ID was detected in Step 1.6. {TRACKER} is "Linear" or "Jira". -->
### Test Coverage Added
<description of tests added>
### Coverage Improvement
<what scenarios are now tested>
### Related Code
<link to the code being tested>
**{TRACKER} issue**: {ISSUE_URL} <!-- Include only if an issue ID was detected in Step 1.6. {TRACKER} is "Linear" or "Jira". -->
### Performance Improvement
<what was optimized>
### Metrics
<performance gains (before/after benchmarks)>
### Changes
<technical details of optimization>
### Impact
<affected components or users>
**{TRACKER} issue**: {ISSUE_URL} <!-- Include only if an issue ID was detected in Step 1.6. {TRACKER} is "Linear" or "Jira". -->
### Style Updates
<what was changed (formatting, linting, etc.)>
### Tool/Config
<which linting or formatting tool was applied>
### Scope
<which files were affected>
**{TRACKER} issue**: {ISSUE_URL} <!-- Include only if an issue ID was detected in Step 1.6. {TRACKER} is "Linear" or "Jira". -->
The PR is draft, so this message is held, not sent now — soliciting review on a draft is premature. Generate it, prefix it with ⏸ Send when you mark the PR ready:, and output it for the user to keep. The user solicits the team once the PR goes ready; this skill never posts to Slack itself.
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:
⏸ Send when you mark the PR ready:, for the user to keep and send once the PR is no longer draftCritical Rules:
Type Argument Behavior:
Standard Workflow:
Optional Arguments: /pr [type] [ISSUE-ID]
/pr — Auto-detect PR type, no issue/pr feature — Create feature PR, no issue/pr fix — Create fix PR, no issue/pr fix ENG-1234 — Create fix PR with a Linear ID/pr fix MITB-565 — Create fix PR with a Jira ID/pr ENG-1234 — Auto-detect type with an issue ID (tracker resolved in Step 1.6)