Clean-Claude은(는) 무엇을 하나요?
Robert Martin 스타일의 코딩 스타일 피드백을 제공하고 OpenRewrite 및 정적 코드 분석 도구를 사용하여 Claude Skills을 생성하는 Gradle 플러그인입니다.
개요
이 플러그인은 Gradle 빌드 과정에서 코드를 분석하고 Robert C. Martin의 클린 코드 원칙에 따른 피드백을 제공합니다. OpenRewrite 레시피를 적용하여 코드를 자동으로 개선하고, 정적 코드 분석 결과를 바탕으로 Claude AI 어시스턴트용 Skills 파일을 생성합니다.
주요 기능
- 코드 분석: OpenRewrite와 정적 분석 도구(Checkstyle, PMD, SpotBugs 등)를 사용하여 코드 품질 평가
- 피드백 생성: Robert Martin 스타일의 구체적이고 실행 가능한 코드 리뷰 피드백 제공
- Claude Skills 생성: 분석 결과를 바탕으로 Claude AI 어시스턴트가 사용할 수 있는 Skills(YAML/마크다운 형식) 자동 생성
- 자동 개선: OpenRewrite 레시피를 적용하여 코드를 자동으로 리팩토링
사용 방법
필수 조건
- Gradle 7.0 이상
- Java 11 이상
설치
build.gradle 파일에 플러그인을 추가합니다:
plugins {
id 'io.github.fiftieshousewife.clean-claude' version '0.1.0'
}
설정
build.gradle 파일에서 플러그인을 설정합니다:
cleanClaude {
outputDir = file('build/clean-claude')
skillName = 'my-clean-code-skill'
includePatterns = ['**/*.java', '**/*.kt']
excludePatterns = ['**/test/**']
}
실행
./gradlew cleanClaude
generateSkill
환경 변수
| 변수명 | 설명 | 기본값 |
|---|---|---|
CLEAN_CLAUDE_OUTPUT_DIR | 생성된 Skills 파일의 출력 디렉토리 | build/clean-claude |
CLEAN_CLAUDE_SKILL_NAME | 생성될 스킬의 이름 | clean-code-skill |
지원 도구
- OpenRewrite (레시피 실행)
- Checkstyle (코딩 스타일 검사)
- PMD (잠재적 버그 감지)
- SpotBugs (버그 패턴 분석)
예제
// Bad: 긴 메서드, 의미 없는 변수명
public List<String> getTheStuff(List<Integer> input) {
List<String> result = new ArrayList<>();
for (int i = 0; i < input.size(); i++) {
if (input.get(i) % 2 == 0) {
result.add("Even: " + input.get(i));
}
}
return result;
}
// Good: 짧은 메서드, 명확한 변수명, 스트림 사용
public List<String> getEvenNumbers(List<Integer> numbers) {
return numbers.stream()
.filter(number -> number % 2 == 0)
.map(number -> "Even: " + number)
.collect(Collectors.toList());
}
라이선스
MIT License
기여
이슈 및 풀 리퀘스트는 GitHub 저장소에서 환영합니다.