Designing Tests
CloudAI-X/claude-workflow-v2
Designs and implements testing strategies for any codebase. An agent skill from CloudAI-X/claude-workflow-v2.
Guides running, reviewing and fixing test failures across grails-core modules with Gradle, including targeted runs and the aggregate HTML and Markdown reports.
$ npx skills add apache/grails-core --skill test-fixer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install apache/grails-core test-fixer --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/grails-core.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/test-fixer .claude/skills/test-fixer && 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 "test-fixer" agent skill from https://github.com/apache/grails-core/tree/8.0.x/.agents/skills/test-fixer into .claude/skills/test-fixer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-fixer", 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/grails-core/tree/8.0.x/.agents/skills/test-fixerType 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/grails-core --skill test-fixer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install apache/grails-core test-fixer --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/apache/grails-core.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/test-fixer .agents/skills/test-fixer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "test-fixer" agent skill from https://github.com/apache/grails-core/tree/8.0.x/.agents/skills/test-fixer into .agents/skills/test-fixer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-fixer", 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/grails-core --skill test-fixer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install apache/grails-core test-fixer --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/apache/grails-core.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/test-fixer .cursor/skills/test-fixer && 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 "test-fixer" agent skill from https://github.com/apache/grails-core/tree/8.0.x/.agents/skills/test-fixer into .cursor/skills/test-fixer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-fixer", 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/grails-core.git --path .agents/skills/test-fixer--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/grails-core --skill test-fixer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install apache/grails-core test-fixer --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/apache/grails-core.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/test-fixer .gemini/skills/test-fixer && 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 "test-fixer" agent skill from https://github.com/apache/grails-core/tree/8.0.x/.agents/skills/test-fixer into .gemini/skills/test-fixer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-fixer", 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/grails-core test-fixerInstalls 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/grails-core --skill test-fixer -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/apache/grails-core.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/test-fixer .github/skills/test-fixer && 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 "test-fixer" agent skill from https://github.com/apache/grails-core/tree/8.0.x/.agents/skills/test-fixer into .github/skills/test-fixer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-fixer", 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/grails-core --skill test-fixer -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/grails-core test-fixer --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/apache/grails-core.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/test-fixer .opencode/skills/test-fixer && 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 "test-fixer" agent skill from https://github.com/apache/grails-core/tree/8.0.x/.agents/skills/test-fixer into .opencode/skills/test-fixer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "test-fixer", 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.
test-fixerGuides running, reviewing and fixing test failures across grails-core modules with Gradle, including targeted runs and the aggregate HTML and Markdown reports.
The skill helps the agent run tests in grails-core efficiently. Targeted runs use a Gradle module path with a --tests filter to save time, full runs use ./gradlew test --continue so later modules still run after an earlier failure, and a single module can be run by its own task path. It names the unit source set under src/test/groovy and the integration source set under src/integration-test/groovy.
Aggregation lives in the grails-test-report project: running its check task with --continue produces unit, integration and combined reports in both HTML and Markdown under grails-test-report/build/reports/tests. Reports summarize whatever XML results exist on disk, so a full run without --continue can be partial, and stale results are cleared by running clean first. The skill also helps triage failing specs, static state pollution and regressions after a dependency upgrade or refactor.
Read from SKILL.md and the folder at commit 3d6db18. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).
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.
Grails Test Fixer loads about 1.1k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 369 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); files beside SKILL.md are not scanned.
The full file from apache/grails-core at commit 3d6db18, republished under its Apache-2.0 licence (© apache). 369 words, ~1,128 tokens.
.claude/skills/test-fixer/SKILL.md (or your agent's skills folder).<!--
SPDX-License-Identifier: Apache-2.0
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements; and to You under the Apache License, Version 2.0.
-->
Activate this skill when:
:grails-test-report.To save time, run only related tests:
./gradlew :grails-data-hibernate7-core:test --tests "grails.gorm.tests.BasicCollection*"./gradlew test --continueUse --continue when you need later modules to run after an earlier module fails.
The grails-test-report project owns repository test aggregation.
./gradlew :grails-test-report:check --continueThis generates:
grails-test-report/build/reports/tests/test/index.htmlgrails-test-report/build/reports/tests/test.mdgrails-test-report/build/reports/tests/integrationTest/index.htmlgrails-test-report/build/reports/tests/integrationTest.mdgrails-test-report/build/reports/tests/combined/index.htmlgrails-test-report/build/reports/tests/combined.mdThe aggregate report includes root subprojects that define matching test or integrationTest tasks.
The collected unit and integration Test tasks are finalized by their matching aggregate report tasks. Reports are attempted after failures and after targeted module test runs, but they summarize the XML results currently available on disk. Use --continue for full-suite runs so Gradle keeps scheduling later test tasks after an earlier failure; without it, reports can be partial. Run clean first when stale XML results should be excluded.
# All tests in a module
./gradlew :grails-data-hibernate7-dbmigration:test
# A specific spec
./gradlew :grails-data-hibernate7-dbmigration:test \
--tests "org.grails.plugins.databasemigration.command.DbmGenerateGormChangelogCommandSpec"
# A specific feature method
./gradlew :grails-data-hibernate7-core:test \
--tests "org.grails.orm.hibernate.FooSpec.my feature name"
# Force rerun even if Gradle thinks it is up-to-date
./gradlew :grails-data-hibernate7-core:test --rerun-tasks| Source set | Directory | Task |
|---|---|---|
| Unit tests | src/test/groovy/ | test |
| Integration tests | src/integration-test/groovy/ | integrationTest |
Most specs in grails-core are unit tests (src/test/groovy/) run by the test task. A small number of modules use integrationTest for full Spring context tests.
Tests run in parallel (maxParallelForks defaults to 4 on CI and to availableProcessors * 3/4 otherwise; override with -PmaxTestParallel). This can cause:
@Shared field contamination: shared state not properly cleaned up between feature methods.To diagnose flaky failures, rerun with forced serial execution:
./gradlew :module:test -PmaxTestParallel=1 --rerun-tasks| Property | Effect |
|---|---|
skipTests | Skips all Test tasks (build only) |
maxTestParallel=N | Override parallel fork count |
onlyFunctionalTests | Run only functional test suites |
skipHibernate7Tests | Skip H7-specific test suites |
onlyMongodbTests | Run only MongoDB test suites |
onlyCoreTests | Run only core module tests |
Gradle writes JUnit XML test results to:
<module>/build/test-results/
├── test/
│ └── TEST-org.grails.SomeSpec.xml
└── integrationTest/
└── TEST-org.grails.SomeIntegrationSpec.xml© 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
Just SKILL.md in .agents/skills/test-fixer of apache/grails-core.
Open the folder on GitHubat commit 3d6db18
Grails Test Fixer 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 |
|---|---|---|---|---|---|---|
| Grails Test Fixer this skillapache/grails-core | 2.9k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Designing TestsCloudAI-X/claude-workflow-v2 | 1.4k | 1 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Temporal Python Testingwshobson/agents | 40k | 11 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Testingredis/RedisInsight | 8.9k | — | ~3.3k | Automated safety check: Pass | Custom licence | |
| Run Testsrunceel/ReactiveProperty | 944 | — | ~3.6k | Automated safety check: Pass | MIT | |
| Flutter TestingMADTeacher/mad-agents-skills | 110 | — | ~1.5k | Automated safety check: Pass | MIT |
CloudAI-X/claude-workflow-v2
Designs and implements testing strategies for any codebase. An agent skill from CloudAI-X/claude-workflow-v2.
wshobson/agents
Test Temporal workflows with pytest, time-skipping, and mocking strategies.
redis/RedisInsight
Unit/integration testing standards for RedisInsight using Jest and Testing Library: test structure, the renderComponent helper, faker for test data, mocking patterns, and waitFor instead of fixed…
runceel/ReactiveProperty
Runs .NET tests with dotnet test. An agent skill from runceel/ReactiveProperty.
MADTeacher/mad-agents-skills
Write, fix, review, debug, and validate Flutter tests for apps, packages, and plugins.
Impertio-Studio/Frappe_Claude_Skill_Package
A skill your agent uses when writing unit tests, integration tests, creating test fixtures, or running tests with bench run-tests.
apache/grails-core
Guides building Grails web applications and REST APIs with GORM, controllers, services, views, plugins and Spock and Geb testing.
apache/grails-core
Guidance for Groovy 5 work in Grails projects: syntax, closures, traits, DSLs, metaprogramming, Spock tests, static compilation and Java 21 integration.
apache/grails-core
Guides changes to the grails-data-hibernate7 module, covering domain binding, Hibernate 5 to 7 migration work, generators and integration specs.
apache/grails-core
Guide for writing modern Java 21 in a Grails and Groovy codebase: records, sealed classes, pattern matching, text blocks and how Java works alongside Groovy.
apache/grails-core
Guide to running, reading and fixing code style and analysis violations in grails-core with CodeNarc, Checkstyle, PMD, SpotBugs, Spotless and JaCoCo through Gradle.
apache/grails-core
Guides Gradle 9 build changes in apache/grails-core on the 8.0.x line, favoring the repo's convention plugins, BOM platforms and patterns over generic Gradle advice.
Works with
Categories
Guides running, reviewing and fixing test failures across grails-core modules with Gradle, including targeted runs and the aggregate HTML and Markdown reports. The skill helps the agent run tests in grails-core efficiently./gradlew test --continue so later modules still run after an earlier failure, and a single module can be run by its own task path.
Grails Test Fixer fits situations like: running a single failing spec or module in grails-core; verifying affected module tests before a commit; triaging regressions after a dependency upgrade or refactor; reading the aggregate test report from grails-test-report.
Run `npx skills add apache/grails-core --skill test-fixer -a claude-code`. Or copy the skill folder (.agents/skills/test-fixer in apache/grails-core) into .claude/skills/test-fixer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add apache/grails-core --skill test-fixer -a codex`. Or copy the skill folder (.agents/skills/test-fixer in apache/grails-core) into .agents/skills/test-fixer 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/grails-core --skill test-fixer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/test-fixer, .gemini/skills/test-fixer, .github/skills/test-fixer and .opencode/skills/test-fixer in your project.
SKILL.md names no scripts, command-line tools or credentials: Grails Test Fixer is instructions for the agent only. Our summary lists: A grails-core checkout with the Gradle wrapper.
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. Review the folder before installing.
Grails Test Fixer 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 1.1k tokens (SKILL.md is roughly 4.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Grails Test Fixer: Designing Tests (CloudAI-X/claude-workflow-v2, 1.4k stars), Temporal Python Testing (wshobson/agents, 40k stars), Testing (redis/RedisInsight, 8.9k stars) and Run Tests (runceel/ReactiveProperty, 944 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/grails-core, which has 2,934 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 7, 2026.
Source: apache/grails-core on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.