agentleFS
KemingHeKemingHe/common-devx/.agents/skills/dot-gitlab-sync/SKILL.md

dot-gitlab-sync

Skill10 starsChanged 6 months agoMITView on GitHub

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".

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. About 0 are common, 8 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈8

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    After editing issue or PR templates in .github/ and needing .gitlab/ updated

    line 21
  2. Very specific:

    After editing issue or MR templates in .gitlab/ and needing .github/ updated

    line 22
  3. Very specific:

    Check ./assets/transformation-rules.md for the platform transformation reference

    line 28
  4. Very specific:

    If not found, search /transformation-rules.md in repository

    line 29
  5. Distinctive:

    If still not found, use the rules documented in this skill's Process section

    line 30
  6. Distinctive:

    If unclear, compare file modification timestamps to suggest a direction

    line 40
  7. Very specific:

    Remove YAML frontmatter (name, about, title, labels fields)

    line 58
  8. Very specific:

    Add YAML frontmatter with appropriate name, about, title, labels fields

    line 66
  9. Distinctive:

    After sync, verify consistency:

    line 73
  10. Distinctive:

    Every issue template in source has a corresponding template in target

    line 75
  11. Distinctive:

    No stale terminology remains (e.g., "PR" in GitLab templates)

    line 77
  12. Very specific:

    Inline formatting: Use _underscore_ for italics, not *single-star*.

    line 87
  13. Distinctive:

    Prose: Do not insert hard newlines to simulate visual wrapping.

    line 89
  14. Distinctive:

    Consistency: Use the same term for the same concept throughout.

    line 91
  15. Distinctive:

    User confirmation: Always confirm sync direction before applying changes

    line 99

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.