Agent skill

Merge Gate

by hmislk in hmislk/hmis

Gate one or more open PRs before merge: CI check, then a code-level regression/business-rule review, then (only if that's clean) end-to-end Playwright verification of the PR's own workflow(s) plus…

GPL-3.0Auto-check passedTesting & QA

Install Merge Gate

skills CLI
$ npx skills add hmislk/hmis --skill merge-gate -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install hmislk/hmis merge-gate --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/hmislk/hmis.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/merge-gate .claude/skills/merge-gate && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
merge-gate
GitHub stars
236
Token cost
~4k tokens
SKILL.md length
1,952 words
Files
1
Skills in repo
33
Repo updated
First seen
Licence
GPL-3.0

At a glance

Gate one or more open PRs before merge: CI check, then a code-level regression/business-rule review, then (only if that's clean) end-to-end Playwright verification of the PR's own workflow(s) plus…

  • Works in 5 steps: CI gate → Fetch and checkout → Code-level regression review → …
  • Asked to gate PR(s) for merge
  • SKILL.md covers Arguments, Multi-PR handling, Pipeline (per PR) and PR status comment, plus 3 more sections
  • Calls gh, git and jq

What it does

Merge Gate is an agent skill from hmislk/hmis. Gate one or more open PRs before merge: CI check, then a code-level regression/business-rule review, then (only if that's clean) end-to-end Playwright verification of the PR's own workflow(s) plus two fixed baseline checks. Posts one top-level status comment per PR per run (PASSED or BLOCKED-) so the outcome is visible on GitHub, not just in chat. Use when asked to "gate PR(s) for merge", "run merge-gate on N", "check these PRs are safe to merge", or before merging any PR that touches shared/core code (API…

Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Browser testing. It works with GitHub and Playwright. The repository describes itself as: This is an Open Source Java EE based Hospital Information Management System. The licence is GPL-3.0.

When your agent uses it

  • Asked to gate PR(s) for merge
  • Run merge-gate on N
  • Check these PRs are safe to merge
  • Before merging any PR that touches shared/core code (API

Example prompts

  • “s clean) end-to-end Playwright verification of the PR”
  • “gate PR(s) for merge”
  • “run merge-gate on N”
  • “/merge-gate”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. CI gate
  2. Fetch and checkout
  3. Code-level regression review
  4. Identify affected workflows
  5. End-to-end verification

What it can do on your machine

Read from SKILL.md and the folder at commit d5d2020. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • git
    • jq

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh and git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Merge Gate loads about 4k tokens when it runs. Until then it costs about 151 tokens; SKILL.md has 1,952 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~151
When it runs · the whole SKILL.md, loaded when a task matches
~4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from hmislk/hmis at commit d5d2020, republished under its GPL-3.0 licence (© hmislk). 1,952 words, ~4,036 tokens.

Download SKILL.mdSave it as .claude/skills/merge-gate/SKILL.md (or your agent's skills folder).
name
merge-gate
description
Gate one or more open PRs before merge: CI check, then a code-level regression/business-rule review, then (only if that's clean) end-to-end Playwright verification of the PR's own workflow(s) plus two fixed baseline checks. Posts one top-level status comment per PR per run (PASSED or BLOCKED-*) so the outcome is visible on GitHub, not just in chat. Use when asked to "gate PR(s) for merge", "run merge-gate on #N", "check these PRs are safe to merge", or before merging any PR that touches shared/core code (API, billing, pharmacy) where a regression could silently break unrelated functions.
argument-hint
<pr-number> [pr-number...]

Merge Gate (HMIS)

Full design rationale: developer_docs/git/2026-08-22-merge-gate-skill-design.md.

This exists because a past API-improvement PR shipped an NPE that broke all API functions, and neither CodeRabbit nor manual review caught it before merge. This skill adds a code-level review pass plus a live end-to-end sweep — including two fixed baseline checks unrelated to the PR's own scope — as a safety net for that class of regression.

This skill never merges anything. It ends with a report telling you which PRs are ready for your final review and merge.

Arguments

  • $0, $1, ... — one or more PR numbers (not issue numbers). If a number given doesn't resolve to an open PR, say so and ask for the correct PR number rather than guessing which PR closes an issue.

Multi-PR handling

Process PRs sequentially, one fully through the pipeline (or blocked) before starting the next — only one branch/deployment can be live on local Payara at a time. Keep a running outcome table and print the final report after the last PR.

Pipeline (per PR)

0. CI gate
bash
gh pr checks <PR>
  • Failing → record BLOCKED-CI, post the PR status comment (see § PR status comment), stop this PR, move to the next.
  • Pending → ScheduleWakeup ~270s (same cadence as dev-issue §14), recheck once. Still not green → BLOCKED-CI, post the comment, stop this PR.
  • Passing → continue.
1. Fetch and checkout
bash
git fetch origin
git checkout -- src/main/resources/META-INF/persistence.xml
gh pr checkout <PR>

The git checkout -- discards the previous PR's uncommitted local-JNDI edit first — skip it and the branch switch can fail or behave inconsistently whenever the committed persistence.xml differs between branches. Safe no-op on the very first PR (nothing to discard).

Then restore persistence.xml to local JNDI (jdbc/coop / jdbc/ruhunuAudit) per CLAUDE.md, left unstaged.

Phase 1 — Code-level regression review

Invoke the code-review skill against this PR at high effort with --comment, so findings post directly to the PR (reuses the existing review engine instead of duplicating its logic).

Before classifying anything, run the fallback below to confirm every finding the sub-agent claims to have posted actually landed — do this before the classification step decides to record BLOCKED-REVIEW and stop, not after. Running it after the stop decision defeats the point: by the time you've stopped this PR and moved to the next one, an unverified silent drop stays silently dropped.

Fallback — verify every finding actually landed as a comment

code-review --comment posts via GitHub's PR-review-comment API, which can only anchor a comment on a line that appears in this PR's own diff. A finding whose defect lives in a file the PR doesn't touch (e.g. a downstream method the new code merely calls) has nowhere to anchor — and can be silently dropped instead of posted, with no error surfaced back. Confirmed happening in practice (PR #23082, 2026-08-22: two blocking findings were returned by the sub-agent as "posted" but never actually appeared on the PR, because one lived in a file outside the diff and the anchor silently failed).

Before trusting the sub-agent's "posted successfully" claim, verify for every finding it returned (classification happens after this, once you know what's actually posted). Get the actual poster identity first (don't hardcode a username or just exclude coderabbitai[bot] — an unrelated human/bot comment at the same path:line would then be misread as confirmation), and always paginate — the default page size silently truncates past ~30 comments, which would make a real PR with substantial CodeRabbit + human discussion look falsely under-verified (or mask a genuinely missing finding sitting past the cutoff):

gh api --jq only accepts one filter-string argument — piping --arg and its value straight after it fails with accepts 1 arg(s), received 4. Pipe to a standalone jq instead:

bash
me=$(gh api user --jq '.login')
gh api --paginate repos/hmislk/hmis/pulls/<PR>/comments | \
  jq --arg me "$me" '.[] | select(.user.login == $me) | "\(.path):\(.line)"'

Cross-check this list against the findings returned. For any finding missing from it (blocking or not — verify all of them, since classification hasn't happened yet):

  1. Check whether its file is part of the PR's diff at all: gh pr diff <PR> --name-only.
  2. File is in the diff, but the exact line isn't inside a commentable hunk (GitHub only allows anchoring within a hunk's context window — posting will fail with "could not be resolved"): get the real hunk boundaries with gh api repos/hmislk/hmis/pulls/<PR>/files --jq '.[] | select(.filename=="<path>") | .patch' and anchor on the nearest line that's actually inside it instead.
  3. File isn't in the diff at all: anchor the comment on the calling line in a file that IS in the diff (typically the new code that invokes the problematic downstream method) and cite the true file:line of the actual defect explicitly in the comment body text, since the anchor line is just the closest available hook, not the defect's real location.
  4. No related diff line exists at all: don't force a mis-anchored comment. Fold the finding into the top-level PR status comment instead (see § PR status comment) — that comment isn't line-anchored, so it can reference any file/line freely.

Post any recovered findings with gh api repos/hmislk/hmis/pulls/<PR>/comments -f commit_id=<head-sha> -f path=<path> -F line=<n> -f side=RIGHT -f body=<text> (head SHA from gh pr view <PR> --json commits -q '.commits[-1].oid'). Re-run the verification query once more before classifying anything — don't classify or stop on an unconfirmed assumption that everything posted.

Classify

Now that every finding is confirmed actually posted (or folded into the status comment per case 4 above), classify what the sub-agent returned:

CategoryEffect
correctness, regression, business-rule violationBlocking. Inline comments are already confirmed posted; summarize in chat; post the PR status comment (see § PR status comment); record BLOCKED-REVIEW; stop this PR — do not run Phase 2/3.
style, simplification, efficiency, reuse-onlyNon-blocking. Note in chat, continue to Phase 2 regardless.

No findings at all → continue to Phase 2.

Phase 2 — Identify affected workflows
bash
gh pr diff <PR> --name-only

Use the Explore agent to map the changed files (controllers, services, entities, XHTML, REST resources) to the user-facing pages/flows that exercise them. Produce a short concrete list (e.g. "GRN receipt flow", "Stock Transfer approval"). Only pause for AskUserQuestion if the mapping is genuinely ambiguous (e.g. a shared utility touched by many unrelated flows) — don't ask when the diff makes the affected flow obvious.

2a. Build and local redeploy

Per playwright-e2e §0a / dev-issue §6:

powershell
$env:JAVA_HOME="C:\Program Files\Eclipse Adoptium\jdk-11.0.23.9-hotspot"
& "D:\Program Files\NetBeans-18\netbeans\java\maven\bin\mvn.cmd" clean package -DskipTests
& "D:\Payara\bin\asadmin.bat" redeploy --name rh "D:\Development\2024\hmis\target\rh-3.0.0.war"

Check the server log for deployment errors before proceeding. If mvn clean package fails, asadmin redeploy fails, or the server log shows deployment errors, stop this PR here: capture the failure output, redact it of credentials/connection strings/hostnames (same rule as § Phase 3's evidence redaction), post the PR status comment (see § PR status comment) with the redacted excerpt, record BLOCKED-BUILD, and move to the next PR — don't attempt Phase 3 against a stale or undeployed build.

Show full SKILL.md (883 more words)Show less
Phase 3 — End-to-end verification

Run via the playwright-e2e skill (login, department selection, AJAX-aware waits, DB verification per its workflow doc). Reach every page through the menus, never by URL — a URL-loaded page renders against uninitialised session state and can fail in ways no user can reach (playwright-e2e §2). For every PR that reaches this phase, run all three of the following — the two baseline checks are fixed and always run, regardless of what the PR touches, because the motivating incident broke core flows unrelated to the changed code:

  1. PR-specific workflow(s) from Phase 2, using real test data (pick department/records the same way dev-issue §4 does — confirm with AskUserQuestion rather than guessing).
  2. Fixed baseline A — pharmacy retail sale → COGS variance. Make a pharmacy retail sale, then open Reports → Inventory Reports → Cost Of Good Sold (/reports/inventoryReports/cost_of_goods_sold) and confirm no unexplained variance. This report's Process button can silently no-op or show stale results — poll for AJAX/query completion twice, a few seconds apart, before reading the grid (see the project's COGS-report testing-gotcha memory).
  3. Fixed baseline B — OPD sale → Cashier Details. Log into an OPD department, make an OPD sale, then open Reports → Cashier Reports → Cashier Details (/reports/cashier_reports/cashier_detailed) and confirm the sale appears correctly for the cashier/shift used.

A failure in any of the three (PR workflow or either baseline) is a real bug the gate caught: capture evidence (screenshots, DB query output) into the project tmp/ folder, record BLOCKED-E2E, and stop this PR. Redact patient identifiers, credentials, tokens, and other sensitive fields from that evidence before it leaves tmp/ (referenced in chat, posted to a PR comment, etc.) — same rule as dev-issue §2a/§10. Do not attempt a fix inline — report it and discuss next steps (per CLAUDE.md "discuss uncertainties"); fixing is separate dev-issue work. Post the PR status comment (see § PR status comment) describing what failed, with the evidence redacted.

All three pass → record PASSED and post the PR status comment (see § PR status comment).

PR status comment

Post exactly one top-level PR comment per PR per run, at whatever terminal state that PR's pipeline reaches (whether it stops early or runs all the way to PASSED). This is an intentional, carved-out exception to the general "never post top-level PR comments, only reply to reviewer threads" rule — merge-gate is reporting its own factual outcome, not review opinion needing threading, so a fresh top-level comment each run is correct, not noise. Post via:

bash
gh pr comment <PR> --body "..."

The comment is public, like everything else in this repo. Keep hospital data out of it — no production record identifiers, affected-record counts, schema names or patient/staff names in the E2E evidence or the failure excerpts. See What May Go Into a GitHub Issue, PR, or Comment.

If merge-gate is re-run on the same PR later (e.g. after the author pushed fixes), post a new comment rather than editing/deleting the previous one — the history of gate runs staying visible is the point.

Use an outcome-specific template so a PR author or a merger who wasn't in this session gets enough context without opening the chat transcript:

PASSED:

markdown
## 🚦 Merge Gate: PASSED

**Tested:**
- PR workflow: <short description of what was exercised>
- Baseline A (pharmacy sale → COGS variance): ✅ no unexplained variance
- Baseline B (OPD sale → Cashier Details): ✅ sale appears correctly

Ready for final human review and merge.

BLOCKED-CI: covers both an explicit check failure and a check that never went green after the recheck — use wording that fits either.

markdown
## 🚦 Merge Gate: BLOCKED — CI not passing

CI did not reach a passing state: <failed check name and run URL, or
"still pending after the ~270s recheck">. Merge-gate stopped before the
code review pass.

BLOCKED-REVIEW: keep this one short — the inline --comment findings from Phase 1 already carry the detail. Covers correctness, regression, AND business-rule-violation findings, not just regressions — say "blocking findings," not "regressions."

markdown
## 🚦 Merge Gate: BLOCKED — blocking code-review findings

See the inline comments above for specifics. Merge-gate stopped here;
Phase 2/3 (build, E2E, baselines) did not run.

BLOCKED-BUILD: redact the failure output the same way as the E2E evidence rule below — Maven/Payara/asadmin output can contain JDBC connection strings, JNDI names, hostnames, or other values CLAUDE.md's credentials rule forbids ever leaving the machine. Redact before this excerpt goes anywhere near gh pr comment, and cap its length.

markdown
## 🚦 Merge Gate: BLOCKED — build/deploy failed

<relevant tail of the compile or asadmin failure output, redacted of
credentials, connection strings, hostnames, and other sensitive values>

Merge-gate could not verify this PR end-to-end because the build/deploy
step itself failed.

BLOCKED-E2E: the description below is inline, redacted prose — not a link or attachment. Raw evidence (screenshots, DB output) stays local in tmp/ and is never uploaded anywhere; there's no attachment mechanism in this workflow. Don't imply otherwise in the Final report either (see § Final report).

markdown
## 🚦 Merge Gate: BLOCKED — end-to-end verification found a bug

**Failed:** <PR workflow name, or "Baseline A: COGS variance", or
"Baseline B: Cashier Details">

<redacted description of what went wrong — no patient identifiers,
credentials, or tokens>

This was not auto-fixed — it needs discussion (per CLAUDE.md "discuss
uncertainties") as separate `dev-issue` work.

Final report

After all PRs are processed, print a table:

PR #OutcomeWorkflows testedNotes/links

Outcome is one of PASSED, BLOCKED-CI, BLOCKED-REVIEW, BLOCKED-BUILD, BLOCKED-E2E. Every row's Notes/links cell — PASSED included — should include the URL of that PR's status comment (see § PR status comment); this is the durable GitHub record, the table itself is just a summary for this chat. For every PASSED row, additionally say it's ready for the user's final review and merge. For blocked rows, the status comment itself points to whatever's relevant: the Phase 1 inline comments, the (redacted) build/deploy failure excerpt, or a redacted description of the Phase 3 failure — evidence never leaves tmp/ as a link or attachment, only as inline redacted prose (see § PR status comment). Every PR should already have its status comment posted by the time this table prints. Never merge, approve, or request changes on the user's behalf.

Hygiene

  • Discard and restore persistence.xml to local JNDI around every PR's checkout (see step 1), left unstaged — repeat for each PR in the batch, not just the first.
  • Screenshots/evidence go to the project tmp/ folder (never system /tmp/), per CLAUDE.md — redacted of patient/sensitive data before they leave tmp/.

Required permissions

Same as playwright-e2e (full mcp__playwright__* set, Maven + asadmin, mysql read access) plus gh for PR checkout/checks/diff/comment (gh pr comment, per § PR status comment) and the Agent tool for the Phase 2 Explore dispatch.

© hmislk, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/merge-gate of hmislk/hmis.

Open the folder on GitHubat commit d5d2020

Compare with similar skills

Merge Gate next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Merge Gate compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Merge Gate this skillhmislk/hmis236—~4kAutomated safety check: PassGPL-3.0
Reprovaadin/web-components582—~1.3kAutomated safety check: PassNone
Reprovaadin/flow-components129—~1.3kAutomated safety check: PassNone
Site Bugfixdebs-obrien/debbie.codes142—~960Automated safety check: PassNone
Hlive TestingSamHennessy/hlive101—~1.2kAutomated safety check: PassMIT
Handsontable Performance Testinghandsontable/handsontable22k—~3.4kAutomated safety check: PassCustom licence

Similar skills

  • Repro

    vaadin/web-components

    Reproduce a Vaadin web component bug from a GitHub issue in vaadin/web-components.

    582 GitHub stars~1.3k tokensUpdated today
    Testing & QAAuto-check passed
  • Repro

    vaadin/flow-components

    Reproduce a Vaadin Flow component bug from a GitHub issue in vaadin/flow-components or a component-specific issue in vaadin/flow.

    129 GitHub stars~1.3k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Site Bugfix

    debs-obrien/debbie.codes

    Reproduce and fix a debbie.codes site bug with browser proof and a Playwright regression when useful.

    142 GitHub stars~960 tokensUpdated 7 days ago
    Testing & QAAuto-check passed
  • Hlive Testing

    SamHennessy/hlive

    Write browser tests for HLive pages using the hlivetest package (github.com/SamHennessy/hlive/hlivetest) and Playwright.

    101 GitHub stars~1.2k tokensUpdated 3 mo ago
    Testing & QAAuto-check passed
  • Handsontable Performance Testing

    handsontable/handsontable

    Guide to Handsontable's performance-tests package: Playwright scenarios measured through CDP traces and compared against golden baselines taken from the develop branch.

    22k GitHub stars~3.4k tokensUpdated today
    Testing & QAAuto-check passed
  • Record E2E Gif

    lablup/backend.ai-webui

    Record Playwright e2e tests as one GIF per test case (video → ffmpeg palette GIF) and return a markdown table for a PR description.

    133 GitHub stars~907 tokensUpdated today
    Testing & QAAuto-check: notes

More from hmislk/hmis

All 33 skills in this repo
  • API Usage

    hmislk/hmis

    Reference for calling existing HMIS REST APIs. An agent skill from hmislk/hmis.

    236 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Application configuration options reference for the HMIS project.

    236 GitHub stars~474 tokensUpdated today
    Auto-check passed
  • Caveman

    hmislk/hmis

    Ultra-compressed communication mode. An agent skill from hmislk/hmis.

    236 GitHub starsUsed in 21 repos~946 tokens
    Auto-check passed
  • Database Guide

    hmislk/hmis

    MySQL database development guide for the HMIS project. An agent skill from hmislk/hmis.

    236 GitHub stars~664 tokensUpdated today
    Auto-check passed
  • Demo Video

    hmislk/hmis

    A skill your agent uses when asked to make a demo, training, how-to or tutorial video with sound or voice-over showing an HMIS function or configuration (e.g.

    236 GitHub stars~3.9k tokensUpdated today
    Auto-check passed
  • Deploy QA

    hmislk/hmis

    Sync development into QA/testing environment branches (QA1-QA4, local RH staging) via PR + merge on GitHub.

    236 GitHub stars~2.1k tokensUpdated today
    Auto-check: notes

Categories

Questions about Merge Gate

What does Merge Gate do?

Gate one or more open PRs before merge: CI check, then a code-level regression/business-rule review, then (only if that's clean) end-to-end Playwright verification of the PR's own workflow(s) plus…. Merge Gate is an agent skill from hmislk/hmis. Gate one or more open PRs before merge: CI check, then a code-level regression/business-rule review, then (only if that's clean) end-to-end Playwright verification of the PR's own workflow(s) plus two fixed baseline checks.

When should I use Merge Gate?

Merge Gate fits situations like: asked to gate PR(s) for merge; run merge-gate on N; check these PRs are safe to merge; before merging any PR that touches shared/core code (API.

How do I install Merge Gate in Claude Code?

Run `npx skills add hmislk/hmis --skill merge-gate -a claude-code`. Or copy the skill folder (.claude/skills/merge-gate in hmislk/hmis) into .claude/skills/merge-gate in your project. Claude Code loads it when a task matches its description.

How do I install Merge Gate in Codex?

Run `npx skills add hmislk/hmis --skill merge-gate -a codex`. Or copy the skill folder (.claude/skills/merge-gate in hmislk/hmis) into .agents/skills/merge-gate in your project. Codex loads it when a task matches its description.

Can I use Merge Gate in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hmislk/hmis --skill merge-gate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/merge-gate, .gemini/skills/merge-gate, .github/skills/merge-gate and .opencode/skills/merge-gate in your project.

What does Merge Gate need to run?

Going by SKILL.md and its folder, Merge Gate needs the command-line tools its instructions call (gh, git and jq).

Does Merge Gate access the network?

SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Merge Gate safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Merge Gate use?

Merge Gate is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Merge Gate use?

About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Merge Gate?

Skills that share tags, products or a category with Merge Gate: Repro (vaadin/web-components, 582 stars), Repro (vaadin/flow-components, 129 stars), Site Bugfix (debs-obrien/debbie.codes, 142 stars) and Hlive Testing (SamHennessy/hlive, 101 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Merge Gate?

hmislk (a GitHub organization) maintains it in hmislk/hmis, which has 236 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on October 8, 2026.

Source: hmislk/hmis on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.