Test Writing Workflow
iOfficeAI/AionUi
Sets the test-writing workflow for the repository: risk-first scenario lists, behavior-focused Vitest tests, a full run before each commit and a coverage target.
Generate standard unit tests for one or more target classes in Apache ShardingSphere; cover requested behavior and every affected SUT-owned branch, enforce an explicitly requested numeric coverage…
$ npx skills add apache/shardingsphere --skill gen-ut -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install apache/shardingsphere gen-ut --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/apache/shardingsphere.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/gen-ut .claude/skills/gen-ut && 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 "gen-ut" agent skill from https://github.com/apache/shardingsphere/tree/master/.codex/skills/gen-ut into .claude/skills/gen-ut/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gen-ut", 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/apache/shardingsphere/tree/master/.codex/skills/gen-utType 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 apache/shardingsphere --skill gen-ut -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install apache/shardingsphere gen-ut --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/apache/shardingsphere.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.codex/skills/gen-ut .agents/skills/gen-ut && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gen-ut" agent skill from https://github.com/apache/shardingsphere/tree/master/.codex/skills/gen-ut into .agents/skills/gen-ut/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gen-ut", 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 apache/shardingsphere --skill gen-ut -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install apache/shardingsphere gen-ut --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/apache/shardingsphere.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.codex/skills/gen-ut .cursor/skills/gen-ut && 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 "gen-ut" agent skill from https://github.com/apache/shardingsphere/tree/master/.codex/skills/gen-ut into .cursor/skills/gen-ut/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gen-ut", 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/apache/shardingsphere.git --path .codex/skills/gen-ut--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 apache/shardingsphere --skill gen-ut -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install apache/shardingsphere gen-ut --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/apache/shardingsphere.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.codex/skills/gen-ut .gemini/skills/gen-ut && 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 "gen-ut" agent skill from https://github.com/apache/shardingsphere/tree/master/.codex/skills/gen-ut into .gemini/skills/gen-ut/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gen-ut", 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 apache/shardingsphere gen-utInstalls 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 apache/shardingsphere --skill gen-ut -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/apache/shardingsphere.git skills-src && mkdir -p .github/skills && cp -r skills-src/.codex/skills/gen-ut .github/skills/gen-ut && 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 "gen-ut" agent skill from https://github.com/apache/shardingsphere/tree/master/.codex/skills/gen-ut into .github/skills/gen-ut/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gen-ut", 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 apache/shardingsphere --skill gen-ut -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install apache/shardingsphere gen-ut --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/apache/shardingsphere.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.codex/skills/gen-ut .opencode/skills/gen-ut && 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 "gen-ut" agent skill from https://github.com/apache/shardingsphere/tree/master/.codex/skills/gen-ut into .opencode/skills/gen-ut/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gen-ut", 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.
gen-utGenerate standard unit tests for one or more target classes in Apache ShardingSphere; cover requested behavior and every affected SUT-owned branch, enforce an explicitly requested numeric coverage…
Gen Ut is an agent skill from apache/shardingsphere. Generate standard unit tests for one or more target classes in Apache ShardingSphere; cover requested behavior and every affected SUT-owned branch, enforce an explicitly requested numeric coverage target, and pass quality gates; perform explicit merge analysis, suitability filtering, and refactor optimization for parameterized tests.
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including scripts and reference files (for example `agents/openai.yaml`, `references/verification.md` and `scripts/collect_quality_baseline.py`).
It sits in Testing & QA, covering Unit testing and Quality gates. It works with SQL. The repository describes itself as: Empowering Data Intelligence with Distributed SQL for Sharding, Scalability, and Security Across All Databases. The licence is Apache-2.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 44e364e. 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 2 files in scripts/ (Python), which the agent can run.
From 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.
Gen Ut loads about 3k tokens when it runs, and up to ~4.3k if it reads all its reference files. Until then it costs about 86 tokens; SKILL.md has 1,544 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 apache/shardingsphere at commit 44e364e, republished under its Apache-2.0 licence (© apache). 1,544 words, ~3,028 tokens.
.claude/skills/gen-ut/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Require target production classes, preferably as fully-qualified names. Accept an optional module and optional test-class execution filter.
Discover related tests by the exact <TargetClassName>Test convention and update them in place; create that class only when none exists.
Resolve:
<ResolvedTargetClasses>: requested production classes.<ResolvedTestFileSet>: only related test Java files and required test resources that may be edited.<ResolvedTestModules>: explicit Maven modules owning those tests.<ResolvedTestClass>: focused test-class filter for execution.Use an explicitly supplied module first. Otherwise resolve the nearest owning pom.xml from test files, then target sources.
If target classes or modules cannot be resolved, return R10-INPUT_BLOCKED.
SUT-owned behavior: decisions, branches, state changes, calls, results, or error handling owned by the target class.Collaborator-owned behavior: behavior computed by an SPI, registry, factory, parser, loader, driver, dialect, metadata option, or another dependency.Testing through layers: driving or asserting collaborator-owned rules instead of mocking the result consumed by the target.KEEP:<id>:<reason>: evidence for retaining an otherwise redundant candidate because removal materially harms readability or diagnosis.Task scope baseline: structured pre-edit snapshot of the allowed test files and every dirty path outside them.MUST, SHOULD, and MAY are normative. This section is the source of R1-R15; workflow and command examples do not override it.
Before any test write, read AGENTS.md and code-implementation/SKILL.md through EOF, then read every reference selected by that base Skill for this task through EOF, including its implementation, testing, contract, impact, removal, non-regression, and verification rules.
Follow the applicable CODE_OF_CONDUCT.md sections.
The base Skill owns universal implementation, testing, non-regression, verification, and completion requirements; this Skill adds target resolution, coverage, branch-map, parameterization, and scanner requirements for systematic unit-test generation.
Reading either Skill does not expand the user-authorized scope, file types, Git authority, or other permissions.
@Test for standalone scenarios.@ParameterizedTest(name = "{0}"), @MethodSource, and Arguments for data-driven scenarios. Declare final String name first and provide at least three rows.@RepeatedTest, Consumer as scenario transport, switch dispatch inside parameterized tests, or new nested transport types.assert<MethodName>.<ResolvedTestFileSet> under src/test/java or src/test/resources.Task scope baseline after resolving the file set and before editing. Any candidate-relevant changed path outside that set is a failure,
including further mutation of a path already dirty at task start. Exclude only untracked or ignored reproducible verification outputs such as Maven target/
and Python __pycache__/; they are not editable scope and must not be modified intentionally.R6 to decide whether to mock them.R13 for additional cases.default or static methods directly. Exercise abstract contracts through concrete implementations, including when the user explicitly requests an interface-contract test.CALLS_REAL_METHODS.getType, getOrder, or getTypeClass unless explicitly requested.Update existing related tests in place and fill missing coverage first. An explicit test-class input filters execution only; it does not replace related-test discovery. Create a new exact-name test class only when none exists.
For each target public method, record R8-CANDIDATES with the method, candidate count, decision, and evidence. A candidate is high-fit only when all are true:
switch dispatch is required.Collaborator-owned differences are not high-fit. Refactor high-fit candidates; otherwise record the concrete reason.
Use KEEP only when a genuinely high-fit refactor would materially reduce readability or diagnosis.
The scanner discovers possible groups but never decides semantic high-fit. Treat its candidate count as evidence to review, not an instruction to refactor.
When unreachable production code blocks coverage, report the class, path, exact line, and reason. Do not change production code within this Skill.
Use exactly one state:
R10-INPUT_BLOCKED: target classes or test modules cannot be resolved.R10-A: scope is clean; focused tests execute at least one test; declared target coverage is met for every target and inner class;
repository formatting/checkstyle gates pass; both final rule scans pass; semantic reviews and R8 decisions are complete.R10-B: production dead code blocks the target and R9 evidence is complete.R10-C: an out-of-scope failure is evidenced under R11.R10-D: work remains; continue instead of claiming completion.Priority is INPUT_BLOCKED > B > C > A > D. By default, cover the requested behavior and every affected SUT-owned branch. Apply a numeric CLASS, LINE, or BRANCH target only when the user states it; an explicit 100% target remains mandatory.
Fix in-scope failures and rerun the focused test plus mechanical rule scan. For out-of-scope failures, record command, exit code, decisive lines, and blocking file/line, then request direction. Retry transient dependency or network failures at most twice. Minimal repair checks never replace final gates.
If reproducible target-class evidence is already 100%, skip coverage completion and perform only required optimization and quality work.
Mark R4=N/A (triggered by R12) and retain the coverage command and report path.
KEEP only to an otherwise redundant item retained for a concrete readability or diagnostic reason; meaningful tests need no tag.Use assertTrue/assertFalse for literal or constant expectations and assertThat(actual, is(expected)) for variable expectations.
Do not use boolean assertEquals, boolean literals inside Hamcrest is, or control flow whose only purpose is selecting
assertTrue versus assertFalse. Run the mechanical scan after implementation stabilizes and again immediately before delivery.
R15-A: complete the semantic R8 decision; the scanner cannot infer high-fit.R15-B: confirm any metadata-accessor candidate was explicitly requested; the scanner only reports likely candidates.R15-C: compare the final worktree with Task scope baseline; any candidate-relevant out-of-scope mutation fails. Ignore only reproducible,
untracked or Git-ignored verification outputs.R15-D: every parameterized test uses @MethodSource with at least three Arguments rows. Inspect external providers manually.R15-E: the first parameter is exactly final String name.R15-F: parameterized bodies contain no switch.R15-G: parameterized test changes add no nested transport type.R15-H: boolean assertions obey R14 without assertion-dispatch control flow.R15-I: parameterized signatures and provider rows contain no Consumer; inspect external providers manually.R15-J: helpers and providers do not invoke target public methods. Treat scanner results as partial evidence and inspect unresolved ownership manually.R1 source loading, then read this Skill's verification commands through EOF.Task scope baseline for the resolved file set.collect_quality_baseline.py to report coverage and mechanical risks.R12; otherwise record the SUT/collaborator ownership boundary and R4 branch map.R8 condition and record candidate-level decisions.R9, then implement the smallest tests allowed by R2-R7.R13, re-run coverage, and inspect semantic R15-A/B/D/I/J obligations.R10 twice before delivery.Do not reuse a prior task's test or coverage result. Final coverage must execute tests for the effective candidate.
Include:
R10=<state>;R8-CANDIDATES with candidate decisions and evidence;R12 exemption;R1-R15;R10-A.Never use completion wording for R10-D.
© apache, 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 6 other files (scripts, references) in .codex/skills/gen-ut of apache/shardingsphere.
Open the folder on GitHubat commit 44e364e
Gen Ut 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 |
|---|---|---|---|---|---|---|
| Gen Ut this skillapache/shardingsphere | 21k | — | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Test Writing WorkflowiOfficeAI/AionUi | 33k | 1 repos | ~1.2k | Automated safety check: Pass | Apache-2.0 | |
| Test GuardamElnagdy/guard-skills | 1.3k | 2 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Checkav1155/houndarr | 292 | — | ~366 | Automated safety check: Pass | AGPL-3.0 | |
| Hydra Devstreamband/hydra-srt | 146 | — | ~995 | Automated safety check: Pass | Apache-2.0 | |
| Pump Testingnirholas/pump-fun-sdk | 133 | 1 repos | ~706 | Automated safety check: Pass | Custom licence |
iOfficeAI/AionUi
Sets the test-writing workflow for the repository: risk-first scenario lists, behavior-focused Vitest tests, a full run before each commit and a coverage target.
amElnagdy/guard-skills
Reviews newly written or edited tests against nine rules that cut test bloat, such as mock-heavy checks and near-duplicate cases, before they are committed.
av1155/houndarr
Run Houndarr's full quality gate (ruff lint, ruff format check, mypy, bandit, pytest) and report results in a single table.
streamband/hydra-srt
Run HydraSRT development workflows: mix q quality gate, Elixir unit/E2E tests, native Rust tests, web Vitest/Playwright, and make dev.
nirholas/pump-fun-sdk
Multi-language test infrastructure for the Pump SDK — Rust unit/integration/security/performance tests, TypeScript Jest tests, Python fuzz tests, shell test orchestration, Criterion benchmarks, and…
disler/learning-cmux-with-agents
Testing rules for the cmux Swift codebase: Swift Testing as the default framework, a two-commit regression policy, and tests that check runtime behavior, not source text.
apache/shardingsphere
Review Apache ShardingSphere or user-authorized downstream pull requests and PR discussions from public or authorized repository evidence.
apache/shardingsphere
Implement, fix, refactor, or remove repository code under required scope, non-regression, verification, and review gates.
apache/shardingsphere
Apply Apache ShardingSphere's written coding standards when explicitly requested, or when code-implementation routes task-changed production, test, script, build, generated, or Maven POM artifacts…
apache/shardingsphere
Used to analyze Apache ShardingSphere community issues. An agent skill from apache/shardingsphere.
Works with
Categories
Generate standard unit tests for one or more target classes in Apache ShardingSphere; cover requested behavior and every affected SUT-owned branch, enforce an explicitly requested numeric coverage…. Gen Ut is an agent skill from apache/shardingsphere. Generate standard unit tests for one or more target classes in Apache ShardingSphere; cover requested behavior and every affected SUT-owned branch, enforce an explicitly requested numeric coverage target, and pass quality gates; perform explicit merge analysis, suitability filtering, and refactor optimization for parameterized tests.
Gen Ut fits situations like: tasks that involve Unit testing; tasks that involve Quality gates.
Run `npx skills add apache/shardingsphere --skill gen-ut -a claude-code`. Or copy the skill folder (.codex/skills/gen-ut in apache/shardingsphere) into .claude/skills/gen-ut in your project. Claude Code loads it when a task matches its description.
Run `npx skills add apache/shardingsphere --skill gen-ut -a codex`. Or copy the skill folder (.codex/skills/gen-ut in apache/shardingsphere) into .agents/skills/gen-ut 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 apache/shardingsphere --skill gen-ut -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gen-ut, .gemini/skills/gen-ut, .github/skills/gen-ut and .opencode/skills/gen-ut in your project.
Going by SKILL.md and its folder, Gen Ut needs Python for the scripts in its folder. Our summary lists: Python 3.
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.
Gen Ut is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k 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 1.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Gen Ut: Test Writing Workflow (iOfficeAI/AionUi, 33k stars), Test Guard (amElnagdy/guard-skills, 1.3k stars), Check (av1155/houndarr, 292 stars) and Hydra Dev (streamband/hydra-srt, 146 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
apache (a GitHub organization) maintains it in apache/shardingsphere, which has 20,804 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.
Source: apache/shardingsphere on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.