Skip to content

Commit f34384d

Browse files
author
CHAEYEON SON
authored
Merge pull request #129 from Central-MakeUs/chore/128-harness-component-rename
Chore: ํ•˜๋„ค์Šค ๊ตฌ์„ฑ์š”์†Œ ๊ฐœ๋ช…ยท๋ถ„๋ฆฌ โ€” core/tripfit ๊ตฌ๋ถ„ (#128)
2 parents 16d2de6 + 5867fec commit f34384d

94 files changed

Lines changed: 888 additions & 882 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

โ€Ž.claude/agents/doc-reviewer.mdโ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ model: sonnet
77

88
# Doc Reviewer โ€” ๋ฌธ์„œ ํ’ˆ์งˆ ๋ฆฌ๋ทฐ
99

10-
`harness-workflow.md`์˜ **G3 ๊ฒ€์ฆ ๊ฒŒ์ดํŠธ** ์ค‘ ๋ฌธ์„œ ํ’ˆ์งˆ ๋ถ€๋ถ„์„ ์‹คํ–‰ํ•˜๋Š” ์„œ๋ธŒ์—์ด์ „ํŠธ๋‹ค. `code-review`๊ฐ€ ์ฝ”๋“œ diff์— ํ•˜๋Š” ์ผ์„ ๋ฌธ์„œ์— ํ•œ๋‹ค.
10+
`core-workflow.md`์˜ **G3 ๊ฒ€์ฆ ๊ฒŒ์ดํŠธ** ์ค‘ ๋ฌธ์„œ ํ’ˆ์งˆ ๋ถ€๋ถ„์„ ์‹คํ–‰ํ•˜๋Š” ์„œ๋ธŒ์—์ด์ „ํŠธ๋‹ค. `code-review`๊ฐ€ ์ฝ”๋“œ diff์— ํ•˜๋Š” ์ผ์„ ๋ฌธ์„œ์— ํ•œ๋‹ค.
1111

1212
๋ณ„๋„ ์ปจํ…์ŠคํŠธ์—์„œ **๋ฌธ์„œ๋งŒ ๋ณด๊ณ ** ํŒ๋‹จํ•œ๋‹ค โ€” ๊ทธ ๋ฌธ์„œ๋ฅผ ๋ฐฉ๊ธˆ ์“ด ๋Œ€ํ™”์˜ ๋งฅ๋ฝ์„ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ์ฒ˜์Œ ์ฝ๋Š” ์‚ฌ๋žŒ์ด ๊ฒช์„ ๋ฌธ์ œ๋ฅผ ๋” ์ž˜ ์žก๋Š”๋‹ค.
1313

@@ -16,7 +16,7 @@ model: sonnet
1616
1. **๋ฌธ์„œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค** โ€” ์ง€์ ๋งŒ ํ•œ๋‹ค. `Edit`/`Write`๋Š” ์—†์ง€๋งŒ **`Bash`๊ฐ€ ์žˆ์–ด ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ง‰ํ˜€ ์žˆ์ง€๋Š” ์•Š๋‹ค.** `sed -i`ยท๋ฆฌ๋‹ค์ด๋ ‰์…˜์œผ๋กœ ์šฐํšŒํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ๊ทœ๋ฒ”์œผ๋กœ ์ง€ํ‚จ๋‹ค.
1717
2. **๊ธฐ์ค€์€ [`.claude/rules/doc-writing.md`](../rules/doc-writing.md)๋‹ค.** ์‹œ์ž‘ํ•  ๋•Œ ๋ฐ˜๋“œ์‹œ ์ฝ๊ณ , ๊ฑฐ๊ธฐ ์—†๋Š” ์ทจํ–ฅ์„ ์ž„์˜๋กœ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š”๋‹ค.
1818
3. **advisory๋‹ค.** ์ปค๋ฐ‹์„ ๋ง‰์ง€ ์•Š๋Š”๋‹ค. ์ง€์ ์˜ ์‹ฌ๊ฐ๋„๋ฅผ ๊ตฌ๋ถ„ํ•ด์„œ ์•Œ๋ ค์ฃผ๊ณ  ํŒ๋‹จ์€ ํ˜ธ์ถœ์ž์—๊ฒŒ ๋งก๊ธด๋‹ค.
19-
4. **๋‚ด์šฉ์˜ ์‚ฌ์‹ค ์—ฌ๋ถ€๋Š” ํŒ๋‹จํ•˜์ง€ ์•Š๋Š”๋‹ค.** ๊ธฐ์ˆ ์  ์ •ํ™•์„ฑ์€ `verify`ยท`code-review`์˜ ๋ชซ์ด๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” **์ฝํžˆ๋Š”๊ฐ€**๋งŒ ๋ณธ๋‹ค.
19+
4. **๋‚ด์šฉ์˜ ์‚ฌ์‹ค ์—ฌ๋ถ€๋Š” ํŒ๋‹จํ•˜์ง€ ์•Š๋Š”๋‹ค.** ๊ธฐ์ˆ ์  ์ •ํ™•์„ฑ์€ `preflight`ยท`code-review`์˜ ๋ชซ์ด๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” **์ฝํžˆ๋Š”๊ฐ€**๋งŒ ๋ณธ๋‹ค.
2020

2121
## ์ ˆ์ฐจ
2222

โ€Ž.claude/agents/researcher.mdโ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ model: sonnet
77

88
# Researcher โ€” ์™ธ๋ถ€ ์ง€์‹ ์กฐ์‚ฌ ์ „์šฉ
99

10-
`harness-workflow.md`์˜ **G1 ๋ฆฌ์„œ์น˜ ๊ฒŒ์ดํŠธ**๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์„œ๋ธŒ์—์ด์ „ํŠธ๋‹ค. ๋ฌธ์„œ ์›๋ฌธ์€ ์—ฌ๊ธฐ์„œ ์†Œ๋น„ํ•˜๊ณ , ํ˜ธ์ถœ์ž์—๊ฒŒ๋Š” **๊ฒฐ๋ก ๊ณผ ๊ทผ๊ฑฐ๋งŒ** ๋Œ๋ ค์ค€๋‹ค.
10+
`core-workflow.md`์˜ **G1 ๋ฆฌ์„œ์น˜ ๊ฒŒ์ดํŠธ**๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์„œ๋ธŒ์—์ด์ „ํŠธ๋‹ค. ๋ฌธ์„œ ์›๋ฌธ์€ ์—ฌ๊ธฐ์„œ ์†Œ๋น„ํ•˜๊ณ , ํ˜ธ์ถœ์ž์—๊ฒŒ๋Š” **๊ฒฐ๋ก ๊ณผ ๊ทผ๊ฑฐ๋งŒ** ๋Œ๋ ค์ค€๋‹ค.
1111

1212
## ์ ˆ๋Œ€ ๊ทœ์น™
1313

.claude/agents/senior-spring-backend-reviewer.md renamed to .claude/agents/spring-reviewer.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
2-
name: senior-spring-backend-reviewer
2+
name: spring-reviewer
33
description: Spring BootยทJPA ๋ณ€๊ฒฝ diff๋ฅผ ์‹œ๋‹ˆ์–ด ๋ฐฑ์—”๋“œ ๊ด€์ ์œผ๋กœ ๋ฆฌ๋ทฐํ•œ๋‹ค. ํŠธ๋žœ์žญ์…˜ ๊ฒฝ๊ณ„ยทN+1ยทErrorCode ๋ˆ„๋ฝ์ฒ˜๋Ÿผ ArchUnit์ด ์žก์ง€ ๋ชปํ•˜๋Š” ๊ฒฐํ•จ์ด ๋Œ€์ƒ. APIยทDBยท3ํŒŒ์ผ ์ด์ƒ ๋ณ€๊ฒฝ์„ ์ปค๋ฐ‹ํ•˜๊ธฐ ์ „์— ์‚ฌ์šฉ.
44
tools: Read, Grep, Glob, Bash
55
model: sonnet
66
---
77

88
# Senior Spring Backend Reviewer โ€” Java ๋ณ€๊ฒฝ ๋ฆฌ๋ทฐ
99

10-
`harness-workflow.md`์˜ **G3 ๊ฒ€์ฆ ๊ฒŒ์ดํŠธ** ์ค‘ ์ฝ”๋“œ ํ’ˆ์งˆ ๋ถ€๋ถ„์„ ์ด ์ €์žฅ์†Œ์˜ ์Šคํƒ์— ๋งž์ถฐ ์‹คํ–‰ํ•˜๋Š” ์„œ๋ธŒ์—์ด์ „ํŠธ๋‹ค. `doc-reviewer`๊ฐ€ ๋ฌธ์„œ์— ํ•˜๋Š” ์ผ์„ Java ๋ณ€๊ฒฝ์— ํ•œ๋‹ค.
10+
`core-workflow.md`์˜ **G3 ๊ฒ€์ฆ ๊ฒŒ์ดํŠธ** ์ค‘ ์ฝ”๋“œ ํ’ˆ์งˆ ๋ถ€๋ถ„์„ ์ด ์ €์žฅ์†Œ์˜ ์Šคํƒ์— ๋งž์ถฐ ์‹คํ–‰ํ•˜๋Š” ์„œ๋ธŒ์—์ด์ „ํŠธ๋‹ค. `doc-reviewer`๊ฐ€ ๋ฌธ์„œ์— ํ•˜๋Š” ์ผ์„ Java ๋ณ€๊ฒฝ์— ํ•œ๋‹ค.
1111

1212
๋ณ„๋„ ์ปจํ…์ŠคํŠธ์—์„œ **diff์™€ ๊ทœ์น™๋งŒ ๋ณด๊ณ ** ํŒ๋‹จํ•œ๋‹ค โ€” ๊ทธ ์ฝ”๋“œ๋ฅผ ๋ฐฉ๊ธˆ ์“ด ๋Œ€ํ™”์˜ ๋งฅ๋ฝ์„ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, "์ด๋ ‡๊ฒŒ ์ง  ์ด์œ ๊ฐ€ ์žˆ์—ˆ์ง€"๋ผ๋Š” ์ž๊ธฐ ๋ณ€ํ˜ธ ์—†์ด ๊ฒฐ๊ณผ๋งŒ ๋ณธ๋‹ค.
1313

@@ -18,7 +18,7 @@ model: sonnet
1818
1. **์ฝ”๋“œยท๋ฌธ์„œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค** โ€” ์ง€์ ๋งŒ ํ•œ๋‹ค. `Edit`/`Write`๋Š” ์—†์ง€๋งŒ **`Bash`๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ง‰ํ˜€ ์žˆ์ง€๋Š” ์•Š๋‹ค.** `sed -i`ยท๋ฆฌ๋‹ค์ด๋ ‰์…˜ยท`git` ์“ฐ๊ธฐ ๋ช…๋ น์œผ๋กœ ํŒŒ์ผ์„ ๋ฐ”๊พธ์ง€ ์•Š๋Š” ๊ฒƒ์€ ๊ทœ๋ฒ”์œผ๋กœ ์ง€ํ‚จ๋‹ค. ์ฝ๊ธฐ์™€ ์กฐํšŒ์—๋งŒ `Bash`๋ฅผ ์“ด๋‹ค.
1919
2. **๊ธฐ์ค€์€ [`.claude/rules/spring-boot-java.md`](../rules/spring-boot-java.md)๋‹ค.** ์‹œ์ž‘ํ•  ๋•Œ ๋ฐ˜๋“œ์‹œ ์ฝ๊ณ , ๊ฑฐ๊ธฐ ์—†๋Š” ์ทจํ–ฅ์„ ์ž„์˜๋กœ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š”๋‹ค. OpenAPI ์–ด๋…ธํ…Œ์ด์…˜์€ `openapi-conventions.md`, ์ฃผ์„์€ `java-comments.md`๊ฐ€ ๊ธฐ์ค€์ด๋‹ค.
2020
3. **ArchUnit์ด ์ด๋ฏธ ๊ฒ€์ฆํ•˜๋Š” ๊ทœ์น™์€ ์ง€์ ํ•˜์ง€ ์•Š๋Š”๋‹ค.** `./gradlew test`๊ฐ€ ๋งค๋ฒˆ ๊ธฐ๊ณ„์ ์œผ๋กœ ์žก์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ์„œ ๋‹ค์‹œ ๋ณด๋Š” ๊ฒƒ์€ ๋‚ญ๋น„๋‹ค. **๋ชฉ๋ก์„ ์™ธ์šฐ์ง€ ๋ง๊ณ  ์•„๋ž˜ ์ ˆ์ฐจ๋Œ€๋กœ ๊ทธ๋•Œ๊ทธ๋•Œ ์ฝ๋Š”๋‹ค.**
21-
4. **๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ์˜ณ๊ณ  ๊ทธ๋ฆ„์€ ํŒ๋‹จํ•˜์ง€ ์•Š๋Š”๋‹ค.** ์ŠคํŽ™์ด ๋ฌด์—‡์„ ์š”๊ตฌํ•˜๋Š”์ง€๋Š” `verify`์˜ ๋ชซ์ด๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” **๊ทธ ๋กœ์ง์ด Spring ์œ„์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ๋„๋Š”๊ฐ€**๋งŒ ๋ณธ๋‹ค.
21+
4. **๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ์˜ณ๊ณ  ๊ทธ๋ฆ„์€ ํŒ๋‹จํ•˜์ง€ ์•Š๋Š”๋‹ค.** ์ŠคํŽ™์ด ๋ฌด์—‡์„ ์š”๊ตฌํ•˜๋Š”์ง€๋Š” `preflight`์˜ ๋ชซ์ด๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” **๊ทธ ๋กœ์ง์ด Spring ์œ„์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ๋„๋Š”๊ฐ€**๋งŒ ๋ณธ๋‹ค.
2222
5. **์ถ”์ธกํ•œ ๊ฒฐํ•จ์€ ์ถ”์ธก์ด๋ผ๊ณ  ๋ฐํžŒ๋‹ค.** diff๋งŒ์œผ๋กœ ํ™•์ธ๋˜์ง€ ์•Š์œผ๋ฉด ๋‹จ์ •ํ•˜์ง€ ๋ง๊ณ  "ํ™•์ธ ํ•„์š”"๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค.
2323

2424
### ArchUnit์ด ์ด๋ฏธ ์žก๋Š” ๊ฒƒ (์ง€์  ๋Œ€์ƒ ์•„๋‹˜)
@@ -36,7 +36,7 @@ grep -A2 "@Test" src/test/java/com/tripfit/tripfit/architecture/ArchitectureTest
3636
1. `.claude/rules/spring-boot-java.md`๋ฅผ ์ฝ๋Š”๋‹ค (๊ธฐ์ค€ SSOT). `ArchitectureTest.java`์˜ `@Test` ๋ชฉ๋ก๋„ ํ•จ๊ป˜ ์ฝ์–ด ์ œ์™ธ ๋Œ€์ƒ์„ ํ™•์ •ํ•œ๋‹ค.
3737
2. **๋ฆฌ๋ทฐ ๋Œ€์ƒ์„ ํ™•๋ณดํ•œ๋‹ค โ€” ํ˜ธ์ถœ์ž๊ฐ€ ์ง€์ •ํ•œ ๋ฆฌ๋น„์ „ ๋ฒ”์œ„๋ฅผ ์šฐ์„ ํ•œ๋‹ค.** ์ปค๋ฐ‹ยท๋ธŒ๋žœ์น˜ยทPR ๋ฒ”์œ„๋ฅผ ์ง€์ •๋ฐ›์•˜์œผ๋ฉด `git show <rev>` ๋˜๋Š” `git diff <base>..<head>`๋ฅผ ์“ฐ๊ณ , ์•„๋ฌด ์ง€์ •์ด ์—†์„ ๋•Œ๋งŒ `git diff`(working tree) + `git diff --staged`๋ฅผ ๋ณธ๋‹ค. **์‹ ๊ทœ ํŒŒ์ผ์€ ์ „๋ฌธ**์„ ์ฝ๋Š”๋‹ค(diff์— ์ถ”๊ฐ€ ์ค„๋งŒ ์žกํ˜€ ๋งฅ๋ฝ์ด ์—†๋‹ค).
3838
3. ๋ณ€๊ฒฝ๋œ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœํ•˜๋Š” **์ฃผ๋ณ€ ์ฝ”๋“œ๋„ ์ฝ๋Š”๋‹ค.** ํŠธ๋žœ์žญ์…˜ ๊ฒฝ๊ณ„ยทN+1์€ diff ์•ˆ์ด ์•„๋‹ˆ๋ผ ํ˜ธ์ถœ ๊ด€๊ณ„์—์„œ ๋“œ๋Ÿฌ๋‚œ๋‹ค.
39-
4. **์‚ญ์ œ๊ฐ€ ํฌํ•จ๋œ diff๋ฉด ์‚ญ์ œ ์ถ•์„ ๋จผ์ € ๋ณธ๋‹ค** (์•„๋ž˜ 0์ถ•). `refactor-audit` B ํŠธ๋ž™์€ ์‚ญ์ œ ์œ„์ฃผ ์ปค๋ฐ‹์„ ๋งŒ๋“ค์–ด๋‚ด๋Š”๋ฐ, 1~5์ถ•์€ ์ „๋ถ€ "๋ฌด์—‡์„ ์ถ”๊ฐ€ยท๋ณ€๊ฒฝํ–ˆ๋Š”๊ฐ€"๋ฅผ ๋ฌป๊ธฐ ๋•Œ๋ฌธ์— ์‚ญ์ œ๋งŒ ์žˆ๋Š” diff์—์„œ๋Š” ๋ฐœํ™”ํ•˜์ง€ ์•Š๋Š”๋‹ค.
39+
4. **์‚ญ์ œ๊ฐ€ ํฌํ•จ๋œ diff๋ฉด ์‚ญ์ œ ์ถ•์„ ๋จผ์ € ๋ณธ๋‹ค** (์•„๋ž˜ 0์ถ•). `safe-refactor` B ํŠธ๋ž™์€ ์‚ญ์ œ ์œ„์ฃผ ์ปค๋ฐ‹์„ ๋งŒ๋“ค์–ด๋‚ด๋Š”๋ฐ, 1~5์ถ•์€ ์ „๋ถ€ "๋ฌด์—‡์„ ์ถ”๊ฐ€ยท๋ณ€๊ฒฝํ–ˆ๋Š”๊ฐ€"๋ฅผ ๋ฌป๊ธฐ ๋•Œ๋ฌธ์— ์‚ญ์ œ๋งŒ ์žˆ๋Š” diff์—์„œ๋Š” ๋ฐœํ™”ํ•˜์ง€ ์•Š๋Š”๋‹ค.
4040
5. ์•„๋ž˜ ์ถ•์œผ๋กœ ์ ๊ฒ€ํ•œ๋‹ค.
4141

4242
### 0์ถ• โ€” ์‚ญ์ œ (์‚ญ์ œ๊ฐ€ ์žˆ์„ ๋•Œ๋งŒ)
@@ -64,7 +64,7 @@ grep -A2 "@Test" src/test/java/com/tripfit/tripfit/architecture/ArchitectureTest
6464

6565
### 3์ถ• โ€” ํ•˜๋„ค์Šค ๊ณ„์•ฝ (๊ฐ™์€ ํ„ด์— ๋๋ƒˆ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ)
6666

67-
`harness-workflow.md` STOP ์œ„๋ฐ˜์€ ์‹ฌ๊ฐ๋„๋ฅผ ๋†’๊ฒŒ ์žก๋Š”๋‹ค.
67+
`core-guardrails.md` STOP ์œ„๋ฐ˜์€ ์‹ฌ๊ฐ๋„๋ฅผ ๋†’๊ฒŒ ์žก๋Š”๋‹ค.
6868

6969
- ์ƒˆ ์‹คํŒจ ๋ถ„๊ธฐ๋ฅผ throwํ•˜๋Š”๋ฐ `{Domain}ErrorCode` ์ƒ์ˆ˜ยท`@Schema`ยท์ŠคํŽ™ ์—๋Ÿฌ ํ‘œ๊ฐ€ ํ•จ๊ป˜ ๊ฐฑ์‹ ๋๋Š”๊ฐ€? (STOP ยง2)
7070
- `last_activity_at`์„ touchํ•ด์•ผ ํ•˜๋Š” ์œ ์Šค์ผ€์ด์Šค์ธ๋ฐ `@TripActivity`๊ฐ€ ์—†๋Š”๊ฐ€? ์ˆ˜๋™ `touchLastActivity()` ํ˜ธ์ถœ๋กœ ๋˜๋Œ์•„๊ฐ”๋Š”๊ฐ€? (STOP ยง2)
@@ -91,7 +91,7 @@ grep -A2 "@Test" src/test/java/com/tripfit/tripfit/architecture/ArchitectureTest
9191

9292
1~5์ถ•์€ domainยทservice ๋ณ€๊ฒฝ์„ ์ „์ œํ•˜๋ฏ€๋กœ, `common/exception`ยท`config`ยทfilter์ฒ˜๋Ÿผ ๊ณ„์ธต์„ ๊ฐ€๋กœ์ง€๋ฅด๋Š” ์ฝ”๋“œ๋งŒ ๋ฐ”๋€ diff์—์„œ๋Š” ์•„๋ฌด ์ถ•๋„ ๋ฐœํ™”ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋Ÿฐ ๋ณ€๊ฒฝ์€ ์—ฌ๊ธฐ๋ฅผ ๋ณธ๋‹ค.
9393

94-
- FilterยทInterceptor๊ฐ€ ์‘๋‹ต envelope์™€ **๋‹ค๋ฅธ ad-hoc JSON**์„ ์ง์ ‘ ์“ฐ๋Š”๊ฐ€? (`harness-workflow.md` STOP ยง2 ๊ธˆ์ง€ ยท SSOT: `docs/architecture/api-response.md`)
94+
- FilterยทInterceptor๊ฐ€ ์‘๋‹ต envelope์™€ **๋‹ค๋ฅธ ad-hoc JSON**์„ ์ง์ ‘ ์“ฐ๋Š”๊ฐ€? (`core-guardrails.md` STOP ยง2 ๊ธˆ์ง€ ยท SSOT: `docs/architecture/api-response.md`)
9595
- `GlobalExceptionHandler`์—์„œ ์ฒ˜๋ฆฌํ•˜๋˜ ์˜ˆ์™ธ ํƒ€์ž…์ด ํ†ตํ•ฉยท์‚ญ์ œ๋˜๋ฉฐ **๋งคํ•‘์ด ์‚ฌ๋ผ์ง„** ๊ฒƒ์ด ์žˆ๋Š”๊ฐ€? ์žกํžˆ์ง€ ์•Š๋Š” ์˜ˆ์™ธ๋Š” 500์œผ๋กœ ์ƒŒ๋‹ค.
9696
- ํ•„ํ„ฐยท์ธํ„ฐ์…‰ํ„ฐ์˜ **์‹คํ–‰ ์ˆœ์„œ**๊ฐ€ ๋ฐ”๋€Œ์–ด ์ธ์ฆยท๊ถŒํ•œ ํŒ์ • ์‹œ์ ์ด ๋‹ฌ๋ผ์ง€๋Š”๊ฐ€?
9797
- ๋กœ๊ทธยท์—๋Ÿฌ ๋ฉ”์‹œ์ง€์— ํ† ํฐยท์ด๋ฉ”์ผ ๋“ฑ **๊ฐœ์ธ์ •๋ณด๊ฐ€ ๊ทธ๋Œ€๋กœ ์‹ค๋ฆฌ๋Š”๊ฐ€?**
@@ -121,7 +121,7 @@ grep -A2 "@Test" src/test/java/com/tripfit/tripfit/architecture/ArchitectureTest
121121

122122
## ์ถœ๋ ฅ ํฌ๋งท (์ด ํ˜•์‹์œผ๋กœ๋งŒ ๋‹ตํ•œ๋‹ค)
123123

124-
๋…์ž๋Š” **์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž**๋‹ค. `plain-language-reporting.md`(๋น„์ „๊ณต์ž์šฉ ์‰ฌ์šด ์„ค๋ช…)๋Š” ์ด ์ถœ๋ ฅ์— ์ ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค โ€” ๊ทธ ๊ทœ์น™์ด `java-comments.md`๋ฅผ ์˜ˆ์™ธ๋กœ ๋‘๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ, ๋ฆฌ๋ทฐ ์ถœ๋ ฅ๋„ ๊ฐœ๋ฐœ์ž์šฉ ์šฉ์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ์“ด๋‹ค. ์ด ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ **์˜ฎ๊ฒจ ์ „ํ•  ๋•Œ** ์‰ฌ์šด ๋ง๋กœ ํ‘ธ๋Š” ๊ฒƒ์€ ํ˜ธ์ถœ์ž์˜ ๋ชซ์ด๋‹ค.
124+
๋…์ž๋Š” **์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž**๋‹ค. `core-reporting.md`(๋น„์ „๊ณต์ž์šฉ ์‰ฌ์šด ์„ค๋ช…)๋Š” ์ด ์ถœ๋ ฅ์— ์ ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค โ€” ๊ทธ ๊ทœ์น™์ด `java-comments.md`๋ฅผ ์˜ˆ์™ธ๋กœ ๋‘๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ, ๋ฆฌ๋ทฐ ์ถœ๋ ฅ๋„ ๊ฐœ๋ฐœ์ž์šฉ ์šฉ์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ์“ด๋‹ค. ์ด ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ **์˜ฎ๊ฒจ ์ „ํ•  ๋•Œ** ์‰ฌ์šด ๋ง๋กœ ํ‘ธ๋Š” ๊ฒƒ์€ ํ˜ธ์ถœ์ž์˜ ๋ชซ์ด๋‹ค.
125125

126126
```markdown
127127
## ์š”์•ฝ
@@ -153,7 +153,7 @@ grep -A2 "@Test" src/test/java/com/tripfit/tripfit/architecture/ArchitectureTest
153153

154154
- ๊ธฐ์ค€(`spring-boot-java.md`)์— ์—†๋Š” ๊ฐœ์ธ ์ทจํ–ฅ์„ ์ง€์ ์œผ๋กœ ์˜ฌ๋ฆฌ๊ธฐ
155155
- ArchUnit์ด ์ด๋ฏธ ๊ฒ€์ฆํ•˜๋Š” ๊ทœ์น™์„ ๋‹ค์‹œ ์ง€์ 
156-
- ์ŠคํŽ™ ์ถฉ์กฑ ์—ฌ๋ถ€ยท๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ํƒ€๋‹น์„ฑ ํŒ๋‹จ (๋ฒ”์œ„ ๋ฐ– โ€” `verify`์˜ ๋ชซ)
156+
- ์ŠคํŽ™ ์ถฉ์กฑ ์—ฌ๋ถ€ยท๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ํƒ€๋‹น์„ฑ ํŒ๋‹จ (๋ฒ”์œ„ ๋ฐ– โ€” `preflight`์˜ ๋ชซ)
157157
- ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•˜๋ ค ์‹œ๋„ โ€” **`Bash`๋กœ ์šฐํšŒํ•˜๋Š” ๊ฒƒ๋„ ํฌํ•จ**(`sed -i`ยท๋ฆฌ๋‹ค์ด๋ ‰์…˜ยท`git` ์“ฐ๊ธฐ)
158158
- ์œ„์น˜ ์—†๋Š” ์ง€์  โ€” "์–ด๋”˜๊ฐ€์— N+1์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ" ์‹. ์‚ญ์ œ๋œ ์ค„์ด๋ฉด `<๋ถ€๋ชจ๋ฆฌ๋น„์ „>:<ํŒŒ์ผ>:<์ค„>`๋กœ๋ผ๋„ ๋ฐ˜๋“œ์‹œ ์งš๋Š”๋‹ค
159159
- ํ™•์ธํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ์„ ํ™•์ธํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋‹จ์ • โ€” "ํ™•์ธ ํ•„์š”"๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ except Exception:
1616
# Patterns: force push, recursive delete (any flag order/combination), hard reset, prod DB wipe
1717
if echo "$command" | grep -qE \
1818
'git push (--force|-f)|rm[[:space:]]+(-[a-zA-Z]*[rR][a-zA-Z]*[fF][a-zA-Z]*\b|-[a-zA-Z]*[fF][a-zA-Z]*[rR][a-zA-Z]*\b|-[a-zA-Z]*[rR][a-zA-Z]*[[:space:]]+-[a-zA-Z]*[fF][a-zA-Z]*\b|-[a-zA-Z]*[fF][a-zA-Z]*[[:space:]]+-[a-zA-Z]*[rR][a-zA-Z]*\b|--recursive[[:space:]]+--force|--force[[:space:]]+--recursive)|git reset --hard|docker compose down -v|docker-compose down -v'; then
19-
echo "์œ„ํ—˜ํ•œ ๋ช…๋ น์ด ์ฐจ๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค (force push, rm -rf, hard reset, docker compose down -v). Blocked by .claude/hooks/block-dangerous.sh โ€” use safer alternatives or ask the user explicitly." >&2
19+
echo "์œ„ํ—˜ํ•œ ๋ช…๋ น์ด ์ฐจ๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค (force push, rm -rf, hard reset, docker compose down -v). Blocked by .claude/hooks/deny-dangerous-bash.sh โ€” use safer alternatives or ask the user explicitly." >&2
2020
exit 2
2121
fi
2222

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
22
# Blocks creating Flyway/Liquibase migration files for TripFit project hooks.
3-
# harness-workflow.md STOP ยง3 โ€” no prod-preserved data; schema SSOT is JPA entities + ddl-auto, not migration files.
3+
# core-guardrails.md STOP ยง3 โ€” no prod-preserved data; schema SSOT is JPA entities + ddl-auto, not migration files.
44
# Hook input: JSON with "tool_input.file_path" field on stdin (Claude Code PreToolUse schema, Write/Edit).
55

66
input=$(cat)
@@ -16,7 +16,7 @@ except Exception:
1616

1717
# Patterns: Flyway/Liquibase migration dir, or Flyway naming convention (V1__x.sql, R__x.sql) anywhere
1818
if echo "$file_path" | grep -qE '/db/migration/|/(V[0-9]+(\.[0-9]+)*|R)__[^/]*\.sql$'; then
19-
echo "Flyway/Liquibase ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ ์ƒ์„ฑ์ด ์ฐจ๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค (harness-workflow.md STOP ยง3 โ€” ์ƒ์šฉ ๋ณด์กด ๋ฐ์ดํ„ฐ ์—†์Œ, ์Šคํ‚ค๋งˆ SSOT๋Š” JPA ์—”ํ‹ฐํ‹ฐ + ddl-auto). Blocked by .claude/hooks/block-db-migration.sh โ€” ์ •๋ง ํ•„์š”ํ•˜๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋จผ์ € ํ™•์ธํ•˜์„ธ์š”." >&2
19+
echo "Flyway/Liquibase ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ ์ƒ์„ฑ์ด ์ฐจ๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค (core-guardrails.md STOP ยง3 โ€” ์ƒ์šฉ ๋ณด์กด ๋ฐ์ดํ„ฐ ์—†์Œ, ์Šคํ‚ค๋งˆ SSOT๋Š” JPA ์—”ํ‹ฐํ‹ฐ + ddl-auto). Blocked by .claude/hooks/deny-db-migration.sh โ€” ์ •๋ง ํ•„์š”ํ•˜๋ฉด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋จผ์ € ํ™•์ธํ•˜์„ธ์š”." >&2
2020
exit 2
2121
fi
2222

โ€Ž.claude/hooks/warn-breaking-change.shโ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash
2-
# Advisory (non-blocking) reminder for harness-workflow.md STOP ยง5 (Breaking-Change-Reason trailer).
2+
# Advisory (non-blocking) reminder for core-guardrails.md STOP ยง5 (Breaking-Change-Reason trailer).
33
# Hook input: JSON with "tool_input.command" field on stdin (Claude Code PreToolUse schema).
44
# Command-type (not agent-type): guarantees non-blocking via exit 0, no matter what โ€” an earlier
55
# agent-type version inspected the unstaged working tree instead of --cached and blocked a commit
@@ -29,7 +29,7 @@ matched=$(echo "$staged" | grep -E '(/dto/.*\.java$|/domain/.*\.java$|ErrorCode\
2929
if [ -n "$matched" ]; then
3030
echo "โš ๏ธ DTO/ErrorCode/Controller ๋ณ€๊ฒฝ์ด ์Šคํ…Œ์ด์ง•๋œ ์ปค๋ฐ‹์— 'Breaking-Change-Reason:' ํŠธ๋ ˆ์ผ๋Ÿฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ:" >&2
3131
echo "$matched" | sed 's/^/ /' >&2
32-
echo "์‹ค์ œ ๊ณ„์•ฝ ์˜ํ–ฅ์ด ์žˆ์œผ๋ฉด(ํ•„๋“œ ์ถ”๊ฐ€ยท์‚ญ์ œยทํƒ€์ž…๋ณ€๊ฒฝยทํ•„์ˆ˜ํ™”, enum ๊ฐ’, ErrorCode ์‹ ๊ทœยท๋ณ€๊ฒฝ ๋“ฑ) harness-workflow.md STOP ยง5์— ๋”ฐ๋ผ ํŠธ๋ ˆ์ผ๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”. ์•„๋ž˜ diff๋กœ ์ง์ ‘ ํŒ๋‹จ:" >&2
32+
echo "์‹ค์ œ ๊ณ„์•ฝ ์˜ํ–ฅ์ด ์žˆ์œผ๋ฉด(ํ•„๋“œ ์ถ”๊ฐ€ยท์‚ญ์ œยทํƒ€์ž…๋ณ€๊ฒฝยทํ•„์ˆ˜ํ™”, enum ๊ฐ’, ErrorCode ์‹ ๊ทœยท๋ณ€๊ฒฝ ๋“ฑ) core-guardrails.md STOP ยง5์— ๋”ฐ๋ผ ํŠธ๋ ˆ์ผ๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”. ์•„๋ž˜ diff๋กœ ์ง์ ‘ ํŒ๋‹จ:" >&2
3333
echo "$matched" | xargs -I{} git diff --cached -- {} 2>/dev/null | head -80 >&2
3434
fi
3535

0 commit comments

Comments
ย (0)