claude/skills/gitlab-mr/SKILL.md
Create GitLab merge requests with intelligent title and description generation from git commits. Supports stacked MRs by targeting the parent branch (falls back to main). Use when you want to create an MR and need to generate a clear title following git conventions and auto-populate the description from commit messages.
npx skillsauth add b-galati/dotfiles gitlab-mrInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
git branch --show-currentgit parentsglab api user | jq -r .usernameDefault values can be customized when invoking the skill. Current defaults:
| Option | Default | Description |
|------------------|------------------------|----------------------------------|
| --assignee | (current glab user) | GitLab username to assign the MR |
| --labels | (dynamic, see below) | Comma-separated labels |
| --reviewer | sa_ai_user | Reviewer username |
| --target | (dynamic, see below) | Target/base branch |
Use the first parent branch from the Context section. Fall back to main if there are no parents. This enables stacked merge requests.
The label ai-generated is always included. Additional labels depend on the current branch name:
| Branch prefix | Labels |
|---------------|--------------------------------|
| back- | ai-generated,Back,guild-back |
| expand- | ai-generated,Back,squad-expand |
| (other) | ai-generated |
If a review app should be deployed, add the label "deploy::review-app".
Commit messages follow a Conventional Commit-inspired format:
<type>[(<Optional branch name>)]: <title>
<Optional body>
Types (required):
build: "🏗️ Builds"chore: "🛠️ Chores"ci: "👷 CI"docs: "📚 Documentations"feat: "✨ Features"fix: "🐛 Fixes"other: "❓ Others"perf: "🚀 Performance Improvements"refactor: "📦 Code Refactoring"revert: "🗑️ Reverts"style: "💄 UI"test: "🧪 Tests"Examples:
Before generating the description, check for templates in .gitlab/merge_request_templates/:
Default.md exists → use it automatically (no prompt needed)When a template is used, append it before the generated description (separated by a blank line). Do not replace the generated description — the template is additional content.
Get commits between the target branch and HEAD:
git log TARGET_BRANCH..HEAD --pretty=format:"%s%n%b"
Title:
feat(expand-100): multiple improvements)Description:
glab mr create \
-a "ASSIGNEE" \
-l "LABELS" \
--reviewer "sa_ai_user" \
--remove-source-branch \
--push \
-b "TARGET_BRANCH" \
-t "TITLE" \
-d "$(cat <<'EOF'
DESCRIPTION
EOF
)" \
-y
glab CLI installed and authenticatedtesting
TDD workflow - Write a failing test, then implement Super Green
development
OpenAPI specification expert for creating, improving, and validating clear, self-documenting API specs. Use when designing, reviewing, or refactoring OpenAPI/Swagger specs for clarity, consistency, and usability.
testing
Implement behaviors from a specification file produced by the local-create-spec skill. Use when the user says 'implement behaviors from ...', 'implement the spec', 'implement spec ...', or wants to implement a .specs/ markdown file containing Given/When/Then behaviors with checkboxes.
tools
Implement a Linear issue by breaking its acceptance criteria into tasks, implementing each with TDD, and updating the Linear issue status when done. Use when the user says 'implement issue ...', 'implement TEAM-123', or wants to implement a Linear issue.