Agent skill

Deploy QA

by hmislk in hmislk/hmis

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

GPL-3.0Auto-check: notesDevOps & Cloud

Install Deploy QA

skills CLI
$ npx skills add hmislk/hmis --skill deploy-qa -a claude-code

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

GitHub CLI
$ gh skill install hmislk/hmis deploy-qa --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/deploy-qa .claude/skills/deploy-qa && 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
deploy-qa
GitHub stars
236
Token cost
~2.1k tokens
SKILL.md length
852 words
Files
1
Skills in repo
33
Repo updated
First seen
Licence
GPL-3.0

At a glance

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

  • Works in 3 steps: Check the workflow run's logs (gh run… → Confirm the runner is online: gh api… → qa-home-infra's GOTCHAS.md and the…
  • Deploying/promoting the latest development code to any HMIS QA instance
  • SKILL.md covers Branch Map, Deployment Process — home…, Deployment Process — legacy… and Post-Deployment, plus 1 more section
  • Calls gh and git

What it does

Deploy QA is an agent skill from hmislk/hmis. Sync development into QA/testing environment branches (QA1-QA4, local RH staging) via PR + merge on GitHub. Use when deploying/promoting the latest development code to any HMIS QA instance or the local RH staging environment.

Its SKILL.md is about 2.1k 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 DevOps & Cloud, covering QA and bug reports. It works with Microsoft Azure and GitHub. 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

  • Deploying/promoting the latest development code to any HMIS QA instance
  • The local RH staging environment

Example prompts

  • “/deploy-qa”

Requirements

  • Pre-approved tools (allowed-tools): Bash, Read, Grep

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Check the workflow run's logs (gh run view --log-failed) —
  2. Confirm the runner is online: gh api repos/hmislk/hmis/actions/runners --jq '.runners[] | {name, status}'
  3. qa-home-infra's GOTCHAS.md and the relevant machine's runbooks/

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 these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • git

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

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    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

Deploy QA loads about 2.1k tokens when it runs. Until then it costs about 59 tokens; SKILL.md has 852 words of instructions outside code blocks.

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

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Grep

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). 852 words, ~2,077 tokens.

Download SKILL.mdSave it as .claude/skills/deploy-qa/SKILL.md (or your agent's skills folder).
name
deploy-qa
description
Sync development into QA/testing environment branches (QA1-QA4, local RH staging) via PR + merge on GitHub. Use when deploying/promoting the latest development code to any HMIS QA instance or the local RH staging environment.
allowed-tools
Bash, Read, Grep
disable-model-invocation
true
argument-hint
[qa1|qa2|qa3|qa4|rh-local|all|qa1-azure|qa2-azure|qa3-azure|qa4-azure]

Deploy to QA / Local Staging Environments

QA1-QA4 moved off the Azure "migrated" estate onto home-hosted machines starting 2026-09-12 (tracked in the private hmislk/qa-home-infra repo — MASTER-PLAN.md for status, GOTCHAS.md for detail). The plan is to retire the Azure targets entirely once cutover completes — there will be no more Azure QA environments. qa1-qa4 below now mean the home instances; the old Azure branches are kept only as *-azure arguments until the qa-home-infra Cutover checklist is fully ticked, at which point this skill should be edited again to remove the *-azure section outright.

rh-local is unaffected by any of this — same branch, same workflow, no change.

Branch Map

ArgumentTarget branchNotes
qa1home-qa1hiu-laptop / carecode account — self-hosted runner qa1
qa2home-qa2hiu-laptop / buddhika account — self-hosted runner qa2
qa3home-qa3Desktop (Windows) — self-hosted runner qa3; Desktop also runs nginx for all four public hostnames
qa4home-qa4carecode-laptop (Windows) — self-hosted runner qa4
rh-localrh-local-stagingLocal RH staging — does NOT share prod's ruhunu DB, unaffected by the QA migration
allall four home-qaN + rh-local-stagingRun each independently; one failing doesn't block the rest
qa1-azure … qa4-azure (deprecated)hims-qa1-migrated … hims-qa4-migratedLegacy Azure estate. Use only if a home instance is genuinely unreachable. Will be deleted from this skill once qa-home-infra's Cutover checklist is complete.

Do not use the bare non--migrated/non-home- hims-qa* branches, and never target hims-qaN-home (singular, no trailing -migrated/-azure) — that pattern collides with the repo's "QA Branches Rules" ruleset (PR-only pushes + a check-branch status check that's only ever attached via a PR), so a branch under it can never even be created by a direct push. The correct home branch name is home-qaN, not hims-qaN-home.

Deployment Process — home targets (qa1-qa4, default)

Home branches carry no branch protection (that's deliberate — see the naming note above), and they only ever exist to mirror development and fire the deploy workflow on push. There is no PR/merge step and no check-branch wait:

bash
git fetch origin

# Mirror development onto the target home branch. --force-with-lease is
# safe here even though these branches have no protection: it just means
# the push aborts (instead of silently clobbering) if someone else moved
# the branch since your last fetch.
git push origin origin/development:home-qa1 --force-with-lease

If it prints Everything up-to-date, the branch already matches development — nothing to deploy, skip it (same idea as the Azure flow's "No commits between X and development").

The push itself triggers hims_qa1_home_ci_cd.yml (swap the number for qa2/qa3/qa4). Watch it:

bash
gh run list --repo hmislk/hmis --workflow=hims_qa1_home_ci_cd.yml --limit 1
gh run watch --repo hmislk/hmis <run-id> --exit-status

Each home workflow builds and deploys in one job, entirely on that machine's own self-hosted runner (labels qa1/qa2/qa3/qa4) — no artifact upload/download, so a deploy is a couple of minutes end to end, not the 20-30 minutes an artifact-transfer design costs over a home connection (measured and fixed per-instance; see qa-home-infra's GOTCHAS.md § "deploys take ~30 min on a home link" if a home-qaN workflow still shows the old split-job design — it should have been migrated to the local-build pattern already, but if not, that section has the fix).

Each workflow keeps its own rollback copy of the previously-deployed WAR and auto-restores it if the new deploy or its health check fails — no manual rollback step needed on a failed run, but do read the run's log if one fails rather than assuming it self-healed correctly.

Show full SKILL.md (367 more words)Show less

Deployment Process — legacy Azure targets (qa1-azure … qa4-azure)

Same PR + merge flow as before this migration:

bash
git fetch origin

# 1. Dry-run the merge to catch conflicts before opening a PR
git merge-tree --write-tree origin/hims-qa1-migrated origin/development
# exit code 0 with a tree hash = clean; non-zero / "CONFLICT" text = stop and
# resolve manually before proceeding

# 2. Open the sync PR (development -> target branch)
gh pr create --repo hmislk/hmis --base hims-qa1-migrated --head development \
  --title "chore(sync): merge development into hims-qa1-migrated" \
  --body "Syncs the hims-qa1-migrated QA/testing environment branch with the latest development. QA/testing-only branch — safe to merge."
# If it fails with "No commits between X and development", the branch is
# already in sync — nothing more to do for it.

# 3. Confirm CI passed before merging
gh pr checks <PR-number> --repo hmislk/hmis

# 4. Merge (regular merge commit, keep both branches)
gh pr merge <PR-number> --repo hmislk/hmis --merge --delete-branch=false

GitHub Actions then builds with Maven, deploys to the Azure estate, and restarts Payara. The four migrated workflows use a per-branch concurrency group, so deploying several in one deploy-qa all run doesn't cancel each other.

If a hims-qaN-migrated branch has drifted such that a development-headed PR shows a merge conflict, the fix is not a conflict-resolution branch — check-branch (branch_merge_validation.yml) only allows development as the PR head for a hims-qa*-migrated base, so such a PR always fails CI. An admin must reconcile it: temporarily add a bypass actor to the QA Branches Rules ruleset (id 4778267), then git fetch origin && git push --force-with-lease origin origin/development:hims-qaN-migrated (lease-protected so a concurrent update to the target branch aborts the push instead of being silently discarded), then restore the ruleset to bypass_actors: [].

Post-Deployment

  • Monitor GitHub Actions for build status
  • Check the environment is accessible after deployment (for home targets: the machine's local URL, e.g. http://localhost:9080/qa1 for QA1 — the public qaN.carecode.org URL additionally depends on the Desktop's nginx being correctly wired for that instance)
  • Verify the deployed feature works as expected — log in through the real UI and check a real screen against real data, not just a health-check page render (a stale local DB or a cross-DB credential mismatch has bitten every home instance at least once during setup; see qa-home-infra's GOTCHAS.md if login fails after an otherwise-green deploy)

Troubleshooting

If a home-target deployment fails:

  1. Check the workflow run's logs (gh run view <run-id> --log-failed) — the run happened entirely on that machine's self-hosted runner, so the failure is local (JDBC pool unreachable, Payara admin port down, disk full), not a generic cloud CI issue
  2. Confirm the runner is online: gh api repos/hmislk/hmis/actions/runners --jq '.runners[] | {name, status}'
  3. qa-home-infra's GOTCHAS.md and the relevant machine's runbooks/ file are the first place to check for a known issue

If a legacy Azure-target deployment fails:

  1. Check GitHub Actions logs for build errors
  2. Verify src/main/resources/META-INF/persistence.xml uses ${JDBC_DATASOURCE} / ${JDBC_AUDIT_DATASOURCE} on these branches (not a hardcoded local JNDI name)
  3. Check if the target server is accessible
  4. See QA Troubleshooting Guide (Azure-estate content only — does not cover home targets)

© 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/deploy-qa of hmislk/hmis.

Open the folder on GitHubat commit d5d2020

Compare with similar skills

Deploy QA 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.

Deploy QA compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Deploy QA this skillhmislk/hmis236—~2.1kAutomated safety check: NotesGPL-3.0
Provider Verificationmondoohq/mql411—~3.7kAutomated safety check: PassCustom licence
Azureml K3s Compute Target Setupmicrosoft/physical-ai-toolchain123—~5.7kAutomated safety check: NotesMIT
Testing Course Samplesmicrosoft/ai-agents-for-beginners77k—~1.1kAutomated safety check: NotesMIT
Testing Course Samplesmicrosoft/ai-agents-for-beginners77k—~1.3kAutomated safety check: NotesMIT
Testing Course Samplesmicrosoft/ai-agents-for-beginners77k—~1.3kAutomated safety check: NotesMIT

Similar skills

  • Verify mql provider resource/field changes against real cloud infrastructure.

    411 GitHub stars~3.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Azureml K3s Compute Target Setup

    microsoft/physical-ai-toolchain

    Official

    Set up a K3s cluster on an NVIDIA GPU host, connect it to Azure Arc, and configure Azure ML to use it as a Kubernetes compute target.

    123 GitHub stars~5.7k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Testing Course Samples

    microsoft/ai-agents-for-beginners

    Official

    A skill your agent uses when asked to validate, test, smoke-test, or run the course's notebook and code samples against a live Microsoft Foundry / Azure OpenAI configuration.

    77k GitHub stars~1.1k tokensUpdated 19 days ago
    Testing & QAAuto-check: notes
  • Testing Course Samples

    microsoft/ai-agents-for-beginners

    Official

    Koristite kada se zatraži validacija, testiranje, smoke-test ili pokretanje bilježnica i primjera koda tečaja protiv aktivne Microsoft Foundry / Azure OpenAI konfiguracije.

    77k GitHub stars~1.3k tokensUpdated 19 days ago
    Testing & QAAuto-check: notes
  • Testing Course Samples

    microsoft/ai-agents-for-beginners

    Official

    Use wen dem ask you to validate, test, smoke-test, or run di course notebook and code samples against live Microsoft Foundry / Azure OpenAI configuration.

    77k GitHub stars~1.3k tokensUpdated 19 days ago
    Testing & QAAuto-check: notes
  • Testing Course Samples

    microsoft/ai-agents-for-beginners

    Official

    Gamitin kapag hiniling na i-validate, subukan, smoke-test, o patakbuhin ang notebook ng kurso at mga halimbawa ng code laban sa isang live na Microsoft Foundry / Azure OpenAI na configuration.

    77k GitHub stars~1.5k tokensUpdated 19 days ago
    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
  • Dev Issue

    hmislk/hmis

    Run a GitHub issue through its full lifecycle end-to-end: investigate, discuss the approach, gather test context (department/data), implement, rebuild + local redeploy, verify with Playwright and…

    236 GitHub stars~5k tokensUpdated today
    Auto-check passed

Questions about Deploy QA

What does Deploy QA do?

Sync development into QA/testing environment branches (QA1-QA4, local RH staging) via PR + merge on GitHub. Deploy QA is an agent skill from hmislk/hmis. Sync development into QA/testing environment branches (QA1-QA4, local RH staging) via PR + merge on GitHub.

When should I use Deploy QA?

Deploy QA fits situations like: deploying/promoting the latest development code to any HMIS QA instance; the local RH staging environment.

How do I install Deploy QA in Claude Code?

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

How do I install Deploy QA in Codex?

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

Can I use Deploy QA 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 deploy-qa -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/deploy-qa, .gemini/skills/deploy-qa, .github/skills/deploy-qa and .opencode/skills/deploy-qa in your project.

What does Deploy QA need to run?

Going by SKILL.md and its folder, Deploy QA needs the command-line tools its instructions call (gh and git). Its frontmatter pre-approves these tools: Bash, Read, Grep.

Does Deploy QA access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Deploy QA safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Deploy QA use?

Deploy QA 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 Deploy QA use?

About 2.1k tokens (SKILL.md is roughly 8.3k 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 Deploy QA?

Skills that share tags, products or a category with Deploy QA: Provider Verification (mondoohq/mql, 411 stars), Azureml K3s Compute Target Setup (microsoft/physical-ai-toolchain, 123 stars), Testing Course Samples (microsoft/ai-agents-for-beginners, 77k stars) and Testing Course Samples (microsoft/ai-agents-for-beginners, 77k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Deploy QA?

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.