From mosdat
Force a binary-freshness check before any PR-scoped mosdat scenario. Triggers on "test PR N", "run 3325-*", "rodar <PR>-*". Refuses to skip the build+deploy+asar-verify step — stale binaries produce false-negative scenario failures that look like framework bugs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mosdat:mosdat-pr-preflightThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
On 2026-05-18, scenario `3325-master-toggle.yaml` ran 25/28 steps then failed the verify step because PR #3325 (telephony feature) was never built and deployed to the VM. A stale binary from a prior test was on the box. We spent N minutes diagnosing what wasn't a real test failure — the framework worked, the binary didn't contain the feature. This skill enforces a binary-freshness gate before e...
On 2026-05-18, scenario 3325-master-toggle.yaml ran 25/28 steps then failed the verify step because PR #3325 (telephony feature) was never built and deployed to the VM. A stale binary from a prior test was on the box. We spent N minutes diagnosing what wasn't a real test failure — the framework worked, the binary didn't contain the feature. This skill enforces a binary-freshness gate before every PR-scoped scenario to prevent wasting time on false-negative failures.
Identify PR number
3325.3325-master-toggle.yaml, parse the PR number from the filename prefix.Check PR state
gh pr view <N> --repo RocketChat/Rocket.Chat.Electron \
--json headRefOid,updatedAt,headRefName,state,mergeable,commits
OPEN (abort if MERGED/CLOSED/DRAFT).Pick a verify symbol
gh pr diff <N> --repo RocketChat/Rocket.Chat.Electron \
| grep -E '^\+\s*(export const|function|class|interface)\s+\w+' \
| head -10
Run the build + deploy + verify
python automation/main.py build \
--pr <N> \
--deploy <vm> \
--verify-symbol <sym> \
--config examples/rocketchat.toml
app.asar for the symbol.app.asar on the VM, exit 1: abort the scenario. Do NOT proceed.Only THEN run the scenario
python automation/main.py functional \
examples/rocketchat.toml \
--test <scenario-filename> \
--vms <vm> \
...
Refuse to skip step 4. If the user says "skip preflight" or "no rebuild", clarify why they need to skip, then REQUIRE confirmation that they understand stale binaries will produce false-negative test failures that look like framework bugs.
--verify-symbolRead the PR diff with:
gh pr diff <N> --repo RocketChat/Rocket.Chat.Electron
Scan for NEW function/class/const/interface names (lines starting with +).
Propose the most unique identifier — avoid generic names like init, setup, config. Prefer domain-specific names:
isTelephonyEnabled (PR 3325) — telephony feature flagsetAsDefaultProtocolClient (PR 3325) — protocol registrationenableVoiceChat(), that's a good verify symbol.If no good candidate exists in the diff, ask the user: "What feature is being tested? I'll pick a symbol that represents it."
User can always override: "Use XYZ instead of ABC." Accept without argument.
Refuse to skip the build+deploy+asar-verify step UNLESS:
"skip preflight" or "no rebuild".Otherwise, ALWAYS run steps 1–4.
| PR | Feature | Verify Symbol |
|---|---|---|
| 3325 | Telephony (H.323/SIP) | isTelephonyEnabled or setAsDefaultProtocolClient |
| TBD | (Add as we learn them) | — |
npx claudepluginhub jeanfbrito/mosdatProvides a checklist for code reviews covering functionality, security, performance, maintainability, tests, and quality. Use for pull requests, audits, team standards, and developer training.