gradle-run
GitHub规范 Gradle 构建与诊断流程,强制使用专用 Python 包装器执行命令。通过工作流生命周期管理输出,禁止直接运行 Gradle,确保构建日志的安全性与可追溯性,适用于构建、测试及失败排查场景。
Trigger Scenarios
Install
npx skills add chrisbanes/skills --skill gradle-run -g -y
SKILL.md
Frontmatter
{
"name": "gradle-run",
"description": "Use when planning to execute Gradle through `gradle`, `.\/gradlew`, or a custom `gradlew*` wrapper script, or diagnosing a Gradle build, compact workflow ledger, repeated failure fingerprint, check, test, lint, warning, or failure even when no new Gradle run is appropriate."
}
Gradle run
Core principle
Treat complete Gradle output as a temporary, sensitive artifact. Every
agent-initiated Gradle command runs through the compact-output wrapper; never
stream, tee, paste, or reopen a full build log.
Every create, run, and finish invocation is the entire shell command for
that tool call. Prefixes, assignments, conditionals, pipes, command chains, and
follow-up inspection invalidate lifecycle evidence even when Gradle succeeds.
Procedure
-
Classify the request. Reuse a current successful result when unchanged source and inputs already answer the question. A focused task that validates another change is incidental; build/check/warning/failure work is a Gradle-centered workflow.
-
Resolve this skill directory and confirm
python3plusscripts/gradle_run.py. If either is unavailable, stop and report that prerequisite; never run Gradle directly as a fallback. -
Create one workflow before its first command and retain its opaque ID:
python3 <skill-dir>/scripts/gradle_run.py createRun
create, eachrun, andfinishas standalone shell commands. Do not combine one withtest, variable setup,git,rg,&&,;, a pipe, or a newline containing another command. Ifcreatefails, retry a fresh standalonecreatebefore anyrun. Use the wrapper exclusively; it supplies--console=plainand--no-scanunless console behavior was selected or the user authorized--scan. Add--warning-mode allonly for warning discovery or an explicit request. Aworkflow is busyresult is an ownership violation: wait for the owner or correct ownership; do not start or finish concurrently. -
For incidental validation, stay in the current agent and run the narrowest task that answers a non-empty verification question:
python3 <skill-dir>/scripts/gradle_run.py run \ --workflow <id> --scope targeted \ --question "Does :module:test pass after this change?" -- \ ./gradlew :module:testDo not substitute compilation for requested fixture tests. Read only the bounded JSON summary; report both the managed wrapper and nested Gradle task, the question, and its bounded answer.
-
For Gradle-centered work, create one fresh persistent diagnostic owner with read-only repository access and the ability to run the wrapper. Select and brief it using the shared selection and handoff reference when available. The owner runs the wrapper and diagnoses; it may not edit or delegate Gradle ownership. Keep it available for the workflow. Report its model and reasoning only when exposed. The parent owns repository edits. If that owner cannot exist, stop rather than running the loop in the parent.
-
Have the owner reuse actionable summaries, group warnings/failures by fingerprint, and return source/line evidence plus the narrowest next command. Run broad only for an aggregate question that targeted evidence cannot answer. On a repeated primary source/compiler fingerprint, stop rebuilding; inspect the cited source line and nearby declaration, import, or receiver context before revising the diagnosis. Verify each parent change with the same wrapper and narrowest applicable task. In the final diagnosis, name the focused inspection as the next action; do not claim a source fix before it. A new question does not permit a blind repeat.
-
Treat the full log as raw sensitive material even though summaries and ledgers redact common credentials. Never expose it in model-visible context. On interruption, use the wrapper's recorded signal and bounded partial diagnostics; it owns process-group/process-tree cleanup and durable ledger updates. Only logs still represented by the bounded recent-run ledger remain.
-
Finish after the last requested validation (targeted or broad) passes, or report unresolved fingerprints and why validation cannot continue. In the final response, quote each non-empty
--questionand give its bounded answer; command history is not a substitute for reported evidence. Then run:python3 <skill-dir>/scripts/gradle_run.py finish --workflow <id>Report that finish removed only wrapper-owned logs. A finished known ID is idempotent; an unknown ID or active workflow fails closed and leaves files in place. This skill does not constrain unrelated review, implementation, or subagents.
Version History
-
2026.9.25
Current 2026-09-27 20:23
新增子代理选择指南的共享引用,链接至 gradle-run 等技能目录,并明确 Gradle 诊断所有者的能力要求。
-
2026.8.27
2026-08-28 05:51
恢复技能评估功能,捕获遥测数据并对比效率指标。
-
2026.8.24
2026-08-27 17:15
简化指令冗余度,强化评估覆盖与工作流证据处理,明确任务选择与报告要求。
- 2026.8.16 2026-08-19 19:31


