kotlin/researching_gradle_internals
> 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 skills add https://github.com/Kotlin/kotlinx-rpc --skill researching_gradle_internals
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 :, =, +, -, *, / witha 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.Take kotlin/researching_gradle_internals from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.