gradle_expert
Skill1.1k starsChanged 5 days agoApache-2.0View on GitHub
Provides expert build engineer guidance on Gradle Kotlin DSL scripts, plugin development, and deep internals research; use for build failures, compilation errors, dependency conflicts, or complex build authoring. Do NOT use for executing builds/tests (use `running_gradle_builds`/`running_gradle_tests`) or dependency graph auditing.
We split this skill into the rules it gives an agent
31 rules. About 0 are common, 8 are distinctive, and 23 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
23
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 19
ALWAYS: check for existing conventions in the current project before proposing changes.
- Very specific: line 20
ALWAYS: prefer Kotlin DSL (.kts) unless the project explicitly uses Groovy.
- Very specific: line 21
ALWAYS: use lazy APIs (e.g., register instead of create) to maintain configuration performance.
- Very specific: line 22
ALWAYS: use libs.versions.toml for dependency management if it exists.
- Very specific: line 23
ALWAYS: use gradle_docs for authoritative documentation lookup instead of generic web searches.
- Very specific: line 24
ALWAYS: use search_dependency_sources with gradleSource = true when researching core Gradle behavior.
- Very specific: line 25
ALWAYS: use inspect_build with testName and mode="details" for individual test output instead of generic taskPath, captureTaskOutput, or …
- Very specific: line 26
ALWAYS: use safe navigation (?.url?.toString()) and provide fallback values when accessing ArtifactRepository URLs in Gradle init scripts …
- Very specific: line 27
STRONGLY PREFERRED: Use inspect_build for all failure diagnostics.
- Distinctive: line 36
Start with a summary to find IDs for specific failures or problems.
- Very specific: line 42
CRITICAL: NEVER use taskPath or shell grep for tests.
- Distinctive: line 60
Author builds idiomatically: Use standard patterns for multi-project builds and convention plugins.
- Very specific: line 62
Research internals authoritatively: Use gradle_docs and internal source search to understand "how it works" at the engine level.
- Very specific: line 63
Diagnose failures surgically: Use inspect_build with testName and mode="details" to analyze test failures and stack traces instead of …
- Very specific: line 64
Resolve dependencies precisely: Use inspect_dependencies and managing_gradle_dependencies for auditing and updates.
- Very specific: line 67
Use
envSource: SHELLif environment variables are missing: If Gradle fails to find expected environment variables (e.g., JAVA_HOME or … - Very specific: line 74
Identify the Project Context: Use the gradle tool with commandLine: ["projects"] or the introspecting_gradle_projects skill to find the …
- Very specific: line 75
Create Directory Structure: Use run_shell_command with mkdir subproject/src/main/kotlin (or equivalent).
- Very specific: line 76
Add to
settings.gradle.kts: Use replace or write_file to append include(":<module-name>"). - Very specific: line 77
Create
build.gradle.kts: Use idiomatic patterns (e.g., applying convention plugins). - Very specific: line 78
Verify: Run gradle tool with commandLine: [":<module-name>:tasks"] to ensure it's correctly integrated.
- Very specific: line 82
Search Maven Central: Use the lookup_maven_versions tool to find the artifact.
- Very specific: line 83
Update
libs.versions.toml: Add the dependency coordinates to the catalog. - Very specific: line 84
Apply to
build.gradle.kts: Use the type-safe accessor from the catalog. - Very specific: line 85
Verify: Run the gradle tool with commandLine: ["dependencies"] to check resolution.
- Very specific: line 89
Enable Configuration Cache: Run the gradle tool with commandLine: ["help", "--configuration-cache"].
- Distinctive: line 133
New Module Creation: When adding a new project or module to a multi-project build.
- Distinctive: line 134
Dependency Migration: When updating dependencies or moving to version catalogs.
- Distinctive: line 135
Build Logic Refactoring: When cleaning up complex build scripts or creating convention plugins.
- Distinctive: line 136
Performance Troubleshooting: When builds are slow or failing during the configuration phase.
- Distinctive: line 137
Deep Technical Research: When you need to understand the internal implementation of a Gradle feature or plugin.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Senior Gradle Build Engineering & Internal Research
Provides authoritative guidance and automation for creating, modifying, and auditing Gradle build logic. Integrates official documentation, best practices, and deep-dive source research into a unified workflow for build logic maintenance.
Constitution
- ALWAYS check for existing conventions in the current project before proposing changes.
- ALWAYS prefer Kotlin DSL (
.kts) unless the project explicitly uses Groovy. - ALWAYS use lazy APIs (e.g.,
registerinstead ofcreate) to maintain configuration performance. - ALWAYS use
libs.versions.tomlfor dependency management if it exists. - ALWAYS use
gradle_docsfor authoritative documentation lookup instead of generic web searches. - ALWAYS use
search_dependency_sourceswithgradleSource = truewhen researching core Gradle behavior. - ALWAYS use
inspect_buildwithtestNameandmode="details"for individual test output instead of generictaskPath,captureTaskOutput, or shellgrep. - ALWAYS use safe navigation (
?.url?.toString()) and provide fallback values when accessingArtifactRepositoryURLs in Gradle init scripts or plugins to preventNullPointerException. - STRONGLY PREFERRED: Use
inspect_buildfor all failure diagnostics. It is more token-efficient than reading raw console logs and provides structured access to failures, stack traces, and problems. - NEVER guess internal API behavior; verify it by reading the source code of the Gradle Build Tool.
Surgical Failure Diagnostics with inspect_build
As a Senior Build Engineer, you must move beyond raw logs. The inspect_build tool is your surgical diagnostic suite.
1. Build Summary (Finding the Root Cause)
Start with a summary to find IDs for specific failures or problems.
- Example:
inspect_build(buildId="ID")
2. Individual Test Failures
CRITICAL: NEVER use taskPath or shell grep for tests. ALWAYS use testName with mode="details" to see the full output and stack trace.
- Example:
inspect_build(buildId="ID", mode="details", testName="com.example.MyTest.shouldWork")
3. Build-Level Failures
For compilation or configuration errors, use failureId found in the build summary.
- Example:
inspect_build(buildId="ID", mode="details", failureId="F0")
4. Problems & Warnings
For deep-dives into specific problems (e.g., deprecations, plugin issues), use problemId.
- Example:
inspect_build(buildId="ID", mode="details", problemId="P1")
Directives
- Author builds idiomatically: Use standard patterns for multi-project builds and convention plugins.
- Perform performance audits: Identify configuration bottlenecks and recommend lazy API migrations.
- Research internals authoritatively: Use
gradle_docsand internal source search to understand "how it works" at the engine level. Useread_dependency_sourcesto explore implementation details. - Diagnose failures surgically: Use
inspect_buildwithtestNameandmode="details"to analyze test failures and stack traces instead of reading raw console logs. DO NOT usetaskPathorcaptureTaskOutputfor tests. - Resolve dependencies precisely: Use
inspect_dependenciesandmanaging_gradle_dependenciesfor auditing and updates. - Consult best practices: Refer to the Best Practices Snapshot for a high-level overview. ALWAYS use
gradle_docswithtag:best-practicesto retrieve the latest and most comprehensive guidelines from the official documentation. - Use
envSource: SHELLif environment variables are missing: If Gradle fails to find expected environment variables (e.g.,JAVA_HOMEor specific JDKs), it may be because the host process started before the shell environment was fully loaded. SetinvocationArguments: { envSource: "SHELL" }to force a new shell process to query the environment.
Workflows
1. Creating a New Module
- Identify the Project Context: Use the
gradletool withcommandLine: ["projects"]or theintrospecting_gradle_projectsskill to find the correct parent path. - Create Directory Structure: Use
run_shell_commandwithmkdir subproject/src/main/kotlin(or equivalent). - Add to
settings.gradle.kts: Usereplaceorwrite_fileto appendinclude(":<module-name>"). - Create
build.gradle.kts: Use idiomatic patterns (e.g., applying convention plugins). - Verify: Run
gradletool withcommandLine: [":<module-name>:tasks"]to ensure it's correctly integrated.
2. Adding a Dependency
- Search Maven Central: Use the
lookup_maven_versionstool to find the artifact. - Update
libs.versions.toml: Add the dependency coordinates to the catalog. - Apply to
build.gradle.kts: Use the type-safe accessor from the catalog. - Verify: Run the
gradletool withcommandLine: ["dependencies"]to check resolution.
3. Performance Audit
- Enable Configuration Cache: Run the
gradletool withcommandLine: ["help", "--configuration-cache"]. - Analyze Violations: Identify tasks that are not compatible with the cache.
- Propose Fixes: Recommend migrating to lazy APIs (
Property,Provider) or using@Internal/@Inputcorrectly.
Examples
Adding a new dependency to a module
Tool: lookup_maven_versions
{
"coordinates": "com.google.guava:guava"
}// Reasoning: Searching Maven Central for the exact coordinates and latest version.
Creating a new sub-project
Tool: run_shell_command
{
"command": "New-Item -ItemType Directory -Force -Path subproject/src/main/kotlin"
}// Reasoning: Creating the standard directory structure for a Kotlin JVM project using correct PowerShell syntax.
Searching for Gradle internal engine source code
Tool: search_dependency_sources
{
"query": "Property",
"searchType": "DECLARATION",
"gradleSource": true
}When to Use
- New Module Creation: When adding a new project or module to a multi-project build.
- Dependency Migration: When updating dependencies or moving to version catalogs.
- Build Logic Refactoring: When cleaning up complex build scripts or creating convention plugins.
- Performance Troubleshooting: When builds are slow or failing during the configuration phase.
- Deep Technical Research: When you need to understand the internal implementation of a Gradle feature or plugin.
Resources
- Best Practices
- Common Build Patterns
- Internal Research Guidelines
Trending
Quiet since September.about the whole repository
Who's talking about Kotlin/kotlinx-rpc
- bright-room/mindstock“fix(deps): update kotlinx.rpc to v0.10.4”GitHub · Sep 25, 2026
- bright-room/mindstock“fix(deps): update kotlinx.rpc to v0.10.3”GitHub · Jul 10, 2026
- modelix/modelix.editor“fix(deps): update kotlinx.rpc to v0.10.4”GitHub · Jul 6, 2026
- ktorio/ktor-plugin-registry“Bump the all-gradle group with 11 updates”GitHub · Jun 30, 2026
- DerTyp7214/synara-api“chore(deps): bump kotlinx-rpc from 0.10.2 to 0.10.3”GitHub · Jun 27, 2026
The biggest 5 of 16 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 16
Talked about on GitHub (16 times).
On GitHub · 16
- Sep 25, 2026fix(deps): update kotlinx.rpc to v0.10.4 — bright-room/mindstock0 reactions · 1 comment
- Jul 10, 2026fix(deps): update kotlinx.rpc to v0.10.3 — bright-room/mindstock0 reactions
- Jul 6, 2026fix(deps): update kotlinx.rpc to v0.10.4 — modelix/modelix.editor0 reactions · 1 comment
- Jun 30, 2026Bump the all-gradle group with 11 updates — ktorio/ktor-plugin-registry0 reactions
- Jun 27, 2026chore(deps): bump kotlinx-rpc from 0.10.2 to 0.10.3 — DerTyp7214/synara-api0 reactions · 1 comment
11 more on GitHub
- May 3, 2026Add compiler plugin implementation and Kotlin External FIR Support — TBSten/cream0 reactions
- Mar 30, 2026build(deps): bump kotlinx-rpc from 0.10.1 to 0.10.2 — modelix/modelix.editor0 reactions · 5 comments
- Jan 17, 2026chore(deps): bump kotlinx-rpc from 0.10.1 to 0.10.2 — DerTyp7214/synara-api0 reactions · 2 comments
- Dec 20, 2025build(deps): bump org.jetbrains.kotlinx:kotlinx-rpc-krpc-ktor-client from 0.10.0 to 0.10.1 — DerTyp7214/synara-api0 reactions · 1 comment
- Dec 20, 2025build(deps): bump org.jetbrains.kotlinx:kotlinx-rpc-krpc-ktor-server from 0.10.0 to 0.10.1 — DerTyp7214/synara-api0 reactions · 1 comment
- Jul 3, 2025Update kxrpc tutorial to 0.8.0 — ktorio/ktor-documentation0 reactions · 2 comments
- Jul 3, 2025Update kxrpc to 0.8.0 — ktorio/ktor-plugin-registry0 reactions · 1 comment
- Apr 4, 2025Update kxrpc to 0.6.0 — ktorio/ktor-plugin-registry0 reactions · 1 comment
- Jan 28, 2025Update kxrpc to 0.5.0 — ktorio/ktor-plugin-registry0 reactions
- Jan 7, 2025Migrate cloud-run server to RPC ProtoBuf — ashdavies/playground.ashdavies.dev0 reactions
- May 26, 2024KotlinでRemote Procedure Calls (RPC) を簡単に行えるライブラリkotlinx.rpc — AndroidDagashi/AndroidDagashi0 reactions
In this repository19 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- commit-changesSkill
- file-youtrack-issueSkill
- fix-issueSkill
- gh-stackSkill
- interacting_with_project_runtimeSkill
- introspecting_gradle_projectsSkill
- managing_gradle_dependenciesSkill
- researching_gradle_internalsSkill
- run-local-verificationsSkill
- running_gradle_buildsSkill
- running_gradle_testsSkill
- searching_dependency_sourcesSkill
- update-docSkill
- update-shimSkill
- use-develocitySkill
- use-teamcitySkill
- use-youtrackSkill
- verify-compiler-plugin-compatibilitySkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

