Skip to content
Skills Library
DevOps & cloud · Automation

dot-gitlab-sync

/dot-gitlab-sync

Sync .github/ and .gitlab/ template directories, applying platform-specific transformations. Use when keeping GitHub and GitLab templates in sync after edits to either directory. Triggers: "sync templates", "sync gitlab", "sync github gitlab", "dot-gitlab-sync".

Repository
common-devx ↗
Licence
MIT
Last repository change
01.06.2026

Assessment and security

90/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content25 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
3
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 01.06.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What it does and when to use it

Sync .github/ and .gitlab/ template directories, applying platform-specific transformations. Use when keeping GitHub and GitLab templates in sync after edits to either directory. Triggers: "sync templates", "sync gitlab", "sync github gitlab", "dot-gitlab-sync".

Triggers from the description

sync templatessync gitlabsync github gitlabdot-gitlab-sync
Original author description

Sync .github/ and .gitlab/ template directories, applying platform-specific transformations. Use when keeping GitHub and GitLab templates in sync after edits to either directory. Triggers: "sync templates", "sync gitlab", "sync github gitlab", "dot-gitlab-sync".

How it works

  1. When to Use This Skill
  2. Asset Resolution
  3. Process
  4. General Doc Constraints
  5. Skill Constraints
Original SKILL.md headings · 91 lines, 769 words
SKILL.md preview
---
name: dot-gitlab-sync
description: |
  Sync .github/ and .gitlab/ template directories, applying platform-specific transformations.
  Use when keeping GitHub and GitLab templates in sync after edits to either directory.
  Triggers: "sync templates", "sync gitlab", "sync github gitlab", "dot-gitlab-sync".
license: MIT
metadata:
  author: KemingHe
  version: "1.0.0"
---

# GitHub-GitLab Template Sync

Synchronize `.github/` and `.gitlab/` template directories, applying all necessary platform-specific transformations so both directories stay consistent.

**Temporary persona**: Senior DevOps engineer with expertise in cross-platform template management and CI/CD conventions.

## When to Use This Skill

- After editing issue or PR templates in `.github/` and needing `.gitlab/` updated
- After editing issue or MR templates in `.gitlab/` and needing `.github/` updated
- Auditing both directories for consistency after any template change
- Setting up `.gitlab/` templates for the first time from existing `.github/` templates

## Asset Resolution

1. Check `./assets/transformation-rules.md` for the platform transformation reference
2. If not found, search `**/transformation-rules.md` in repository
3. If still not found, use the rules documented in this skill's Process section

## Process

### Step 1: Determine Sync Direction

Ask the user:

- **Source**: Which directory was just edited? (`.github/` or `.gitlab/`)
- **Target**: Which directory needs updating?
- If unclear, compare file modification timestamps to suggest a direction

### Step 2: Inventory Templates

List templates in both directories:

- `.github/ISSUE_TEMPLATE/` vs `.gitlab/issue_templates/`
- `.github/pull_request_template.md` vs `.gitlab/merge_request_templates/merge_request_template.md`
- `.github/ISSUE_TEMPLATE/config.yml` (GitHub-only, no GitLab equivalent)

Report any templates that exist in source but not in target (new templates to create) or vice versa (orphaned templates to flag).

### Step 3: Apply Transformations

For each template, apply the platform-specific transformations from the asset reference:

**GitHub to GitLab**:

- Remove YAML frontmatter (`name`, `about`, `title`, `labels` fields)
- Replace "PR" with "MR" and "pull request" with "merge request" in template body
- Replace "issue/PR number" with "issue/MR number" in Related sections
- Copy to GitLab directory structure (lowercase `issue_templates/`, `merge_request_templates/`)
- Skip `config.yml` (no GitLab equivalent)

**GitLab to GitHub**:

- Add YAML frontmatter with appropriate `name`, `about`, `title`, `labels` fields
- Replace "MR" with "PR" and "merge request" with "pull request" in template body
- Replace "issue/MR number" with "issue/PR number" in Related sections
- Copy to GitHub directory structure (uppercase `ISSUE_TEMPLATE/`, root-level PR template)

### Step 4: Validate

After sync, verify consistency:

- Every issue template in source has a corresponding template in target
- Template body content matches (modulo platform transformations)
- No stale terminology remains (e.g., "PR" in GitLab templates)
- Frontmatter is present in GitHub templates and absent in GitLab templates

Report clean status or list remaining discrepancies.

## General Doc Constraints

Apply to all generated output. If a discovered template deviates from any rule (e.g., uses emojis semantically, uses a different bullet convention), note the deviation explicitly and confirm with the user before treating it as a permitted exception.

- **Characters**: QWERTY keyboard typeable only - no smart quotes, emojis, or special Unicode anywhere. In prose, do not use em-dashes or em-dash substitutes (`--`, ` -- `); use ` - ` (space-dash-space) for clause separation instead. Exceptions: `↑` for ToC navigation; Unicode box drawing characters for `tree`-style directory rendering.
- **Inline formatting**: Use `_underscore_` for italics, not `*single-star*`. Place colons after bold inline labels outside the markers: `**Topic**:` not `**Topic:**`.
- **Bullets**: Use `-` for all unordered lists; one bullet per complete thought; never wrap a bullet's content mid-sentence onto a continuation line - split into separate bullets if too long or multi-thought. Nested sub-bullets for component grouping are permitted. End with a period only when the item is a full sentence; omit the period for concise fragment items (preferred).
- **Prose**: Do not insert hard newlines to simulate visual wrapping. Keep each prose paragraph on one continuous physical line and let editors or viewers wrap it visually. Exception: commit message bodies use one sentence per line for `git log` readability.
- **Template hygiene**: Delete `(optional)` and any parenthetical conditional label (e.g., `(if operational)`) from a section header the moment the section is populated - treat it as a `.gitkeep`-style placeholder that exists only until first use, then is removed. Omit the entire section (header and body) when unused. Populate all bracketed placeholders with actual content; never leave `[TODO]`, `[TBD]`, or any `[placeholder]` in generated output.
- **Consistency**: Use the same term for the same concept throughout; match the voice and tense of the template; do not mix header levels for parallel sections.
- **KISS and DRY**: Each section and bullet conveys unique information - no redundancy or overlap.

> General Doc Constraints v1.2.0 - KemingHe/common-devx

## Skill Constraints

- **Templates only**: Sync issue and PR/MR templates; do not touch CI/CD configs, workflows, or other dot-dir contents
- **User confirmation**: Always confirm sync direction before applying changes
- **Preserve intent**: Transformations must preserve the template's purpose and structure; only platform-specific elements change
- **config.yml**: GitHub-only; never create a GitLab equivalent, never delete from GitHub during GitLab-to-GitHub sync
Files in this package (3)
  • README.md 1 KB
  • SKILL.md 6 KB
  • assets/transformation-rules.md 2 KB

Versions

The database has no other skills named dot-gitlab-sync.

Database snapshot: 13.11.2026 · package version 2ef9932c7628 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 90gitlab-ci
    GitLab CI/CD流水线开发专家助手。当用户需要编写.gitlab-ci.yml、配置GitLab Runner与标签策略、管理缓存与artifacts、迁移only/except到rules、设计Docker构建或多环境部署流水线时调用。
  • 100ci-cd-gitlab-ci-pipelines
    Use this skill when building multi-stage continuous integration and deployment pipelines using GitLab CI/CD .gitlab-ci.yml.
  • 100gitlab-ci-patterns
    Provides GitLab CI/CD pipeline patterns including stages, jobs, artifacts, caching, and environment deployments. Use when working with .gitlab-ci.yml or when the user mentions GitLab CI or GitLab pipelines.
  • 100gitlab-ci-basics
    Manage gitlab ci basics operations. Auto-activating skill for DevOps Basics. Triggers on: gitlab ci basics, gitlab ci basics Part of the DevOps Basics skill category. Use when working with gitlab ci basics functionality. Trigger with phrases like "gitlab ci basics", "gitlab basics", "gitlab".
  • 100ci-cd-pipeline
    Use when designing, debugging, or fixing CI/CD pipelines — GitHub Actions, GitLab CI, Jenkins
  • 100gitlab-ci
    Expert GitLab CI/CD assistance covering .gitlab-ci.yml, stages, artifacts, caching, GitLab Runners, and Auto DevOps. Use when configuring continuous integration and deployment pipelines on GitLab.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.