Skip to content

Docs

Casely is a free, open-source QA skill for Claude. No command to type, no setup step, one conversation. It scores 85/100 on a public benchmark spec with five planted defects.

Last updated: October 2026

Install

claude.ai, Cowork, and the desktop app

Casely is listed in Anthropic's plugin directory. Open it there and install it in one click. Claude keeps it updated, and the plugin syncs to Claude Code on the same account.

Open Casely in the plugin directory

Claude Code

Paste this prompt and Claude runs the install for you.

Install the Casely plugin from https://github.com/JohnWayneeee/casely-qa-skill

Or install it as a plugin yourself. Run both commands once, and claude plugin update casely@casely picks up new versions later.

claude plugin marketplace add JohnWayneeee/casely-qa-skill
claude plugin install casely@casely

Or add just the skill to one project, from its root.

npx skills@latest add JohnWayneeee/casely-qa-skill
bunx skills add JohnWayneeee/casely-qa-skill

Codex

Codex installs the same plugin.

codex plugin marketplace add JohnWayneeee/casely-qa-skill
codex plugin add casely@casely

Jira, Confluence, and browser runs

The plugin ships Atlassian's official connector. Name a Jira issue or paste a Confluence link, sign in once on Atlassian's page, and Casely reads it like an attached spec. No API token goes into a file or the chat. Name an epic or a sprint and Casely lists its stories first and asks which to cover.

Casely only reads. It never creates, edits, or comments on anything in Jira or Confluence. Grant read access only, so a mistake can't reach your tracker: an Atlassian admin can limit the connector to read and search, and in Claude Code a permissions.deny block removes the write tools.

Bug reports: in Claude Code, /casely:bug 4f2a9c1e reads the event through your monitoring connector (GlitchTip, Sentry, or your own), or from logs you paste, and writes it in your team's bug format with personal data masked. A failed case from /casely:run works too. You file the bug; Casely never does.

In Claude Code, /casely:run https://staging.example.com walks the exported UI cases in a browser and writes a pass, fail, or blocked report. Connect Playwright once:

claude mcp add playwright -- npx @playwright/mcp@latest

Upload the zip by hand

Only if the plugin directory is not available to you.

  1. 1.Download the release zip below.
  2. 2.Open Claude Desktop and look at the left side panel.
  3. 3.Click Customize, then select Skills or Plugins.
  4. 4.Click the + symbol at the top of the panel and choose Upload Skill.
  5. 5.Select the zip you downloaded and click Sync to finish.
  6. 6.Start a new conversation, attach the spec, and ask for test cases.

Use the release zip, not the green Code button

GitHub's own "Code > Download ZIP" button nests everything inside a repo-name folder. SKILL.md needs to sit at the archive root, so use the release zip linked above instead.

Custom skills need a paid plan

Uploading a custom skill on claude.ai requires a Pro, Max, Team, or Enterprise plan, and it does not sync to Claude Code. A plugin directory install does sync there.

View the skill source on GitHub

Install video

How it works

Five phases, one conversation, no command to type. The test plan phase is the one point where Casely stops and waits for your approval before it writes anything.

01

Intake and scope

Claude reads the attachments itself, PDF, DOCX, XLSX, TXT, MD, or pasted text, with no parser and no OCR setup. Name a Jira issue, an epic, or a Confluence page instead, and Casely reads it through a read-only Atlassian connector. Add one file of test cases your team already wrote, and Casely copies its columns, their order, the tone, and the ID scheme.

02

Style guide

Casely matches the format of the example file you attached rather than imposing one of its own, so the team keeps the columns, order, and ID scheme it already uses. Say yes once and it saves that style, so the next run needs no example file.

03

Test plan

Casely proposes coverage per module, estimates how many cases that is, and names what the spec gets wrong before writing anything. If the requirements describe an API, it says here how many cases are API-level and that those will also come back as a Postman collection. Then it stops and waits for your approval, the one pause in the whole run.

04

Generate

Casely writes the cases using equivalence partitioning, boundary value analysis, decision tables, state transitions, and error guessing.

05

Export

Casely exports every case into a single all_test_cases.xlsx, or a UTF-8 CSV if your tracker wants one, plus one markdown file per case. TestRail, Qase, Zephyr, and Xray each import that file in one pass. API cases also come back as a Postman collection with an environment file and run instructions. In Claude Code, /casely:run then walks the UI cases in a browser.

What you attach, what you get

You attach

PDF, DOCX, XLSX, TXT, MD, pasted text, a Jira issue, a Confluence page. Add one file of test cases your team already wrote and Casely copies its columns, their order, the tone, and the ID scheme. Casely can save that style, so you attach it only once.

You get back

One all_test_cases.xlsx holding every case, or a UTF-8 CSV, plus a markdown file per case. Import into TestRail, Qase, Zephyr, Xray in a single pass. API cases also come back as a Postman collection you can run, and /casely:run walks the UI cases in a browser.

API tests

When the requirements name endpoints — a path and a method, an OpenAPI file, curl examples, status codes, an auth section — Casely says so in the test plan, and after your approval it exports the API-level cases as a Postman collection alongside the Excel file.

casely_api_collection.postman_collection.json

The API cases as requests, grouped by module, schema v2.1.

casely_api_environment.postman_environment.json

Every variable the run needs, empty, secrets typed as secrets.

casely_api_collection_README.md

Import, fill in, run, read the results, plus a Newman command for CI.

Everything is a variable

Base URL, tokens, and entity ids come out as {{baseUrl}}, {{authToken}}, and named ids. Fill them in once and the same file runs against dev, staging, or CI. The value a case is actually testing, like amount 50001, stays literal, because that is the point of the case.

No credentials in the file

The build fails on anything shaped like a JWT or a secret key, so the collection is safe to commit next to the test cases. Secrets stay in the environment file, or come from your CI secret store.

Assertions from the expected result

Status code, response fields, error codes: one assertion per thing the requirement promises, generated rather than hand-typed. Requests are named after the cases, so a red run maps to a row in the Excel file without a lookup.

No endpoints, no collection

If the spec names screens and flows but no paths, Casely asks for the API docs instead of guessing an endpoint that 404s on the first run.

Run it in the Postman Collection Runner, or in CI:

newman run exports/casely_api_collection.postman_collection.json \
  -e exports/casely_api_environment.postman_environment.json \
  --env-var "authToken=$API_TOKEN"

Model choice

Pick Opus. The plan phase decides what gets tested at all, and smaller models miss the holes in the spec that Opus catches before a single case gets written.