Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/xenoterracide/gradle-convention --skill java명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | java |
| description | Write code in the Java programming language. |
Use for writing Java code.
Let your domain language define the responsibilities in your system. Build each unit—object, function, or module—around a single responsibility derived from that language. Encapsulate behavior so it's polymorphic, letting the unit decide how to act rather than orchestrating externally. If you follow these principles, your code will naturally be composable, clear, and aligned with the domain.
final for fields unless they need to be mutable.record classes for simple data carriers.var strings = List.of("foo"); over var strings = new ArrayList<String>(); strings.add("foo");@Var and justify why mutability is necessary.@Nullable. This helps prevent null pointer exceptions and makes it clear when a value can be null. Optional is preferred when mapping or filtering would be clearer than procedural logic.prefer var keyword to explicit local variable type declaration. using var reduces quantity of code but more importantly coupling as sometimes it means classes no longer have to be imported and thus class name changes do not impact client code in some cases.
note: @Var is unrelated to this.
Examples:
var x = 1;var foo = "foo"var list = new ArrayList<Foo>();int x = 1;String foo = "foo";List<Foo> list = new ArrayList<>();Supplier<Foo> fooSupplier = () -> new Foo(); // not using var is better than castingvar fooSupplier = (Supplier<Foo>) () -> new Foo(); // casting is bad and should be avoided.Relying on a static method or variable can often be better than either even though it's more verbose.
static Supplier<Foo> fooSupplier() {
return () -> new Foo();
}
import statements unless it would result in conflicts.static import for test helpers that maintain clarity such as assertThat for AssertJ and given or mock from Mockito. Avoid static imports if it makes code comprehension.Avoid private except with fields. prefer the default "package protected" unless must be public or is useful for subclasses.
private is only necessary to prevent access from other classes in the same package, which is uncommon and should be avoided.@Builder and a static factory. e.g.import org.immutables.builder.Builder;
@Builder
record Bar(String foo) {
public static BarBuilder builder() {
return new BarBuilder();
}
}
SPDX-FileCopyrightText: Copyright © 2026 Caleb Cushing
SPDX-License-Identifier: CC-BY-NC-SA-4.0