I build test automation, developer tooling, and AI agent skills β and I like fixing the tools everyone else relies on. You'll find my merged PRs in Playwright, Selenium, Appium, WebdriverIO, Vitest, axe-core, OpenAI's Codex tooling and other major projects, plus my own packages on npm and skills for AI coding agents. Lately I've been building tools that make flaky and slow test suites debuggable β leak bisection, semantic test selection, flaky-test ranking.
Merged pull requests in some of the biggest testing & tooling projects:
Skills and tools I've built for AI coding agents (Claude, MCP-compatible assistants):
| Project | What it does |
|---|---|
| lazy-clean | Coding-agent skill package that pairs a minimal-code ruleset with an automatic TypeScript/JavaScript slop checker across supported agents |
| flaky-test-scorer-ai-skill | AI agent skill that scores and ranks flaky tests from CI pass/fail history, using version-aware entropy and flip-rate models (inspired by Apple's ICSE-SEIP 2020 flaky-test ranking paper) |
| worked-example-teaching | Claude skill that teaches one technical concept end-to-end by grounding the explanation in your actual artifact (command, file, error, or config) and walking through a single complete worked example |
| ai-reachability-snapshot | Augments Playwright accessibility snapshots with reachability metadata so AI/MCP agents know which elements are actually interactable (reachableSnapshot()) β filters off-screen, covered, and hidden nodes |
| mcp-accessibility-scanner | MCP server that lets AI assistants run WCAG accessibility audits on any page with Playwright + axe-core |
| agent-maintenance-skills | Six reusable agent skills for maintenance work: doc auditing, skill grading, upstream monitoring, prior-art search, sharded security review, and verified dependency updates |
| skills_setup | Versioned export of my installed agent skills, split by tool (Claude & Codex) |
Plus a merged Appium troubleshooting skill in appium/skills.
| Package | Downloads | About |
|---|---|---|
| mcp-accessibility-scanner | MCP server for automated accessibility scans with Playwright + axe-core | |
| appium-session-recorder | Interactive Appium session recorder with a modern UI | |
| flaky-test-scorer | Detects and ranks flaky tests from test-run history, with deterministic evidence and agent-ready JSON | |
| playwright-leak-finder | Bisects a Playwright suite to find the test that leaks state into a later failure | |
| jm-playwright-args | Pass custom CLI arguments into Playwright config and tests | |
| jm-wdio-failed-rerun-runner | WebdriverIO runner that reruns only the tests that failed in the initial run | |
| jm-wdio-mocha-split-runner | Experimental intra-spec parallel launcher for WebdriverIO | |
| i18n-string-check | Fast CI checker for hardcoded i18n strings (written in Go) | |
| npx-vet | Inspect an npm package's trust evidence before npm exec/npx runs it |
|
| @justasmonkev/pkg-rust | Rust port of pkg β bundle a Node.js project into a single executable |
|
| jm-playwright-chrome-ui | Chrome extension UI helpers for Playwright |
- jm-playwright-har-test β Record HAR files on failures or retries in Playwright Test and attach them to the report.
- Playwright Trace AI site β Documentation and landing page for a local-first CLI that diagnoses failed Playwright traces using bounded evidence and optional AI enrichment.
- mcp-accessibility-scanner β β MCP server that lets AI assistants run WCAG accessibility audits on any webpage using Playwright and axe-core. My most popular package on npm.
- playwright-leak-finder (npm) β Your test passes alone but fails in the suite. This bisects the tests that ran before it (Γ la
git bisect) until only the state-leaking culprit is left. - flaky-test-scorer (npm) β Feed it your test-run history and it ranks which tests are actually flaky, scoring instability with deterministic evidence (no ML) and emitting agent-ready JSON. The CLI companion to my flaky-test-scorer skill.
- semantic-test-matcher β
rbtCLI that selects tests for code changes using TypeSafe's Jev API and structural signals, falls back to local heuristics without an API key, and can run the selected tests. - npx-vet (npm) β Vets an npm package's trust signals (provenance, signatures, maintainer & version history, download stats) before
npm exec/npxruns it, and blocks high-risk packages unless explicitly overridden. - @justasmonkev/pkg-rust (npm) β A Rust port of
pkgthat compiles a Node.js project into a single self-contained executable, shipped with prebuilt macOS x64/arm64 native binaries. - appium-session-recorder β Record and replay Appium mobile testing sessions interactively.
- i18n-string-check β Go-powered CI tool that catches hardcoded strings in TypeScript/JavaScript codebases.




