Specification Driven Generation
ArabelaTso/Skills-4-SE
Generate implementation code and tests from written specifications.
Constructs test data against real backends and writes it back into test cases as executable preconditions.
$ npx skills add openqa-cn/codexqa --skill codexqa-testdata-generator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install openqa-cn/codexqa codexqa-testdata-generator --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/openqa-cn/codexqa.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/codexqa-testdata-generator .claude/skills/codexqa-testdata-generator && 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 "codexqa-testdata-generator" agent skill from https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-testdata-generator into .claude/skills/codexqa-testdata-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codexqa-testdata-generator", 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/openqa-cn/codexqa/tree/main/skills/codexqa-testdata-generatorType 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 openqa-cn/codexqa --skill codexqa-testdata-generator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install openqa-cn/codexqa codexqa-testdata-generator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openqa-cn/codexqa.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/codexqa-testdata-generator .agents/skills/codexqa-testdata-generator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "codexqa-testdata-generator" agent skill from https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-testdata-generator into .agents/skills/codexqa-testdata-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codexqa-testdata-generator", 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 openqa-cn/codexqa --skill codexqa-testdata-generator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install openqa-cn/codexqa codexqa-testdata-generator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openqa-cn/codexqa.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/codexqa-testdata-generator .cursor/skills/codexqa-testdata-generator && 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 "codexqa-testdata-generator" agent skill from https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-testdata-generator into .cursor/skills/codexqa-testdata-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codexqa-testdata-generator", 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/openqa-cn/codexqa.git --path skills/codexqa-testdata-generator--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 openqa-cn/codexqa --skill codexqa-testdata-generator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install openqa-cn/codexqa codexqa-testdata-generator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openqa-cn/codexqa.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/codexqa-testdata-generator .gemini/skills/codexqa-testdata-generator && 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 "codexqa-testdata-generator" agent skill from https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-testdata-generator into .gemini/skills/codexqa-testdata-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codexqa-testdata-generator", 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 openqa-cn/codexqa codexqa-testdata-generatorInstalls 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 openqa-cn/codexqa --skill codexqa-testdata-generator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/openqa-cn/codexqa.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/codexqa-testdata-generator .github/skills/codexqa-testdata-generator && 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 "codexqa-testdata-generator" agent skill from https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-testdata-generator into .github/skills/codexqa-testdata-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codexqa-testdata-generator", 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 openqa-cn/codexqa --skill codexqa-testdata-generator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install openqa-cn/codexqa codexqa-testdata-generator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openqa-cn/codexqa.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/codexqa-testdata-generator .opencode/skills/codexqa-testdata-generator && 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 "codexqa-testdata-generator" agent skill from https://github.com/openqa-cn/codexqa/tree/main/skills/codexqa-testdata-generator into .opencode/skills/codexqa-testdata-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codexqa-testdata-generator", 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.
codexqa-testdata-generatorConstructs test data against real backends and writes it back into test cases as executable preconditions.
Codexqa Testdata Generator is an agent skill from openqa-cn/codexqa. Constructs test data against real backends and writes it back into test cases as executable preconditions. Use whenever the user wants test data built, case materials or preconditions prepared, a data-build skill or tool reused, an API discovered, a construction script written, or a proven method recorded — including Chinese phrasings such as 构造测试数据, 准备测试数据, 造数据, 用例数据, 用例物料, 用例数据准备, 用例前置数据, 测试数据回写, 测试物料清单, 数据需求分析. Also use it for concrete requests that never say "test data", like "create this account from the…
Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 56 other files, including scripts, reference files and assets (for example `.meta.json`, `CONTRIBUTING.md` and `HOW_IT_WORKS.md`). Compatibility notes: Requires Node 22+ on PATH; scripts run on the Node standard library with no runtime npm dependencies. Works fully offline against local files and the bundled…
It sits in Testing & QA, covering Test data and fixtures, Test generation and OpenAPI specifications. It works with OpenAPI. The repository describes itself as: codexqa: 11 local-first Agent Skills for Cursor, Claude Code, Codex & OpenClaw — change impact analysis, AI code review, defect scan, testcase generation, browser replay & RCA. The licence is Apache-2.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 7839542. 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.
Ships 1 file in scripts/ (TypeScript, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
nodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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.
Requires Node 22+ on PATH; scripts run on the Node standard library with no runtime npm dependencies. Works fully offline against local files and the bundled mock server; enterprise platforms are opt-in HTTP adapters.
From compatibility in the SKILL.md frontmatter.
Codexqa Testdata Generator loads about 4.8k tokens when it runs, and up to ~9.7k if it reads all its reference files. Until then it costs about 235 tokens; SKILL.md has 1,877 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); the scripts in this folder are not scanned.
The full file from openqa-cn/codexqa at commit 7839542, republished under its Apache-2.0 licence (© openqa-cn). 1,877 words, ~4,762 tokens.
.claude/skills/codexqa-testdata-generator/SKILL.md (or your agent's skills folder). This skill also uses 53 other files; get the full folder from GitHub.This directory is the skill. It has no baked-in company knowledge. Platforms are adapters; local files work with zero extra infrastructure.
This skill never invents business data. It decides which path to take and extracts parameters the user already supplied; an executor, a published tool, or a generated script is what actually calls the backend. "Construct succeeded" means the backend returned a business ID, not that an ID appeared in the reply.
SKILL_DIR is the folder that contains this SKILL.md. Every command below
uses it, so resolve it once:
SKILL_DIR="<directory of this SKILL.md>"Config lookup: $DATA_BUILD_CONFIG → ./testdata/config.yaml → ~/.testdata/config.yaml.
Four fallback paths, in this order, after the case-material check below:
Read this file first; it is the routing contract. Load anything else only when the row below applies, so a single-step construct does not drag the whole tree into context.
| File | Load when |
|---|---|
SKILL.md (this file) | always: routing, priorities, guardrails |
| references/case-data-material-planner/SKILL.md | the request is a case-material job (see the next section) |
| references/workflow.md | you need the full command syntax, experience-report payloads, or the FAQ for steps 1–4 |
| references/adapters.md | wiring an enterprise platform, or an adapter behaves unexpectedly |
| references/script-template.ts | writing a step-4 construction script |
| slot-scaffolder/SKILL.md | building a reusable domain pack from OpenAPI |
| slots/SLOT_SPEC.md | authoring or reviewing a slot contract by hand |
README.md / README.zh-CN.md, HOW_IT_WORKS.md, INSTALL.md, KNOWN_LIMITATIONS.md (and .zh-CN.md) | human-facing: install, operations, method, and known gaps. Not needed by the agent |
After receiving a data-construction request, first decide whether it is a case-material job.
Trigger phrases (any match enters the sub-skill and stops the generic flow):
On hit: load and follow references/case-data-material-planner/SKILL.md. Run references/case-data-material-planner/scripts/pipeline.ts as the orchestrator (paths below are relative to that sub-skill root) — construction, binding, and writeback are stages inside that script, so do not spawn Agents to do them.
The sub-skill root is <this SKILL.md directory>/references/case-data-material-planner/.
All of its scripts/, agents/, templates/ paths are relative to that root.
Handle every other request in this exact order:
user data-construction request
│
▼
[route] case-material scene? (phrases above)
│
├─ yes → load references/case-data-material-planner/SKILL.md ✓ stop
│
└─ no → generic flow
│
▼
[step 1] search_data_build.ts
(semantic proven methods + skill marketplace, in parallel)
│
├─ pinned_matches present AND Agent judges them relevant
│ → load skillPath (or install) → delegate → report ✓ stop
│
├─ proven_matches present AND Agent judges them applicable
│ → run proven_invocation → feedback only ✓ stop
│
├─ skill_matches: one local clear match
│ → load → delegate → report ✓ stop
│ several / weak / needs install → ask, then same
│
└─ none match
│
▼
[step 2] tool_registry.query (two query angles)
│
├─ one clear tool (or user already gave an id)
│ → query_input_list → fill params → execute → report ✓ stop
│ several / weak → ask, then same
│
└─ no matching tool
│
▼
[step 3] api_catalog (in parallel when useful)
│
├─ method A: plan change APIs (if planId exists)
└─ method B: keyword / service search
│
▼
[step 4] write script from template
│
├─ generate → run locally → report
└─ after a successful run, ask whether to publish
├─ yes → tool_registry.publish ✓ stop
└─ no → return the result ✓ stopExtract two kinds of input from the user request:
Keywords (skill-name match):
slot.yamlStructured query (semantic match):
registry-key: {entity}::{action}, e.g. catalog-order::createquery: one natural-language sentenceentry-type: entity or actiondomain: from workspace context business_line, or infer from the requestExamples and the full command: references/workflow.md.
node "$SKILL_DIR/scripts/search_data_build.ts" \
--keywords <nouns> \
--query "<sentence>" \
--registry-key "<entity>::<action>" \
--entry-type entity \
--domain "<domain>" \
--jsonThe script runs proven-method search and skill-marketplace search in parallel, then injects pinned favorites. JSON shape:
{
"pinned_matches": [...],
"proven_matches": [...],
"skill_matches": [...]
}Priority 0 — pinned_matches (highest)
Pinned skills are returned unconditionally so retrieval noise cannot drop them.
The Agent judges relevance from each item's description (same idea as proven applicability):
skillPath when SKILL.md exists.
If available=false or skillPath is missing, install then load.The script does no keyword filter on pinned items. A relevant pinned hit ends step 1; do not evaluate proven/skill after that.
Priority 1 — proven_matches
Reuse only when all three hold:
registry_key describes the same operationproven_invocation.paramMapping values exist in contextAll three → execute proven_invocation and keep experience_id for feedback.
Any miss → skip that row and continue to skill_matches.
Priority 2 — skill_matches
Asking is for ambiguity, not ceremony. The user already asked to construct
data. Drop rows whose description does not cover the request (a catalog-product
construct is not a distributor slot, even if both appear in skill_matches).
skillPath already has SKILL.md) → load
it, say which skill you used, and stop. Do not ask first.available=false or no skillPath) → ask, because
install is a side effect the user did not request.None match → go to step 2.
If search is empty and the user wants a reusable domain pack (not a one-off
construct), read $SKILL_DIR/slot-scaffolder/SKILL.md and follow it. That is a
bundled folder in this skill, not a separately installed skill — do not go
looking for it in the host's skill list. One-off work continues at step 2.
SKILLS_DIR="$(dirname "$SKILL_DIR")"
node "$SKILL_DIR/scripts/adapters/cli.ts" skill_marketplace.install '<name>' '$SKILLS_DIR'If skillPath already points at a directory that contains SKILL.md, load it
directly and skip install. After load, follow that skill and stop.
Pinned skills always enter the candidate set first. Relevance is Agent-judged.
| User says | Command |
|---|---|
| pin this skill | node "$SKILL_DIR/scripts/favorites.ts" add --name "<name>" --desc "<when to use>" --path "<dir with SKILL.md>" |
| show pinned | node "$SKILL_DIR/scripts/favorites.ts" list |
| unpin | node "$SKILL_DIR/scripts/favorites.ts" rm --name "<name>" (or --uuid / --id) |
| verify pinned | node "$SKILL_DIR/scripts/favorites.ts" verify |
Storage: project ./testdata/data-build-favorites.json, user ~/.testdata/favorites.json.
add writes the user file unless --scope project. $DATA_BUILD_FAVORITES_PATH overrides both.
Query with natural-language sentences, not space-separated keywords.
Write at least two angles:
| Angle | Intent | Example |
|---|---|---|
| A | construct / create | create a catalog test product |
| B | business flow | customer books a standard product |
node "$SKILL_DIR/scripts/adapters/cli.ts" tool_registry.query "create a catalog test product"If the user already has a tool id, look it up exactly:
node "$SKILL_DIR/scripts/adapters/cli.ts" tool_registry.get "<resource-id>"Then:
tool_registry.query_input_list(resource_id)tool_registry.execute(resource_id, params)Use when the request sits inside a test-plan / change scope.
Resolve planId from workspace context testPlan.id or planId. If missing, ask the user.
node "$SKILL_DIR/scripts/adapters/cli.ts" api_catalog.search_plan_changes "<planId>"Then api_catalog.detail(<operationId>) for key operations.
Use when there is no planId, or plan APIs are weakly related.
First: read workspace context targetRepositories[].serviceId or relatedJobs[].serviceId.
If a service id is already known, list its APIs directly:
node "$SKILL_DIR/scripts/adapters/cli.ts" api_catalog.list_by_service "<serviceId>" "<optional-name-filter>"Second: keyword search. Use one precise token, not a long Chinese/English phrase.
node "$SKILL_DIR/scripts/adapters/cli.ts" api_catalog.search "create catalog product"Then api_catalog.detail(<operationId>).
If the workspace has no API source at all (no OpenAPI files, no planId, no serviceId), stop and ask for a plan, a service id, or an OpenAPI directory. That is a material gate, not a field-by-field param review. Do not invent endpoints.
| Situation | Strategy |
|---|---|
Has planId, request matches the change | A first: plan APIs → detail key ops |
Has planId, change is weakly related | A + B: inspect the change, then search by request |
No planId | B: service id if known, else keyword search |
| User already named a service / API | B: list_by_service or search + detail |
Write ./testdata/<name>.ts from references/script-template.ts, then run it.
Required shape: shebang + docstring, top-level constants, main(params) -> {success, data, error}, CLI entry via import.meta.url.
Use adapter helpers only: callHttp, callSql, getConfig, callFeatureFlag.
Rules:
shell: trueobject / array / bool / number with typeof / Array.isArrayFeature flags (only when the user asks for experiments, drafts, or whitelists
and feature_flags.type is not noop): confirm the environment before writes;
production writes need a second confirmation; one subject per call.
toolType for a successful flag script is feature_flag.
After a successful local run, ask whether to publish to the tool registry. Do not publish before a successful run.
node "$SKILL_DIR/scripts/adapters/cli.ts" tool_registry.publish '<name>' '<what the script does>' './testdata/<name>.ts' '[{"name":"<param>","type":"string","required":true}]'Report the business outcome, because that is the only part the user can act on. Lead with the identifiers the backend returned, then how they were produced, then anything still needed:
Constructed <what>: <field>=<value>, <field>=<value>
Path: <domain skill | registry tool | generated script> (<name>)
Next: <what the user can do with it, or what is still missing>Keep infrastructure out of it — skillRoot, absolute paths, mock ports, node …
invoke lines, and adapter names are noise to the person who asked for data, and
in a case document they are actively wrong (see the writeback rules). Also say
which environment produced the IDs when it was the local mock, since a mock ID
looks identical to a real one but nothing landed in a real system.
If a path failed and you fell through to the next one, say so in one line rather than narrating every attempt.
Non-blocking. A report/feedback failure must not hide a successful construct.
When to report vs feedback:
Payloads and toolType mapping: references/workflow.md.
Never put tokens, cookies, personal identifiers, or local absolute skillRoot paths
in the experience store. Consumers locate a skill by resourceId (skill name).
If a skill (not a tool or script) completed the request and is not already pinned,
ask: "Pin <name> so later similar requests stay at the top?"
On confirm:
node "$SKILL_DIR/scripts/favorites.ts" add --uuid <uuid> --name "<name>" \
--desc "<what it does and when to use it>" --path "<local skill dir>"Pinning and experience reporting are independent. A declined pin does not undo the construct.
Ask the user only when a prerequisite material is missing — a case pack, an API/OpenAPI source, a cross-domain product, or a slot spec. Do not stop to collect executor fields (fulfillOn, quantity, credits, rate, …). Those follow the original rules: reuse user-supplied IDs, fill optional params with defaults, do not invent core IDs.
| Scenario | Prerequisite material | If missing |
|---|---|---|
| 1. One-shot construct | None extra. Run the original 4-step fallback | — |
| 2. Multi-step scene | Upstream domain artifact the scene cannot create (e.g. ready-to-sell needs a catalog product) | Ask for that material or construct it first, then finish remaining scene steps |
| 3. Write a script from APIs | An API source: OpenAPI files, planId, or serviceId | Ask for one of those; then write/run the script with original param rules |
| 4. Case materials | At least one case source (file, paste, planId, or URL) | Ask; do not parse or construct without cases. Path A waits for cases after knowledge-build |
| 5. New domain slot | A scene skill under slots/ (or workspace.slot_roots) | Ask for the skill folder or domain + OpenAPI to scaffold. Drop-in discover; do not invent operations |
After the user supplies the material, resume and complete the remaining workflow. Do not skip later high-level steps.
© openqa-cn, Apache-2.0. 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 53 other files (scripts, references, assets) in skills/codexqa-testdata-generator of openqa-cn/codexqa.
Open the folder on GitHubat commit 7839542
Codexqa Testdata Generator 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 |
|---|---|---|---|---|---|---|
| Codexqa Testdata Generator this skillopenqa-cn/codexqa | 152 | — | ~4.8k | Automated safety check: Pass | Apache-2.0 | |
| Specification Driven GenerationArabelaTso/Skills-4-SE | 253 | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Build Simulationcounterfact/api-simulator | 170 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Afrexai API ArchitectLeoYeAI/openclaw-master-skills | 2.2k | — | ~6.8k | Automated safety check: Pass | MIT | |
| Cloud Agents Starterscalar/scalar | 16k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Skill Doli Test InteractiveDolibarr/dolibarr | 7.7k | 1 repos | ~5.5k | Automated safety check: Pass | GPL-3.0 |
ArabelaTso/Skills-4-SE
Generate implementation code and tests from written specifications.
counterfact/api-simulator
Build a fully simulated API from an OpenAPI spec using Counterfact.
LeoYeAI/openclaw-master-skills
Design, build, test, document, and secure production-grade APIs.
scalar/scalar
Minimal starter runbook for cloud agents to install dependencies, run packages, execute tests, and troubleshoot the Scalar monorepo quickly.
Dolibarr/dolibarr
Create interactive PHP test case scripts for Dolibarr ERP/CRM that allow users to setup test data, view results via direct links, and tear down (clean up) the data.
jabrena/plinth
A skill your agent uses when you need to add or review fuzz testing for Java APIs with CATS — including contract-driven negative testing, malformed payload validation, boundary input exploration, CI…
openqa-cn/codexqa
Builds a local architecture wiki for a repository from the CodexQA symbol graph (no model needed): modules, who calls whom and how often, reading paths, and one self-contained HTML page.
openqa-cn/codexqa
Diagnoses exception root causes from stack traces, logs, call-chain dumps, and debug output using the CodexQA CLI for structured repo analysis.
openqa-cn/codexqa
Auto-routes a user request to the matching codexqa skill, then ensures that skill is on disk and follows its SKILL.md.
openqa-cn/codexqa
Generates test plans and test cases from local requirements for APP, Web, and server.
openqa-cn/codexqa
Constructs catalog products (standard or limited), catalog orders, and account-credit enrollment, including product-then-credit scenes.
openqa-cn/codexqa
Change-impact analysis for one diff: use CodexQA diff indexing (index --diff-base tags nodes and files add / change / delete, then change-groups / symbol-diff / file-base) to write one HTML report…
Works with
Categories
Constructs test data against real backends and writes it back into test cases as executable preconditions. Codexqa Testdata Generator is an agent skill from openqa-cn/codexqa. Constructs test data against real backends and writes it back into test cases as executable preconditions.
Codexqa Testdata Generator fits situations like: the user wants test data built; preconditions prepared; A data-build skill; an API discovered.
Run `npx skills add openqa-cn/codexqa --skill codexqa-testdata-generator -a claude-code`. Or copy the skill folder (skills/codexqa-testdata-generator in openqa-cn/codexqa) into .claude/skills/codexqa-testdata-generator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add openqa-cn/codexqa --skill codexqa-testdata-generator -a codex`. Or copy the skill folder (skills/codexqa-testdata-generator in openqa-cn/codexqa) into .agents/skills/codexqa-testdata-generator 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 openqa-cn/codexqa --skill codexqa-testdata-generator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/codexqa-testdata-generator, .gemini/skills/codexqa-testdata-generator, .github/skills/codexqa-testdata-generator and .opencode/skills/codexqa-testdata-generator in your project.
Going by SKILL.md and its folder, Codexqa Testdata Generator needs TypeScript for the scripts in its folder and the command-line tools its instructions call (node). Our summary lists: Node.js. Compatibility (from SKILL.md): Requires Node 22+ on PATH; scripts run on the Node standard library with no runtime npm dependencies. Works fully offline against local files and the bundled mock server; enterprise platforms are opt-in HTTP adapters..
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Codexqa Testdata Generator is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.8k tokens (SKILL.md is roughly 19k 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 4.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Codexqa Testdata Generator: Specification Driven Generation (ArabelaTso/Skills-4-SE, 253 stars), Build Simulation (counterfact/api-simulator, 170 stars), Afrexai API Architect (LeoYeAI/openclaw-master-skills, 2.2k stars) and Cloud Agents Starter (scalar/scalar, 16k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
openqa-cn (a GitHub organization) maintains it in openqa-cn/codexqa, which has 152 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 3, 2026.
Source: openqa-cn/codexqa on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.