Agent skill

MR and PR Description Drafter

by tabler in tabler/tabler

Drafts a merge request or pull request title and body in simple English from the branch's git history and diff against origin/dev, ready to paste into GitLab or GitHub.

MITAuto-check passedDevelopment

Install MR and PR Description Drafter

skills CLI
$ npx skills add tabler/tabler --skill mr-description -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install tabler/tabler mr-description --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/tabler/tabler.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/mr-description .claude/skills/mr-description && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
mr-description
GitHub stars
42k
Token cost
~2k tokens
SKILL.md length
1,025 words
Files
1
Skills in repo
21
Repo updated
First seen
Licence
MIT

At a glance

Drafts a merge request or pull request title and body in simple English from the branch's git history and diff against origin/dev, ready to paste into GitLab or GitHub.

  • Works in 6 steps: Base branch (this repo) → Gather facts (run in parallel when… → Title → …
  • Writing a pull request description for the current branch
  • SKILL.md covers 1. Base branch (this repo), 2. Gather facts (run in…, 3. Title and 4. Body (markdown template), plus 2 more sections
  • Calls git, gh and curl

What it does

The skill produces a short title and a markdown body, each in its own fenced block and grounded in real git output rather than guesses. The base is the dev branch: it compares against origin/dev with three-dot syntax so the text reflects only this branch's commits, falls back to local dev if the remote is missing and then asks you. It gathers git status, the commit log, the diff and a stat summary, and for very large diffs relies on the stat plus targeted per-path diffs.

It also reads the current branch name for the Vercel preview URL and checks with gh pr view whether a PR already exists for the branch, carrying over any issue references from the old body into the notes so a regenerated description never drops the link to a tracked issue. The aim is to infer intent, user-visible behavior and risk, not just list file names.

When your agent uses it

  • Writing a pull request description for the current branch
  • Drafting GitLab merge request text for reviewers
  • Summarizing a branch's commits and diff for review
  • Regenerating a PR description without losing issue links

Example prompts

  • “Write an MR description for my current branch against origin/dev.”
  • “Draft a PR title and body I can paste into GitHub for this branch.”
  • “Regenerate the description for this PR and keep the issue links it already has.”

Requirements

  • Git, with origin/dev available
  • GitHub CLI (gh), to read an existing PR

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Base branch (this repo)
  2. Gather facts (run in parallel when independent)
  3. Title
  4. Body (markdown template)
  5. Language (simple English)
  6. After output

What it can do on your machine

Read from SKILL.md and the folder at commit dcacb65. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, gh and curl, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

MR and PR Description Drafter loads about 2k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 1,025 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~64
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from tabler/tabler at commit dcacb65, republished under its MIT licence (© tabler). 1,025 words, ~2,017 tokens.

Download SKILL.mdSave it as .claude/skills/mr-description/SKILL.md (or your agent's skills folder).
name
mr-description
description
Drafts a merge request (MR) or pull request title and body in simple English from the current branch versus origin/dev (Tabler). Use when the user asks for an MR/PR description, GitLab merge request text, or a branch summary for reviewers.

MR / PR description from branch

Produce a short title and a markdown body, each in its own fenced markdown block, ready to paste into GitLab (MR) or GitHub (PR). Ground everything in actual git output from this repo—not guesses.

1. Base branch (this repo)

Default integration branch: dev. Compare against origin/dev.

If origin/dev is missing (offline clone, no remote), fall back to local dev, then ask the user. Only use another base (e.g. develop) if the user says so explicitly.

Comparison range: use three-dot merge syntax so the description reflects this branch’s commits and diff:

  • Commits: git log origin/dev...HEAD --oneline
  • Diff: git diff origin/dev...HEAD
  • Overview: git diff origin/dev...HEAD --stat

If the branch is not pushed yet: git merge-base dev HEAD then git diff <merge-base>...HEAD (or same with origin/dev when available).

2. Gather facts (run in parallel when independent)

From the repository root:

  • git status -sb
  • git log origin/dev...HEAD --oneline (or dev...HEAD if no remote tracking)
  • git diff origin/dev...HEAD --stat
  • git diff origin/dev...HEAD — if output is very large, rely on --stat plus targeted git diff origin/dev...HEAD -- <paths> for the touched areas
  • git branch --show-current — current branch name for the Vercel preview URL

Use this to infer intent, user-visible behavior, and risk—not only filenames.

Existing PR content: Before drafting, check whether a PR already exists for this branch (e.g. gh pr view --json title,body,number,url for the current branch, or a PR number/URL the user gave you). If one exists, read its current title and body first:

  • Carry over any issue references it already contains — Closes #N, Fixes #N, Resolves #N, or a plain #N mention — into the new body. Put them in Notes / rollout (or, if the PR uses a dedicated Issue/Closes line, keep that same convention) so a regenerated description never silently drops the link to a tracked issue.
  • Don't assume the diff alone tells you which issue this closes — the existing PR body is often the only place that link is recorded.
  • If no PR exists yet, skip this step (there is nothing to carry over).

Vercel preview URL: only when the diff has visual / UI changes a reviewer can check in the browser (CSS, preview pages, docs examples, components, layout). Skip the preview URL for non-visual work (agent skills, CI, tooling, docs prose-only, lockfile, config with no rendered UI effect).

When a preview URL is needed and the branch is pushed, Vercel deploys a preview. The repo has two separate Vercel projects — pick the one matching the diff:

Diff touchesProjectHost
preview/**, core/** (demo pages)tablerhttps://tabler-git-{branch-slug}-tabler-io.vercel.app/
docs/** (documentation site)tabler-docshttps://tabler-docs-git-{branch-slug}-tabler-io.vercel.app/

Using the tabler host for a docs page returns 404 — the pages simply do not exist in that project.

Build {branch-slug} from the branch name (git branch --show-current): replace / with -, remove dots entirely (do not replace them with dashes), lowercase. Examples: feature/pricing-banner → feature-pricing-banner, update-icons-3.45.0 → update-icons-3450.

Verify before pasting. The slug rule is a convention, not a guarantee. Read the real url from the deployment, then curl each link you intend to put in the body:

shell
gh api repos/tabler/tabler/deployments --jq '[.[] | select(.environment=="Preview – tabler-docs")][0].id'
gh api repos/tabler/tabler/deployments/<id>/statuses --jq '.[0].environment_url'
curl -s -o /dev/null -w '%{http_code}\n' <link>

Links to the published docs (not a Vercel preview) belong to a different pair of hosts: docs.tabler.io serves the last release, docs-dev.tabler.io serves dev. Check any docs.tabler.io link you mention against docs-dev.tabler.io — production still serves the pre-content-collection URLs, so a page that exists in docs/content/** can 404 there without being a broken link.

If the diff touches specific routes or pages, append that path. Path shape differs per project:

  • Preview pages use the .html extension: preview/pages/icons.astro → /icons.html, not /icons.
  • Docs pages use directory urls with no extension and no trailing slash (vercel.json sets trailingSlash: false): docs/content/ui/components/badge.mdx → /ui/components/badge. A trailing slash still resolves, but through a 308 redirect.

Mention the exact path(s) in Preview.

Show full SKILL.md (413 more words)Show less

3. Title

  • One line, imperative mood, ≤ 72 characters when possible.
  • Prefer why or outcome over a generic “Update components”.
  • Match existing team style if git log origin/dev..HEAD shows a pattern (e.g. conventional prefixes).
  • If the title names a code-level identifier (feature-flag key, exported function, env var, route, exact symbol from the diff), wrap that token in backticks (grave accents), not quotes.

Deliver the title to the user inside a fenced markdown block with only the title line inside (no heading, no label). That matches the body block and makes one-click copy work in the UI.

Example (what you output):

markdown
Remove `money-back-guarantee` flag; show label on paid plans

4. Body (markdown template)

Output the body in a second fenced markdown block after the title block. Use this structure inside that block. Omit Notes / rollout if nothing applies. Omit the URL line (or the whole Preview section) when there are no visual changes—do not link a Vercel preview in that case. Do not add a separate ## Test plan section unless the user explicitly asks for one—use Preview (or a short “how to review” note under Summary) instead.

markdown
## Summary

- …

## Preview

- **URL:** [preview link](https://tabler-git-{branch-slug}-tabler-io.vercel.app/…)
- **How to test:** … (concrete steps tied to the diff—what to open, click, or verify; mention feature flags, env, or auth if the diff requires them)

## Notes / rollout

- … (breaking changes, feature flags, migrations—only if supported by the diff)

Summary bullets: 1–4 bullets tying changes to product/engineering impact.

Preview: Include a Vercel URL only when the change is visual and the branch is pushed (or note that preview is unavailable until push). If there are no visual changes, omit the preview link entirely—do not add a homepage or generic preview URL. When a URL is included, use the Vercel format from §2 and deep-link the most relevant path(s)—homepage only if changes are global. How to test should be actionable: which page, which UI element or behavior changed, and what the reviewer should expect to see. For non-visual PRs, say how to review the diff instead (e.g. which files to read).

Notes: Feature flags, env vars, backwards compatibility—only when evidenced in the diff or commit messages. Also include any issue reference carried over from an existing PR (see §2), e.g. Closes #123.

5. Language (simple English)

Write the title and full MR body in simple English, even if the user asked in another language.

  • Short sentences. Common words. One idea per sentence when possible.
  • No buzzwords or filler. Use technical terms only when they appear in the code or are needed to name a behavior.
  • Bullets should be easy to scan; avoid nested lists unless necessary.

6. After output

Offer to open/create the MR if the user uses GitLab (project MCP or UI) or GitHub (gh pr create), without running destructive git commands unless they ask.

© tabler, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/mr-description of tabler/tabler.

Open the folder on GitHubat commit dcacb65

Compare with similar skills

MR and PR Description Drafter next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

MR and PR Description Drafter compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
MR and PR Description Drafter this skilltabler/tabler42k—~2kAutomated safety check: PassMIT
Contributor-First PR MergeHKUDS/OpenHarness16k1 repos~847Automated safety check: PassMIT
Create Pull Requestcline/cline70k1 repos~1.6kAutomated safety check: PassApache-2.0
Creating Description For Gh PRredis/jedis12k—~838Automated safety check: PassMIT
Create Pull Request with Work Item IDmakeplane/plane60k—~824Automated safety check: PassAGPL-3.0
React Router Pull Request Creatorremix-run/react-router57k—~2.5kAutomated safety check: PassMIT

Similar skills

  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    DevelopmentAuto-check passed
  • Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.

    70k GitHub starsUsed in 1 repo~1.6k tokens
    DevelopmentAuto-check passed
  • Official

    Generate a clear, concise GitHub PR title and description from the diff between two local git branches, and save it to prDescription.md in the repo root.

    12k GitHub stars~838 tokensUpdated today
    DevelopmentAuto-check passed
  • Opens a pull request for the current branch using the repo's template, a work item ID in the title and a description filled in from the actual diff.

    60k GitHub stars~824 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • React Router Pull Request Creator

    remix-run/react-router

    Packages finished React Router work into a draft pull request: branch, commit, push, a written PR body and the right GitHub labels.

    57k GitHub stars~2.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Pascal Editor PR Opener

    pascalorg/editor

    Opens or refreshes a pull request on pascalorg/editor from the current branch, describing only what the branch's commits and diff actually contain.

    25k GitHub stars~619 tokensUpdated yesterday
    DevelopmentAuto-check passed

More from tabler/tabler

All 21 skills in this repo
  • Starts the right Tabler dev server, keeps it from clashing with builds and verifies changes in the browser before a page or component is handed back.

    42k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Rules for adding or fixing client-side scripts in Tabler's Astro components so the copied preview HTML stays readable, self-contained and runs in the right order.

    42k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Sets the file structure, typing and Data API pattern for writing a new Bootstrap-style JavaScript component class in Tabler's vendored port of Bootstrap's JS.

    42k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Writes or updates the classnames front matter that renders the class table at the end of a Tabler component docs page.

    42k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Guidance for changing the Tabler framework's own JavaScript in core/js: the tabler.js and tabler-theme.js bundles, the Bootstrap port and their tests.

    42k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Tabler Core SCSS

    tabler/tabler

    Rules for adding or changing styles in Tabler's core/scss framework: file placement, custom properties, dark mode, RTL, tests and build gates.

    42k GitHub stars~2k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about MR and PR Description Drafter

What does MR and PR Description Drafter do?

Drafts a merge request or pull request title and body in simple English from the branch's git history and diff against origin/dev, ready to paste into GitLab or GitHub. The skill produces a short title and a markdown body, each in its own fenced block and grounded in real git output rather than guesses. The base is the dev branch: it compares against origin/dev with three-dot syntax so the text reflects only this branch's commits, falls back to local dev if the remote is missing and then asks you.

When should I use MR and PR Description Drafter?

MR and PR Description Drafter fits situations like: writing a pull request description for the current branch; drafting GitLab merge request text for reviewers; summarizing a branch's commits and diff for review; regenerating a PR description without losing issue links.

How do I install MR and PR Description Drafter in Claude Code?

Run `npx skills add tabler/tabler --skill mr-description -a claude-code`. Or copy the skill folder (.agents/skills/mr-description in tabler/tabler) into .claude/skills/mr-description in your project. Claude Code loads it when a task matches its description.

How do I install MR and PR Description Drafter in Codex?

Run `npx skills add tabler/tabler --skill mr-description -a codex`. Or copy the skill folder (.agents/skills/mr-description in tabler/tabler) into .agents/skills/mr-description in your project. Codex loads it when a task matches its description.

Can I use MR and PR Description Drafter in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tabler/tabler --skill mr-description -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mr-description, .gemini/skills/mr-description, .github/skills/mr-description and .opencode/skills/mr-description in your project.

What does MR and PR Description Drafter need to run?

Going by SKILL.md and its folder, MR and PR Description Drafter needs the command-line tools its instructions call (git, gh and curl). Our summary lists: Git, with origin/dev available; GitHub CLI (gh), to read an existing PR.

Does MR and PR Description Drafter access the network?

SKILL.md contains no URLs. Its commands use git, gh and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is MR and PR Description Drafter safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does MR and PR Description Drafter use?

MR and PR Description Drafter is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does MR and PR Description Drafter use?

About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to MR and PR Description Drafter?

Skills that share tags, products or a category with MR and PR Description Drafter: Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars), Create Pull Request (cline/cline, 70k stars), Creating Description For Gh PR (redis/jedis, 12k stars) and Create Pull Request with Work Item ID (makeplane/plane, 60k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains MR and PR Description Drafter?

tabler (a GitHub organization) maintains it in tabler/tabler, which has 41,821 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 6, 2026.

Source: tabler/tabler on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.