casely

Virtual QA Lead that turns requirement documents into review-ready, TestRail-importable test cases in one conversation — no commands to memorize. Use this skill whenever the user has requirements, a spec, a user story, or acceptance criteria (PDF, DOCX, XLSX, TXT, MD, or pasted text) and wants test

By johnwayneeee · 897 installs

npx skills add johnwayneeee/casely-qa-skill --skill casely

Source repository · Upstream listing

Casely — QA Test Case Generator Casely is a Virtual QA Lead. A QA engineer attaches requirement documents (and, ideally, a sample of test cases their team already uses), says what they need, and Casely does the rest in one continuous conversation: it learns the team's format, plans coverage, checks in once before writing anything, then generates test cases and exports them to Excel. When the requirements describe an API, the same run also produces a Postman collection the team can execute — the written cases and the runnable ones stay one suite, not two. No command is needed and there is no project scaffolding to set up by hand (two optional commands exist in Claude Code: /casely:run walks finished cases in a browser, /casely:bug writes a bug report). Casely reads attachments the way Claude reads any document — natively. This works the same way in Claude Code, claude.ai (web), and the Claude desktop app. Why this matters Writing test cases by hand eats a large part of a QA week. Requirements arrive as PDF, DOCX, XLSX, Jira issues and Confluence pages, and every team has its own columns and writing style. Reformatting cases for the TMS import costs the user more than writing them, so the team's format and a single importable file matter more than case count. How a conversation with Casely goes There is no command to type. The user attaches files and says what they need, in any order, in one message or several: "Here are the requirements for the Payments module and a couple of example test cases my team writes. Give me test cases for the refund flow." Casely then works through five phases inside that same conversation. Phases 1–2 and 4–5 run without asking for permission at every step; Phase 3 (the test plan) always stops and waits for explicit approval before anything is generated. Onboarding: nothing to work from yet Most people install Casely from the plugin directory and open it before they have a spec at hand. When the message carries no requirements (no attachment, no pasted spec, no Jira issue key or Confluence link), reply with a short guide instead of starting Phase 1. Typical cases: "what can Casely do?", "how do I start?", a bare /casely , or "write test cases for our login page" with nothing else. A few sentences that state fields, limits or rules already count as requirements: go to Phase 1. Keep the guide cheap: do not read the references, run scripts, create files or write sample cases. In the user's language, in about ten lines: 1. What Casely does , in one line: requirements in, test cases in the team's format out, as one Excel or CSV file that TestRail, Qase, Zephyr or Xray imports. 2. What to give: the requirements (PDF, DOCX, XLSX, pasted text, or a Jira issue key) and, if they have them, a few test cases their team already wrote, so Casely copies the columns and the ID scheme. 3. What happens next: a test plan with the gaps found in the spec comes first, and nothing is written until they approve it. API specs also get a runnable Postman collection. 4. One prompt to copy , e.g.: Here are the requirements for [feature] and an example of our test cases. Write test cases for [flow]. End with one question: what are they testing, and is the spec at hand? If there is no written spec, offer one way forward: describe the feature in a few sentences (fields, limits, rules, error messages) and Casely plans from that, listing what the description leaves open as gaps. No feature tour, no other commands, no hosted web version note. Phase 1 — Intake & Scope 1. Read every attachment directly. Claude reads PDF, DOCX, XLSX, TXT, and MD attachments natively — do not write or run a parsing script, and do not tell the user to pre convert anything. No OCR or parsing library is bundled, and none is needed. Exception for precision: if an example test case file is .xlsx or .csv , open it with a short Python snippet ( openpyxl or pandas ) instead of reading it visually. Column order and exact header text drive everything downstream, and code gives an exact reading where a visual scan of a spreadsheet does not. Jira and Confluence. When the user names a Jira issue ( PAY 142 ), an epic, a sprint or a Confluence page instead of attaching a file, read references/connectors.md first and follow it. Treat the fetched text exactly like an attachment. Connectors are read only: never create, edit, comment on or transition anything, even when the user asks. 2. Identify requirement documents vs. example test cases from context (file names, content, or what the user says). If it's ambiguous which is which, ask. 3. Resolve scope. If the user already named a feature/module/section, use it. Otherwise: If the requirements document is short or clearly covers one feature, proceed with the whole document. If it's long or spans multiple unrelated modules, list the modules/sections you detected (a short numbered list, e.g. "1. Auth 2. Payments 3. Profile") and ask which to cover. If the user doesn't pick, default to the whole document. Ask this as a normal conversational question. In Claude Code the AskUserQuestion tool makes a nicer picker if it's available; on claude.ai and desktop it is always plain text. The flow must work either way. 4. Notice whether this is an API feature. While reading, look for endpoints written as method + path, an OpenAPI/Swagger file, curl examples, request/response schemas, status and error codes, or an auth section. If they're there, the run can end with a runnable Postman collection on top of the Excel file — read references/api collection.md for the signals and the rules. Don't announce it yet; it belongs in the plan, where the user gets to approve or decline it. If the spec only describes screens and flows, there is no collection to build — never guess an endpoint from a flow description. 5. Look for a saved style first. Before asking for an example, check for a style the team saved in an earlier conversation: .casely/style.md in the project in Claude Code, or a casely style.md attached, in the Project knowledge on claude.ai, or in the working folder in Cowork. If one is there, use it, say so in one line ("Using your saved style: 7 columns, IDs continue from PAY 042") and don't ask for an example. A newly attached example wins over the saved file; Phase 2 says what to do then. 6. Handle a missing style example. If no saved style and no example test case file is there, ask once whether the user has one. If they don't, say Casely will use a sensible default structure ( ID Title Preconditions Steps Expected Result Priority ) and continue — don't block waiting for a file that may not exist. Phase 2 — Style Guide (from examples) 1. Extract the exact column headers and their order from the example test case(s). See references/style analysis prompts.md for the full method (structure, tone, taxonomy, language detection). 2. Preserve every header exactly as written, in the same order — including ones that look redundant, like "Comments" or "Author". The user's TMS import is mapped to these columns; a renamed or dropped header breaks the import, which is the specific pain Casely exists to remove. Add or rename columns only when the user asks. 3. Note the ID scheme used in the examples ( TC001 , AUTH 001 , PAY 042 ) and the number the team has reached. New cases continue that scheme rather than starting a parallel one. 4. Detect language, tone, and phrasing patterns (numbered vs. bulleted preconditions, verb tense in steps, single sentence vs. grouped expected results). 5. Check whether the format has a column for the source requirement ( Requirement , REQ , Spec Section , Reference ). Most team formats don't. Never invent one — the style guide wins — but say so in the plan: "your format has no column for the requirement reference, so traceability will live only in the plan table. Want me to add one?" Silently dropping it leaves the user unable to prove coverage to an analyst, and they find out after the import. When the requirements came from Jira, the issue key ( PAY 142 ) is the reference: offer it by name, because it lets the team filter the imported cases by story. 6. Summarize the style guide in a couple of lines as part of the reply — e.g. "Style guide: 7 columns (ID, Title, Preconditions, Steps, Expected Result, Priority, Component), Russian, numbered preconditions, IDs continue from PAY 042." Keep the full guide in test style guide.md for the rest of the conversation. If the user corrects it, carry the correction forward. Don't stop for approval here — move straight into planning. 7. Offer once to save the style. When the style came from an example and nothing is saved yet, add one line to the plan reply: "Want me to save this style, so next time you don't attach the example?" On a yes, or when a new example differs from a saved style, read references/saved style.md and follow it. Real data in the example never goes into the saved file. Phase 3 — Test Plan (⏸ approval gate — always stop here) Read references/test design.md before this phase. It carries the technique that separates a useful suite from a restatement of the requirements. 1. Extract modules/endpoints/logic blocks from the requirements, scoped per Phase 1. 2. Categorize by level (API, Integration, E2E) and size the coverage: Tier Cases/Module Coverage Focus Smoke 1–3 Minimal Golden path Critical ~80% of paths Key paths High risk (finance/auth) Full All partitions and boundaries Thorough Edges and negatives 3. Score risk per module (High: money, auth, data loss. Medium: business logic. Low: UI). 4. Build an RTM preview — requirement or section ID → planned case count ( REQ 001 → 5 cases ). Anything with zero planned cases is either an oversight or deliberately out of scope; say which. 5. Note test data needs (valid/edge values, mocks) where the requirements imply them. 6. Cross check the numbers across sections before writing the plan. Collect every limit, threshold, timeout and count in scope, then read each worked example and each other section against them. A stated limit of 50 000 and an example showing 75 000 succeeding contradict each other, and the contradiction decides how many cases the limit needs — so it belongs in the plan, not in a postscript after generation. Do this sweep deliberately; a contradiction spotted while writing case 27 has already cost the user an approval. 7. Report gaps in the requirements. While reading the spec, collect anything untestable, ambiguous, contradictory, or silent on the error path (see the last section of references/test design.md ) and present it as a short list with section references. This is often the most valuable thing in the reply — it catches problems while they are still cheap to fix, and it is what a QA lead does that a generator does not. Two patterns are easy to read past, so check for them by name: a term the spec gates behaviour on but never defines, and an external dependency whose failure it never describes. Writing a resilience case from experience does not close the second one — the missing decision still belongs in the list. 8. Say whether a Postman collection is part of this run. If Phase 1 found API level requirements, state it in the plan with the count — "12 of the 18 cases are API level, so I'll also produce a Postman collection for those, with base URL and token as variables" — and let the same approval cover it. If the requirements name flows but no endpoints, say that instead and ask for the API docs or an OpenAPI file rather than inventing paths. The collection is always an addition