Skip to content

docs: record build/lint gotchas and test-harness rule in CLAUDE.md - #98

Merged
pignuante merged 1 commit into
mainfrom
docs/claude-md-build-gotchas
Jul 21, 2026
Merged

docs: record build/lint gotchas and test-harness rule in CLAUDE.md#98
pignuante merged 1 commit into
mainfrom
docs/claude-md-build-gotchas

Conversation

@pignuante

Copy link
Copy Markdown
Contributor

What

์ด๋ฒˆ ์ฐฝ ๊ธฐํ•˜ ๊ฐ์‚ฌ ์ˆ˜์ • ์‚ฌ์ดํด(#97)์—์„œ ์‹ค์ œ๋กœ ์‹œ๊ฐ„์„ ์†Œ๋ชจํ–ˆ๊ณ  ์žฌ๋ฐœ ๊ฐ€๋Šฅํ•œ ํ•ญ๋ชฉ์„ CLAUDE.md์— ๊ธฐ๋กํ•œ๋‹ค.

์ถ”๊ฐ€ ๋‚ด์šฉ

Build / test / lint

  • make run(์„œ๋ช…) ํ›„ make build(ad-hoc)๊ฐ€ ๊ฐ™์€ DerivedData๋ฅผ ๊ณต์œ ํ•ด Sparkle.framework "permission to save" ๋กœ ์‹คํŒจ โ†’ ์•ฑ ์ข…๋ฃŒ ํ›„ ์‚ฐ์ถœ๋ฌผ ๋ฒˆ๋“ค ์‚ญ์ œํ•˜๊ณ  ์žฌ๋นŒ๋“œ.
  • main ๋ธŒ๋žœ์น˜ ๋ณดํ˜ธ: lint-and-build/gitleaks/secret-scan ํ†ต๊ณผ ์ „๊นŒ์ง€ ๋จธ์ง€๊ฐ€ BLOCKED.

Code conventions

  • SwiftFormat(wrapMultilineStatementBraces)๊ณผ SwiftLint(opening_brace)๊ฐ€ ์ค„๋ฐ”๊ฟˆ๋œ if ์กฐ๊ฑด์˜ ์ค‘๊ด„ํ˜ธ ์œ„์น˜๋กœ ์ถฉ๋Œํ•ด pre-commit ํ›…์ด ๋ฐ๋“œ๋ฝ โ†’ ๋‹ค์ค‘ ์กฐ๊ฑด if๋Š” ํ•œ ์ค„ ์œ ์ง€(ํ•„์š”ํ•˜๋ฉด ์ง€์—ญ Bool ์ถ”์ถœ). ๋‹ค์ค‘ ์ค„ guard โ€ฆ else {๋Š” ๋ฌด๊ด€.
  • --strict๊ฐ€ SwiftLint ๊ธฐ๋ณธ ๊ทœ์น™์„ ์—๋Ÿฌ๋กœ ์Šน๊ฒฉ โ€” ํŒŒ๋ผ๋ฏธํ„ฐ 5๊ฐœยทํŠœํ”Œ 2๋ฉค๋ฒ„ ์ƒํ•œ(์„ค๊ณ„์— ์˜ํ–ฅ).
  • Xcode ํŒŒ์ผ์‹œ์Šคํ…œ ๋™๊ธฐํ™” ๊ทธ๋ฃน์˜ ์ž๋™ ํฌํ•จ์ด swiftc ํ…Œ์ŠคํŠธ ํ•˜๋„ค์Šค์—๋Š” ๋ฏธ์น˜์ง€ ์•Š์Œ โ†’ ์ˆœ์ˆ˜ ํŒŒ์ผ์€ scripts/test.shยทscripts/coverage.sh ์–‘์ชฝ์— ๋“ฑ๋กํ•ด์•ผ ํ…Œ์ŠคํŠธยท์ปค๋ฒ„๋ฆฌ์ง€์— ์žกํžŒ๋‹ค.

๊ทธ ์™ธ

  • per-machine ์…ธ quirk(log/grep ์…ธ ํ•จ์ˆ˜ shadowing)๋Š” ํŒ€ ๊ณต์œ  ๋Œ€์ƒ์ด ์•„๋‹ˆ๋ผ .claude.local.md๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  .gitignore์— ๋ช…์‹œ ํ•ญ๋ชฉ ์ถ”๊ฐ€.
    (macOS ๊ธฐ๋ณธ ๋Œ€์†Œ๋ฌธ์ž ๋น„๊ตฌ๋ถ„ FS์—์„œ๋Š” ๊ธฐ์กด *.LOCAL.* ๊ทœ์น™์— ์šฐ์—ฐํžˆ ๊ฑธ๋ฆฌ์ง€๋งŒ, ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ FS์—์„œ๋Š” ์•ˆ ๊ฑธ๋ฆฌ๋ฏ€๋กœ ๋ช…์‹œ ํ•ญ๋ชฉ์ด ํ•„์š”.)

๋ฌธ์„œ๋งŒ ๋ณ€๊ฒฝ โ€” ์ฝ”๋“œ ๋ณ€๊ฒฝ ์—†์Œ.

์ด๋ฒˆ ์‚ฌ์ดํด์—์„œ ์‹ค์ œ๋กœ ์‹œ๊ฐ„์„ ์†Œ๋ชจํ•œ ์žฌ๋ฐœ ๊ฐ€๋Šฅ ํ•ญ๋ชฉ์„ CLAUDE.md์— ๋‚จ๊ธด๋‹ค:
 - make run(์„œ๋ช…) ํ›„ make build(ad-hoc)๊ฐ€ ๊ฐ™์€ DerivedData๋ฅผ ๊ณต์œ ํ•ด Sparkle.framework
   'permission to save'๋กœ ์‹คํŒจ โ†’ ์•ฑ ์ข…๋ฃŒ ํ›„ ์‚ฐ์ถœ๋ฌผ ๋ฒˆ๋“ค ์‚ญ์ œ ๋’ค ์žฌ๋นŒ๋“œ.
 - main ๋ธŒ๋žœ์น˜ ๋ณดํ˜ธ: lint-and-build/gitleaks/secret-scan ํ†ต๊ณผ ์ „์—” ๋จธ์ง€๊ฐ€ BLOCKED.
 - SwiftFormat(wrapMultilineStatementBraces)๊ณผ SwiftLint(opening_brace)๊ฐ€ ์ค„๋ฐ”๊ฟˆ๋œ if
   ์กฐ๊ฑด์˜ ์ค‘๊ด„ํ˜ธ ์œ„์น˜๋กœ ์ถฉ๋Œ โ†’ ๋‹ค์ค‘ ์กฐ๊ฑด if๋Š” ํ•œ ์ค„ ์œ ์ง€(ํ•„์š”ํ•˜๋ฉด ์ง€์—ญ Bool๋กœ ์ถ”์ถœ).
 - --strict๋Š” SwiftLint ๊ธฐ๋ณธ ๊ทœ์น™์„ ์—๋Ÿฌ๋กœ ์Šน๊ฒฉ(ํŒŒ๋ผ๋ฏธํ„ฐ 5๊ฐœยทํŠœํ”Œ 2๋ฉค๋ฒ„ ์ƒํ•œ).
 - Xcode ์ž๋™ ํฌํ•จ์€ swiftc ํ…Œ์ŠคํŠธ ํ•˜๋„ค์Šค์— ๋ฏธ์น˜์ง€ ์•Š์Œ โ†’ ์ˆœ์ˆ˜ ํŒŒ์ผ์€ scripts/test.sh์™€
   scripts/coverage.sh ์–‘์ชฝ์— ๋“ฑ๋กํ•ด์•ผ ํ…Œ์ŠคํŠธยท์ปค๋ฒ„๋ฆฌ์ง€์— ์žกํžŒ๋‹ค.
per-machine ์…ธ quirk๋Š” .claude.local.md(์‹ ๊ทœ gitignore ํ•ญ๋ชฉ)๋กœ ๋ถ„๋ฆฌ.
@pignuante
pignuante merged commit d9e9c91 into main Jul 21, 2026
3 checks passed
@pignuante
pignuante deleted the docs/claude-md-build-gotchas branch July 21, 2026 08:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant