Install
openclaw skills install caselyIntelligent QA assistant that automates writing test cases from project documentation. Use when the user wants to generate test cases from requirements, runs...
openclaw skills install caselyCasely automates the most time-consuming part of a QA engineer's job: writing test cases. It reads requirement documents and learns from your team's existing test case examples to produce structured, style-consistent test suites ready for import into any Test Management System.
Manual test case writing accounts for ~40% of a QA engineer's time. Requirements come in fragmented formats (PDF, DOCX, XLSX). Every team has its own column structure, naming conventions, and writing style. Casely solves this by:
docling./init [ProjectName]Creates a new isolated project workspace and verifies the environment.
/parseRuns the CaselyParser to convert all raw assets (requirements and examples) to Markdown.
/styleAnalyzes example test cases and generates a persistent test_style_guide.md.
/planScans parsed requirements and suggests a testing plan with modules and test types.
/generate [type]Generates atomic test cases of the specified type (functional, negative, integration, boundary, etc.).
/exportConverts generated Markdown test cases into a formatted .xlsx file.
/init)When the user runs /init [ProjectName] (or asks to start a new testing project):
Create Directories: Create the project directory structure under projects/ in the repository root:
input/requirements/input/examples/processed/requirements/processed/examples/results/exports/Environment Setup via uv:
pyproject.toml at the repository root (not inside the skill folder). Scripts expect uv sync to have been run from that root.pyproject.toml exists at the repo root. If not, run uv init there.uv add docling openpyxl (or uv sync from repo root).torch for docling) automatically.Confirm to the user:
{project_name} initialized via UV. Environment and dependencies (docling, openpyxl) are ready."projects/{project_name}/input/requirements/ and examples into projects/{project_name}/input/examples/."/parse)When the user runs /parse (or asks to parse/process documents):
Locate the project. If there's only one project under projects/, use it automatically.
If multiple exist, ask the user which one.
Run CaselyParser — The parser is located at scripts/casely_parser.py within this skill.
It uses docling and supports all major formats.
Via CLI (optional arguments, auto-detects latest project if omitted):
uv run python <skill-path>/scripts/casely_parser.py
(Or manual path if needed)
uv run python <skill-path>/scripts/casely_parser.py "projects/{name}/input/requirements" "projects/{name}/processed/requirements"
Report results to the user: how many files were parsed, any errors, and summary of processed files.
/style)Read all parsed example files from processed/examples/.
Analyze the table structure to extract headers, data types, and mandatory fields.
test_style_guide.md in their exact order. Do not rename, omit (e.g., "Comments", "Author"), or add new columns unless explicitly requested.Analyze the writing style to extract language, tone, and formatting patterns (e.g., how steps are phrased).
Generate test_style_guide.md in the project root. This file acts as the "source of truth" and must explicitly define the horizontal table row structure.
Present the style guide to the user for review. Any manual adjustments to this file will be respected by the generator.
/plan)Load Context & Analysis:
processed/requirements/.test_style_guide.md to match example structure (columns → test complexity).Structural Breakdown:
Smart Estimation (Style-Driven):
| Tier | Cases/Module | Coverage | Focus |
|---|---|---|---|
| Smoke | 1-3 | Min | Golden Path[web:13] |
| Critical (80%) | N (fields*0.8) | Key paths | High-risk (finance/auth) |
| Full | All perms | 100% | Edges/negatives |
Traceability & Prep:
Output Plan:
test_plan.md (importable to TMS)./generate functional MODULE_NAME" or "/generate negative MODULE_NAME".Next: "/generate [type] will create exactly the estimated number of files, with each file containing one atomic test case matching your style guide."
/generate [type])Load context:
test_style_guide.md (Mandatory Source of Truth).Generate ATOMIC test cases:
results/.{type}_{id}_{short_description}.md.Proactive Report:
/generate negative to check error handling or /generate security for device metadata."/export)scripts/export_to_xlsx.py.
projects/ directory if no paths are provided..md file in results/, the tool creates exactly one corresponding .xlsx file in exports/.
{type}_{id}_{short_description}.xlsx.<br>).exports/.After every command, Casely MUST provide a "Next Step" block.
/init -> suggest /parse./parse -> suggest /style./style -> suggest /plan./plan -> list specific commands like /generate functional or /generate negative./generate -> suggest /export OR other generation types.Casely is language-agnostic for data. It will detect the language of the provided examples (e.g., Russian) and generate test cases in that same language. The internal logic and style guide should bridge this gap.
Validators should always prefer multiple specialized test cases over one "all-in-one" case. This ensures clearer test results and easier bug localization.
The style guide is the single source of truth. Do not invent new columns or change formatting unless the style guide is updated first.
scripts/)scripts/casely_parser.py — Document-to-Markdown converter (Docling).scripts/export_to_xlsx.py — Markdown-to-Excel exporter.references/)references/parser_usage.md — Technical details on calling the parser.references/export_guide.md — Details on the MD-to-Excel conversion logic.references/style_analysis_prompts.md — Methodologies for style extraction.