gitlab-contribution
gitlab-contribution is a project in GitLab.com’s Public Sector group. It packages two things as Claude Code skills: a pinned, byte-faithful vendored copy of GitLab’s own gitlab-org/ai/skills, 19 skills covering glab CLI usage, commit-message format, MR-description structure, review-reply mechanics, pipeline watching, GLQL, and more. It adds one authored skill, skills/gitlab-contribution.
That authored skill teaches an agent how to contribute to a GitLab project, especially the gitlab-org/gitlab monorepo, from an environment with no GitLab Development Kit (GDK): a controlled-egress or self-managed environment where a GDK checkout isn’t an option. My own itch was simpler: I want several simulations running at once, so I work against cloud VMs instead of one local GDK, and contributing from there means filing issues, opening merge requests (including docs-only MRs through the API), surviving the monorepo’s clone and pipeline behavior, and responding to review, whether I’m the one doing it or an agent is doing it for me. A sibling project, gitlab-simulation, supplies those environments: a running dev and caproni GitLab instance plus source-tree tooling that the authored skill routes GDK-shaped tasks to.
Two flows share the repository: vendoring the upstream skill tree in, and handing what’s vendored, plus the authored skill, to a contributor. An agent consumes both through a Claude Code plugin install or a SKILL_HOMES-style harness pointed at the two skill trees, which hold plain SKILL.md files, the portable Agent Skills layout that made a dedicated registry tool like rune unnecessary once it settled. CI’s static job checks the vendored tree, its symlinks, and the authored scripts offline; the skillspector scan itself runs manually, and the vendored tree ships on a reviewed allowlist rather than a clean scan.
It sits in the same Public Sector group as egress, another project for the self-managed, controlled-egress case, this one asking what a GitLab AI-agent skill needs to assume when a GDK isn’t on the table.