Playwright Java QA Review
Tahanima/playwright-java-test-automation-architecture
Reviews Playwright-Java test code in phases, checking page-object architecture, then using a Playwright MCP tool to verify shaky locators live.
Deep-review one open PR, apply the resulting fixes, verify each one live (build → local redeploy → Playwright + DB), commit, push, drive CI to green, then reply to the review threads.
$ npx skills add hmislk/hmis --skill review-and-fix -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hmislk/hmis review-and-fix --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/hmislk/hmis.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/review-and-fix .claude/skills/review-and-fix && rm -rf skills-srcUse ~/.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/
Install the "review-and-fix" agent skill from https://github.com/hmislk/hmis/tree/development/.claude/skills/review-and-fix into .claude/skills/review-and-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-and-fix", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hmislk/hmis/tree/development/.claude/skills/review-and-fixType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hmislk/hmis --skill review-and-fix -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hmislk/hmis review-and-fix --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hmislk/hmis.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/review-and-fix .agents/skills/review-and-fix && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "review-and-fix" agent skill from https://github.com/hmislk/hmis/tree/development/.claude/skills/review-and-fix into .agents/skills/review-and-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-and-fix", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hmislk/hmis --skill review-and-fix -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hmislk/hmis review-and-fix --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hmislk/hmis.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/review-and-fix .cursor/skills/review-and-fix && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "review-and-fix" agent skill from https://github.com/hmislk/hmis/tree/development/.claude/skills/review-and-fix into .cursor/skills/review-and-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-and-fix", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hmislk/hmis.git --path .claude/skills/review-and-fix--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hmislk/hmis --skill review-and-fix -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hmislk/hmis review-and-fix --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hmislk/hmis.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/review-and-fix .gemini/skills/review-and-fix && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "review-and-fix" agent skill from https://github.com/hmislk/hmis/tree/development/.claude/skills/review-and-fix into .gemini/skills/review-and-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-and-fix", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hmislk/hmis review-and-fixInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hmislk/hmis --skill review-and-fix -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hmislk/hmis.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/review-and-fix .github/skills/review-and-fix && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "review-and-fix" agent skill from https://github.com/hmislk/hmis/tree/development/.claude/skills/review-and-fix into .github/skills/review-and-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-and-fix", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hmislk/hmis --skill review-and-fix -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hmislk/hmis review-and-fix --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hmislk/hmis.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/review-and-fix .opencode/skills/review-and-fix && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "review-and-fix" agent skill from https://github.com/hmislk/hmis/tree/development/.claude/skills/review-and-fix into .opencode/skills/review-and-fix/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "review-and-fix", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
review-and-fixDeep-review one open PR, apply the resulting fixes, verify each one live (build → local redeploy → Playwright + DB), commit, push, drive CI to green, then reply to the review threads.
Review And Fix is an agent skill from hmislk/hmis. Deep-review one open PR, apply the resulting fixes, verify each one live (build → local redeploy → Playwright + DB), commit, push, drive CI to green, then reply to the review threads. Use when asked to "fix the review findings on N", "review and fix PR N", "clean up N before merge", or on a PR a prior merge-gate run left BLOCKED-REVIEW. It never merges, approves, or requests changes — it hands back a green, fixed PR ready for the user's final review and merge.
Its SKILL.md is about 4.9k 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 Code review and Browser testing. It works with Playwright. The repository describes itself as: This is an Open Source Java EE based Hospital Information Management System. The licence is GPL-3.0.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 19f723d. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
gitghmvnFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Review And Fix loads about 4.9k tokens when it runs. Until then it costs about 121 tokens; SKILL.md has 2,686 words of instructions outside code blocks.
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.
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.
The full file from hmislk/hmis at commit 19f723d, republished under its GPL-3.0 licence (© hmislk). 2,686 words, ~4,905 tokens.
.claude/skills/review-and-fix/SKILL.md (or your agent's skills folder).Given one open PR: fresh deep code review → classify and discuss the non-obvious findings → apply the fixes → verify each one live (build → local redeploy → Playwright + DB, or browser-only for JSF-only changes) → commit → push → drive CI to green → reply to the review threads.
This skill never merges, approves, or requests changes. It ends when the PR is fixed, pushed, its review threads answered, and CI is green on the head commit — ready for the user's final review and merge.
Invoking this skill is the explicit authorization for every commit / push / thread-reply step below — do not re-ask before each one. The discussion gate is step 3 (classify + discuss the non-obvious findings); that is the only point where you pause for the user.
merge-gate deliberately never fixes anything — it finds blocking
issues and hands back a report. On its first substantial run against
contributor PRs (#23348, #23229, #22041) the gate did its job: it
found a footer column-alignment defect on #23229 and four High-severity
correctness findings on #22041 (paidAt overwritten on every row save,
implicit INNER-join row drops inside SELECT NEW, a date-only "To Date"
excluding the last selected day, paidAmount left stale when "Paid" is
unchecked). Handing that report back to the contributor to fix proved
slower and less reliable than fixing it directly, for two reasons:
#22041 — the
"Invoice Approved" filter keying on b.createdAt instead of an approval
timestamp — was a false positive: b.createdAt is the exact proxy the
sibling InwardReportController uses, and outside-charge bills never
populate approveAt, so "fixing" it would make the filter match
nothing. Telling that apart from a real bug needs someone who can read
the sibling report.paidAt-preservation
fix held required rebuilding, redeploying locally, seeding test rows,
driving the Update flow in Playwright, and checking the bill row in
the DB before and after editing an unrelated field on an already-paid
row.No existing skill covers that middle step. This one does.
merge-gate. merge-gate decides whether a
batch of PRs is safe to merge and runs two fixed baseline regression
checks unrelated to any PR's scope. This skill fixes one PR the gate
(or the user) has already flagged.review-pr. It invokes review-pr for the
thread-reply step rather than re-implementing the cardinal rules.code-review, playwright-e2e, and review-pr skills.merge-gate already frames the batch.| Skill | Fixes? | Fresh review? | Live verify? | CI-green loop? |
|---|---|---|---|---|
merge-gate | No (by design) | Yes (code-review --comment) | Yes (E2E + 2 baselines) | No — reports outcome |
review-pr | Yes | No — triages existing bot threads | No (Read/Grep/Glob/Bash) | Partial (checks green before replying) |
review-code | No | Manual checklist | No | No |
code-review (built-in) | --fix blind-applies | Yes | No | No |
review-and-fix (this) | Yes | Yes | Yes | Yes — hard exit condition |
Composed with merge-gate:
merge-gate #A #B #C # gate a batch
-> #A PASSED
-> #B BLOCKED-REVIEW
-> #C BLOCKED-REVIEW
review-and-fix #B # fix + verify + push + CI-green #B
review-and-fix #C # fix + verify + push + CI-green #C
merge-gate #B #C # re-gate -> PASSED
# user mergesEach skill stays single-purpose; merge-gate keeps its "never touches
code" identity.
$0 — one PR number (not an issue number). If the number doesn't
resolve to an open PR, say so and ask for the correct PR number rather
than guessing which PR closes an issue.merge-gate status-comment URL (or the words
"merge-gate findings"). When given, fix only what that prior gate flagged
rather than re-reviewing from scratch — read the linked inline comments,
skip step 2's fresh code-review, and go straight to step 3.Process exactly one PR per invocation. merge-gate already handles the
batch framing; the verify loop here needs to stay focused on one branch.
git fetch origin
git checkout -- src/main/resources/META-INF/persistence.xml
gh pr checkout <PR>The git checkout -- discards any leftover uncommitted local-JNDI edit
before the branch switch (safe no-op if there is none). Then restore
persistence.xml to local JNDI (jdbc/coop / jdbc/ruhunuAudit) per
CLAUDE.md, left unstaged. Note the exact JNDI names — you restore them
again after the push in step 6.
Record the PR's base branch and how far behind it is. Measure from the
checked-out working tree, not a origin/<head> ref — gh pr checkout does
not create one for a fork-backed PR:
git rev-list --count HEAD..origin/developmentA branch more than a few hundred commits behind development is worth a
rebase note in the final report — a clean textual auto-merge can still hide
semantic drift in a helper the changed code calls.
Skip this step if the optional second argument pointed at a prior
merge-gate result — use those findings instead.
Otherwise invoke the code-review skill against this PR at high effort,
without --comment or --fix — you are going to fix and verify each
finding by hand, not annotate the PR or blind-apply a patch.
Collect the findings it returns with their categories.
| Category | Handling |
|---|---|
| correctness, regression, business-rule violation | Must fix. |
| security, privacy, data-integrity, availability | Must fix — never treated as optional. |
| style, simplification, efficiency, reuse-only | Optional. List them; ask the user whether to include any. |
Before touching code, present the must-fix list and the non-obvious calls
to the user and get a nod. Non-obvious means: anything that could be
project intent rather than a bug. Check each candidate against the
codebase and the known false-positive patterns from review-pr /
review-code first:
getBillFinanceDetails()).purcahseRate) — database compatibility.For each candidate, state: Valid — will fix / False positive —
<reason> / Discuss. Wait for the user on anything marked Discuss;
don't burn a build guessing.
Apply the confirmed batch. Match the surrounding code's style, naming, and
comment density. Respect the HMIS hard rules (CLAUDE.md): JPQL-first, never
modify existing constructors, findLongByJpql for COUNT, no hospital-name
gating in rendered/conditionals, wire new report buttons into Report
Favorites, etc.
Group everything into one logical commit (drafted in step 6), not one commit per finding.
If a fix adds or renames a persisted entity field, run the generate-ddl
skill before moving on (same as dev-issue §5a). Skip it for pure
business-logic / query / view fixes.
Do not trust "the code looks right." Every must-fix finding gets exercised.
Local Payara serves the exploded WAR and picks up an edited .xhtml on the
next request, so a full mvn package / redeploy is usually unnecessary.
Confirm the edit is actually live before asserting anything — hard-reload
the page and check the changed markup is present in the DOM; if it isn't
(stale facelet cache, WAR not exploded), redeploy per §5b first. Then drive
the affected page via the playwright-e2e skill: login, select a relevant
department, navigate to the page through the menus — never by URL (see
playwright-e2e §2; a URL-loaded page renders against uninitialised
session state and produces false findings), reproduce the exact scenario the
finding was about, and confirm
the new behaviour with DOM assertions or a screenshot. Column-alignment,
rendered guards, AJAX-update targets, dialog wiring — all observable this
way once the edit is confirmed live.
Rebuild and redeploy to local Payara, per playwright-e2e §0a / dev-issue
§6 (tool paths in CLAUDE.md § Local build tools — verify against the
reference_maven_path memory; the paths hardcoded in some skill snippets
are stale for this machine):
$env:JAVA_HOME="<JDK 11 path>"
& "<mvn.cmd>" clean package -DskipTests
& "<asadmin.bat>" [--port <admin-port>] redeploy --name <app> "<project-root>\target\rh-3.0.0.war"Check server.log for deployment errors before touching the browser. If
mvn clean package or asadmin redeploy fails, fix the compile/deploy
problem before continuing — a stale WAR verifies nothing.
Then, via playwright-e2e: log in, select a department the feature
touches, and exercise the specific changed behaviour with real records.
Verify the result in the local DB with read-only mysql queries
(credentials: local_mysql_credentials memory / C:\Credentials\).
If the local DB lacks data to exercise the finding, in order of preference:
GETs
to find one).Never fall back to "code looks correct" as the evidence.
Local Payara connection-pool note: a long-idle local domain can start
throwing EJBTransactionRolledbackException: Client's transaction aborted
on unrelated queries (patient allergies, favourite reports). Flush the
pools (asadmin flush-connection-pool poolCoop,
... poolRuhunuAuditLocal) or restart-domain — it is not a bug in the
fix. See the stale_audit_connection_pool_local memory.
Capture a screenshot / query output for each verified finding into the
project tmp/ folder. Redact patient identifiers, credentials, and tokens
as it is written — tmp/ is on disk in the project tree, so raw
sensitive evidence must not land there even transiently. Crop/mask
screenshots before saving; select only non-sensitive columns in the
verification query. Remove the tmp/ artifacts at the end (step 6).
persistence.xml holds a local JNDI name for the duration of this skill and
must end back that way no matter how this step exits. Treat the restore
as a finally: if the commit or push fails, or you abort here for any
reason, your very next action is to put the local JNDI names back and leave
that change unstaged. Never walk away from this step with ${JDBC_DATASOURCE}
in the working tree.
src/main/resources/META-INF/persistence.xml — if
<jta-data-source> holds a local JNDI name, note both values, then swap
both units to ${JDBC_DATASOURCE} / ${JDBC_AUDIT_DATASOURCE} with
Edit.git add the intended source/doc files plus persistence.xml (now
holding placeholders).git push. If the push fails → do 6.5 below and stop.persistence.xml to the local JNDI names from 6.1 with
Edit, left unstaged. Then grep the file to confirm both units
read jdbc/... and not ${...} before moving on. This restore runs on
every exit from §6 — success or failure.Then clean up the tmp/ evidence.
developer_docs/git/pr-review-workflow.md is explicit that CI must be green
before replying to review threads and that there is exactly one
re-review request, at the very end. So the reply-in-full step (8) runs after
CI is green — not here. This step only reaches a green head commit, applying
review fixes reply-only along the way.
Wait for every check on the head commit: validate-compilation,
validate-jdbc-data-sources, CodeRabbit, and anything else the PR runs.
pending is not a stopping point. Poll it out — ScheduleWakeup
~270s (same cadence as dev-issue §14) and recheck; don't block with
gh pr checks --watch past a couple of minutes.finally rule for persistence.xml applies to every push),
go back to the top of this step./replies endpoint,
gh api .../pulls/<PR>/comments/<id>/replies) — "Fixed in <sha>: <what changed>" or "Dismissed because: <reason>". Do not run the full
review-pr skill here and do not re-request review yet — those happen
once in step 8.pending check
(CodeRabbit is frequently slow / rate-limited on this repo). Past that,
stop: report which check is stuck and that the two validate-* checks are
green, and let the user decide whether CodeRabbit is a blocker.Only a fully green head commit (or an explicit user decision that a stuck-pending non-required check is acceptable) lets you proceed to step 8.
Run the review-pr skill for the same PR number. It owns the cardinal
rules — /replies endpoint only, never a new top-level thread, no "please
resolve" wording (it triggers a CodeRabbit-Chat auto-PR against a stale
snapshot), self-review items live in the commit message, one re-review
request at the end. The fixes are applied, pushed, and CI-verified by now,
so review-pr's reply text describes what was done — "Fixed in
<head-commit-sha>: <what changed>" for the findings you fixed,
"Dismissed because: <reason>" for any false positive — not what a reviewer
should do next. Threads you already answered reply-only in step 7 don't need
a second reply; review-pr covers whatever remains and issues the single
re-review request.
If this PR came from a merge-gate run, also post one new top-level status
comment recording the fixes applied (commit SHA, one line per finding, and
what was verified live) — this is the same carved-out exception merge-gate
uses for its own outcome comments, so a merger who wasn't in the session can
see the gate's findings were addressed.
Give the user:
development).Never merge, approve, or request changes — that is always the user's
call (matching dev-issue §15, merge-gate, review-pr).
The skill has not completed until all of these hold:
review-pr in step 8, with its single re-review request;persistence.xml is back to local JNDI, unstaged; tmp/ evidence
removed; working tree otherwise clean.Stopping after the push, or after replying to threads, or with CI still pending / red (and no explicit user sign-off on it), is a bug in the skill — that is the exact failure mode that motivated it.
persistence.xml discarded and restored to local JNDI around checkout
(step 1) and again right after every push — including the review-loop
pushes in step 7 — as a finally, never only on the success path. Always
left unstaged, and grep-confirmed to read jdbc/... afterwards.tmp/ folder,
redacted of patient / sensitive data as they are written, and removed
at the end.git push --force or skip hooks..codex/skills/This skill drives code-review, playwright-e2e, and review-pr, and uses
the Agent, mcp__playwright__*, and ScheduleWakeup tools — the same
Claude-only dependency set as dev-issue, dev-issue-unattended, and
merge-gate, none of which are present under .codex/skills/.
© 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
Just SKILL.md in .claude/skills/review-and-fix of hmislk/hmis.
Open the folder on GitHubat commit 19f723d
Review And Fix 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Review And Fix this skillhmislk/hmis | 236 | — | ~4.9k | Automated safety check: Pass | GPL-3.0 | |
| Playwright Java QA ReviewTahanima/playwright-java-test-automation-architecture | 113 | — | ~561 | Automated safety check: Pass | MIT | |
| Bangle Followup Operatorbangle-io/bangle-io | 1.2k | — | ~991 | Automated safety check: Pass | AGPL-3.0 | |
| QAKiln-AI/Kiln | 5.2k | — | ~3.6k | Automated safety check: Pass | Custom licence | |
| Code Reviewnteract/semiotic | 2.7k | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Testingkortix-ai/suna | 20k | — | ~3.6k | Automated safety check: Notes | Custom licence |
Tahanima/playwright-java-test-automation-architecture
Reviews Playwright-Java test code in phases, checking page-object architecture, then using a Playwright MCP tool to verify shaky locators live.
bangle-io/bangle-io
Operate recurring Bangle.io agent follow-ups after a thread has already started.
Kiln-AI/Kiln
Multi-agent, browser-driven QA pass over a branch or PR — scope it, plan it, fan out one subagent per testing area in its own isolated sandbox, compile a severity-ranked markdown report.
nteract/semiotic
Review Semiotic pull requests for behavioral bugs, regressions, contract drift, and missing evidence.
kortix-ai/suna
A skill your agent uses for every Kortix test task, behavior change, bug fix, refactor, API route change, CLI change, SDK change, browser journey, test failure, coverage question, local benchmark…
rstudio/rstudio
Converts RStudio Python Selenium electron tests into TypeScript Playwright tests, checking each against a live RStudio before counting it as migrated.
hmislk/hmis
Reference for calling existing HMIS REST APIs. An agent skill from hmislk/hmis.
hmislk/hmis
Application configuration options reference for the HMIS project.
hmislk/hmis
Ultra-compressed communication mode. An agent skill from hmislk/hmis.
hmislk/hmis
MySQL database development guide for the HMIS project. An agent skill from hmislk/hmis.
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.
hmislk/hmis
Sync development into QA/testing environment branches (QA1-QA4, local RH staging) via PR + merge on GitHub.
Works with
Categories
Deep-review one open PR, apply the resulting fixes, verify each one live (build → local redeploy → Playwright + DB), commit, push, drive CI to green, then reply to the review threads. Review And Fix is an agent skill from hmislk/hmis. Deep-review one open PR, apply the resulting fixes, verify each one live (build → local redeploy → Playwright + DB), commit, push, drive CI to green, then reply to the review threads.
Review And Fix fits situations like: asked to fix the review findings on N; review and fix PR N; clean up N before merge; on a PR a prior merge-gate run left BLOCKED-REVIEW.
Run `npx skills add hmislk/hmis --skill review-and-fix -a claude-code`. Or copy the skill folder (.claude/skills/review-and-fix in hmislk/hmis) into .claude/skills/review-and-fix in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hmislk/hmis --skill review-and-fix -a codex`. Or copy the skill folder (.claude/skills/review-and-fix in hmislk/hmis) into .agents/skills/review-and-fix in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hmislk/hmis --skill review-and-fix -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/review-and-fix, .gemini/skills/review-and-fix, .github/skills/review-and-fix and .opencode/skills/review-and-fix in your project.
Going by SKILL.md and its folder, Review And Fix needs the command-line tools its instructions call (git, gh and mvn).
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Review And Fix 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.
About 4.9k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Review And Fix: Playwright Java QA Review (Tahanima/playwright-java-test-automation-architecture, 113 stars), Bangle Followup Operator (bangle-io/bangle-io, 1.2k stars), QA (Kiln-AI/Kiln, 5.2k stars) and Code Review (nteract/semiotic, 2.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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 10, 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.