Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

GitLab AI Skills

Pipeline Status

Reusable agent skills for GitLab projects. Skills are structured prompt files that AI coding assistants (like pi, OpenCode and Claude Code) can load on demand to gain domain-specific knowledge and workflows.

Table of Contents

What is a Skill?

This repo follows the Agent Skills open format (spec).

A skill is a directory containing a SKILL.md file with:

  • YAML frontmatter — name, description, license, compatibility, and optional metadata fields
  • Markdown content — step-by-step workflows, code examples, reference tables, checklists, and anything else the agent needs

Skills are loaded explicitly by the agent when relevant to a task (e.g. "load the glab skill") rather than being injected into every prompt. This keeps context lean and focused.

Skills

Development Workflow

commit-messages

Use when creating git commits, writing commit messages, or when about to run git commit -- enforces structured commit message format with imperative mood, capitalized subjects, 72-char wrapping, and atomic commits → SKILL.md

gitlab-babysit-mr

Monitor a GitLab MR's pipeline until green. Classifies failures (flaky, master-broken, lint, coverage, real), retries jobs where appropriate, makes light-touch auto-fixes, and posts findings as an MR comment. → SKILL.md

gitlab-mr-description

Write or update a GitLab MR description. Reads the branch diff, drafts structured markdown using GitLab's standard sections, and applies conventions for feature flags, database queries, and local testing matrices. Use when opening a new MR or refreshing an existing description. → SKILL.md

gitlab-pipeline-watch

Watch GitLab MR pipelines and react to state changes → SKILL.md

glab

GitLab workflow automation using glab CLI → SKILL.md

mr-adversarial-review

Use when running a critical, skeptical pass over a GitLab MR — either as the author before requesting human review, or as a reviewer wanting a structured first cut — produces a severity-bucketed findings report (High / Medium / Low / Done well) and posts it as a single comment on the MR. → SKILL.md

mr-review

Review a GitLab merge request - read diffs, analyze changes, present findings, and optionally post comments on the MR → SKILL.md

pushify

Run pre-push lefthook checks and iteratively fix failures (up to 3 iterations, then escalate). Invoke when: (a) about to push and wanting hooks to pass cleanly, (b) git push has just failed on a pre-push hook and the failure needs to be driven to resolution, or (c) preparing a clean working tree without pushing — e.g. before opening a Draft MR for early review. → SKILL.md

stack-changes

Splits a large local change (uncommitted or committed) into a stacked-MR chain. Use when the user asks to split an MR they find too big to review, wants stacked diffs, has sprawling AI-mode work to publish, or types /stack-changes. → SKILL.md

Database

gitlab-clickhouse

Inspect GitLab local ClickHouse tables, schemas, ingestion paths, and data patterns. Use for CH table questions, DESCRIBE TABLE, schema and source-of-truth checks under db/click_house, ingestion debugging, and investigating aggregates, distributions, outliers, or anomalous ClickHouse data in a GitLab GDK environment. → SKILL.md

gitlab-psql

Inspect GitLab GDK PostgreSQL test and development databases with gdk psql. Use for Postgres schema checks, table and index inspection, read-only SQL queries, migration verification, and investigating GitLab application data in local test or development databases. → SKILL.md

Testing

playwright-cli

Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages. → SKILL.md

self-service-performance-testing

Help engineers write performance tests that detect regressions, using k6 for load testing, sitespeed.io for frontend Core Web Vitals, rspec-benchmark for unit-level perf assertions, and Ruby profilers (Stackprof, memory_profiler, derailed_benchmarks, etc.) for investigating slow code paths. Use when the user is adding or changing API endpoints, database queries, critical paths, or frontend pages and needs to decide whether to write a performance test, what kind, or how to integrate it into CI. Also activate when the user mentions load testing, stress testing, response times, benchmarking, performance budgets, CPT, component performance testing, MR pipeline performance testing, profiling slow Ruby code, memory bloat, or wants to run tests against staging - this skill enforces shared infrastructure safety rules. Does not cover APM or debugging production incidents. → SKILL.md

Shell & Environment

run-in-tmux-pane

Run commands in a temporary tmux pane with full interactive zsh environment (login shell, shims, PATH, aliases, TTY). → SKILL.md

write-large-file

Write large files reliably using chunked bash append (>> heredoc) → SKILL.md

Agent Tooling

handoff

Compact the current session into a handoff document so a fresh agent can continue the work. Use when the user says hand off, wrap up, save context, continue later, pick this up in a new session, running low on context, or context is getting long. → SKILL.md

opencode-refine

Iteratively test and refine prompts, skills, and agent configurations using opencode run → SKILL.md

Meta / Authoring

authoring-skills

Author a new agent skill or improve an existing one - write the SKILL.md frontmatter and description, structure the body, and fix skills that under- or over-trigger. Use when asked to create/write a skill, make a SKILL.md, improve/refactor a skill, or fix a skill's description. → SKILL.md

Other

glab-glql

Execute GLQL queries against GitLab projects and groups using glab CLI → SKILL.md

Skills are grouped by category and auto-generated from skill frontmatter. Run python3 scripts/update_skills_list.py to regenerate after adding or modifying skills.

Installing Skills

Note

Windows users: this repo uses symlinks for skill distribution. Before cloning, ensure Git is configured to create real symlinks:

git config --global core.symlinks true

You may also need to enable Developer Mode or run Git as Administrator for symlink creation to work.

.agents/skills/ (Zed, GitLab Duo CLI)

This repo ships .agents/skills/ with a symlink for each skill. That is the cross-tool discovery location defined by the Agent Skills spec, so multiple tools can read it:

  • Zed loads skills from a project-local <worktree>/.agents/skills/ (in a trusted worktree) as well as the global ~/.agents/skills/. Cloning this repo is enough for project-local discovery, no extra step needed. See the Zed skills docs.
  • GitLab Duo CLI discovers global skills from ~/.agents/skills/ (or ~/.gitlab/duo/skills/), behind the experimental --global-skills flag.

For global discovery, symlink the shipped skills into ~/.agents/skills/:

git clone https://gitlab.com/gitlab-org/ai/skills.git ~/gitlab-skills

for skill in ~/gitlab-skills/.agents/skills/*/; do
  ln -s "$skill" ~/.agents/skills/
done

Pi (Package)

This repo ships as a pi package. Install globally or per-project:

# From git (global)
pi install git:gitlab.com/gitlab-org/ai/skills

# From local clone
pi install /path/to/skills

# Per-project (writes to .pi/settings.json)
pi install -l git:gitlab.com/gitlab-org/ai/skills

Pi auto-discovers all skills under skills/ via the package.json manifest. To filter which skills load, use package filtering in .pi/settings.json.

OpenCode (Native)

This repo ships .opencode/skills/ with symlinks for each skill. Clone the repo and OpenCode discovers them automatically — no extra install step needed.

git clone https://gitlab.com/gitlab-org/ai/skills.git ~/gitlab-skills
# OpenCode picks up .opencode/skills/ from the cloned directory

Or symlink into your global OpenCode config:

for skill in ~/gitlab-skills/.opencode/skills/*/; do
  ln -s "$skill" ~/.config/opencode/skills/
done

Via @dgruzd/skills CLI

@dgruzd/skills is a fork of vercel-labs/skills that adds GitLab update detection — without it, skills check and skills update silently skip GitLab-hosted skills. It handles symlinking, multi-agent installs, updates, and discovery with no global install required.

Note

We should strongly consider creating @gitlab/skills or, better yet, upstream GitLab support to vercel-labs/skills.

# Install all skills from this repo globally (for OpenCode)
npx @dgruzd/skills add https://gitlab.com/gitlab-org/ai/skills/-/tree/main/skills --global --agent opencode

# Install all skills from this repo globally (for Claude Code)
npx @dgruzd/skills add https://gitlab.com/gitlab-org/ai/skills/-/tree/main/skills --global --agent claude-code

# Check for updates
npx @dgruzd/skills check

# Apply updates
npx @dgruzd/skills update

# List installed skills
npx @dgruzd/skills list -g

Claude Code Plugin Marketplace

This repo ships as a Claude Code plugin marketplace:

/plugin marketplace add https://gitlab.com/gitlab-org/ai/skills.git
/plugin install glab@gitlab-skills
Plugin Skills Description Version
authoring-skills authoring-skills Author a new agent skill or improve an existing one - write the SKILL.md frontmatter and description, structure the body, and fix skills that under- or over-trigger. Use when asked to create/write a skill, make a SKILL.md, improve/refactor a skill, or fix a skill's description. 0.2.0
commit-messages commit-messages Use when creating git commits, writing commit messages, or when about to run git commit -- enforces structured commit message format with imperative mood, capitalized subjects, 72-char wrapping, and atomic commits 1.0.1
gitlab-babysit-mr gitlab-babysit-mr Monitor a GitLab MR's pipeline until green. Classifies failures (flaky, master-broken, lint, coverage, real), retries jobs where appropriate, makes light-touch auto-fixes, and posts findings as an MR comment. 0.10.0
gitlab-clickhouse gitlab-clickhouse Inspect GitLab local ClickHouse tables, schemas, ingestion paths, and data patterns. Use for CH table questions, DESCRIBE TABLE, schema and source-of-truth checks under db/click_house, ingestion debugging, and investigating aggregates, distributions, outliers, or anomalous ClickHouse data in a GitLab GDK environment. 1.0.1
gitlab-mr-description gitlab-mr-description Write or update a GitLab MR description. Reads the branch diff, drafts structured markdown using GitLab's standard sections, and applies conventions for feature flags, database queries, and local testing matrices. Use when opening a new MR or refreshing an existing description. 1.1.0
gitlab-pipeline-watch gitlab-pipeline-watch Watch GitLab MR pipelines and react to state changes 1.0.0
gitlab-psql gitlab-psql Inspect GitLab GDK PostgreSQL test and development databases with gdk psql. Use for Postgres schema checks, table and index inspection, read-only SQL queries, migration verification, and investigating GitLab application data in local test or development databases. 1.0.1
glab glab GitLab workflow automation using glab CLI 1.10.2
glab-glql glab-glql Execute GLQL queries against GitLab projects and groups using glab CLI 1.0.0
handoff handoff Compact the current session into a handoff document so a fresh agent can continue the work. Use when the user says hand off, wrap up, save context, continue later, pick this up in a new session, running low on context, or context is getting long. 0.5.0
mr-adversarial-review mr-adversarial-review Use when running a critical, skeptical pass over a GitLab MR — either as the author before requesting human review, or as a reviewer wanting a structured first cut — produces a severity-bucketed findings report (High / Medium / Low / Done well) and posts it as a single comment on the MR. 0.1.0
mr-review mr-review Review a GitLab merge request — read diffs, analyze changes, present findings, and optionally post comments on the MR 0.1.0
pushify pushify Run pre-push lefthook checks and iteratively fix failures (up to 3 iterations, then escalate). Invoke when: (a) about to push and wanting hooks to pass cleanly, (b) git push has just failed on a pre-push hook and the failure needs to be driven to resolution, or (c) preparing a clean working tree without pushing — e.g. before opening a Draft MR for early review. 1.1.0
run-in-tmux-pane run-in-tmux-pane Run commands in a temporary tmux pane with full interactive zsh environment (login shell, shims, PATH, aliases, TTY). 1.1.1
self-service-performance-testing self-service-performance-testing Help engineers write performance tests that detect regressions, using k6 for load testing, sitespeed.io for frontend Core Web Vitals, rspec-benchmark for unit-level perf assertions, and Ruby profilers (Stackprof, memory_profiler, derailed_benchmarks, etc.) for investigating slow code paths. Use when the user is adding or changing API endpoints, database queries, critical paths, or frontend pages and needs to decide whether to write a performance test, what kind, or how to integrate it into CI. Also activate when the user mentions load testing, stress testing, response times, benchmarking, performance budgets, CPT, component performance testing, MR pipeline performance testing, profiling slow Ruby code, memory bloat, or wants to run tests against staging - this skill enforces shared infrastructure safety rules. Does not cover APM or debugging production incidents. 0.4.0
stack-changes stack-changes Splits a large local change (uncommitted or committed) into a stacked-MR chain. Use when the user asks to split an MR they find too big to review, wants stacked diffs, has sprawling AI-mode work to publish, or types /stack-changes. 0.1.0
write-large-file write-large-file Write large files reliably using chunked bash append (>> heredoc) 1.0.0

Contributing

To add a new skill:

  1. Create skills/<skill-name>/SKILL.md with required frontmatter (name, description, version)
  2. Run bin/distribute-skill <skill-name> to register it in .opencode/ and .claude-plugin/
  3. Run lefthook run auto-fix to regenerate all derived files (README table, ToC, catalog, plugin manifests)
  4. Run bin/ci-checks to verify CI checks locally.
  5. Commit, push and open a MR

See doc/contributing.md for full details, frontmatter reference, and development setup (including lefthook installation).

Related

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages