@agentsmd/preset-java 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -7
- package/dist/index.js.map +1 -1
- package/files/docs/code-style.md +2 -2
- package/files/docs/lint-and-ci.md +11 -20
- package/package.json +3 -3
- package/files/.githooks/pre-commit.d/spotless +0 -14
- package/files/.github/workflows/ci.yml +0 -33
package/README.md
CHANGED
|
@@ -8,5 +8,6 @@ npx @agentsmd/cli init --preset java # Java 규칙만
|
|
|
8
8
|
```
|
|
9
9
|
|
|
10
10
|
- Java 코드 규칙 문서: 코드 스타일, 클린 코드 원칙과 예시, Java 체크리스트
|
|
11
|
-
- palantir-java-format(Spotless)
|
|
12
|
-
- Git
|
|
11
|
+
- palantir-java-format(Spotless) 설정과 Gradle 검증·CI 명령 문서
|
|
12
|
+
- Git 훅·GitHub 설정은 설치하지 않습니다. CI 문서에는 특정 서비스와 무관하게 실행할 명령만 적습니다.
|
|
13
|
+
- Git 작업 규칙과 훅은 [Git 프리셋](https://www.npmjs.com/package/@agentsmd/preset-git)을 함께 고르면 더해집니다. `AGENTS.md`는 고른 프리셋에 맞춰 만들어집니다.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Java·Gradle 프로젝트용 프리셋.
|
|
3
3
|
*
|
|
4
|
-
* Java 코드 규칙
|
|
5
|
-
* Git
|
|
4
|
+
* Java 코드 규칙 문서와 Spotless(palantir-java-format)·Gradle 검증 명령 문서를 담는다.
|
|
5
|
+
* Git 훅·GitHub 설정은 넣지 않는다. 필요하면 Git 프리셋을 함께 고른다.
|
|
6
6
|
* `files/`는 빌드 결과(dist/)와 소스(src/) 어디서 실행해도 패키지 루트 기준으로 같은 위치다.
|
|
7
7
|
*/
|
|
8
8
|
export declare const javaPreset: {
|
|
9
9
|
name: string;
|
|
10
10
|
description: string;
|
|
11
11
|
filesDir: string;
|
|
12
|
-
hooksPath: string;
|
|
13
12
|
docs: {
|
|
14
13
|
path: string;
|
|
15
14
|
when: string;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;CAwBL,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,16 +2,14 @@ import { fileURLToPath } from "node:url";
|
|
|
2
2
|
/**
|
|
3
3
|
* Java·Gradle 프로젝트용 프리셋.
|
|
4
4
|
*
|
|
5
|
-
* Java 코드 규칙
|
|
6
|
-
* Git
|
|
5
|
+
* Java 코드 규칙 문서와 Spotless(palantir-java-format)·Gradle 검증 명령 문서를 담는다.
|
|
6
|
+
* Git 훅·GitHub 설정은 넣지 않는다. 필요하면 Git 프리셋을 함께 고른다.
|
|
7
7
|
* `files/`는 빌드 결과(dist/)와 소스(src/) 어디서 실행해도 패키지 루트 기준으로 같은 위치다.
|
|
8
8
|
*/
|
|
9
9
|
export const javaPreset = {
|
|
10
10
|
name: "java",
|
|
11
|
-
description: "Java·Gradle 프로젝트용
|
|
11
|
+
description: "Java·Gradle 프로젝트용 코드 규칙, Spotless·Gradle 검증 명령",
|
|
12
12
|
filesDir: fileURLToPath(new URL("../files", import.meta.url)),
|
|
13
|
-
// Spotless 검사(pre-commit.d/spotless)를 연결한다.
|
|
14
|
-
hooksPath: ".githooks",
|
|
15
13
|
docs: [
|
|
16
14
|
{
|
|
17
15
|
path: "docs/project-direction.md",
|
|
@@ -21,11 +19,11 @@ export const javaPreset = {
|
|
|
21
19
|
{ path: "docs/clean-code.md", when: "코드 작성, 설계" },
|
|
22
20
|
{ path: "docs/clean-code-examples.md", when: "코드 작성 시 참고 예시" },
|
|
23
21
|
{ path: "docs/java-checklist.md", when: "Java 코드 작성·리뷰" },
|
|
24
|
-
{ path: "docs/lint-and-ci.md", when: "
|
|
22
|
+
{ path: "docs/lint-and-ci.md", when: "린트·포맷·CI 설정" },
|
|
25
23
|
],
|
|
26
24
|
rules: [
|
|
27
25
|
"코드에는 의도를 설명하는 주석을 적극적으로 단다.",
|
|
28
|
-
"포맷은 손으로 맞추지 않는다.
|
|
26
|
+
"포맷은 손으로 맞추지 않는다. 작업을 마치기 전 `./gradlew spotlessApply`.",
|
|
29
27
|
],
|
|
30
28
|
verify: "./gradlew spotlessCheck build",
|
|
31
29
|
nextSteps: [
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,gDAAgD;IAC7D,QAAQ,EAAE,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,gDAAgD;IAC7D,QAAQ,EAAE,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7D,IAAI,EAAE;QACJ;YACE,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,kCAAkC;SACzC;QACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,EAAE;QACjD,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,EAAE;QACjD,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,eAAe,EAAE;QAC9D,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,eAAe,EAAE;QACzD,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,aAAa,EAAE;KACrD;IACD,KAAK,EAAE;QACL,6BAA6B;QAC7B,uDAAuD;KACxD;IACD,MAAM,EAAE,+BAA+B;IACvC,SAAS,EAAE;QACT,gDAAgD;QAChD,4EAA4E;KAC7E;CACe,CAAC"}
|
package/files/docs/code-style.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
## 포맷
|
|
4
4
|
|
|
5
5
|
- palantir-java-format (Spotless). 들여쓰기 공백 4칸, 줄 길이 120. 수동 정렬하지 않는다.
|
|
6
|
-
-
|
|
6
|
+
- 작업을 마치기 전 `./gradlew spotlessApply`. 검증 명령과 CI 가 `spotlessCheck` 를 돌린다.
|
|
7
7
|
- 설정은 [lint-and-ci.md](lint-and-ci.md).
|
|
8
8
|
|
|
9
9
|
## 네이밍
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
|
|
40
40
|
- 코드를 그대로 읽는 주석 (`// i 증가`)
|
|
41
41
|
- 주석 처리된 코드
|
|
42
|
-
- 변경 이력 주석 (
|
|
42
|
+
- 변경 이력 주석 (버전 관리 도구가 한다)
|
|
43
43
|
|
|
44
44
|
```java
|
|
45
45
|
/**
|
|
@@ -1,16 +1,4 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
## Git 훅
|
|
4
|
-
|
|
5
|
-
`.githooks/pre-commit` 이 `.githooks/pre-commit.d/` 의 검사를 이름 순서로 실행한다.
|
|
6
|
-
Java 프리셋은 포맷 검사를 넣는다. Git 프리셋을 함께 설치했다면 커밋 형식·파일 수 검사도 같이 돈다.
|
|
7
|
-
|
|
8
|
-
| 파일 | 검사 |
|
|
9
|
-
| --- | --- |
|
|
10
|
-
| `.githooks/pre-commit.d/spotless` | `gradlew` 가 있고 `.java` 가 스테이징됐으면 `spotlessCheck` |
|
|
11
|
-
|
|
12
|
-
- 클론한 뒤 훅이 동작하지 않으면 `git config core.hooksPath .githooks` 로 연결한다.
|
|
13
|
-
- `--no-verify` 금지.
|
|
1
|
+
# 린트 · CI
|
|
14
2
|
|
|
15
3
|
## 린트 (Spotless + palantir-java-format)
|
|
16
4
|
|
|
@@ -38,15 +26,18 @@ spotless {
|
|
|
38
26
|
| 명령 | 용도 |
|
|
39
27
|
| --- | --- |
|
|
40
28
|
| `./gradlew spotlessApply` | 포맷 적용 |
|
|
41
|
-
| `./gradlew spotlessCheck` | 포맷 검사 (
|
|
29
|
+
| `./gradlew spotlessCheck` | 포맷 검사 (작업 마무리, CI) |
|
|
30
|
+
|
|
31
|
+
작업을 마치기 전에 `./gradlew spotlessApply` 로 포맷을 맞추고 아래 검증 명령을 실행한다.
|
|
42
32
|
|
|
43
33
|
## CI
|
|
44
34
|
|
|
45
|
-
|
|
35
|
+
어떤 CI 서비스를 쓰든 아래 명령을 실행한다. 작업을 마치기 전에 돌리는 검증 명령과 같다.
|
|
46
36
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
37
|
+
```bash
|
|
38
|
+
./gradlew spotlessCheck build
|
|
39
|
+
```
|
|
50
40
|
|
|
51
|
-
-
|
|
52
|
-
-
|
|
41
|
+
- JDK 21 을 쓴다.
|
|
42
|
+
- `gradlew` 가 없는 저장소(지침만 있는 저장소)에서는 건너뛴다.
|
|
43
|
+
- 버전을 올릴 때는 이 문서의 스니펫과 CI 설정을 같이 고친다.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentsmd/preset-java",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Java·Gradle 프로젝트용 AI 작업 지침 프리셋 (코드 규칙 문서, Spotless
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "Java·Gradle 프로젝트용 AI 작업 지침 프리셋 (코드 규칙 문서, Spotless·Gradle 검증 명령)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agents.md",
|
|
7
7
|
"ai-agent",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"access": "public"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@agentsmd/core": "0.
|
|
39
|
+
"@agentsmd/core": "0.3.0"
|
|
40
40
|
},
|
|
41
41
|
"scripts": {
|
|
42
42
|
"build": "tsc -p tsconfig.build.json",
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
3
|
-
# Java 포맷 검사. 공통 pre-commit 훅이 실행한다.
|
|
4
|
-
# Gradle 프로젝트가 붙어 있고 Java 파일이 스테이징됐을 때만 spotlessCheck 를 돌린다.
|
|
5
|
-
# 규칙: docs/lint-and-ci.md
|
|
6
|
-
|
|
7
|
-
set -euo pipefail
|
|
8
|
-
|
|
9
|
-
if [ -x ./gradlew ] && git diff --cached --name-only | grep -q '\.java$'; then
|
|
10
|
-
if ! ./gradlew -q spotlessCheck; then
|
|
11
|
-
echo "pre-commit: 포맷 위반. ./gradlew spotlessApply 후 다시 스테이징하세요." >&2
|
|
12
|
-
exit 1
|
|
13
|
-
fi
|
|
14
|
-
fi
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# 규칙: docs/lint-and-ci.md
|
|
2
|
-
name: CI
|
|
3
|
-
|
|
4
|
-
on:
|
|
5
|
-
pull_request:
|
|
6
|
-
push:
|
|
7
|
-
branches: [main]
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
# 커밋 규칙(파일 수, 메시지 형식)은 CI 에서 막지 않는다. 로컬 훅만 검사한다.
|
|
11
|
-
build:
|
|
12
|
-
runs-on: ubuntu-latest
|
|
13
|
-
steps:
|
|
14
|
-
- uses: actions/checkout@v7
|
|
15
|
-
|
|
16
|
-
# 지침 전용 저장소일 때는 Gradle 프로젝트가 없으므로 빌드를 건너뛴다.
|
|
17
|
-
- name: Gradle 프로젝트 확인
|
|
18
|
-
id: detect
|
|
19
|
-
run: |
|
|
20
|
-
if [ -f gradlew ]; then echo "gradle=true" >> "$GITHUB_OUTPUT"; fi
|
|
21
|
-
|
|
22
|
-
- uses: actions/setup-java@v6
|
|
23
|
-
if: steps.detect.outputs.gradle == 'true'
|
|
24
|
-
with:
|
|
25
|
-
distribution: temurin
|
|
26
|
-
java-version: 21
|
|
27
|
-
|
|
28
|
-
- uses: gradle/actions/setup-gradle@v6
|
|
29
|
-
if: steps.detect.outputs.gradle == 'true'
|
|
30
|
-
|
|
31
|
-
- name: 포맷 검사 + 빌드
|
|
32
|
-
if: steps.detect.outputs.gradle == 'true'
|
|
33
|
-
run: ./gradlew spotlessCheck build
|