Convert OpenTest.AI natural-language test cases (JSON with `test_steps[]`, `overall_description`, `validation_conditions`, `data.expected_test_input_parameters`, `data.expected_results`) to and from Selenium, Playwright, Cypress, Appium, Cucumber, Eggplant (SenseTalk), Testers.AI Recorder, and Testers.AI Dynamic. Handles both the dict-by-hash wrapper form `{ "<hash>": {test_case_id, name} }` and the array wrapper form `{ "test_cases": [...] }`. Use whenever the user wants to migrate an OpenTest.AI test suite, translate a single test-case object, or round-trip OpenTest.AI through another framework. MANDATORY TRIGGERS: "convert OpenTest.AI", "OpenTest.AI to Playwright", "OpenTest.AI to Selenium", "OpenTest.AI to Eggplant", "natural language tests to code", "migrate OpenTest.AI", "translate opentest", "generate Selenium from OpenTest.AI".
Instalação
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Convert OpenTest.AI natural-language test cases (JSON with `test_steps[]`, `overall_description`, `validation_conditions`, `data.expected_test_input_parameters`, `data.expected_results`) to and from Selenium, Playwright, Cypress, Appium, Cucumber, Eggplant (SenseTalk), Testers.AI Recorder, and Testers.AI Dynamic. Handles both the dict-by-hash wrapper form `{ "<hash>": {test_case_id, name} }` and the array wrapper form `{ "test_cases": [...] }`. Use whenever the user wants to migrate an OpenTest.AI test suite, translate a single test-case object, or round-trip OpenTest.AI through another framework. MANDATORY TRIGGERS: "convert OpenTest.AI", "OpenTest.AI to Playwright", "OpenTest.AI to Selenium", "OpenTest.AI to Eggplant", "natural language tests to code", "migrate OpenTest.AI", "translate opentest", "generate Selenium from OpenTest.AI".
Converts natural-language OpenTest.AI test cases from the JSON schema to any supported target, and to OpenTest.AI from another framework. Defers orchestration, cross-framework rules, and target semantics to the open-testing-convert master skill.
When to use
Trigger when:
The user references an OpenTest.AI test suite, .opentest.json, test_cases.json, a folder of natural-language test cases, or the OpenTest.AI format.
A single bare test-case object with test_case_id, name, test_steps.
Step lines use the imperative voice ("Navigate to ...", "Click the ...", "Verify ...", "Enter '...' into ...").
The user asks to generate code from natural-language tests or to reverse-engineer automation from OpenTest.AI steps.
How to use
Read the master orchestrator first. Open ../open-testing-convert/SKILL.md.
Normalise the wrapper. Convert dict-by-hash and bare-object inputs into the canonical array form { "test_cases": [...] } before processing.
Read the OpenTest.AI target primer.../open-testing-convert/reference/targets/opentestai.md documents the schema fields, step phrasing conventions, and the relationship to Testers.AI Dynamic.
Read the relevant target primer for where you're going:
For code targets: consult the per-source profile (../open-testing-convert-selenium/reference/source-profile.md, etc.) for the target's canonical shape.
Read this skill's reference files:
reference/source-profile.md — the OpenTest.AI schema, both wrapper forms, i18n, all observed field conventions.
reference/extraction.md — how to parse test steps into canonical intent (including NL step templates).
reference/mappings.md — per-target cookbook.
Read shared references as needed: open-testing-convert/reference/shared/{locator-mapping,wait-strategies,assertion-mapping,lifecycle-mapping}.md.
Emit the converted test(s) per the target primer's Emission Checklist. Produce a preamble summarising: source wrapper form, tests-converted count, language choice, any NL steps the converter couldn't pattern-match (flagged as TODOs).
Scope
Both wrapper forms (dict-by-hash and test_cases:[] array).
All known fields: test_case_id, name, url, overall_description, validation_conditions, test_steps, data.expected_test_input_parameters, data.expected_results, tags, priority, owner, platform, app.
Multi-language test steps (English primary; German and other locales are preserved verbatim).
Test cases with app context (mobile) as well as URL context (web).
Out of scope
Testers.AI Dynamic (which shares the same step schema but uses a different envelope and adds hints[]) — use open-testing-convert-testersai-dynamic.
Testers.AI Recorder (which uses recordedActions[]) — use open-testing-convert-testersai-recorder.
NL step → action layer — the core conversion
Natural-language targets are forgiving at execution time (an LLM resolves the step at runtime), but code targets demand concrete locators and actions. The extractor converts each NL step into a canonical action via pattern matching; ambiguous steps are flagged as TODOs.
See reference/extraction.md for the NL step template catalogue.