[WTH-382] 코덱스 커스텀#73
Hidden character warning
Conversation
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 Walkthrough개요프로젝트의 개발 표준을 종합적으로 문서화한 대규모 컨벤션 및 프로세스 추가입니다. API 설계, 아키텍처, 코드 스타일, 테스트, 예외 처리, Git 규칙과 함께 스킬 시스템(rule-create, skill-create, test-create 등)을 통해 재사용 가능한 개발 프로세스를 구축합니다. 변경사항메인 개발 규칙 문서 (API & 아키텍처)
개발 스킬 및 메타-프로세스 문서
🎯 코드 리뷰 노력 평가🎯 2 (Simple) | ⏱️ ~8분 변경사항이 순전히 문서 추가이며, 코드 변경이 없습니다. 문서들은 일관된 구조(마크다운 포맷, 예제 포함)를 따르고, 반복적 패턴이 많아 검토 복잡도가 낮습니다. 제안 라벨
제안 리뷰어
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Tip 💬 Introducing Slack Agent: The best way for teams to turn conversations into code.Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Built for teams:
One agent for your entire SDLC. Right inside Slack. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 12
🧹 Nitpick comments (1)
.agents/skills/kotlin-migration/SKILL.md (1)
17-23: 💤 Low value테이블 주변에 빈 줄 추가 권장
Markdown 가독성을 위해 테이블 앞뒤로 빈 줄을 추가하는 것이 권장됩니다.
📝 제안하는 포맷
### Recommended Batch Units + | Scope | Batch Size | Example | |-------|-----------|---------| | Single Domain | 3-5 files per batch | `Feed`, `FeedRepository`, `CreateFeedUseCase` | | Cross-Domain | 1 domain at a time | Complete `feed` domain before `user` domain | | Entity + Dependencies | Entity → Repository → Services | Migrate in dependency order | + ### Batch Workflow🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.agents/skills/kotlin-migration/SKILL.md around lines 17 - 23, The Markdown table under the heading "### Recommended Batch Units" lacks blank lines before and after it; to fix, add a blank line between the heading "### Recommended Batch Units" and the table start (the line beginning "| Scope | Batch Size | Example |") and another blank line after the table end (after the last row "`Entity → Repository → Services | Migrate in dependency order`") so the table is separated from surrounding content for improved readability.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.agents/rules/api-design.md:
- Around line 161-168: The markdown code fences containing the API examples (the
block with "GET /users ... POST /users/{userId}/activate" and the other block
with "/api/v4/clubs/{clubId}/boards ...") are missing a language tag and trigger
markdownlint warnings; update both fenced code blocks to include a language
identifier (e.g., add ```text instead of ``` ) so the blocks around the shown
API routes are annotated (the blocks containing the GET/POST/PATCH/DELETE lines
and the /api/v4/... lines).
In @.agents/rules/exception-handling.md:
- Around line 5-11: The fenced code block showing the exception tree (containing
RuntimeException, BaseException, UserNotFoundException, BoardNotFoundException)
should include a language tag by changing the opening fence to ```text so
markdownlint stops warning; locate the block with those symbols and add the
language specifier to the opening backticks.
In @.agents/rules/git-conventions.md:
- Around line 6-8: Update the fenced code blocks that currently start with ```
and contain "type: message" and the subsequent example block ("type(scope):
message", "feat(auth): Add OAuth2 support", etc.) so they include an explicit
language tag (e.g., ```text) to satisfy markdownlint MD040; locate the blocks
containing the exact strings "type: message" and the multi-line commit-msg
examples and change their opening fences to include a language identifier such
as text.
In @.agents/rules/transaction-concurrency.md:
- Around line 35-37: The example uses an undefined identifier user inside fun
execute(userId: Long, request: FeedUploadRequest) when calling
feedMapper.toEntity and then feedRepository.save; fix by either changing the
signature to accept a User (e.g., user: User) or add a lookup at the start of
execute to resolve user from userId (e.g., call
userRepository.findByIdOrNull(userId) or equivalent and handle null), then pass
that user into feedMapper.toEntity before calling feedRepository.save.
In @.agents/skills/code-review/SKILL.md:
- Around line 74-129: The outer fenced code block that begins with "```markdown"
and encloses the nested triple-fenced examples (the whole summary/sections block
containing "## 요약", "## Critical 이슈", etc.) triggers MD040; change that outer
fence to four backticks (e.g., "````") for both the opening and closing fence so
the inner triple-backtick blocks (the Kotlin snippets under UserService.kt,
FeedUsecase.kt, etc.) remain intact and the MD040 warning is resolved.
In @.agents/skills/kotlin-migration/SKILL.md:
- Line 130: 문서의 잘못된 픽스처 경로(라인 130에 있는 src/test/kotlin/{domain}/test/fixture/)가
프로젝트 규칙과 다르므로 해당 경로를 표준 구조인 src/test/kotlin/com/weeth/domain/{domain}/fixture/로
수정하고 불필요한 `test` 하위디렉터리를 제거하며 패키지 구조가 도메인 네임스페이스(com.weeth.domain.{domain})와
일치하도록 예시(예: User 도메인 →
src/test/kotlin/com/weeth/domain/user/fixture/UserTestFixture.kt)로 업데이트하세요.
In @.agents/skills/rule-create/SKILL.md:
- Around line 21-24: 상단의 코드펜스(프로젝트 규칙/개인 규칙을 나열한 코드블록)에 펜스 언어가 빠져 있고, 문서 아래 예제
구간의 중첩 펜스(내부 코드블록이 다시 ```로 감싸진 구조)가 MD040 경고와 렌더링 혼선을 유발하니, 바깥 펜스를 4개 백틱으로 바꾸고
언어 표시를 추가(예: ```markdown → ````markdown)하여 외부 블록의 언어를 명시하고 내부 중첩 블록은 기존의 3개 백틱으로
유지하도록 수정하십시오; 이 변경은 상단의 목록을 감싸는 코드블록과 문서 내 예제(중첩 펜스가 있는 섹션)를 찾아 적용하세요.
In @.agents/skills/skill-create/SKILL.md:
- Around line 19-26: The fenced code blocks in SKILL.md are missing a language
identifier (MD040); update the two shown code blocks and the block covering
lines 103-106 by adding an explicit language tag (e.g., use text) after the
opening triple backticks so the markdown linter stops warning; locate the blocks
in SKILL.md (the repository tree example and the other block at 103-106) and
change their opening fences from ``` to ```text.
In @.agents/skills/systematic-debugging/SKILL.md:
- Around line 90-143: The markdown has nested triple backticks in the "디버깅 리포트"
section causing MD040 and rendering issues; to fix, wrap the entire outer block
(the big fenced region that contains inner triple-backtick Kotlin blocks for "수정
전", "수정 후", and "테스트") with a four-backtick fence (````) instead of triple
backticks so the inner ```kotlin fences remain valid; locate the section
containing the example Kotlin snippets (mentions of UserGetService.kt,
UserRepository.kt, getUser and findByIdAndDeletedAtIsNull) and replace the outer
``` with ```` to stabilize markdown rendering.
In @.agents/skills/test-create/references/java-examples.md:
- Around line 1-119: The file contains Java test examples (UserGetServiceTest,
UserControllerTest, UserTestFixture, CreateUserRequest, UserResponse) that
violate the Kotlin-only policy; remove or clearly isolate them as legacy. Either
delete this Java examples document or prepend a prominent header "LEGACY — Java
examples (Kotlin-only workspace)" and update all references so the test-create
skill and any indexing/skill metadata no longer surface these Java snippets when
generating tests; ensure the examples are not used by generators (mark as
archived/legacy in the skill metadata or move to a legacy-only folder).
In @.agents/skills/test-create/SKILL.md:
- Around line 22-32: The fenced code block in SKILL.md is missing a language tag
which triggers MD040; update the opening fence from ``` to ```text (i.e., add
the "text" language specifier to the triple-backtick fence that begins the code
block) so the markdown linter stops warning, and scan for any other ``` fences
in the file to add appropriate language tags if needed.
In @.agents/skills/test-driven-development/SKILL.md:
- Around line 33-35: The fenced code block containing the line "NO PRODUCTION
CODE WITHOUT A FAILING TEST FIRST" is missing a language tag (triggering
markdownlint MD040); update the opening fence to include a language identifier
(for example change ``` to ```text) so the block has a language tag while
keeping the same content and closing fence.
---
Nitpick comments:
In @.agents/skills/kotlin-migration/SKILL.md:
- Around line 17-23: The Markdown table under the heading "### Recommended Batch
Units" lacks blank lines before and after it; to fix, add a blank line between
the heading "### Recommended Batch Units" and the table start (the line
beginning "| Scope | Batch Size | Example |") and another blank line after the
table end (after the last row "`Entity → Repository → Services | Migrate in
dependency order`") so the table is separated from surrounding content for
improved readability.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 89440300-fa47-4d7e-a825-13f4821b045c
📒 Files selected for processing (22)
.agents/rules/api-design.md.agents/rules/architecture.md.agents/rules/code-style.md.agents/rules/exception-handling.md.agents/rules/git-conventions.md.agents/rules/mapper-dto.md.agents/rules/testing.md.agents/rules/transaction-concurrency.md.agents/skills/architecture-guide/SKILL.md.agents/skills/code-review/SKILL.md.agents/skills/context-update/SKILL.md.agents/skills/database-manage/SKILL.md.agents/skills/database-manage/scripts/dump-schema.sh.agents/skills/kotlin-migration/SKILL.md.agents/skills/rule-create/SKILL.md.agents/skills/skill-create/SKILL.md.agents/skills/systematic-debugging/SKILL.md.agents/skills/test-create/SKILL.md.agents/skills/test-create/references/java-examples.md.agents/skills/test-create/references/kotlin-examples.md.agents/skills/test-driven-development/SKILL.mdAGENTS.md
| ``` | ||
| GET /users # List users | ||
| GET /users/{userId} # Get single user | ||
| POST /users # Create user | ||
| PATCH /users/{userId} # Update user | ||
| DELETE /users/{userId} # Delete user | ||
| POST /users/{userId}/activate # Action on resource | ||
| ``` |
There was a problem hiding this comment.
코드 펜스에 language 지정이 빠져 markdownlint 경고가 발생합니다.
문서 lint 안정성을 위해 두 코드블록에 언어를 명시해 주세요.
수정 예시
-```
+```text
GET /users # List users
GET /users/{userId} # Get single user
POST /users # Create user
PATCH /users/{userId} # Update user
DELETE /users/{userId} # Delete user
POST /users/{userId}/activate # Action on resource- +text
/api/v4/clubs/{clubId}/boards # user-facing
/api/v4/admin/clubs/{clubId}/boards # admin
Also applies to: 174-177
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 161-161: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.agents/rules/api-design.md around lines 161 - 168, The markdown code fences
containing the API examples (the block with "GET /users ... POST
/users/{userId}/activate" and the other block with
"/api/v4/clubs/{clubId}/boards ...") are missing a language tag and trigger
markdownlint warnings; update both fenced code blocks to include a language
identifier (e.g., add ```text instead of ``` ) so the blocks around the shown
API routes are annotated (the blocks containing the GET/POST/PATCH/DELETE lines
and the /api/v4/... lines).
| ``` | ||
| RuntimeException | ||
| └── BaseException (abstract) | ||
| ├── UserNotFoundException | ||
| ├── BoardNotFoundException | ||
| └── ... (domain-specific exceptions) | ||
| ``` |
There was a problem hiding this comment.
코드블록 language 미지정으로 markdownlint 경고가 납니다.
해당 예외 트리 코드펜스에 text 언어를 지정해 주세요.
수정 예시
-```
+```text
RuntimeException
└── BaseException (abstract)
├── UserNotFoundException
├── BoardNotFoundException
└── ... (domain-specific exceptions)</details>
<!-- suggestion_start -->
<details>
<summary>📝 Committable suggestion</summary>
> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
```suggestion
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 5-5: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.agents/rules/exception-handling.md around lines 5 - 11, The fenced code
block showing the exception tree (containing RuntimeException, BaseException,
UserNotFoundException, BoardNotFoundException) should include a language tag by
changing the opening fence to ```text so markdownlint stops warning; locate the
block with those symbols and add the language specifier to the opening
backticks.
| ``` | ||
| type: message | ||
| ``` |
There was a problem hiding this comment.
펜스 코드블록에 언어 태그를 지정해 주세요.
Line 6, Line 106 코드블록이 language 미지정이라 markdownlint(MD040) 경고가 납니다.
수정 예시
-```
+```text
type: message...
- +text
type(scope): message
feat(auth): Add OAuth2 support
fix(api): Handle rate limiting
refactor(user): Simplify validation logic
Also applies to: 106-112
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 6-6: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.agents/rules/git-conventions.md around lines 6 - 8, Update the fenced code
blocks that currently start with ``` and contain "type: message" and the
subsequent example block ("type(scope): message", "feat(auth): Add OAuth2
support", etc.) so they include an explicit language tag (e.g., ```text) to
satisfy markdownlint MD040; locate the blocks containing the exact strings
"type: message" and the multi-line commit-msg examples and change their opening
fences to include a language identifier such as text.
| ```markdown | ||
| # 코드 리뷰 결과 | ||
|
|
||
| ## 요약 | ||
| - Critical: N건 | ||
| - Major: N건 | ||
| - Minor: N건 | ||
| - Suggestion: N건 | ||
|
|
||
| ## Critical 이슈 | ||
| ### [UserService.kt:42] 유저 조회 시 NPE 발생 가능 | ||
| **문제**: `findById` 반환값에 대한 null 처리가 누락되어 NPE가 발생할 수 있습니다. | ||
| **수정 전**: | ||
| ```kotlin | ||
| val user = userRepository.findById(userId).get() | ||
| ``` | ||
| **수정 후**: | ||
| ```kotlin | ||
| val user = userRepository.findByIdOrNull(userId) | ||
| ?: throw UserNotFoundException() | ||
| ``` | ||
|
|
||
| ## Major 이슈 | ||
| ### [FeedUsecase.kt:28] N+1 쿼리 문제 | ||
| **문제**: 반복문 내에서 `commentRepository.findByFeedId()`를 호출하여 N+1 쿼리가 발생합니다. | ||
| **수정 전**: | ||
| ```kotlin | ||
| val feeds = feedRepository.findAll() | ||
| feeds.map { feed -> | ||
| val comments = commentRepository.findByFeedId(feed.id) // N+1 | ||
| feed to comments | ||
| } | ||
| ``` | ||
| **수정 후**: | ||
| ```kotlin | ||
| val feeds = feedRepository.findAll() | ||
| val comments = commentRepository.findByFeedIdIn(feeds.map { it.id }) | ||
| val commentMap = comments.groupBy { it.feedId } | ||
| feeds.map { feed -> feed to (commentMap[feed.id] ?: emptyList()) } | ||
| ``` | ||
|
|
||
| ## Minor 이슈 | ||
| ### [UserController.kt:15] 불필요한 `var` 사용 | ||
| **문제**: 재할당이 없는 변수에 `var`를 사용하고 있습니다. `val`로 변경하세요. | ||
|
|
||
| ## Suggestion | ||
| ### [UserMapper.kt:10] scope function 활용 | ||
| **제안**: `also` 블록을 사용하면 로깅과 변환을 깔끔하게 분리할 수 있습니다. | ||
|
|
||
| ## 좋은 점 | ||
| - UseCase에서 트랜잭션 경계를 잘 관리하고 있습니다. | ||
| - 커스텀 예외 패턴이 일관성 있게 적용되어 있습니다. | ||
|
|
||
| ## 전체 평가 | ||
| ⚠️ 수정 필요 - Critical 1건, Major 1건 수정 후 재확인 부탁드립니다. | ||
| ``` |
There was a problem hiding this comment.
출력 템플릿의 중첩 코드펜스 포맷을 수정해 주세요.
Line 74-129 구간은 내부에 여러 fenced block이 중첩되어 MD040 경고를 유발할 수 있습니다. 바깥 fence를 4백틱으로 변경해 내부 3백틱 블록을 안전하게 포함해 주세요.
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 129-129: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.agents/skills/code-review/SKILL.md around lines 74 - 129, The outer fenced
code block that begins with "```markdown" and encloses the nested triple-fenced
examples (the whole summary/sections block containing "## 요약", "## Critical 이슈",
etc.) triggers MD040; change that outer fence to four backticks (e.g., "````")
for both the opening and closing fence so the inner triple-backtick blocks (the
Kotlin snippets under UserService.kt, FeedUsecase.kt, etc.) remain intact and
the MD040 warning is resolved.
| ``` | ||
| .agents/skills/{skill-name}/ | ||
| ├── SKILL.md # Required: main instructions | ||
| ├── scripts/ # Optional: executable code | ||
| │ └── {script}.py | ||
| └── references/ # Optional: detailed docs | ||
| └── {topic}.md | ||
| ``` |
There was a problem hiding this comment.
fenced code block에 언어를 지정해 markdownlint 경고를 제거해 주세요.
현재 두 코드 블록이 언어 없이 열려 있어(MD040) 문서 lint에서 경고가 발생합니다. text 같은 명시적 언어를 붙이면 해결됩니다.
Also applies to: 103-106
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 19-19: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.agents/skills/skill-create/SKILL.md around lines 19 - 26, The fenced code
blocks in SKILL.md are missing a language identifier (MD040); update the two
shown code blocks and the block covering lines 103-106 by adding an explicit
language tag (e.g., use text) after the opening triple backticks so the markdown
linter stops warning; locate the blocks in SKILL.md (the repository tree example
and the other block at 103-106) and change their opening fences from ``` to
```text.
| ```markdown | ||
| # 디버깅 리포트 | ||
|
|
||
| ## 1. 증상 요약 | ||
| - 에러: `UserNotFoundException` - "User not found" | ||
| - 발생 위치: `UserGetService.kt:23` | ||
| - 재현 조건: 삭제된 유저 ID로 조회 시 항상 발생 | ||
|
|
||
| ## 2. 가설 및 검증 | ||
| | 가설 | 가능성 | 검증 결과 | | ||
| |------|--------|-----------| | ||
| | soft delete된 유저를 필터링하지 않음 | 높음 | ✅ 확인됨 | | ||
| | 잘못된 유저 ID 전달 | 중간 | ❌ 배제 - 로그 확인 결과 정상 ID | | ||
| | 캐시에서 만료된 데이터 조회 | 낮음 | ❌ 배제 - 캐시 미사용 | | ||
|
|
||
| ## 3. 근본 원인 | ||
| **원인**: `findById` 쿼리가 `deletedAt IS NULL` 조건을 포함하지 않아 soft delete된 유저도 조회 대상에 포함됩니다. | ||
| **위치**: `UserRepository.kt:12` - `findById` 메서드 | ||
| **발생 이유**: 기본 JPA `findById`는 soft delete 필터를 적용하지 않습니다. | ||
|
|
||
| ## 4. 수정 방안 | ||
| **수정 전**: | ||
| ```kotlin | ||
| fun getUser(userId: Long): User = | ||
| userRepository.findById(userId) | ||
| .orElseThrow { UserNotFoundException() } | ||
| ``` | ||
|
|
||
| **수정 후**: | ||
| ```kotlin | ||
| fun getUser(userId: Long): User = | ||
| userRepository.findByIdAndDeletedAtIsNull(userId) | ||
| ?: throw UserNotFoundException() | ||
| ``` | ||
|
|
||
| **수정 이유**: soft delete 패턴에 맞게 `deletedAt IS NULL` 조건을 추가하여 삭제된 유저를 제외합니다. | ||
|
|
||
| ## 5. 테스트 | ||
| ```kotlin | ||
| "soft delete된 유저 조회 시 UserNotFoundException 발생" { | ||
| val user = UserTestFixture.createUser() | ||
| userRepository.save(user) | ||
| userRepository.delete(user) // soft delete | ||
|
|
||
| shouldThrow<UserNotFoundException> { | ||
| userGetService.getUser(user.id) | ||
| } | ||
| } | ||
| ``` | ||
|
|
||
| ## 6. 재발 방지 | ||
| - [x] 다른 Repository에서도 `findById` 직접 사용 여부 검사 → `FeedRepository`에서 동일 패턴 발견, 수정 완료 | ||
| - [ ] `@Where(clause = "deleted_at IS NULL")` 엔티티 레벨 적용 검토 | ||
| ``` |
There was a problem hiding this comment.
디버깅 리포트 템플릿의 코드펜스 중첩을 정리해 주세요.
Line 90-143에서 바깥/안쪽 fence가 혼재되어 MD040 경고 및 마크다운 렌더링 문제가 생길 수 있습니다. 바깥 fence를 4백틱으로 감싸는 방식으로 안정화해 주세요.
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 143-143: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.agents/skills/systematic-debugging/SKILL.md around lines 90 - 143, The
markdown has nested triple backticks in the "디버깅 리포트" section causing MD040 and
rendering issues; to fix, wrap the entire outer block (the big fenced region
that contains inner triple-backtick Kotlin blocks for "수정 전", "수정 후", and "테스트")
with a four-backtick fence (````) instead of triple backticks so the inner
```kotlin fences remain valid; locate the section containing the example Kotlin
snippets (mentions of UserGetService.kt, UserRepository.kt, getUser and
findByIdAndDeletedAtIsNull) and replace the outer ``` with ```` to stabilize
markdown rendering.
| ``` | ||
| src/test/ | ||
| └── kotlin/com/weeth/domain/{domain}/ | ||
| ├── application/usecase/ | ||
| │ ├── command/ | ||
| │ └── query/ | ||
| ├── domain/entity/ | ||
| ├── domain/service/ | ||
| ├── presentation/ | ||
| └── fixture/ | ||
| ``` |
There was a problem hiding this comment.
테스트 위치 예시 코드블록에 언어를 지정해 주세요.
Line 22 fence가 언어 없이 시작되어 MD040 경고가 발생합니다. text 지정으로 바로 해결됩니다.
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 22-22: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.agents/skills/test-create/SKILL.md around lines 22 - 32, The fenced code
block in SKILL.md is missing a language tag which triggers MD040; update the
opening fence from ``` to ```text (i.e., add the "text" language specifier to
the triple-backtick fence that begins the code block) so the markdown linter
stops warning, and scan for any other ``` fences in the file to add appropriate
language tags if needed.
| ``` | ||
| NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST | ||
| ``` |
There was a problem hiding this comment.
코드블록 언어 태그를 추가해 주세요.
Line 33 코드블록이 language 미지정이라 markdownlint(MD040) 경고가 발생합니다.
수정 예시
-```
+```text
NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST</details>
<details>
<summary>🧰 Tools</summary>
<details>
<summary>🪛 markdownlint-cli2 (0.22.1)</summary>
[warning] 33-33: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
</details>
</details>
<details>
<summary>🤖 Prompt for AI Agents</summary>
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.agents/skills/test-driven-development/SKILL.md around lines 33 - 35, The
fenced code block containing the line "NO PRODUCTION CODE WITHOUT A FAILING TEST
FIRST" is missing a language tag (triggering markdownlint MD040); update the
opening fence to include a language identifier (for example change ``` to
closing fence.
📌 Summary
Codex 커스텀 작업을 진행했습니다.
📝 Changes
What
AGENTS.md 추가
.agents/rules/ 추가
.agents/skills/ 추가
Why
기존 Claude 중심 지침을 Codex에서 사용할 수 있는
AGENTS.md/.agents/skills구조로 전환하기 위해서How
Codex 공식 구조에 맞춰 루트에
AGENTS.md를 배치📸 Screenshots / Logs
💡 Reviewer 참고사항
.agents/rules는 Codex가 자동 로드하는 설정 파일이 아니라,AGENTS.md와 스킬에서 참조하는 프로젝트 상세 규칙 문서입니다..agents/skills/*/SKILL.md는 Codex가 repo 범위 스킬로 인식하는 구조입니다.✅ Checklist
Summary by CodeRabbit
Release Notes
Note: This release contains internal documentation updates (architecture rules, code standards, testing guidelines, etc.) intended for development team use. There are no new features or changes visible to end-users.