src/main/skills/researching_gradle_internals/SKILL.md
Searches and retrieves official Gradle User Guide, DSL Reference, and internal engine source code authoritatively; use for researching core Gradle features, verifying behavior, and deep-diving into internals. Do NOT use for project dependency source exploration (use `searching_dependency_sources`) or running builds.
npx skillsauth add rnett/gradle-mcp researching_gradle_internalsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Researches official documentation and probes Gradle's internal source code with absolute precision to understand the build tool's behavior and protocols.
gradle_docs tool as the primary source for documentation queries.search_dependency_sources with gradleSource: true when probing Gradle's internal logic.projectRoot.tag:<section> syntax (e.g., tag:dsl, tag:userguide).release-notes tag when investigating version-specific regressions.userguide, dsl, and release-notes in your gradle_docs query to minimize irrelevant results.gradleSource: true in search_dependency_sources to target Gradle's internal engine.read_dependency_sources with gradleSource: true to examine the actual code of any Gradle interface or class once identified.gradle_docs or source code via search_dependency_sources (with searchType: "FULL_TEXT"), ALWAYS escape special characters like :, =, +, -, *, / with
a backslash (e.g., \:) or enclose them in double quotes (e.g., "val x = 10") for literal searches to avoid Lucene syntax errors.DECLARATION to find the exact declaration of a Gradle interface or class. All declaration searches are case-sensitive. Do NOT include keywords like class or interface (e.g., use Project, not interface Project).Project), full name (e.g., org.gradle.api.Project), or partial package paths (e.g., api.Project).* matches one segment, ** matches multiple (e.g., fqn:org.gradle.*.Project, fqn:org.**.Project).name:Project AND fqn:org.gradle.api.*).FULL_TEXT to find internal usage patterns, constants, or behavior described in the source. FULL_TEXT searches are case-insensitive.GLOB to locate Gradle's internal resource files or build scripts. GLOB searches are case-insensitive.version argument for gradle_docs when researching other releases.| Tag | Section |
|------------------|------------------------------------------------------------|
| userguide | The official Gradle User Guide. |
| dsl | The Gradle DSL Reference (Groovy and Kotlin DSL). |
| javadoc | The Gradle Java API Reference. |
| samples | Official Gradle samples and examples. |
| release-notes | Version-specific release insights. |
| best-practices | Official Gradle best practices and performance guidelines. |
publishing, signing) or official plugin configurations. Use tag:dsl.tag:userguide for guidance and gradleSource: true for implementations.tag:release-notes.gradleSource: true.userguide via gradle_docs(query="tag:userguide <term>").path.search_dependency_sources(query="class <Name>", gradleSource=true).tag:dsl to find the documentation for the plugin's configuration block.gradleSource to understand how it handles the configuration at runtime.search_dependency_sources.read_dependency_sources(path="org/gradle/...", gradleSource=true) to retrieve the implementation.{
"query": "tag:dsl kotlin dsl"
}
// Reasoning: Scoping the search to the DSL Reference to find authoritative syntax for Kotlin scripts.
{
"query": "Project",
"searchType": "DECLARATION",
"gradleSource": true
}
// Reasoning: Using gradleSource and DECLARATION search to find the ground-truth implementation of the core Project API.
{
"query": "fqn:org.gradle.*.Project",
"searchType": "DECLARATION",
"gradleSource": true
}
// Reasoning: Using a glob wildcard to find Project declarations in any direct sub-package of org.gradle.
{
"query": "tag:release-notes",
"version": "8.6"
}
// Reasoning: Directly targeting the release notes of a specific version to audit breaking changes.
{
"path": "org/gradle/api/Project.java",
"gradleSource": true
}
// Reasoning: Retrieving the source code for a fundamental Gradle class for high-resolution analysis.
version argument if the project's detected version is not the one you intended to research.tools
Provides authoritative guidance for ALL Gradle operations: executing builds, running tests with surgical filtering, introspecting project structure, creating modules, and diagnosing failures; ALWAYS use instead of raw shell `./gradlew` for build execution, test runs, task introspection, module creation, performance audits, and documentation research. Do NOT use for dependency graph auditing/updates (use `managing_gradle_dependencies`) or dependency/plugin/Gradle source exploration (use `exploring_dependency_sources`).
tools
Reads and searches source code across ALL scopes: external library dependencies, plugins (buildscript), and Gradle Build Tool internal source code; use whenever you need to UNDERSTAND an API — its shape, signature, parameters, overloads, or implementation — before writing any code that calls it; covers project dependencies (via project/configuration/source set scope), plugins (via `sourceSetPath=":buildscript"`), and Gradle internals (via `gradleSource: true`). Prefer this over the REPL for all API research; reading source is instantaneous and complete. Do NOT use for project source code (use grep/tilth), Gradle documentation (use `gradle_docs` via the `gradle` skill), or Maven Central discovery (use `managing_gradle_dependencies`).
development
Audits and manages Gradle dependency graphs with high-resolution update checks, transitive tree analysis, and Maven Central discovery; use for dependency auditing, finding stable updates, and resolving GAV coordinates. Do NOT use for exploring dependency source code (use `exploring_dependency_sources`) or running builds/tests (use `gradle`).
development
Executes Kotlin code interactively within the project's full JVM classpath. Use when you need to RUN code: verify runtime behavior, experiment with logic, or render Compose UI previews. Do NOT use to understand an API's shape or signature — read its source with `exploring_dependency_sources` instead.