Diff-Driven QA
Skyvern-AI/skyvern
Reads your git diff, decides whether the change needs browser QA, API checks or repo tests, runs that validation and reports pass or fail with evidence.
Design and execute structured exploratory testing sessions. An agent skill from petrkindlmann/qa-skills.
$ npx skills add petrkindlmann/qa-skills --skill exploratory-testing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install petrkindlmann/qa-skills exploratory-testing --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/petrkindlmann/qa-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/exploratory-testing .claude/skills/exploratory-testing && 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 "exploratory-testing" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/exploratory-testing into .claude/skills/exploratory-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exploratory-testing", 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/petrkindlmann/qa-skills/tree/main/skills/exploratory-testingType 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 petrkindlmann/qa-skills --skill exploratory-testing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install petrkindlmann/qa-skills exploratory-testing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/exploratory-testing .agents/skills/exploratory-testing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "exploratory-testing" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/exploratory-testing into .agents/skills/exploratory-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exploratory-testing", 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 petrkindlmann/qa-skills --skill exploratory-testing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install petrkindlmann/qa-skills exploratory-testing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/exploratory-testing .cursor/skills/exploratory-testing && 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 "exploratory-testing" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/exploratory-testing into .cursor/skills/exploratory-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exploratory-testing", 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/petrkindlmann/qa-skills.git --path skills/exploratory-testing--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 petrkindlmann/qa-skills --skill exploratory-testing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install petrkindlmann/qa-skills exploratory-testing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/exploratory-testing .gemini/skills/exploratory-testing && 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 "exploratory-testing" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/exploratory-testing into .gemini/skills/exploratory-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exploratory-testing", 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 petrkindlmann/qa-skills exploratory-testingInstalls 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 petrkindlmann/qa-skills --skill exploratory-testing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/exploratory-testing .github/skills/exploratory-testing && 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 "exploratory-testing" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/exploratory-testing into .github/skills/exploratory-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exploratory-testing", 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 petrkindlmann/qa-skills --skill exploratory-testing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install petrkindlmann/qa-skills exploratory-testing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/exploratory-testing .opencode/skills/exploratory-testing && 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 "exploratory-testing" agent skill from https://github.com/petrkindlmann/qa-skills/tree/main/skills/exploratory-testing into .opencode/skills/exploratory-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "exploratory-testing", 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.
exploratory-testingDesign and execute structured exploratory testing sessions. An agent skill from petrkindlmann/qa-skills.
Exploratory Testing is an agent skill from petrkindlmann/qa-skills. Design and execute structured exploratory testing sessions. Covers Session-Based Test Management (SBTM), charter writing, heuristic-based exploration (HICCUPS, FEW HICCUPS), bug discovery patterns, note-taking templates, and conversion of findings to automated tests. Use when: "exploratory testing," "SBTM," "manual testing," "bug hunting," "test charter," "heuristic testing." Not for: an AI browser agent autonomously exploring the app from a natural-language goal — use agentic-browser-testing. Not for: testing…
Its SKILL.md is about 5.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/heuristics-and-automation.md` and `references/session-templates.md`).
It sits in Testing & QA, covering QA and bug reports and Browser testing. The repository describes itself as: 50 QA and test-automation skills for Claude Code, Codex, Cursor, and any Agent Skills Standard runtime. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b3bb61b. 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:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
satisfice.comdevelopsense.comFrom 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.
Exploratory Testing loads about 5.1k tokens when it runs, and up to ~7.7k if it reads all its reference files. Until then it costs about 170 tokens; SKILL.md has 2,680 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 petrkindlmann/qa-skills at commit b3bb61b, republished under its MIT licence (© petrkindlmann). 2,680 words, ~5,105 tokens.
.claude/skills/exploratory-testing/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.<objective>
Structured exploration that finds bugs scripted tests miss. Exploratory testing is simultaneous learning, test design, and execution -- the tester adapts in real time based on what the application reveals. This skill provides the frameworks to make that exploration systematic, repeatable, and documentable.
</objective>
Match the situation to a charter pattern and the reference section to open.
| Situation | Charter pattern | Open in references |
|---|---|---|
| New feature — learn it, find requirement gaps | "Explore [feature] with various roles/data to discover requirement gaps and unexpected behaviors" | Charter examples + session flow in session-templates.md; boundary/"what if" banks in heuristics-and-automation.md |
| Regression — a change just landed | "Explore [area] after [change] to discover regressions at integration points" | State-transition heuristics in heuristics-and-automation.md |
| Bug investigation — vague report ("sometimes slow") | "Explore [area] with [reported conditions] to discover exact reproduction steps" | Session flow + session-log template in session-templates.md; error-handling heuristics in heuristics-and-automation.md |
Full time splits for each row are in Session Planning by Context below.
Before designing a session, gather context. Check .agents/qa-project-context.md first -- if it exists, use it as the foundation and skip questions already answered there.
risk-based-testing for risk data.)Exploratory testing is not "click around and see what happens." It is guided by a charter that defines the target, resources, and information goal. Within that charter, the tester has freedom to follow leads, investigate anomalies, and change direction based on discoveries. The structure makes it repeatable; the freedom makes it effective.
Observations not recorded are observations lost. Take notes during the session, not after. Record what you did, what you saw, and what questions arose. The session log is the deliverable -- it replaces a test script.
Heuristics are thinking tools that guide exploration without dictating exact steps. HICCUPS and FEW HICCUPS (below) provide systematic lenses for examining software. They help testers ask better questions and notice things they would otherwise miss.
Open-ended exploration suffers from diminishing returns. After 90 minutes, fatigue reduces bug-finding effectiveness. Time-box sessions to 45-90 minutes, then debrief. Short focused sessions outperform long unfocused ones.
An exploratory session that finds a bug has only done half its job. The other half is: Could this bug have been caught by an automated test? If yes, write that test. Exploratory testing feeds the automation pipeline.
SBTM gives exploratory testing a management layer: charters define intent, sessions are the unit of work, debriefs extract learnings.
Canonical references:
- SBTM PDF (Jon Bach / James Bach, satisfice.com) — https://www.satisfice.com/download/session-based-test-management
- Taking Testing Seriously: The Rapid Software Testing Approach (Bach & Bolton, Wiley 2025) — current authoritative RST/SBTM book.
- HTSM v6.3 (Bach, last updated Dec 2024) — emphasizes state-based testing and boundary heuristics. Pair with HICCUPS below.
A charter is a one-sentence mission statement following this pattern:
Explore [target]
with [resources]
to discover [information]Charter quality checklist:
See references/session-templates.md for five worked charter examples (checkout, profile, search, data export, multi-user collaboration).
The full session lifecycle — pre-session setup steps, environment preparation checklist, the minute-by-minute session flow, the "when you find something interesting" loop, and the structured debrief template — lives in references/session-templates.md. Pull it up at the start of a session and keep it open.
Key timing guardrails to remember without opening the reference: orient and survey in the first 15 minutes, explore for ~40, wrap up and debrief at the end. Always debrief, even solo.
Heuristics are mental models that guide exploration. They are not checklists to exhaustively complete -- they are lenses to look through.
A mnemonic for seven oracles that reveal bugs. An oracle is a principle for recognizing problems.
| Letter | Oracle | What to Check | Example Questions |
|---|---|---|---|
| H | History | Does current behavior match past behavior? | Did this work in the last release? Has the behavior changed subtly? |
| I | Image | Does it match the product's brand and quality bar? | Does this look polished? Does it feel consistent with the rest of the app? |
| C | Comparable | How do similar products handle this? | What does the competitor do here? What is the industry standard? |
| C | Claims | Does it match what was promised? | Does it match the spec? The marketing page? The tooltip text? |
| U | User expectations | Would a real user find this confusing or frustrating? | Would my mother understand this? Would a power user be annoyed by this? |
| P | Product | Is it consistent with other parts of the same product? | Does this error message match the style of other error messages? |
| S | Standards | Does it comply with applicable standards? | WCAG for accessibility, RFC for protocols, GDPR for data handling? |
Adds three lenses to the base HICCUPS model:
| Letter | Oracle | What to Check |
|---|---|---|
| F | Familiarity | Would a first-time user understand this without help? |
| E | Explainability | Can you explain the behavior to someone else? If not, it might be a bug. |
| W | World | Does it work in the real world? (different locales, time zones, network conditions, screen sizes) |
The detailed test-idea lists for boundary, state-transition, error-handling, and "what if" exploration are in references/heuristics-and-automation.md. Reach for them when you need concrete prompts:
Use a session log to capture observations in real time. The session-log table format and the observation tags (BUG, QUESTION, IDEA, RISK, NOTE) are in references/session-templates.md. Tag every observation consistently so the debrief can sort findings without re-reading the whole log.
Not all testing should be exploratory, and not all testing should be automated. Use this decision framework:
Every reproducible bug found through exploration should become an automated regression test, so future sessions focus on new areas instead of re-checking old bugs. See references/heuristics-and-automation.md for the full pipeline diagram, the conversion steps, and a worked Playwright regression example (BUG-456 email validation).
When an exploratory smoke charter stabilizes ("the happy path still works at all"), graduate it in two steps rather than one: first hand the charter to agentic-browser-testing as a natural-language goal run to confirm the flow is stable without writing a script, then promote the stabilized flow to a scripted playwright-automation test once it earns a maintained selector.
| Context | Focus | Charter Pattern | Time Split |
|---|---|---|---|
| New feature | Learning, requirement gaps, UX | "Explore [feature] with various roles/data to discover requirement gaps and unexpected behaviors" | 15 min orient + 40 min heuristics + 20 min boundaries/errors + 15 min document |
| Regression | Changes and their side effects | "Explore [area] after [change] to discover regressions at integration points" | 10 min review diff + 20 min changed area + 20 min integrations + 15 min smoke + 15 min document |
| Bug investigation | Reproducing and minimizing | "Explore [area] with [reported conditions] to discover exact reproduction steps" | 10 min read report + 15 min reproduce + 20 min minimize + 15 min related areas + 15 min document |
You can run a session with an LLM as oracle and idea-generator while keeping critical-thinking ownership. This maps cleanly onto the testing-vs-checking distinction in Bach & Bolton's Taking Testing Seriously (Wiley 2025): the LLM can help with checking (does this match a known reference?) but the testing — the human judgment about what to explore and what counts as a problem — stays yours. Done well, an LLM expands your charter coverage; done badly, it replaces your judgment with confident-sounding hallucination.
How to use an LLM during a session:
The productivity-paradox warning: AI tooling can make tester output look faster while quietly hollowing out the critical thinking that produced the value. (Michael Bolton has argued this line in DevelopSense talks and posts; treat it as a working principle, not a cited finding.) If your debrief notes start sounding like an LLM wrote them, the LLM is now driving — stop and run the next session unassisted.
What never to delegate to an LLM:
For testing AI features themselves (not just using AI to test), see ai-system-testing.
Useful vocabulary for staffing and self-positioning conversations. These are common industry archetypes, not a formal taxonomy:
If your org is moving toward embedded testers, exploratory testing is one of the highest-leverage skills to demonstrate — it is hard for developers to pick up without coaching, and it is where the testing mindset shows up most clearly.
For background on the testing-vs-checking distinction and AI's role, see "What Is Testing? A Conversation with Bach and Bolton" (DevelopSense, Feb 2026): https://developsense.com/blog/2026/02/what-is-testing-a-conversation-with-james-bach-and-michael-bolton
Exploring without a charter. "I will just poke around and see what I find" produces inconsistent results, is not repeatable, and cannot be meaningfully debriefed. Always write a charter, even if it is one sentence.
Running 3-hour exploration sessions. Bug-finding effectiveness drops sharply after 90 minutes. Fatigue causes testers to miss issues and stop following leads. Break long testing efforts into multiple 60-90 minute sessions with breaks between them.
Relying on memory to reconstruct what happened. By the time the session ends, half the observations are forgotten and the rest are vague. Take notes in real time using the template above.
Using exploratory testing only to verify that things work. This duplicates what automated tests already cover. Exploratory testing's strength is finding problems in paths nobody thought to script. Use heuristics to push into uncomfortable territory.
Finding the same bug manually every release because nobody wrote an automated test for it. Every reproducible bug found through exploration should become an automated regression test. The exploration-to-automation pipeline must be active.
Viewing exploratory testing as less rigorous than scripted testing. SBTM with charters, session logs, and debriefs produces documented, accountable testing. The documentation format is different from test scripts, but the rigor is equal.
Prove the session produced real, accountable artifacts — not just a feeling that you "tested it" — smallest check first:
Explore [target] with [resources] to discover [information] line where the target is more specific than "the app." A session with no charter line is unchartered exploration, not SBTM.npx playwright test path/to/spec should fail) and against the fix (should pass). A regression test that was never seen failing is not proven to guard the bug.references/)© petrkindlmann, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in skills/exploratory-testing of petrkindlmann/qa-skills.
Open the folder on GitHubat commit b3bb61b
Exploratory Testing 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 |
|---|---|---|---|---|---|---|
| Exploratory Testing this skillpetrkindlmann/qa-skills | 165 | — | ~5.1k | Automated safety check: Pass | MIT | |
| Diff-Driven QASkyvern-AI/skyvern | 23k | — | ~4.7k | Automated safety check: Warn | AGPL-3.0 | |
| Playwright Screen Recordingliaohch3/claude-tap | 3.3k | — | ~714 | Automated safety check: Pass | MIT | |
| Whole-App Health Sweepreticlehq/reticle | 1.2k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Testing QAaiskillstore/marketplace | 430 | 3 repos | ~1.2k | Automated safety check: Pass | None | |
| Dogfood Exploratory QAvercel-labs/agent-browser | 44k | 8 repos | ~2.7k | Automated safety check: Pass | Apache-2.0 |
Skyvern-AI/skyvern
Reads your git diff, decides whether the change needs browser QA, API checks or repo tests, runs that validation and reports pass or fail with evidence.
liaohch3/claude-tap
Records headless Playwright sessions as .webm videos to show a bug fix working or to give pull request reviewers visual evidence.
reticlehq/reticle
Sweeps a running web app by clicking every reachable control, then reports dead buttons, console errors, failed requests and mismatches between API data and the screen.
aiskillstore/marketplace
Comprehensive testing and QA workflow covering unit testing, integration testing, E2E testing, browser automation, and quality assurance.
vercel-labs/agent-browser
Explores a web app with the agent-browser CLI to find bugs and UX problems, then writes a report with screenshots, repro videos and step-by-step reproduction for each issue.
ktnyt/cclsp
Performs manual hands-on testing of a web application using playwright-cli.
petrkindlmann/qa-skills
Test for WCAG 2.2 AA compliance with axe-core + Playwright, keyboard navigation audits, screen reader testing, ARIA pattern validation, and legal compliance mapping (ADA, EAA, Section 508).
petrkindlmann/qa-skills
Goal-driven E2E testing where a browser agent (Playwright MCP / computer-use) reads a natural-language goal and explores the app via the accessibility tree to assert outcomes — no pre-written script.
petrkindlmann/qa-skills
Use AI to write NEW test code from specs, PRDs, user stories, code diffs, bug reports, or OpenAPI specs.
petrkindlmann/qa-skills
Test REST and GraphQL APIs with Playwright APIRequestContext, Supertest, or standalone HTTP clients.
petrkindlmann/qa-skills
Design CI/CD pipelines that run test suites. An agent skill from petrkindlmann/qa-skills.
petrkindlmann/qa-skills
Test for regulatory compliance: GDPR/CMP consent verification, Google Consent Mode v2, Global Privacy Control (GPC), CCPA/US state opt-out, EU AI Act Article 50 transparency, Better Ads Standards…
Categories
Design and execute structured exploratory testing sessions. An agent skill from petrkindlmann/qa-skills. Exploratory Testing is an agent skill from petrkindlmann/qa-skills. Design and execute structured exploratory testing sessions.
Exploratory Testing fits situations like: : exploratory testing; heuristic testing. Not for: an AI browser agent autonomously exploring the app from a natural-language goal — use agentic-browser-testing.
Run `npx skills add petrkindlmann/qa-skills --skill exploratory-testing -a claude-code`. Or copy the skill folder (skills/exploratory-testing in petrkindlmann/qa-skills) into .claude/skills/exploratory-testing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add petrkindlmann/qa-skills --skill exploratory-testing -a codex`. Or copy the skill folder (skills/exploratory-testing in petrkindlmann/qa-skills) into .agents/skills/exploratory-testing 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 petrkindlmann/qa-skills --skill exploratory-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/exploratory-testing, .gemini/skills/exploratory-testing, .github/skills/exploratory-testing and .opencode/skills/exploratory-testing in your project.
Going by SKILL.md and its folder, Exploratory Testing needs the command-line tools its instructions call (npx).
SKILL.md names 2 domains. As links in the text: satisfice.com and developsense.com. 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.
Exploratory Testing is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.1k 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. Its references folder adds about 2.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Exploratory Testing: Diff-Driven QA (Skyvern-AI/skyvern, 23k stars), Playwright Screen Recording (liaohch3/claude-tap, 3.3k stars), Whole-App Health Sweep (reticlehq/reticle, 1.2k stars) and Testing QA (aiskillstore/marketplace, 430 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
petrkindlmann (a GitHub user) maintains it in petrkindlmann/qa-skills, which has 165 GitHub stars. The repository holds 45 skills in this directory. The repository was last updated on June 10, 2026.
Source: petrkindlmann/qa-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.