Skip to content

Docs/add korean translation#392

Merged
affaan-m merged 9 commits intoaffaan-m:mainfrom
hahmee:docs/add-korean-translation
Mar 13, 2026
Merged

Docs/add korean translation#392
affaan-m merged 9 commits intoaffaan-m:mainfrom
hahmee:docs/add-korean-translation

Conversation

@hahmee
Copy link
Copy Markdown
Contributor

@hahmee hahmee commented Mar 11, 2026

Description

Add complete Korean (ko-KR) translation (65 files).

Covers README, CONTRIBUTING, 8 rules, 12 agents, 18 commands, 17 skills, 7 examples, and TERMINOLOGY.md glossary.

Translation conventions:

  • Technical terms kept in English
  • Code examples preserved as-is, comments translated
  • Line counts match originals (±10%)

Type of Change

  • fix: Bug fix
  • feat: New feature
  • refactor: Code refactoring
  • [V ] docs: Documentation
  • test: Tests
  • chore: Maintenance/tooling
  • ci: CI/CD changes

Checklist

  • Tests pass locally (node tests/run-all.js)
  • Validation scripts pass
  • [V] Follows conventional commits format
  • [V] Updated relevant documentation

Summary by cubic

Adds complete Korean (ko-KR) docs and updates language switchers so Korean users can access all guides, agents, commands, skills, and examples. Also incorporates review feedback and completes missing examples and sections.

  • New Features
    • Added docs/ko-KR/ (65 files): README.md, CONTRIBUTING.md, TERMINOLOGY.md, 8 rules, 12 agents, 18 commands, 17 skills, 7 examples (incl. examples/statusline.json).
    • Completed command docs with full example sessions; expanded code-reviewer and planner with added examples, red flags, and a worked example.
    • Updated language links to include 한국어 (and fixed paths) in README.md, README.zh-CN.md, docs/ja-JP/README.md, and docs/zh-TW/README.md.
    • Applied translation conventions and glossary for consistency (technical terms kept in English where appropriate; code blocks preserved with translated comments).

Written for commit fb7b73a. Summary will update on new commits.

Summary by CodeRabbit

  • Documentation
    • Added comprehensive Korean documentation covering guides, commands, agents, rules, skills, examples, and contribution materials.
    • Updated README language navigation to include Korean links across relevant docs for improved accessibility.

hahmee added 8 commits March 8, 2026 17:58
- commands: 18 files (build-fix, checkpoint, code-review, e2e, eval,
  go-build, go-review, go-test, learn, orchestrate, plan, refactor-clean,
  setup-pm, tdd, test-coverage, update-codemaps, update-docs, verify)
- agents: 12 files (architect, build-error-resolver, code-reviewer,
  database-reviewer, doc-updater, e2e-runner, go-build-resolver,
  go-reviewer, planner, refactor-cleaner, security-reviewer, tdd-guide)
- 15 skill categories (17 files): coding-standards, tdd-workflow,
  frontend-patterns, backend-patterns, security-review (2 files),
  postgres-patterns, verification-loop, continuous-learning,
  continuous-learning-v2, eval-harness, iterative-retrieval,
  strategic-compact, golang-patterns, golang-testing, clickhouse-io,
  project-guidelines-example
…ranslations

- code-reviewer: add code examples (deep nesting, useEffect deps, key props,
  N+1 queries), Project-Specific Guidelines section, cost-awareness check
- planner: add Worked Example (Stripe Subscriptions) and Red Flags sections
Add missing example sessions, code blocks, and detailed sections
to 14 command files that were previously summarized versions.
Add TERMINOLOGY.md with translation conventions and term mappings
to ensure consistency across all 58 translated files.
Translate 6 CLAUDE.md examples (project, user, SaaS Next.js, Django API,
Go microservice, Rust API) and copy statusline.json config.
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 11, 2026

📝 Walkthrough

Walkthrough

Added a full Korean (ko-KR) localization: new docs, examples, commands, agents, skills, rules, and terminology; plus small README language-nav updates to include Korean. Changes are documentation-only except for one JSON example file (statusline.json).

Changes

Cohort / File(s) Summary
Top-level README updates
README.md, README.zh-CN.md, docs/ja-JP/README.md, docs/zh-TW/README.md
Inserted/updated language navigation links to include Korean and adjusted some relative link targets.
Korean root docs
docs/ko-KR/README.md, docs/ko-KR/CONTRIBUTING.md, docs/ko-KR/TERMINOLOGY.md
New Korean-language project README, contributing guide, and terminology/glossary files.
Korean agents
docs/ko-KR/agents/*.md
Added ~12 Korean agent specification docs (architect, code-reviewer, database-reviewer, e2e-runner, go-reviewer, etc.).
Korean commands
docs/ko-KR/commands/*.md
Added ~20 Korean command docs covering build, verify, checkpoint, code-review, e2e, eval, go-*, tdd, orchestrate, update-docs/codemaps, and related workflows.
Korean skills & rules
docs/ko-KR/skills/.../*, docs/ko-KR/rules/*.md
Added many Korean SKILL.md documents (backend/frontend/golang/postgres/security/etc.) and rules (coding-style, git-workflow, hooks, performance, testing).
Korean examples & configs
docs/ko-KR/examples/*, docs/ko-KR/examples/statusline.json
New project/example CLAUDE.md files (Django, Go, Rust, Next.js, user config) and a new statusline.json example (adds top-level statusLine and _comments).
Other localized materials
docs/ko-KR/agents/*, docs/ko-KR/skills/* (many paths)
Wide set of translated workflow guides (planner, refactor-cleaner, tdd-guide, verification-loop, continuous-learning v2, eval-harness, etc.).

Sequence Diagram(s)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Poem

🐇 내가 깡충, 문서들로 뛰어들었네,
한국어로 길을 닦고 모두 모았네.
에이전트·스킬·명령, 짠! 한데 모여,
읽는 이의 발걸음 가볍게 하리.
껑충—번역의 당근을 한 움큼 드려요!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Docs/add korean translation' accurately describes the main change: adding comprehensive Korean documentation across 65 files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
📝 Coding Plan
  • Generate coding plan for human review comments

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

25 issues found across 69 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="docs/ko-KR/agents/doc-updater.md">

<violation number="1" location="docs/ko-KR/agents/doc-updater.md:90">
P3: 원문의 `Quality Checklist` 섹션이 누락되어 문서/코드맵 검증 절차가 번역본에서 빠졌습니다.</violation>
</file>

<file name="docs/ko-KR/examples/statusline.json">

<violation number="1" location="docs/ko-KR/examples/statusline.json:4">
P2: `todo_count` can become `0\n0` when there are no todo matches, causing the later `-gt` comparison to throw an integer-expression error. Make the grep branch always return success after printing its count so the fallback `echo 0` only runs when the transcript file is missing.</violation>
</file>

<file name="docs/ko-KR/commands/tdd.md">

<violation number="1" location="docs/ko-KR/commands/tdd.md:49">
P2: 중첩 코드 블록이 있는 예시를 바깥에서 ```로 감싸고 있어 Markdown 렌더링이 깨집니다. 바깥 펜스를 ````로 바꿔 내부 ```typescript/```bash 블록과 충돌하지 않게 하세요.

(Based on your team's feedback about using longer fences for nested code blocks.) [FEEDBACK_USED]</violation>
</file>

<file name="docs/ko-KR/commands/eval.md">

<violation number="1" location="docs/ko-KR/commands/eval.md:7">
P3: 사용법 줄에서 `clean` 서브커맨드가 누락되어 문서가 내부적으로 불일치합니다.</violation>
</file>

<file name="docs/ko-KR/commands/e2e.md">

<violation number="1" location="docs/ko-KR/commands/e2e.md:59">
P2: 중첩 코드 블록이 있는 예시를 3개 백틱으로 감싸서 Markdown 렌더링이 깨집니다. 외부 펜스를 ```` 로 변경해 내부 ```typescript/```bash 블록과 충돌하지 않게 해주세요.

(Based on your team's feedback about using longer fences for nested code blocks.) [FEEDBACK_USED]</violation>
</file>

<file name="docs/ko-KR/skills/frontend-patterns/SKILL.md">

<violation number="1" location="docs/ko-KR/skills/frontend-patterns/SKILL.md:299">
P2: `markets.sort(...)` mutates the original array; clone before sorting so this example does not mutate input data.</violation>
</file>

<file name="docs/ko-KR/skills/security-review/SKILL.md">

<violation number="1" location="docs/ko-KR/skills/security-review/SKILL.md:218">
P2: The CSP example enables `unsafe-eval` and `unsafe-inline` for `script-src`, which weakens XSS protection. Use a stricter script policy (nonce/hash-based or `'self'` only) as the default guidance.</violation>

<violation number="2" location="docs/ko-KR/skills/security-review/SKILL.md:353">
P2: `publicKey` is decoded as base64, but Solana wallet addresses are base58-encoded. This makes the verification example incorrect and likely to fail for real wallet keys.</violation>
</file>

<file name="docs/ko-KR/commands/build-fix.md">

<violation number="1" location="docs/ko-KR/commands/build-fix.md:17">
P2: `python -m py_compile` is invalid without explicit filenames, so this build command will fail as documented.</violation>
</file>

<file name="docs/ko-KR/skills/coding-standards/SKILL.md">

<violation number="1" location="docs/ko-KR/skills/coding-standards/SKILL.md:400">
P2: The `useMemo` sorting example mutates `markets` in place via `.sort()`. Clone before sorting to avoid mutating props/state.</violation>
</file>

<file name="docs/ko-KR/commands/go-build.md">

<violation number="1" location="docs/ko-KR/commands/go-build.md:46">
P2: The outer fenced block for the example session uses triple backticks while containing inner triple-backtick blocks; this breaks markdown rendering. Use a longer outer fence (e.g., 4 backticks) for the session wrapper.

(Based on your team's feedback about using longer fences for nested Markdown code blocks.) [FEEDBACK_USED]</violation>
</file>

<file name="docs/ko-KR/commands/checkpoint.md">

<violation number="1" location="docs/ko-KR/commands/checkpoint.md:7">
P3: 명령어 사용법에 `clear` 서브커맨드가 빠져 있어, 아래 인자 설명과 충돌합니다.</violation>
</file>

<file name="docs/ko-KR/skills/golang-patterns/SKILL.md">

<violation number="1" location="docs/ko-KR/skills/golang-patterns/SKILL.md:536">
P2: The pooled buffer example returns `buf.Bytes()` directly, which leaks a slice referencing memory that is immediately reset and returned to the pool. Copy the bytes before returning.</violation>
</file>

<file name="docs/ko-KR/TERMINOLOGY.md">

<violation number="1" location="docs/ko-KR/TERMINOLOGY.md:41">
P3: The status column uses `-` values that are not defined in the "상태 설명" section. Define this state explicitly (e.g., N/A) or replace `-` with one of the documented statuses to keep the glossary unambiguous.</violation>
</file>

<file name="docs/ko-KR/agents/e2e-runner.md">

<violation number="1" location="docs/ko-KR/agents/e2e-runner.md:74">
P2: `page.click()`도 자동 대기 동작을 하므로, 현재 설명은 Playwright 동작과 다릅니다. 잘못된 가이드는 불필요한 수동 대기 코드로 이어질 수 있습니다.</violation>
</file>

<file name="docs/ko-KR/commands/verify.md">

<violation number="1" location="docs/ko-KR/commands/verify.md:26">
P2: 검증 순서에 보안(Secrets) 스캔 단계가 없어 `Secrets` 출력과 `pre-pr` 인자가 요구하는 동작을 일관되게 수행할 수 없습니다.</violation>
</file>

<file name="docs/ko-KR/skills/clickhouse-io/SKILL.md">

<violation number="1" location="docs/ko-KR/skills/clickhouse-io/SKILL.md:177">
P2: The batch insert example interpolates raw values into SQL, which can produce SQL injection or malformed inserts when values contain quotes.</violation>

<violation number="2" location="docs/ko-KR/skills/clickhouse-io/SKILL.md:383">
P2: Scheduling the async ETL with `setInterval` can trigger overlapping runs when a previous execution hasn't finished yet.</violation>
</file>

<file name="docs/ko-KR/commands/go-review.md">

<violation number="1" location="docs/ko-KR/commands/go-review.md:71">
P2: 중첩된 코드 블록이 있는 예시를 외부 ` ```text ` 펜스로 감싸서 렌더링이 깨집니다. 외부 펜스를 더 긴 길이(예: ````)로 바꿔 내부 ` ```go ` 블록을 안전하게 포함하세요.

(Based on your team's feedback about using longer fences for nested code blocks.) [FEEDBACK_USED]</violation>
</file>

<file name="docs/ko-KR/skills/security-review/cloud-infrastructure-security.md">

<violation number="1" location="docs/ko-KR/skills/security-review/cloud-infrastructure-security.md:198">
P2: Pin the third-party GitHub Action to a full commit SHA instead of `@main` to avoid mutable supply-chain risk.</violation>

<violation number="2" location="docs/ko-KR/skills/security-review/cloud-infrastructure-security.md:218">
P2: Do not use the `install` lifecycle hook to run `npm ci`; use a normal script name so it only runs when explicitly invoked.</violation>
</file>

<file name="docs/ko-KR/agents/tdd-guide.md">

<violation number="1" location="docs/ko-KR/agents/tdd-guide.md:80">
P3: The translation omitted the `skill: tdd-workflow` cross-reference, so this agent no longer points readers to the detailed mocking/framework guidance from the source file.</violation>
</file>

<file name="docs/ko-KR/CONTRIBUTING.md">

<violation number="1" location="docs/ko-KR/CONTRIBUTING.md:200">
P2: This translation drops key template sections (agent examples, hook format/syntax/examples, and command template), so Korean contributors lose required formatting guidance present in the main CONTRIBUTING guide.</violation>
</file>

<file name="docs/ko-KR/skills/backend-patterns/SKILL.md">

<violation number="1" location="docs/ko-KR/skills/backend-patterns/SKILL.md:85">
P2: `findByIds` is used but not defined on `MarketRepository`, so this TypeScript example is inconsistent and won’t type-check.</violation>

<violation number="2" location="docs/ko-KR/skills/backend-patterns/SKILL.md:323">
P3: Initialize `lastError` defensively; with `maxRetries = 0`, this code currently throws `undefined`.</violation>
</file>

Since this is your first cubic review, here's how it works:

  • cubic automatically reviews your code and comments on bugs and improvements
  • Teach cubic by replying to its comments. cubic learns from your replies and gets better over time
  • Add one-off context when rerunning by tagging @cubic-dev-ai with guidance or docs links (including llms.txt)
  • Ask questions if you need clarification on any suggestion

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

- [ ] 어설션이 구체적이고 의미 있음
- [ ] 커버리지 80% 이상

## Eval 주도 TDD 부록
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: The translation omitted the skill: tdd-workflow cross-reference, so this agent no longer points readers to the detailed mocking/framework guidance from the source file.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/ko-KR/agents/tdd-guide.md, line 80:

<comment>The translation omitted the `skill: tdd-workflow` cross-reference, so this agent no longer points readers to the detailed mocking/framework guidance from the source file.</comment>

<file context>
@@ -0,0 +1,89 @@
+- [ ] 어설션이 구체적이고 의미 있음
+- [ ] 커버리지 80% 이상
+
+## Eval 주도 TDD 부록
+
+TDD 흐름에 eval 주도 개발 통합:
</file context>
Fix with Cubic

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 18

Note

Due to the large number of review comments, Critical, Major severity comments were prioritized as inline comments.

🟡 Minor comments (19)
docs/ko-KR/skills/clickhouse-io/SKILL.md-54-54 (1)

54-54: ⚠️ Potential issue | 🟡 Minor

Translate code comments to Korean for consistency.

Throughout the file, code examples contain English comments while the surrounding documentation is in Korean. According to the PR objectives, "code examples preserved (comments translated)" — the comments within code blocks should be translated to Korean to maintain consistency and improve accessibility for Korean readers.

Examples of untranslated comments:

  • Line 54: -- For data that may have duplicates (e.g., from multiple sources)
  • Line 99: -- ✅ GOOD: Use indexed columns first
  • Line 175: // ✅ Batch insert (efficient)
  • Line 193: // Don't do this in a loop!
  • Line 365: // Extract, Transform, Load
Example translations for common comments
--- For data that may have duplicates (e.g., from multiple sources)
+-- 중복 데이터가 있을 수 있는 경우 (예: 여러 소스에서)

--- ✅ GOOD: Use indexed columns first
+-- ✅ 좋음: 인덱스된 컬럼을 먼저 사용

-// ✅ Batch insert (efficient)
+// ✅ 배치 삽입 (효율적)

-// Don't do this in a loop!
+// 루프에서 이렇게 하지 마세요!

-// Extract, Transform, Load
+// 추출, 변환, 로드

Also applies to: 70-70, 81-81, 99-99, 108-108, 119-119, 132-132, 144-144, 175-175, 191-193, 203-203, 223-223, 235-235, 252-252, 272-272, 290-290, 299-299, 322-322, 343-343, 365-365, 367-367, 370-370, 378-378, 383-383, 389-389, 402-402

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/skills/clickhouse-io/SKILL.md` at line 54, Translate all inline
code-block comments in the SKILL.md doc from English to Korean so they match the
surrounding Korean documentation; specifically replace strings like "-- For data
that may have duplicates (e.g., from multiple sources)", "-- ✅ GOOD: Use indexed
columns first", "// ✅ Batch insert (efficient)", "// Don't do this in a loop!",
"// Extract, Transform, Load" and all other listed comment instances with
accurate Korean equivalents while preserving punctuation and placement inside
the code fences; ensure translations keep intent (hints, warnings, checklist
markers like ✅) and do not alter code syntax or surrounding example code blocks
(search for the exact English comment texts to locate each occurrence).
docs/ko-KR/commands/setup-pm.md-39-53 (1)

39-53: ⚠️ Potential issue | 🟡 Minor

Move path notes outside JSON code fences.

Lines 41 and 49 contain // comments in blocks labeled json, making the examples invalid JSON. Move the path notes outside the fences to preserve the valid JSON structure.

Suggested fix
 ### 전역 설정
-```json
-// ~/.claude/package-manager.json
+`~/.claude/package-manager.json`
+```json
 {
   "packageManager": "pnpm"
 }

프로젝트 설정

-json -// .claude/package-manager.json +`.claude/package-manager.json` +json
{
"packageManager": "bun"
}

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/commands/setup-pm.md` around lines 39 - 53, Move the path comments
that currently live inside the JSON code fences for the "전역 설정" and "프로젝트 설정"
examples out of the fenced blocks so the JSON remains valid; replace the inline
`// ~/.claude/package-manager.json` and `// .claude/package-manager.json`
comments with plain-text path lines immediately above each ```json``` fence
(e.g., a backtick-wrapped path line like `~/.claude/package-manager.json`), and
leave the JSON blocks containing only the object with "packageManager" so the
examples under those headings produce valid JSON.
docs/ko-KR/TERMINOLOGY.md-5-9 (1)

5-9: ⚠️ Potential issue | 🟡 Minor

Normalize the 상태 column values.

The legend only defines 확정 and 미확정, but several rows use - instead. That makes the glossary ambiguous for contributors and for any tooling/process that relies on explicit translation states. Either convert those rows to one of the documented states or document - as a third status.

Also applies to: 41-52, 73-85

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/TERMINOLOGY.md` around lines 5 - 9, The glossary's 상태 column uses
'-' in many rows while the legend only defines '확정 (Confirmed)' and '미확정
(Pending)'; update either the rows or the legend: replace each '-' value in the
상태 column with one of the documented statuses ('확정' or '미확정') consistent with
the translation state for that term, or add a third legend entry documenting '-'
(e.g., '-' = '불명확/미지정') and apply it to all rows using '-' (see the "상태" header
and the legend entries '확정 (Confirmed)' and '미확정 (Pending)') so the terminology
file is unambiguous and consistent across the sections referenced.
docs/ko-KR/rules/agents.md-3-18 (1)

3-18: ⚠️ Potential issue | 🟡 Minor

Complete the "사용 가능한 에이전트" inventory or rename it.

This section reads as exhaustive, but it omits agents that are part of the Korean agent set in this PR, including at least database-reviewer, go-reviewer, and go-build-resolver. Either add the missing rows or rename the section to make it clear this is only a subset.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/rules/agents.md` around lines 3 - 18, The "사용 가능한 에이전트" section
currently lists a subset of agents but reads as exhaustive; either add rows for
the missing agents (e.g., database-reviewer, go-reviewer, go-build-resolver)
into the table alongside existing entries like planner, architect, tdd-guide,
code-reviewer, security-reviewer, build-error-resolver, e2e-runner,
refactor-cleaner, doc-updater or change the section title/text (e.g., "일부 사용 가능한
에이전트" or "주요 에이전트(예시)") to indicate this is not a complete inventory so readers
understand the list is partial.
docs/ko-KR/skills/continuous-learning/SKILL.md-119-119 (1)

119-119: ⚠️ Potential issue | 🟡 Minor

Fix the relative link to the v2 spec.

From docs/ko-KR/skills/continuous-learning/SKILL.md, docs/continuous-learning-v2-spec.md resolves under the current directory, not the repository-level docs/ folder, so the reference will be broken in normal Markdown rendering.

🔧 Suggested fix
-자세한 사양은 `docs/continuous-learning-v2-spec.md`를 참조하세요.
+자세한 사양은 `../../../continuous-learning-v2-spec.md`를 참조하세요.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/skills/continuous-learning/SKILL.md` at line 119, The relative
link `docs/continuous-learning-v2-spec.md` in SKILL.md resolves inside the
current directory and breaks; update the reference to point to the
repository-level docs file (e.g. change `docs/continuous-learning-v2-spec.md` to
`/docs/continuous-learning-v2-spec.md` or the correct relative path from
docs/ko-KR/skills/continuous-learning/ such as
`../../../continuous-learning-v2-spec.md`) so the spec link resolves correctly.
docs/ko-KR/agents/e2e-runner.md-72-75 (1)

72-75: ⚠️ Potential issue | 🟡 Minor

Remove the inaccurate auto-wait comparison.

The statement that page.click() does not auto-wait is incorrect. According to Playwright's official documentation, page.click(selector) performs auto-waiting and actionability checks just like locator.click(). Both APIs wait for element readiness before acting (unless force is used). The preference for locators is justified for other reasons—API design, stricter element matching, and better maintainability—but not because of auto-waiting differences. Reword lines 72–75 to remove the claim that page.click() lacks auto-waiting.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/agents/e2e-runner.md` around lines 72 - 75, The line claiming
"page.click()은 아님" (page.click() does not auto-wait) is incorrect; update the
text around page.click() and page.locator().click() to remove that contrast and
instead state that both page.click(selector) and locator.click() perform
actionability checks and auto-wait by default (unless force is used), while
recommending locators for their API design, stricter matching, and
maintainability; modify the bullet to reflect accurate Playwright behavior and
keep the locator recommendation reasons separate from auto-wait behavior.
docs/ko-KR/rules/git-workflow.md-12-12 (1)

12-12: ⚠️ Potential issue | 🟡 Minor

Avoid presenting a local setting as a universal rule.

This page otherwise reads like shared workflow guidance, but Line 12 depends on each reader’s own ~/.claude/settings.json. Rephrasing it as an optional note would keep the rule portable.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/rules/git-workflow.md` at line 12, The sentence "참고: 어트리뷰션은
~/.claude/settings.json에서 전역적으로 비활성화되어 있습니다." presents a local setting as a
universal rule; change it to an optional/note phrasing clarifying it's
reader-specific (e.g., indicate that attribution may be disabled in the reader's
~/.claude/settings.json or that this depends on individual/local configuration)
so the statement is portable and not presented as a global requirement.
docs/ko-KR/agents/planner.md-115-118 (1)

115-118: ⚠️ Potential issue | 🟡 Minor

Use one route root consistently in the Stripe example.

The worked example switches between app/api/... and src/app/api/... for the same files. Since this section is meant to be copied into an implementation plan, the mixed paths make the example ambiguous.

Also applies to: 131-140

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/agents/planner.md` around lines 115 - 118, The example mixes two
route roots; pick one root prefix (either "app/api" or "src/app/api") and make
it consistent across the document by updating every mention of the Checkout and
Stripe webhook route entries (checkout/route.ts and webhooks/stripe/route.ts) so
both use the same chosen root; ensure the same change is applied to the other
affected block referenced (lines ~131-140) as well.
docs/ko-KR/skills/verification-loop/SKILL.md-76-81 (1)

76-81: ⚠️ Potential issue | 🟡 Minor

Broaden the diff check beyond HEAD~1.

git diff HEAD~1 --name-only only shows files changed in the last commit, so it misses staged and uncommitted edits in a typical pre-PR session. Use working-tree and/or staged diffs here, or explicitly note that this step is commit-to-commit only.

Suggested fix
 ### 단계 6: Diff 리뷰
 ```bash
 # Show what changed
 git diff --stat
-git diff HEAD~1 --name-only
+git diff --name-only
+git diff --cached --name-only
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @docs/ko-KR/skills/verification-loop/SKILL.md around lines 76 - 81, Replace
the narrow commit-only diff command "git diff HEAD1 --name-only" in the 단계 6
block with a broadened check that shows both working-tree and staged changes;
specifically, update the instructions to use "git diff --name-only" for
working-tree changes and "git diff --cached --name-only" for staged changes (or
alternatively explicitly note that "git diff HEAD
1 --name-only" is
commit-to-commit only) so the docs cover uncommitted and staged edits as well as
commit diffs.


</details>

</blockquote></details>
<details>
<summary>README.md-1-1 (1)</summary><blockquote>

`1-1`: _⚠️ Potential issue_ | _🟡 Minor_

**Keep the two language selectors in sync.**

Line 1 omits the Simplified Chinese and Japanese links that Line 27 still exposes. Leaving the top banner shorter makes one of the navigation entry points stale as new locales are added.

<details>
<summary>Suggested fix</summary>

```diff
-**Language:** English | [繁體中文](docs/zh-TW/README.md) | [한국어](docs/ko-KR/README.md)
+**Language:** English | [简体中文](README.zh-CN.md) | [繁體中文](docs/zh-TW/README.md) | [日本語](docs/ja-JP/README.md) | [한국어](docs/ko-KR/README.md)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 1, The top language selector string "**Language:** English
| [繁體中文](docs/zh-TW/README.md) | [한국어](docs/ko-KR/README.md)" is missing the
Simplified Chinese and Japanese links that appear later in the README; update
that top banner to include "[简体中文](docs/zh-CN/README.md)" and
"[日本語](docs/ja-JP/README.md)" so both selectors match, and ensure future locale
additions are mirrored in both the top selector and the later navigation block
(update the same language selector string and corresponding link targets).
docs/ko-KR/CONTRIBUTING.md-239-246 (1)

239-246: ⚠️ Potential issue | 🟡 Minor

Use an existing command in the examples table.

commit.md does not appear in the command set documented in README.md, so this reads like a real repository artifact that contributors can model against. Replacing it with an existing command keeps the guide aligned with the repo.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/CONTRIBUTING.md` around lines 239 - 246, The table row referencing
`commit.md` in the "커맨드 예시" table in CONTRIBUTING.md should be replaced with a
command that actually exists in the README's command set; update the table entry
(the row with `commit.md`) to use an existing command name from README.md and
adjust its Korean description accordingly so the example aligns with the
repository's documented commands.
docs/ko-KR/commands/go-test.md-157-165 (1)

157-165: ⚠️ Potential issue | 🟡 Minor

Make race detection part of the primary verification step.

The doc currently presents go test -cover as the final verification command, but the repo’s Go testing guidance expects race detection as part of the standard loop. Showing go test -race -cover here would keep the main workflow aligned with the rest of the guidance, not just the appendix.

Based on learnings: Always run Go tests with the -race flag to detect race conditions.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/commands/go-test.md` around lines 157 - 165, Update the
verification command shown in the "6단계: 커버리지 확인" section to include Go's race
detector by changing the example `go test -cover ./validator/...` to run with
`-race` as well (i.e., `go test -race -cover ./validator/...`) so the documented
primary verification step matches the repo's guidance to always run tests with
the `-race` flag.
docs/ko-KR/skills/frontend-patterns/SKILL.md-296-300 (1)

296-300: ⚠️ Potential issue | 🟡 Minor

Use [...markets].sort() to avoid mutating the original array.

Array.prototype.sort() mutates the original array in place. This violates the immutability principle documented throughout the repo and can unintentionally reorder caller-owned state or props. Create a copy before sorting.

Proposed fix
 const sortedMarkets = useMemo(() => {
-  return markets.sort((a, b) => b.volume - a.volume)
+  return [...markets].sort((a, b) => b.volume - a.volume)
 }, [markets])
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/skills/frontend-patterns/SKILL.md` around lines 296 - 300, The
snippet uses markets.sort(...) inside the useMemo for sortedMarkets which
mutates the original markets array; change the computation in the useMemo to
operate on a shallow copy (e.g., [...markets] or markets.slice()) before calling
.sort to preserve immutability of markets, keeping the useMemo and its
dependency array ([markets]) intact.
docs/ko-KR/commands/refactor-clean.md-1-3 (1)

1-3: ⚠️ Potential issue | 🟡 Minor

Missing YAML frontmatter with description field.

This command documentation is missing the YAML frontmatter that other command files include (e.g., plan.md has description: in frontmatter). Based on learnings: "Commands must be formatted as Markdown files with description frontmatter."

📝 Suggested frontmatter addition
+---
+description: 사용하지 않는 코드를 안전하게 식별하고 테스트 검증을 통해 제거합니다.
+---
+
 # Refactor Clean
 
 사용하지 않는 코드를 안전하게 식별하고 매 단계마다 테스트 검증을 수행하여 제거합니다.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/commands/refactor-clean.md` around lines 1 - 3, The Markdown doc
"Refactor Clean" is missing the required YAML frontmatter; add a frontmatter
block at the top of docs/ko-KR/commands/refactor-clean.md that includes at
minimum a description: field summarizing the command (e.g., description: "Safely
identify and remove unused code with test validation at each step"), matching
the style used in other command files like plan.md, and ensure the frontmatter
is enclosed by --- lines before the existing content.
docs/ko-KR/commands/eval.md-7-7 (1)

7-7: ⚠️ Potential issue | 🟡 Minor

The usage synopsis is missing the clean subcommand.

Line 7 documents only define|check|report|list, but Lines 115-120 also describe clean. The header should advertise the full command surface.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/commands/eval.md` at line 7, Update the usage synopsis for the
/eval command to include the missing `clean` subcommand so it matches the later
documentation; specifically edit the line that currently reads `/eval
[define|check|report|list] [feature-name]` to include `clean` (e.g., `/eval
[define|check|report|list|clean] [feature-name]`) so the /eval usage accurately
reflects all supported subcommands described later.
docs/ja-JP/README.md-1-1 (1)

1-1: ⚠️ Potential issue | 🟡 Minor

Keep both language selectors in sync.

This row adds Korean, but the duplicated selector at Line 24 still omits Korean and still points English back to the Japanese README. Users will get inconsistent or broken navigation depending on which selector they click.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ja-JP/README.md` at line 1, The language selector row (**言語:** English |
[简体中文] | [繁體中文] | [日本語] | [한국어]) is out of sync with its duplicate and has
incorrect link targets; update the duplicated selector so both contain the same
five entries including 한국어 and ensure the "English" link points to the English
README (not the Japanese README) and that the 한국어 entry points to the Korean
README; edit the duplicated language selector string to match the original
selector's entries and correct the link URLs for "English" and "한국어"
accordingly.
docs/ko-KR/commands/verify.md-34-49 (1)

34-49: ⚠️ Potential issue | 🟡 Minor

The report template promises a secrets check that the workflow never runs.

The documented steps only cover build/types/lint/tests/console.log/git, but the output always includes Secrets:. That can falsely imply a security scan happened on the default path. Either add an explicit secrets step or drop that field from the base report.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/commands/verify.md` around lines 34 - 49, The docs currently show
a "Secrets:" line in the verification report template but the verify workflow
never runs a secrets scan; update the docs so they are accurate by either (A)
adding an explicit secrets check step to the verify workflow (implement a job
named something like secret_scan or a step called run-secret-scan and document
it) and describe its behavior in docs/ko-KR/commands/verify.md, or (B) remove
the "Secrets:  [OK/X found]" line from the report template in verify.md (and any
references to it) so the report no longer implies a secret-scan runs by default;
target the "Secrets:" token and the verify command/report template when making
the change.
docs/ko-KR/skills/tdd-workflow/SKILL.md-300-312 (1)

300-312: ⚠️ Potential issue | 🟡 Minor

Use Jest's correct coverageThreshold property name.

The config uses coverageThresholds (plural), but Jest expects coverageThreshold (singular). With the typo, the 80% coverage gate won't be enforced when users copy this example.

Proposed fix
 {
   "jest": {
-    "coverageThresholds": {
+    "coverageThreshold": {
       "global": {
         "branches": 80,
         "functions": 80,
         "lines": 80,
         "statements": 80
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/skills/tdd-workflow/SKILL.md` around lines 300 - 312, The Jest
configuration example uses the wrong property name "coverageThresholds"; update
the JSON so the "jest" object uses the singular "coverageThreshold" property
(i.e., replace "coverageThresholds" with "coverageThreshold") and keep the
nested "global" keys ("branches", "functions", "lines", "statements") intact so
Jest enforces the 80% gate as intended.
docs/ko-KR/commands/e2e.md-107-109 (1)

107-109: ⚠️ Potential issue | 🟡 Minor

Guard the nullable textContent() result before calling substring.

textContent() returns string | null per Playwright's DOM behavior. The expression firstMarketTitle?.toLowerCase().substring(0, 20) only protects the toLowerCase() call; when firstMarketTitle is null, the optional chaining returns undefined, and calling .substring() on it throws a TypeError. Similarly, detailsTitle?.toLowerCase() could be undefined.

Proposed fix
-    expect(detailsTitle?.toLowerCase()).toContain(
-      firstMarketTitle?.toLowerCase().substring(0, 20) || ''
-    )
+    const normalizedFirstTitle = firstMarketTitle?.toLowerCase() ?? ''
+    expect(detailsTitle?.toLowerCase() ?? '').toContain(
+      normalizedFirstTitle.substring(0, 20)
+    )
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/commands/e2e.md` around lines 107 - 109, The test is calling
.substring() on a value that can be null/undefined; change the assertion to
guard both nullable textContent() results before calling toLowerCase/substring
by normalizing them to strings first—for example, derive a safeDetailsTitle from
detailsPage.marketName.textContent() and a safeFirstMarketTitle from
firstMarketTitle, using conditional checks (e.g., safe = value ?
value.toLowerCase() : '') and then call substring on the guarded
safeFirstMarketTitle (or slice safely) before the expect; this touches
detailsPage.marketName.textContent() and the firstMarketTitle usage in the
assertion.
🧹 Nitpick comments (5)
docs/ko-KR/skills/continuous-learning/SKILL.md (1)

11-18: Add an explicit ## 예시 section for skill-doc consistency.

The file already contains config and hook samples, but it does not expose them under a dedicated examples heading. Adding ## 예시 would make this localized SKILL file line up with the skill-doc structure used elsewhere and make it easier to scan.

Based on learnings: Applies to docs/zh-CN/skills/**/*.md : Skills must be formatted as Markdown files with clear sections: 'When to use', 'How it works', and 'Examples'

Also applies to: 19-26, 27-78

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/skills/continuous-learning/SKILL.md` around lines 11 - 18, Add a
new "## 예시" section to this SKILL.md and move or duplicate the existing config
and hook samples into it so the file follows the standard skill-doc structure;
locate the current samples referenced around the "활성화 시점" context (mentions like
Stop Hook configuration and the `~/.claude/skills/learned/` review instructions)
and place clear example blocks under the new "## 예시" heading demonstrating the
automatic pattern extraction config and the Stop Hook usage for evaluation,
ensuring the Examples section mirrors the layout used in other skill docs.
docs/ko-KR/commands/code-review.md (1)

17-25: Broaden the HIGH checks so this command stays language-agnostic.

console.log and missing JSDoc are specific to JS/TS, but the command itself is described as a general review workflow. Rewording these as “debug logging statements” and “missing public API docs for the active language” would make the checklist fit Go/Python/etc. as well.

Based on learnings, the code-review workflow here is positioned as a general pre-commit review flow, not a JS-only command.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/commands/code-review.md` around lines 17 - 25, Update the
checklist under the "**코드 품질 (HIGH):**" section to be language-agnostic by
replacing the JS-specific entries: change "console.log 문" to "디버그 로깅 문구(예: 개발용
로그/print 등)" and change "공개 API에 대한 JSDoc 누락" to "활성 언어에 대한 공개 API 문서 누락(예:
JSDoc/Go doc/Docstring 등)"; keep the rest of the items intact so the rule covers
non-JS/TS languages while preserving the original intent.
docs/ko-KR/agents/tdd-guide.md (1)

18-40: Avoid making a generic TDD guide look Node-only.

The workflow is written as universal guidance, but the runnable examples are only npm commands. Please either label those snippets as JS/TS examples or add language-neutral placeholders / alternatives so Go, Python, and other users do not copy the wrong commands.

Based on learnings, the TDD guidance in this repo applies across multiple languages, not just npm-based projects.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/agents/tdd-guide.md` around lines 18 - 40, Update the runnable
snippets in the "TDD 워크플로우" section so they are not Node-only: label the two
code blocks that show "npm test" and "npm run test:coverage" as "Node.js (npm)"
and add one-line language-neutral alternatives (e.g., "language-agnostic: run
your project's test command" and "language-agnostic: run your project's coverage
command") plus example equivalents for other ecosystems such as "Python: pytest"
and "Go: go test ./..."; keep the rest of the RED/GREEN/IMPROVE steps unchanged
and ensure the added labels/alternatives appear immediately above the existing
code blocks that currently contain `npm test` and `npm run test:coverage`.
docs/ko-KR/examples/django-api-CLAUDE.md (1)

143-163: Consider clarifying select_for_update placement.

The select_for_update() at line 145 is called outside the transaction.atomic() block (line 150). While this works in Django (the lock is held until the transaction commits), the conventional pattern places the locking query inside the atomic block for clarity.

💡 Suggested improvement for clarity
 def create_order(*, customer, product_id: uuid.UUID, quantity: int) -> Order:
     """재고 검증과 결제 보류를 포함한 주문 생성."""
-    product = Product.objects.select_for_update().get(id=product_id)
-
-    if product.stock < quantity:
-        raise InsufficientStockError()
-
     with transaction.atomic():
+        product = Product.objects.select_for_update().get(id=product_id)
+
+        if product.stock < quantity:
+            raise InsufficientStockError()
+
         order = Order.objects.create(
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/examples/django-api-CLAUDE.md` around lines 143 - 163, The
select_for_update() call in create_order is executed outside the with
transaction.atomic() block; move the locking query into the atomic block so the
row lock is acquired within the transaction (i.e., inside the with
transaction.atomic(): block, call
Product.objects.select_for_update().get(id=product_id) and proceed to create the
Order, adjust product.stock and save), keeping the rest of the logic
(InsufficientStockError check, Order.objects.create, product.save, and
send_order_confirmation.delay) unchanged.
docs/ko-KR/skills/tdd-workflow/SKILL.md (1)

194-199: Avoid teaching arbitrary waits in the Playwright example.

waitForTimeout(600) is a flaky synchronization pattern and contradicts the E2E guidance elsewhere in this docs set. Prefer waiting on a response or a stable UI condition.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/skills/tdd-workflow/SKILL.md` around lines 194 - 199, Replace the
arbitrary sleep (page.waitForTimeout(600)) with a deterministic wait for either
the network response or a stable UI condition: for example use await
page.waitForResponse(resp => resp.url().includes('search') && resp.status() ===
200) or await page.waitForSelector('[data-testid="market-card"]')/await
expect(page.locator('[data-testid="market-card"]').first()).toBeVisible() before
asserting await expect(results).toHaveCount(5, { timeout: 5000 }); this removes
the flaky page.waitForTimeout call and ensures reliable synchronization for
page.locator and expect(results).toHaveCount.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/ko-KR/commands/build-fix.md`:
- Line 1: Add descriptive YAML frontmatter to the top of the Markdown file for
consistency with other command docs: open the document containing the header "#
Build 오류 수정" and insert a YAML frontmatter block (e.g., title, description,
locale, and any tags or command metadata used by the project) above that header
so the file follows the same frontmatter structure as other files in
docs/ko-KR/commands.

In `@docs/ko-KR/commands/checkpoint.md`:
- Line 1: Add YAML frontmatter to the top of the Checkpoint 명령어 document: create
a frontmatter block (---) including at minimum name: "checkpoint" and a brief
description: "Checkpoint command 설명" (or appropriate Korean description), plus
any additional metadata fields your docs require (e.g., locale, tags). Place the
block before the existing "Checkpoint 명령어" header so the file begins with the
YAML frontmatter followed by the markdown content.

In `@docs/ko-KR/commands/go-review.md`:
- Around line 62-63: The documentation currently shows the command "go build
-race ./..." under the "# 레이스 감지" section which only instruments a binary and
does not run tests or detect races; update that line to use "go test -race
./..." so the race detector executes the instrumented code and can actually
report race conditions, leaving the header "# 레이스 감지" intact.

In `@docs/ko-KR/commands/setup-pm.md`:
- Around line 26-35: The docs' "감지 우선순위" step 6 is incorrect: the detector does
not pick the first available PM but instead defaults to npm when steps 1–5 yield
no match; update the text under step 6 to state the actual fallback is npm
(e.g., "폴백: npm"), and add a brief note that if users expect a different
automatic fallback they must explicitly configure it via the environment
variable or project/global package-manager.json used by the detector (the module
that checks CLAUDE_PACKAGE_MANAGER, .claude/package-manager.json, package.json
packageManager, lockfiles, and ~/.claude/package-manager.json).

In `@docs/ko-KR/commands/test-coverage.md`:
- Around line 1-4: The document lacks the required YAML front matter block for
command docs; add a standard front matter at the top of test-coverage.md that
includes at minimum a description field (e.g., description: "Analyze test
coverage, identify gaps, and generate missing tests to reach 80% coverage"),
plus any other required fields per CONTRIBUTING.md (title, tags or cli name if
applicable), ensuring the file begins with the triple-dashed YAML block so the
command doc will be indexed correctly.

In `@docs/ko-KR/commands/update-codemaps.md`:
- Line 13: Remove the incorrect alternative output path from the docs: edit
docs/ko-KR/commands/update-codemaps.md and delete the parenthetical "(또는
`.reports/codemaps/`)" so the sentence only references `docs/CODEMAPS/`; this
aligns the doc with the implementation in scripts/codemaps/generate.ts which
hardcodes output to `docs/CODEMAPS/`.
- Around line 58-64: The code currently only writes fresh CODEMAPS markdown but
must also produce a historical diff report; update the codemaps generation flow
(e.g., in generateCodemaps / generate.ts and helper functions like buildIndex,
writeAreaDocs) to: 1) ensure a .reports directory exists and load the previous
snapshot (e.g., .reports/last-scan.json or similar) if present; 2) compute diffs
between the previous snapshot and the current scan (added/removed/modified
files, dependency changes, architecture changes detected by existing area
analysis); 3) detect stale documents older than 90 days using file mtimes from
the current snapshot; and 4) write a human-readable .reports/codemap-diff.txt
containing sections for added/removed/modified files, new dependencies,
architecture changes, and stale warnings, then persist the current snapshot for
the next run. Ensure this logic is invoked from the main entry
(generateCodemaps) and that errors creating/reading .reports are handled
gracefully.
- Around line 15-21: Update the table in docs/ko-KR/commands/update-codemaps.md
so it matches the actual files produced by scripts/codemaps/generate.ts (see the
list at ~lines 322–327); replace the current five-file table with the six-file
list: INDEX.md (코드맵 인덱스 및 전체 개요), backend.md (API 라우트, 미들웨어 체인, 서비스 → 리포지토리 매핑),
frontend.md (페이지 트리, 컴포넌트 계층, 상태 관리 흐름), database.md (데이터베이스 테이블, 관계, 마이그레이션
히스토리), integrations.md (외부 서비스, 서드파티 통합, 공유 라이브러리), workers.md (백그라운드 작업, 스케줄러,
비동기 프로세스); apply the same replacement to all other translated docs that
currently show the old five-file list.
- Around line 44-48: The docs claim a change-detection/approval step but
scripts/codemaps/generate.ts currently calls fs.writeFileSync unconditionally;
update the codemap write logic to (1) read the existing codemap file if present,
(2) compute a diff/percent-change between the existing and new codemap (use a
text diff library such as jsdiff or a line/token comparison helper in the same
module), (3) if change > 30% present a unified diff to the user and prompt for
confirmation, and (4) only call fs.writeFileSync to overwrite when the change ≤
30% or the user explicitly approves; adjust the function that performs the write
(the code path around the existing fs.writeFileSync call) to implement these
steps and reuse existing logging/prompt utilities for consistent UX.

In `@docs/ko-KR/commands/update-docs.md`:
- Line 1: Add descriptive YAML frontmatter to the Markdown document that
currently only contains the heading "# 문서 업데이트"; include at minimum title,
description, locale (ko-KR), and category fields to ensure consistency with
other command docs and tooling that reads frontmatter; update the top of the
file by placing the YAML block before the first heading and populate the fields
with appropriate Korean values and a short summary of the command.

In `@docs/ko-KR/examples/rust-api-CLAUDE.md`:
- Around line 16-18: The AppError enum currently includes Internal(#[from]
anyhow::Error) which violates the rule that anyhow is only for binaries/tests;
replace that variant with concrete typed error variants (e.g.,
InternalReqwest(#[from] reqwest::Error), InternalSerde(#[from]
serde_json::Error), InternalIo(#[from] std::io::Error)) or a generic boxed error
like Internal(Box<dyn std::error::Error + Send + Sync>) so the library error
type does not depend on anyhow; update any places constructing
AppError::Internal to use the new typed variants or box the error accordingly
and adjust uses of the ? conversion to use the #[from] conversions you add.

In `@docs/ko-KR/README.md`:
- Around line 418-420: Update the manual skill copy commands that reference the
wrong source path string "everything-claude-code/.agents/skills/*" so they match
the repository layout; replace that incorrect source path with
"everything-claude-code/skills/*" and ensure the second command uses the same
"everything-claude-code/skills/search-first" source—i.e., fix both occurrences
of the bad path in the README so the cp commands point to the actual skills
directory.

In `@docs/ko-KR/skills/frontend-patterns/SKILL.md`:
- Around line 163-206: The refetch useCallback currently lists the whole options
object in its dependency array which causes refetch to change whenever options
is recreated; fix this by removing options from refetch deps and instead capture
onSuccess/onError (and any other callbacks) via stable refs inside useQuery
(e.g., useRef to store latest onSuccess/onError and update them in an effect),
so refetch only depends on fetcher; then make the useEffect depend on the stable
primitive enabled flag (options?.enabled) and key (not the whole options) so
inline option objects no longer trigger refetch loops.

In `@docs/ko-KR/skills/golang-patterns/SKILL.md`:
- Around line 527-537: The ProcessRequest function returns buf.Bytes() which
aliases the internal buffer that is Reset and returned to bufferPool in the
deferred cleanup, risking data corruption; change the function to copy the
contents of buf.Bytes() into a newly allocated slice (e.g., make([]byte,
len(...)) and copy(...)) and return that copy, while keeping the deferred
buf.Reset() and bufferPool.Put(buf) intact so the pooled buffer can be reused
safely; look for symbols ProcessRequest and bufferPool to apply the change.

In `@docs/ko-KR/skills/security-review/cloud-infrastructure-security.md`:
- Around line 196-199: The documentation currently references the TruffleHog
GitHub Action using the mutable ref "uses: trufflesecurity/trufflehog@main";
replace that with an immutable full commit SHA (or an audited release tag) to
pin the action. Update the "Secret scanning" step's uses string
(trufflesecurity/trufflehog@...) to the chosen full-length commit SHA to prevent
supply-chain tampering while keeping the step name "Secret scanning" unchanged.

In `@docs/ko-KR/skills/security-review/SKILL.md`:
- Around line 210-226: Update the example CSP in the securityHeaders constant to
remove 'unsafe-inline' and 'unsafe-eval' and replace them with a
nonce/hash-based policy for scripts and styles (keep connect-src, img-src,
font-src as appropriate); specifically modify the 'Content-Security-Policy'
value in securityHeaders to use script-src 'self' plus a per-request nonce token
(e.g., 'nonce-{nonce}') or script/style hashes instead of unsafe directives, and
document that the nonce must be generated per request and injected both into the
header and into inline <script>/<style> tags so Next.js pages/components can use
it.
- Around line 341-359: The current verify import and usage in
verifyWalletOwnership is invalid because `@solana/web3.js` does not export verify;
replace the broken approach by using tweetnacl and bs58 plus PublicKey from
`@solana/web3.js`: import nacl and bs58, convert the publicKey string via new
PublicKey(publicKey).toBytes(), decode the signature with
bs58.decode(signature), encode the message with TextEncoder, and call
nacl.sign.detached.verify(messageBytes, signatureBytes, pubkeyBytes) inside
verifyWalletOwnership; also ensure you treat public keys and signatures as
base58 (not base64) and keep the same try/catch return-false behavior.

In `@docs/ko-KR/skills/strategic-compact/SKILL.md`:
- Around line 43-58: Update the example hooks JSON so it matches production
shape: replace the two separate PreToolUse entries with a single entry using
matcher "Edit|Write", wrap the script call with the run-with-flags wrapper
instead of invoking suggest-compact.js directly, and use the environment-root
token (CLAUDE_PLUGIN_ROOT) in the command; specifically modify the "hooks" ->
"PreToolUse" block to use matcher "Edit|Write", a single "hooks" array
containing a command that calls run-with-flags.js with the
"pre:edit-write:suggest-compact" identifier and the path to
"scripts/hooks/suggest-compact.js" plus the flag args, and add a short
"description" field like "Suggest manual compaction at logical intervals" to
match production configuration.

---

Minor comments:
In `@docs/ja-JP/README.md`:
- Line 1: The language selector row (**言語:** English | [简体中文] | [繁體中文] | [日本語] |
[한국어]) is out of sync with its duplicate and has incorrect link targets; update
the duplicated selector so both contain the same five entries including 한국어 and
ensure the "English" link points to the English README (not the Japanese README)
and that the 한국어 entry points to the Korean README; edit the duplicated language
selector string to match the original selector's entries and correct the link
URLs for "English" and "한국어" accordingly.

In `@docs/ko-KR/agents/e2e-runner.md`:
- Around line 72-75: The line claiming "page.click()은 아님" (page.click() does not
auto-wait) is incorrect; update the text around page.click() and
page.locator().click() to remove that contrast and instead state that both
page.click(selector) and locator.click() perform actionability checks and
auto-wait by default (unless force is used), while recommending locators for
their API design, stricter matching, and maintainability; modify the bullet to
reflect accurate Playwright behavior and keep the locator recommendation reasons
separate from auto-wait behavior.

In `@docs/ko-KR/agents/planner.md`:
- Around line 115-118: The example mixes two route roots; pick one root prefix
(either "app/api" or "src/app/api") and make it consistent across the document
by updating every mention of the Checkout and Stripe webhook route entries
(checkout/route.ts and webhooks/stripe/route.ts) so both use the same chosen
root; ensure the same change is applied to the other affected block referenced
(lines ~131-140) as well.

In `@docs/ko-KR/commands/e2e.md`:
- Around line 107-109: The test is calling .substring() on a value that can be
null/undefined; change the assertion to guard both nullable textContent()
results before calling toLowerCase/substring by normalizing them to strings
first—for example, derive a safeDetailsTitle from
detailsPage.marketName.textContent() and a safeFirstMarketTitle from
firstMarketTitle, using conditional checks (e.g., safe = value ?
value.toLowerCase() : '') and then call substring on the guarded
safeFirstMarketTitle (or slice safely) before the expect; this touches
detailsPage.marketName.textContent() and the firstMarketTitle usage in the
assertion.

In `@docs/ko-KR/commands/eval.md`:
- Line 7: Update the usage synopsis for the /eval command to include the missing
`clean` subcommand so it matches the later documentation; specifically edit the
line that currently reads `/eval [define|check|report|list] [feature-name]` to
include `clean` (e.g., `/eval [define|check|report|list|clean] [feature-name]`)
so the /eval usage accurately reflects all supported subcommands described
later.

In `@docs/ko-KR/commands/go-test.md`:
- Around line 157-165: Update the verification command shown in the "6단계: 커버리지
확인" section to include Go's race detector by changing the example `go test
-cover ./validator/...` to run with `-race` as well (i.e., `go test -race -cover
./validator/...`) so the documented primary verification step matches the repo's
guidance to always run tests with the `-race` flag.

In `@docs/ko-KR/commands/refactor-clean.md`:
- Around line 1-3: The Markdown doc "Refactor Clean" is missing the required
YAML frontmatter; add a frontmatter block at the top of
docs/ko-KR/commands/refactor-clean.md that includes at minimum a description:
field summarizing the command (e.g., description: "Safely identify and remove
unused code with test validation at each step"), matching the style used in
other command files like plan.md, and ensure the frontmatter is enclosed by ---
lines before the existing content.

In `@docs/ko-KR/commands/setup-pm.md`:
- Around line 39-53: Move the path comments that currently live inside the JSON
code fences for the "전역 설정" and "프로젝트 설정" examples out of the fenced blocks so
the JSON remains valid; replace the inline `// ~/.claude/package-manager.json`
and `// .claude/package-manager.json` comments with plain-text path lines
immediately above each ```json``` fence (e.g., a backtick-wrapped path line like
`~/.claude/package-manager.json`), and leave the JSON blocks containing only the
object with "packageManager" so the examples under those headings produce valid
JSON.

In `@docs/ko-KR/commands/verify.md`:
- Around line 34-49: The docs currently show a "Secrets:" line in the
verification report template but the verify workflow never runs a secrets scan;
update the docs so they are accurate by either (A) adding an explicit secrets
check step to the verify workflow (implement a job named something like
secret_scan or a step called run-secret-scan and document it) and describe its
behavior in docs/ko-KR/commands/verify.md, or (B) remove the "Secrets:  [OK/X
found]" line from the report template in verify.md (and any references to it) so
the report no longer implies a secret-scan runs by default; target the
"Secrets:" token and the verify command/report template when making the change.

In `@docs/ko-KR/CONTRIBUTING.md`:
- Around line 239-246: The table row referencing `commit.md` in the "커맨드 예시"
table in CONTRIBUTING.md should be replaced with a command that actually exists
in the README's command set; update the table entry (the row with `commit.md`)
to use an existing command name from README.md and adjust its Korean description
accordingly so the example aligns with the repository's documented commands.

In `@docs/ko-KR/rules/agents.md`:
- Around line 3-18: The "사용 가능한 에이전트" section currently lists a subset of agents
but reads as exhaustive; either add rows for the missing agents (e.g.,
database-reviewer, go-reviewer, go-build-resolver) into the table alongside
existing entries like planner, architect, tdd-guide, code-reviewer,
security-reviewer, build-error-resolver, e2e-runner, refactor-cleaner,
doc-updater or change the section title/text (e.g., "일부 사용 가능한 에이전트" or "주요
에이전트(예시)") to indicate this is not a complete inventory so readers understand
the list is partial.

In `@docs/ko-KR/rules/git-workflow.md`:
- Line 12: The sentence "참고: 어트리뷰션은 ~/.claude/settings.json에서 전역적으로 비활성화되어
있습니다." presents a local setting as a universal rule; change it to an
optional/note phrasing clarifying it's reader-specific (e.g., indicate that
attribution may be disabled in the reader's ~/.claude/settings.json or that this
depends on individual/local configuration) so the statement is portable and not
presented as a global requirement.

In `@docs/ko-KR/skills/clickhouse-io/SKILL.md`:
- Line 54: Translate all inline code-block comments in the SKILL.md doc from
English to Korean so they match the surrounding Korean documentation;
specifically replace strings like "-- For data that may have duplicates (e.g.,
from multiple sources)", "-- ✅ GOOD: Use indexed columns first", "// ✅ Batch
insert (efficient)", "// Don't do this in a loop!", "// Extract, Transform,
Load" and all other listed comment instances with accurate Korean equivalents
while preserving punctuation and placement inside the code fences; ensure
translations keep intent (hints, warnings, checklist markers like ✅) and do not
alter code syntax or surrounding example code blocks (search for the exact
English comment texts to locate each occurrence).

In `@docs/ko-KR/skills/continuous-learning/SKILL.md`:
- Line 119: The relative link `docs/continuous-learning-v2-spec.md` in SKILL.md
resolves inside the current directory and breaks; update the reference to point
to the repository-level docs file (e.g. change
`docs/continuous-learning-v2-spec.md` to `/docs/continuous-learning-v2-spec.md`
or the correct relative path from docs/ko-KR/skills/continuous-learning/ such as
`../../../continuous-learning-v2-spec.md`) so the spec link resolves correctly.

In `@docs/ko-KR/skills/frontend-patterns/SKILL.md`:
- Around line 296-300: The snippet uses markets.sort(...) inside the useMemo for
sortedMarkets which mutates the original markets array; change the computation
in the useMemo to operate on a shallow copy (e.g., [...markets] or
markets.slice()) before calling .sort to preserve immutability of markets,
keeping the useMemo and its dependency array ([markets]) intact.

In `@docs/ko-KR/skills/tdd-workflow/SKILL.md`:
- Around line 300-312: The Jest configuration example uses the wrong property
name "coverageThresholds"; update the JSON so the "jest" object uses the
singular "coverageThreshold" property (i.e., replace "coverageThresholds" with
"coverageThreshold") and keep the nested "global" keys ("branches", "functions",
"lines", "statements") intact so Jest enforces the 80% gate as intended.

In `@docs/ko-KR/skills/verification-loop/SKILL.md`:
- Around line 76-81: Replace the narrow commit-only diff command "git diff
HEAD~1 --name-only" in the 단계 6 block with a broadened check that shows both
working-tree and staged changes; specifically, update the instructions to use
"git diff --name-only" for working-tree changes and "git diff --cached
--name-only" for staged changes (or alternatively explicitly note that "git diff
HEAD~1 --name-only" is commit-to-commit only) so the docs cover uncommitted and
staged edits as well as commit diffs.

In `@docs/ko-KR/TERMINOLOGY.md`:
- Around line 5-9: The glossary's 상태 column uses '-' in many rows while the
legend only defines '확정 (Confirmed)' and '미확정 (Pending)'; update either the rows
or the legend: replace each '-' value in the 상태 column with one of the
documented statuses ('확정' or '미확정') consistent with the translation state for
that term, or add a third legend entry documenting '-' (e.g., '-' = '불명확/미지정')
and apply it to all rows using '-' (see the "상태" header and the legend entries
'확정 (Confirmed)' and '미확정 (Pending)') so the terminology file is unambiguous and
consistent across the sections referenced.

In `@README.md`:
- Line 1: The top language selector string "**Language:** English |
[繁體中文](docs/zh-TW/README.md) | [한국어](docs/ko-KR/README.md)" is missing the
Simplified Chinese and Japanese links that appear later in the README; update
that top banner to include "[简体中文](docs/zh-CN/README.md)" and
"[日本語](docs/ja-JP/README.md)" so both selectors match, and ensure future locale
additions are mirrored in both the top selector and the later navigation block
(update the same language selector string and corresponding link targets).

---

Nitpick comments:
In `@docs/ko-KR/agents/tdd-guide.md`:
- Around line 18-40: Update the runnable snippets in the "TDD 워크플로우" section so
they are not Node-only: label the two code blocks that show "npm test" and "npm
run test:coverage" as "Node.js (npm)" and add one-line language-neutral
alternatives (e.g., "language-agnostic: run your project's test command" and
"language-agnostic: run your project's coverage command") plus example
equivalents for other ecosystems such as "Python: pytest" and "Go: go test
./..."; keep the rest of the RED/GREEN/IMPROVE steps unchanged and ensure the
added labels/alternatives appear immediately above the existing code blocks that
currently contain `npm test` and `npm run test:coverage`.

In `@docs/ko-KR/commands/code-review.md`:
- Around line 17-25: Update the checklist under the "**코드 품질 (HIGH):**" section
to be language-agnostic by replacing the JS-specific entries: change
"console.log 문" to "디버그 로깅 문구(예: 개발용 로그/print 등)" and change "공개 API에 대한 JSDoc
누락" to "활성 언어에 대한 공개 API 문서 누락(예: JSDoc/Go doc/Docstring 등)"; keep the rest of
the items intact so the rule covers non-JS/TS languages while preserving the
original intent.

In `@docs/ko-KR/examples/django-api-CLAUDE.md`:
- Around line 143-163: The select_for_update() call in create_order is executed
outside the with transaction.atomic() block; move the locking query into the
atomic block so the row lock is acquired within the transaction (i.e., inside
the with transaction.atomic(): block, call
Product.objects.select_for_update().get(id=product_id) and proceed to create the
Order, adjust product.stock and save), keeping the rest of the logic
(InsufficientStockError check, Order.objects.create, product.save, and
send_order_confirmation.delay) unchanged.

In `@docs/ko-KR/skills/continuous-learning/SKILL.md`:
- Around line 11-18: Add a new "## 예시" section to this SKILL.md and move or
duplicate the existing config and hook samples into it so the file follows the
standard skill-doc structure; locate the current samples referenced around the
"활성화 시점" context (mentions like Stop Hook configuration and the
`~/.claude/skills/learned/` review instructions) and place clear example blocks
under the new "## 예시" heading demonstrating the automatic pattern extraction
config and the Stop Hook usage for evaluation, ensuring the Examples section
mirrors the layout used in other skill docs.

In `@docs/ko-KR/skills/tdd-workflow/SKILL.md`:
- Around line 194-199: Replace the arbitrary sleep (page.waitForTimeout(600))
with a deterministic wait for either the network response or a stable UI
condition: for example use await page.waitForResponse(resp =>
resp.url().includes('search') && resp.status() === 200) or await
page.waitForSelector('[data-testid="market-card"]')/await
expect(page.locator('[data-testid="market-card"]').first()).toBeVisible() before
asserting await expect(results).toHaveCount(5, { timeout: 5000 }); this removes
the flaky page.waitForTimeout call and ensures reliable synchronization for
page.locator and expect(results).toHaveCount.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 382b36bb-3a63-46ca-848f-c552aa59fb2a

📥 Commits

Reviewing files that changed from the base of the PR and between dba4c46 and 526a907.

📒 Files selected for processing (69)
  • README.md
  • README.zh-CN.md
  • docs/ja-JP/README.md
  • docs/ko-KR/CONTRIBUTING.md
  • docs/ko-KR/README.md
  • docs/ko-KR/TERMINOLOGY.md
  • docs/ko-KR/agents/architect.md
  • docs/ko-KR/agents/build-error-resolver.md
  • docs/ko-KR/agents/code-reviewer.md
  • docs/ko-KR/agents/database-reviewer.md
  • docs/ko-KR/agents/doc-updater.md
  • docs/ko-KR/agents/e2e-runner.md
  • docs/ko-KR/agents/go-build-resolver.md
  • docs/ko-KR/agents/go-reviewer.md
  • docs/ko-KR/agents/planner.md
  • docs/ko-KR/agents/refactor-cleaner.md
  • docs/ko-KR/agents/security-reviewer.md
  • docs/ko-KR/agents/tdd-guide.md
  • docs/ko-KR/commands/build-fix.md
  • docs/ko-KR/commands/checkpoint.md
  • docs/ko-KR/commands/code-review.md
  • docs/ko-KR/commands/e2e.md
  • docs/ko-KR/commands/eval.md
  • docs/ko-KR/commands/go-build.md
  • docs/ko-KR/commands/go-review.md
  • docs/ko-KR/commands/go-test.md
  • docs/ko-KR/commands/learn.md
  • docs/ko-KR/commands/orchestrate.md
  • docs/ko-KR/commands/plan.md
  • docs/ko-KR/commands/refactor-clean.md
  • docs/ko-KR/commands/setup-pm.md
  • docs/ko-KR/commands/tdd.md
  • docs/ko-KR/commands/test-coverage.md
  • docs/ko-KR/commands/update-codemaps.md
  • docs/ko-KR/commands/update-docs.md
  • docs/ko-KR/commands/verify.md
  • docs/ko-KR/examples/CLAUDE.md
  • docs/ko-KR/examples/django-api-CLAUDE.md
  • docs/ko-KR/examples/go-microservice-CLAUDE.md
  • docs/ko-KR/examples/rust-api-CLAUDE.md
  • docs/ko-KR/examples/saas-nextjs-CLAUDE.md
  • docs/ko-KR/examples/statusline.json
  • docs/ko-KR/examples/user-CLAUDE.md
  • docs/ko-KR/rules/agents.md
  • docs/ko-KR/rules/coding-style.md
  • docs/ko-KR/rules/git-workflow.md
  • docs/ko-KR/rules/hooks.md
  • docs/ko-KR/rules/patterns.md
  • docs/ko-KR/rules/performance.md
  • docs/ko-KR/rules/security.md
  • docs/ko-KR/rules/testing.md
  • docs/ko-KR/skills/backend-patterns/SKILL.md
  • docs/ko-KR/skills/clickhouse-io/SKILL.md
  • docs/ko-KR/skills/coding-standards/SKILL.md
  • docs/ko-KR/skills/continuous-learning-v2/SKILL.md
  • docs/ko-KR/skills/continuous-learning/SKILL.md
  • docs/ko-KR/skills/eval-harness/SKILL.md
  • docs/ko-KR/skills/frontend-patterns/SKILL.md
  • docs/ko-KR/skills/golang-patterns/SKILL.md
  • docs/ko-KR/skills/golang-testing/SKILL.md
  • docs/ko-KR/skills/iterative-retrieval/SKILL.md
  • docs/ko-KR/skills/postgres-patterns/SKILL.md
  • docs/ko-KR/skills/project-guidelines-example/SKILL.md
  • docs/ko-KR/skills/security-review/SKILL.md
  • docs/ko-KR/skills/security-review/cloud-infrastructure-security.md
  • docs/ko-KR/skills/strategic-compact/SKILL.md
  • docs/ko-KR/skills/tdd-workflow/SKILL.md
  • docs/ko-KR/skills/verification-loop/SKILL.md
  • docs/zh-TW/README.md

Comment on lines +62 to +63
# 레이스 감지
go build -race ./...
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

Does go build -race ./...detect data races by itself, or does Go requirego test -race ./... / running the instrumented binary for race detection?

💡 Result:

go build -race ./... does not detect any races by itself. It only compiles and links race-instrumented binaries/packages.

Go’s race detector is dynamic: it can report races only when the instrumented code is actually executed and the racy interleaving happens (e.g., by running the built binary, go run -race, or go test -race which builds and runs your tests under the race runtime). [1][2]

So: use go build -race to produce a race-enabled binary; use go test -race ./... and/or run the built binary under realistic workloads to detect races. [1][2]


Use go test -race ./... for race detection, not go build -race.

go build -race ./... only produces race-instrumented binaries—it does not execute code, so it cannot detect actual races. Race detection requires running the instrumented code via go test -race ./... or executing the binary, where the race detector can observe actual execution and catch concurrent access violations.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/commands/go-review.md` around lines 62 - 63, The documentation
currently shows the command "go build -race ./..." under the "# 레이스 감지" section
which only instruments a binary and does not run tests or detect races; update
that line to use "go test -race ./..." so the race detector executes the
instrumented code and can actually report race conditions, leaving the header "#
레이스 감지" intact.

Comment on lines +26 to +35
## 감지 우선순위

패키지 매니저를 결정할 때 다음 순서로 확인합니다:

1. **환경 변수**: `CLAUDE_PACKAGE_MANAGER`
2. **프로젝트 설정**: `.claude/package-manager.json`
3. **package.json**: `packageManager` 필드
4. **락 파일**: package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb의 존재 여부
5. **전역 설정**: `~/.claude/package-manager.json`
6. **폴백**: 사용 가능한 첫 번째 패키지 매니저 (pnpm > bun > yarn > npm)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Document the actual fallback behavior.

Line 35 says the detector picks the first available package manager, but scripts/lib/package-manager.js:148-236 falls back directly to npm when steps 1-5 do not match. That mismatch will send users in the wrong direction when they debug PM selection.

📝 Proposed doc fix
-6. **폴백**: 사용 가능한 첫 번째 패키지 매니저 (pnpm > bun > yarn > npm)
+6. **폴백**: `npm` 기본값
📝 Committable suggestion

‼️ 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.

Suggested change
## 감지 우선순위
패키지 매니저를 결정할 때 다음 순서로 확인합니다:
1. **환경 변수**: `CLAUDE_PACKAGE_MANAGER`
2. **프로젝트 설정**: `.claude/package-manager.json`
3. **package.json**: `packageManager` 필드
4. **락 파일**: package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb의 존재 여부
5. **전역 설정**: `~/.claude/package-manager.json`
6. **폴백**: 사용 가능한 첫 번째 패키지 매니저 (pnpm > bun > yarn > npm)
## 감지 우선순위
패키지 매니저를 결정할 때 다음 순서로 확인합니다:
1. **환경 변수**: `CLAUDE_PACKAGE_MANAGER`
2. **프로젝트 설정**: `.claude/package-manager.json`
3. **package.json**: `packageManager` 필드
4. **락 파일**: package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb의 존재 여부
5. **전역 설정**: `~/.claude/package-manager.json`
6. **폴백**: `npm` 기본값
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/commands/setup-pm.md` around lines 26 - 35, The docs' "감지 우선순위"
step 6 is incorrect: the detector does not pick the first available PM but
instead defaults to npm when steps 1–5 yield no match; update the text under
step 6 to state the actual fallback is npm (e.g., "폴백: npm"), and add a brief
note that if users expect a different automatic fallback they must explicitly
configure it via the environment variable or project/global package-manager.json
used by the detector (the module that checks CLAUDE_PACKAGE_MANAGER,
.claude/package-manager.json, package.json packageManager, lockfiles, and
~/.claude/package-manager.json).

@affaan-m
Copy link
Copy Markdown
Owner

Addressed the current Korean translation review queue and pushed the updates to this branch.

What changed:

  • fixed stale manual install and package-manager fallback docs
  • restored missing Korean CONTRIBUTING sections (agent examples, hook format/syntax/examples, command template, cross-harness/translations)
  • added missing command metadata/frontmatter and usage corrections
  • fixed nested fenced-code rendering issues in command docs
  • aligned update-codemaps with the current generator output
  • corrected security, backend, frontend, ClickHouse, Rust, and strategic-compact examples called out in review
  • added the missing doc-updater quality checklist

Validation run locally in the PR worktree:

  • markdownlint on the touched Korean docs/examples
  • git diff --check

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
docs/ko-KR/commands/go-review.md (1)

62-63: ⚠️ Potential issue | 🟠 Major

레이스 감지 명령을 go test -race로 교체하세요.

Line 63의 go build -race ./...는 레이스를 “검출”하지 않고 계측 빌드만 수행합니다. 레이스 검출 목적이면 go test -race ./...가 맞습니다.

🔧 Proposed fix
 # 레이스 감지
-go build -race ./...
+go test -race ./...
Does `go build -race ./...` detect races by itself, or is `go test -race ./...` required to actually detect data races?

Based on learnings: Always run Go tests with the -race flag to detect race conditions.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/commands/go-review.md` around lines 62 - 63, Replace the incorrect
race-detection command: change the line containing "go build -race ./..." to use
the test runner instead, i.e., replace it with "go test -race ./..." so that
races are actually detected during test execution; update the docs/command
example around the "레이스 감지" section to reflect this replacement (look for the
literal "go build -race ./..." string).
🧹 Nitpick comments (4)
docs/ko-KR/commands/eval.md (1)

1-1: Add descriptive front matter to the command documentation.

Based on learnings, command documentation files should include descriptive front matter. Consider adding YAML front matter at the beginning of the file to provide metadata about this command.

📄 Example front matter structure
+---
+title: Eval 커맨드
+description: 평가 기반 개발 워크플로우를 관리합니다
+category: commands
+---
+
 # Eval 커맨드

Based on learnings: Commands must be formatted as Markdown files with descriptive front matter.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/commands/eval.md` at line 1, The file lacks YAML front matter: add
a descriptive Markdown front matter block at the top of
docs/ko-KR/commands/eval.md containing keys such as title (e.g., "Eval 커맨드"),
description (short Korean summary), locale: "ko-KR", command: "eval", and any
tags or category fields used by the docs pipeline; ensure the front matter is a
valid YAML block (--- ... ---) placed before the existing "Eval 커맨드" header so
the doc generator picks up the metadata.
docs/ko-KR/commands/verify.md (1)

1-1: Add descriptive front matter to the command documentation.

Based on learnings, command documentation files should include descriptive front matter. Consider adding YAML front matter at the beginning of the file to provide metadata about this command.

📄 Example front matter structure
+---
+title: 검증 커맨드
+description: 현재 코드베이스 상태에 대한 포괄적인 검증을 실행합니다
+category: commands
+---
+
 # 검증 커맨드

Based on learnings: Commands must be formatted as Markdown files with descriptive front matter.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/commands/verify.md` at line 1, The document is missing YAML front
matter; add a descriptive front matter block at the top of the file (above the
"# 검증 커맨드" header) containing metadata such as title: "검증 커맨드", description:
short Korean summary of the command, locale: "ko-KR", command: the CLI command
name (e.g., "verify"), and tags or category (e.g., "commands"); ensure the front
matter is valid YAML delimited by --- so tools consuming docs can parse this
file correctly.
docs/ko-KR/skills/coding-standards/SKILL.md (1)

11-20: SKILL 템플릿 헤더를 명시적으로 맞추는 것을 권장합니다.

현재 내용은 충분히 좋지만, 상위 섹션에 작동 방식(How it works)예시(Examples)를 명시적으로 추가하면 다른 SKILL 문서와 탐색 일관성이 더 좋아집니다.

Based on learnings: Skills should be formatted as Markdown with clear sections for When to Use, How It Works, and Examples.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/skills/coding-standards/SKILL.md` around lines 11 - 20, The SKILL
document is missing the standard template headers; insert explicit "작동 방식 (How
it works)" and "예시 (Examples)" sections to match other SKILL pages by adding
those headings and a short explanatory paragraph under each between the existing
"활성화 시점" and "코드 품질 원칙" sections; ensure the headings use the same Markdown
level and bilingual label format (Korean + English) as other SKILL files to
preserve navigation consistency.
docs/ko-KR/skills/golang-patterns/SKILL.md (1)

11-18: 이 문서도 SKILL 표준 섹션명을 명시하면 더 좋습니다.

활성화 시점은 잘 들어가 있으니, 여기에 작동 방식예시를 상위 섹션으로 명시해 문서 템플릿 일관성을 맞추는 것을 권장합니다.

Based on learnings: Skills should be formatted as Markdown with clear sections for When to Use, How It Works, and Examples.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/skills/golang-patterns/SKILL.md` around lines 11 - 18, 현재 문서에 '활성화
시점'과 '핵심 원칙'만 있어 SKILL 템플릿 일관성이 부족합니다; 파일의 기존 상단 섹션 헤더('활성화 시점', '핵심 원칙')를 기준으로
상위 섹션을 SKILL 표준에 맞게 추가하세요—구체적으로 '작동 방식'(How It Works)과 '예시'(Examples)라는 최상위 헤더를
삽입하고, 현재 '활성화 시점' 내용을 'When to Use' 또는 '사용 시점'으로 명시하여 적절히 배치하며 필요하면 '핵심 원칙' 내용을
'작동 방식'으로 옮겨 템플릿(When to Use / How It Works / Examples)에 맞게 재구성하십시오.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/ko-KR/skills/security-review/SKILL.md`:
- Around line 243-246: The CSRF example calls csrf.verify(token) where token
(from request.headers.get('X-CSRF-Token')) can be null; add a null-guard before
calling csrf.verify to handle missing token cases (e.g., check token === null or
falsy and return an unauthorized JSON response via NextResponse.json) and only
call csrf.verify(token) when token is a non-null string; update the branch that
currently returns via NextResponse.json to reflect the missing-token error path
and keep the existing CSRF failure handling for verify returning false.

---

Duplicate comments:
In `@docs/ko-KR/commands/go-review.md`:
- Around line 62-63: Replace the incorrect race-detection command: change the
line containing "go build -race ./..." to use the test runner instead, i.e.,
replace it with "go test -race ./..." so that races are actually detected during
test execution; update the docs/command example around the "레이스 감지" section to
reflect this replacement (look for the literal "go build -race ./..." string).

---

Nitpick comments:
In `@docs/ko-KR/commands/eval.md`:
- Line 1: The file lacks YAML front matter: add a descriptive Markdown front
matter block at the top of docs/ko-KR/commands/eval.md containing keys such as
title (e.g., "Eval 커맨드"), description (short Korean summary), locale: "ko-KR",
command: "eval", and any tags or category fields used by the docs pipeline;
ensure the front matter is a valid YAML block (--- ... ---) placed before the
existing "Eval 커맨드" header so the doc generator picks up the metadata.

In `@docs/ko-KR/commands/verify.md`:
- Line 1: The document is missing YAML front matter; add a descriptive front
matter block at the top of the file (above the "# 검증 커맨드" header) containing
metadata such as title: "검증 커맨드", description: short Korean summary of the
command, locale: "ko-KR", command: the CLI command name (e.g., "verify"), and
tags or category (e.g., "commands"); ensure the front matter is valid YAML
delimited by --- so tools consuming docs can parse this file correctly.

In `@docs/ko-KR/skills/coding-standards/SKILL.md`:
- Around line 11-20: The SKILL document is missing the standard template
headers; insert explicit "작동 방식 (How it works)" and "예시 (Examples)" sections to
match other SKILL pages by adding those headings and a short explanatory
paragraph under each between the existing "활성화 시점" and "코드 품질 원칙" sections;
ensure the headings use the same Markdown level and bilingual label format
(Korean + English) as other SKILL files to preserve navigation consistency.

In `@docs/ko-KR/skills/golang-patterns/SKILL.md`:
- Around line 11-18: 현재 문서에 '활성화 시점'과 '핵심 원칙'만 있어 SKILL 템플릿 일관성이 부족합니다; 파일의 기존
상단 섹션 헤더('활성화 시점', '핵심 원칙')를 기준으로 상위 섹션을 SKILL 표준에 맞게 추가하세요—구체적으로 '작동 방식'(How It
Works)과 '예시'(Examples)라는 최상위 헤더를 삽입하고, 현재 '활성화 시점' 내용을 'When to Use' 또는 '사용
시점'으로 명시하여 적절히 배치하며 필요하면 '핵심 원칙' 내용을 '작동 방식'으로 옮겨 템플릿(When to Use / How It Works
/ Examples)에 맞게 재구성하십시오.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 28ad1342-0e96-4d72-9e53-1abc5202def9

📥 Commits

Reviewing files that changed from the base of the PR and between 526a907 and fb7b73a.

📒 Files selected for processing (36)
  • README.md
  • docs/ko-KR/CONTRIBUTING.md
  • docs/ko-KR/README.md
  • docs/ko-KR/TERMINOLOGY.md
  • docs/ko-KR/agents/doc-updater.md
  • docs/ko-KR/agents/e2e-runner.md
  • docs/ko-KR/agents/tdd-guide.md
  • docs/ko-KR/commands/build-fix.md
  • docs/ko-KR/commands/checkpoint.md
  • docs/ko-KR/commands/code-review.md
  • docs/ko-KR/commands/e2e.md
  • docs/ko-KR/commands/eval.md
  • docs/ko-KR/commands/go-build.md
  • docs/ko-KR/commands/go-review.md
  • docs/ko-KR/commands/setup-pm.md
  • docs/ko-KR/commands/tdd.md
  • docs/ko-KR/commands/test-coverage.md
  • docs/ko-KR/commands/update-codemaps.md
  • docs/ko-KR/commands/update-docs.md
  • docs/ko-KR/commands/verify.md
  • docs/ko-KR/examples/django-api-CLAUDE.md
  • docs/ko-KR/examples/rust-api-CLAUDE.md
  • docs/ko-KR/examples/statusline.json
  • docs/ko-KR/rules/agents.md
  • docs/ko-KR/rules/git-workflow.md
  • docs/ko-KR/skills/backend-patterns/SKILL.md
  • docs/ko-KR/skills/clickhouse-io/SKILL.md
  • docs/ko-KR/skills/coding-standards/SKILL.md
  • docs/ko-KR/skills/continuous-learning/SKILL.md
  • docs/ko-KR/skills/frontend-patterns/SKILL.md
  • docs/ko-KR/skills/golang-patterns/SKILL.md
  • docs/ko-KR/skills/security-review/SKILL.md
  • docs/ko-KR/skills/security-review/cloud-infrastructure-security.md
  • docs/ko-KR/skills/strategic-compact/SKILL.md
  • docs/ko-KR/skills/tdd-workflow/SKILL.md
  • docs/ko-KR/skills/verification-loop/SKILL.md
✅ Files skipped from review due to trivial changes (2)
  • docs/ko-KR/commands/setup-pm.md
  • docs/ko-KR/skills/strategic-compact/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (22)
  • docs/ko-KR/agents/e2e-runner.md
  • docs/ko-KR/commands/e2e.md
  • docs/ko-KR/TERMINOLOGY.md
  • docs/ko-KR/agents/doc-updater.md
  • docs/ko-KR/commands/build-fix.md
  • docs/ko-KR/commands/test-coverage.md
  • docs/ko-KR/commands/tdd.md
  • docs/ko-KR/CONTRIBUTING.md
  • docs/ko-KR/skills/tdd-workflow/SKILL.md
  • docs/ko-KR/skills/verification-loop/SKILL.md
  • README.md
  • docs/ko-KR/skills/backend-patterns/SKILL.md
  • docs/ko-KR/commands/checkpoint.md
  • docs/ko-KR/rules/agents.md
  • docs/ko-KR/commands/update-codemaps.md
  • docs/ko-KR/skills/clickhouse-io/SKILL.md
  • docs/ko-KR/skills/frontend-patterns/SKILL.md
  • docs/ko-KR/commands/go-build.md
  • docs/ko-KR/examples/statusline.json
  • docs/ko-KR/commands/update-docs.md
  • docs/ko-KR/rules/git-workflow.md
  • docs/ko-KR/agents/tdd-guide.md

Comment on lines +243 to +246
const token = request.headers.get('X-CSRF-Token')

if (!csrf.verify(token)) {
return NextResponse.json(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

CSRF 예시에서 null 토큰 가드가 필요합니다.

Line 243에서 헤더 값은 string | null이므로, Line 245에서 바로 csrf.verify(token)을 호출하는 예시는 타입/런타임 혼선을 줄 수 있습니다.

🔧 Suggested patch
 export async function POST(request: Request) {
   const token = request.headers.get('X-CSRF-Token')

-  if (!csrf.verify(token)) {
+  if (!token || !csrf.verify(token)) {
     return NextResponse.json(
       { error: 'Invalid CSRF token' },
       { status: 403 }
     )
   }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/ko-KR/skills/security-review/SKILL.md` around lines 243 - 246, The CSRF
example calls csrf.verify(token) where token (from
request.headers.get('X-CSRF-Token')) can be null; add a null-guard before
calling csrf.verify to handle missing token cases (e.g., check token === null or
falsy and return an unauthorized JSON response via NextResponse.json) and only
call csrf.verify(token) when token is a non-null string; update the branch that
currently returns via NextResponse.json to reflect the missing-token error path
and keep the existing CSRF failure handling for verify returning false.

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

17 issues found across 36 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="docs/ko-KR/commands/setup-pm.md">

<violation number="1" location="docs/ko-KR/commands/setup-pm.md:35">
P2: Translation inaccuracy: the English source describes the fallback as "First available package manager (pnpm > bun > yarn > npm)" — a priority-ordered probe — but this Korean translation reduces it to just `npm`. This changes the documented behavior, which could mislead Korean-speaking users about how package manager detection actually works.</violation>
</file>

<file name="docs/ko-KR/commands/verify.md">

<violation number="1" location="docs/ko-KR/commands/verify.md:26">
P2: This "시크릿 스캔" (Secret Scan) step does not exist in the English source (`commands/verify.md`). The original has only 6 steps (Build → Types → Lint → Tests → Console.log Audit → Git Status). Adding content that isn't in the source document makes the Korean translation diverge from the original, which can cause confusion when the two are expected to stay in sync.</violation>
</file>

<file name="docs/ko-KR/commands/build-fix.md">

<violation number="1" location="docs/ko-KR/commands/build-fix.md:22">
P2: This line changes the Python build command from `py_compile` (in the English source) to `compileall .`. A translation PR should not silently alter technical content — this creates a divergence between the English and Korean docs. If the command is incorrect in the source, fix it in `commands/build-fix.md` first and mirror it here.</violation>
</file>

<file name="docs/ko-KR/rules/git-workflow.md">

<violation number="1" location="docs/ko-KR/rules/git-workflow.md:12">
P2: This translation changes the meaning of the English source. The original states attribution **is** disabled globally, but this Korean line says it **may vary** depending on individual settings. All other translations (ja-JP, zh-TW) faithfully preserve the "globally disabled" semantics. If the intent is to correct the source, that change should be made in the English file and propagated to all translations; otherwise, keep this line consistent with the original.</violation>
</file>

<file name="docs/ko-KR/skills/continuous-learning/SKILL.md">

<violation number="1" location="docs/ko-KR/skills/continuous-learning/SKILL.md:80">
P2: This entire '예시' (Examples) section is not in the English original and duplicates JSON blocks already present earlier in this same file — the config example is a subset of the '구성' section and the hook example is identical to the 'Hook 설정' section. Remove this section to keep parity with the English source and avoid reader confusion from redundant content.</violation>
</file>

<file name="docs/ko-KR/skills/coding-standards/SKILL.md">

<violation number="1" location="docs/ko-KR/skills/coding-standards/SKILL.md:400">
P3: This code example diverges from the English source (`markets.sort(...)` → `[...markets].sort(...)`). While the spread-copy is arguably more correct for React (avoids mutating props/state), the PR convention is "code examples preserved as-is." If the example should be fixed, apply the fix to the English source first and propagate to all translations; otherwise revert to match the source.</violation>
</file>

<file name="docs/ko-KR/skills/verification-loop/SKILL.md">

<violation number="1" location="docs/ko-KR/skills/verification-loop/SKILL.md:80">
P2: Translation diverges from the English source: `git diff HEAD~1 --name-only` (last commit's changed files) is replaced with `git diff --name-only` + `git diff --cached --name-only` (unstaged/staged working-tree changes). If this is an intentional improvement, it should be applied to the English source first and then carried over to translations to keep them in sync.</violation>
</file>

<file name="docs/ko-KR/commands/code-review.md">

<violation number="1" location="docs/ko-KR/commands/code-review.md:22">
P2: This generalizes the original `console.log statements` to "debug logging statements," which changes the command's behavior when used as an AI prompt. Both `ja-JP` and `zh-TW` translations preserve `console.log` as-is, consistent with the PR's convention of keeping technical terms in English.</violation>

<violation number="2" location="docs/ko-KR/commands/code-review.md:24">
P2: This generalizes the original `Missing JSDoc for public APIs` to a broader "missing public API docs for any language," which changes the command's behavior when used as an AI prompt. Both `ja-JP` and `zh-TW` translations preserve `JSDoc` as-is, consistent with the PR's convention of keeping technical terms in English.</violation>
</file>

<file name="docs/ko-KR/skills/strategic-compact/SKILL.md">

<violation number="1" location="docs/ko-KR/skills/strategic-compact/SKILL.md:48">
P2: This hook configuration diverges from the English source document. The translation introduces a different command path (`run-with-flags.js` via `CLAUDE_PLUGIN_ROOT`), a combined `"Edit|Write"` matcher, and a new `description` field — none of which exist in `skills/strategic-compact/SKILL.md`. A translation PR should faithfully mirror the source; functional changes to the example config should land in the English source first, then be translated.</violation>
</file>

<file name="docs/ko-KR/README.md">

<violation number="1" location="docs/ko-KR/README.md:419">
P2: Path changed from `.agents/skills/*` to `skills/*`, which diverges from the English source and makes the next line (`cp -r everything-claude-code/skills/search-first ~/.claude/skills/`) redundant since `skills/*` already includes it. If the intent was to match the English README, restore `.agents/skills/*`; if this is an intentional correction, remove the redundant `search-first` copy on the next line.</violation>
</file>

<file name="docs/ko-KR/examples/django-api-CLAUDE.md">

<violation number="1" location="docs/ko-KR/examples/django-api-CLAUDE.md:145">
P2: This code example diverges from the English original. The PR convention states "Code examples preserved as-is, comments translated", but here the `transaction.atomic()` scope has been restructured — `select_for_update()` and the stock check were moved inside the atomic block. While the new version is arguably more correct (since `select_for_update()` requires an active transaction), this change should either be applied to the English source first or reverted here to maintain translation parity.</violation>
</file>

<file name="docs/ko-KR/skills/security-review/cloud-infrastructure-security.md">

<violation number="1" location="docs/ko-KR/skills/security-review/cloud-infrastructure-security.md:218">
P2: This code example diverges from the English source (which uses `"install": "npm ci"`). The PR description states code examples are 'preserved as-is', but this renames the script. If the rename is intentional (avoiding collision with npm's `install` lifecycle hook), apply it to the English source first, then propagate to all translations.</violation>
</file>

<file name="docs/ko-KR/skills/security-review/SKILL.md">

<violation number="1" location="docs/ko-KR/skills/security-review/SKILL.md:218">
P2: The CSP example and Solana verification code diverge from the English source, violating the stated convention "Code examples preserved as-is." These are genuine improvements (nonce-based CSP is much safer than `unsafe-eval`/`unsafe-inline`), so they should be applied to the English source (`skills/security-review/SKILL.md`) first and then carried into the translation. Otherwise, different language versions give different security guidance.</violation>
</file>

<file name="docs/ko-KR/commands/update-codemaps.md">

<violation number="1" location="docs/ko-KR/commands/update-codemaps.md:45">
P2: This section is not a translation of the English source — it introduces entirely new content. The English Step 3 is "Diff Detection" (30% change threshold with user approval), while this replaces it with "영역 분류" (area classification by file-path patterns). Steps 4 and 5 are similarly rewritten with different content. The other translations (ja-JP, zh-TW) all follow the English source faithfully. A translation PR should match the source; content changes should go in the English original first.</violation>
</file>

<file name="docs/ko-KR/skills/clickhouse-io/SKILL.md">

<violation number="1" location="docs/ko-KR/skills/clickhouse-io/SKILL.md:185">
P2: Translation diverges from English source: `bulkInsertTrades` was refactored, not just translated. The English source uses `clickhouse.query(`INSERT INTO ... VALUES ${values}`).toPromise()` while this uses `clickhouse.insert('trades', rows)` — an API that doesn't match the `clickhouse` npm package. The "bad" example below still uses `.query().toPromise()`, creating an inconsistency within the same file. A translation PR should only translate comments, preserving code as-is per the PR's own conventions ("Code examples preserved as-is, comments translated").</violation>

<violation number="2" location="docs/ko-KR/skills/clickhouse-io/SKILL.md:380">
P2: Translation diverges from English source: the ETL `setInterval` was refactored to add a concurrency guard that doesn't exist in the English source. Per the PR's own convention ("Code examples preserved as-is, comments translated"), only comments should be translated. If this is an intentional improvement, it should be applied to the English source first, then translated.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

3. **package.json**: `packageManager` 필드
4. **락 파일**: package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb의 존재 여부
5. **전역 설정**: `~/.claude/package-manager.json`
6. **폴백**: `npm`
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Translation inaccuracy: the English source describes the fallback as "First available package manager (pnpm > bun > yarn > npm)" — a priority-ordered probe — but this Korean translation reduces it to just npm. This changes the documented behavior, which could mislead Korean-speaking users about how package manager detection actually works.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/ko-KR/commands/setup-pm.md, line 35:

<comment>Translation inaccuracy: the English source describes the fallback as "First available package manager (pnpm > bun > yarn > npm)" — a priority-ordered probe — but this Korean translation reduces it to just `npm`. This changes the documented behavior, which could mislead Korean-speaking users about how package manager detection actually works.</comment>

<file context>
@@ -32,7 +32,7 @@ node scripts/setup-package-manager.js --list
 4. **락 파일**: package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb의 존재 여부
 5. **전역 설정**: `~/.claude/package-manager.json`
-6. **폴백**: 사용 가능한 첫 번째 패키지 매니저 (pnpm > bun > yarn > npm)
+6. **폴백**: `npm`
 
 ## 설정 파일
</file context>
Suggested change
6. **폴백**: `npm`
6. **폴백**: 사용 가능한 첫 번째 패키지 매니저 (pnpm > bun > yarn > npm)
Fix with Cubic

- 통과/실패 수 보고
- 커버리지 비율 보고

5. **시크릿 스캔**
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This "시크릿 스캔" (Secret Scan) step does not exist in the English source (commands/verify.md). The original has only 6 steps (Build → Types → Lint → Tests → Console.log Audit → Git Status). Adding content that isn't in the source document makes the Korean translation diverge from the original, which can cause confusion when the two are expected to stay in sync.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/ko-KR/commands/verify.md, line 26:

<comment>This "시크릿 스캔" (Secret Scan) step does not exist in the English source (`commands/verify.md`). The original has only 6 steps (Build → Types → Lint → Tests → Console.log Audit → Git Status). Adding content that isn't in the source document makes the Korean translation diverge from the original, which can cause confusion when the two are expected to stay in sync.</comment>

<file context>
@@ -23,11 +23,15 @@
    - 커버리지 비율 보고
 
-5. **Console.log 감사**
+5. **시크릿 스캔**
+   - 소스 파일에서 API 키, 토큰, 비밀값 패턴 검색
+   - 발견 위치 보고
</file context>
Fix with Cubic

| `pom.xml` | `mvn compile` |
| `build.gradle` | `./gradlew compileJava` |
| `go.mod` | `go build ./...` |
| `pyproject.toml` | `python -m compileall .` 또는 `mypy .` |
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This line changes the Python build command from py_compile (in the English source) to compileall .. A translation PR should not silently alter technical content — this creates a divergence between the English and Korean docs. If the command is incorrect in the source, fix it in commands/build-fix.md first and mirror it here.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/ko-KR/commands/build-fix.md, line 22:

<comment>This line changes the Python build command from `py_compile` (in the English source) to `compileall .`. A translation PR should not silently alter technical content — this creates a divergence between the English and Korean docs. If the command is incorrect in the source, fix it in `commands/build-fix.md` first and mirror it here.</comment>

<file context>
@@ -14,7 +19,7 @@
 | `build.gradle` | `./gradlew compileJava` |
 | `go.mod` | `go build ./...` |
-| `pyproject.toml` | `python -m py_compile` 또는 `mypy .` |
+| `pyproject.toml` | `python -m compileall .` 또는 `mypy .` |
 
 ## 2단계: 오류 파싱 및 그룹화
</file context>
Suggested change
| `pyproject.toml` | `python -m compileall .` 또는 `mypy .` |
| `pyproject.toml` | `python -m py_compile` 또는 `mypy .` |
Fix with Cubic


타입: feat, fix, refactor, docs, test, chore, perf, ci

참고: 어트리뷰션 비활성화 여부는 각자의 `~/.claude/settings.json` 로컬 설정에 따라 달라질 수 있습니다.
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This translation changes the meaning of the English source. The original states attribution is disabled globally, but this Korean line says it may vary depending on individual settings. All other translations (ja-JP, zh-TW) faithfully preserve the "globally disabled" semantics. If the intent is to correct the source, that change should be made in the English file and propagated to all translations; otherwise, keep this line consistent with the original.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/ko-KR/rules/git-workflow.md, line 12:

<comment>This translation changes the meaning of the English source. The original states attribution **is** disabled globally, but this Korean line says it **may vary** depending on individual settings. All other translations (ja-JP, zh-TW) faithfully preserve the "globally disabled" semantics. If the intent is to correct the source, that change should be made in the English file and propagated to all translations; otherwise, keep this line consistent with the original.</comment>

<file context>
@@ -9,7 +9,7 @@
 타입: feat, fix, refactor, docs, test, chore, perf, ci
 
-참고: 어트리뷰션은 ~/.claude/settings.json에서 전역적으로 비활성화되어 있습니다.
+참고: 어트리뷰션 비활성화 여부는 각자의 `~/.claude/settings.json` 로컬 설정에 따라 달라질 수 있습니다.
 
 ## Pull Request 워크플로우
</file context>
Suggested change
참고: 어트리뷰션 비활성화 여부는 각자의 `~/.claude/settings.json` 로컬 설정에 따라 달라질 수 있습니다.
참고: 어트리뷰션은 `~/.claude/settings.json`에서 전역적으로 비활성화되어 있습니다.
Fix with Cubic

}
```

## 예시
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This entire '예시' (Examples) section is not in the English original and duplicates JSON blocks already present earlier in this same file — the config example is a subset of the '구성' section and the hook example is identical to the 'Hook 설정' section. Remove this section to keep parity with the English source and avoid reader confusion from redundant content.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/ko-KR/skills/continuous-learning/SKILL.md, line 80:

<comment>This entire '예시' (Examples) section is not in the English original and duplicates JSON blocks already present earlier in this same file — the config example is a subset of the '구성' section and the hook example is identical to the 'Hook 설정' section. Remove this section to keep parity with the English source and avoid reader confusion from redundant content.</comment>

<file context>
@@ -77,6 +77,35 @@ Claude Code 세션 종료 시 자동으로 평가하여 학습된 스킬로 저
 }

+## 예시
+
+### 자동 패턴 추출 설정 예시
</file context>


</details>

<a href="https://www.cubic.dev/action/fix/violation/175b9782-17dc-4f25-8f80-3d051b419df1" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://cubic.dev/buttons/fix-with-cubic-dark.svg">
    <source media="(prefers-color-scheme: light)" srcset="https://cubic.dev/buttons/fix-with-cubic-light.svg">
    <img alt="Fix with Cubic" src="https://cubic.dev/buttons/fix-with-cubic-dark.svg">
  </picture>
</a>

key: 'Content-Security-Policy',
value: `
default-src 'self';
script-src 'self' 'nonce-{nonce}';
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: The CSP example and Solana verification code diverge from the English source, violating the stated convention "Code examples preserved as-is." These are genuine improvements (nonce-based CSP is much safer than unsafe-eval/unsafe-inline), so they should be applied to the English source (skills/security-review/SKILL.md) first and then carried into the translation. Otherwise, different language versions give different security guidance.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/ko-KR/skills/security-review/SKILL.md, line 218:

<comment>The CSP example and Solana verification code diverge from the English source, violating the stated convention "Code examples preserved as-is." These are genuine improvements (nonce-based CSP is much safer than `unsafe-eval`/`unsafe-inline`), so they should be applied to the English source (`skills/security-review/SKILL.md`) first and then carried into the translation. Otherwise, different language versions give different security guidance.</comment>

<file context>
@@ -215,8 +215,8 @@ const securityHeaders = [
       default-src 'self';
-      script-src 'self' 'unsafe-eval' 'unsafe-inline';
-      style-src 'self' 'unsafe-inline';
+      script-src 'self' 'nonce-{nonce}';
+      style-src 'self' 'nonce-{nonce}';
       img-src 'self' data: https:;
</file context>
Fix with Cubic

@@ -0,0 +1,79 @@
# 코드맵 업데이트
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This section is not a translation of the English source — it introduces entirely new content. The English Step 3 is "Diff Detection" (30% change threshold with user approval), while this replaces it with "영역 분류" (area classification by file-path patterns). Steps 4 and 5 are similarly rewritten with different content. The other translations (ja-JP, zh-TW) all follow the English source faithfully. A translation PR should match the source; content changes should go in the English original first.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/ko-KR/commands/update-codemaps.md, line 45:

<comment>This section is not a translation of the English source — it introduces entirely new content. The English Step 3 is "Diff Detection" (30% change threshold with user approval), while this replaces it with "영역 분류" (area classification by file-path patterns). Steps 4 and 5 are similarly rewritten with different content. The other translations (ja-JP, zh-TW) all follow the English source faithfully. A translation PR should match the source; content changes should go in the English original first.</comment>

<file context>
@@ -41,32 +42,38 @@ src/repos/user.ts (데이터베이스 접근, 80줄)

-## 3단계: 변경 감지
+## 3단계: 영역 분류

-1. 이전 코드맵이 있는 경우 변경 비율 계산
</file context>


</details>

<a href="https://www.cubic.dev/action/fix/violation/274762a0-6d4d-46e0-afbb-ba993bad6d89" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://cubic.dev/buttons/fix-with-cubic-dark.svg">
    <source media="(prefers-color-scheme: light)" srcset="https://cubic.dev/buttons/fix-with-cubic-light.svg">
    <img alt="Fix with Cubic" src="https://cubic.dev/buttons/fix-with-cubic-dark.svg">
  </picture>
</a>

}

// 주기적으로 실행
let etlRunning = false
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Translation diverges from English source: the ETL setInterval was refactored to add a concurrency guard that doesn't exist in the English source. Per the PR's own convention ("Code examples preserved as-is, comments translated"), only comments should be translated. If this is an intentional improvement, it should be applied to the English source first, then translated.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/ko-KR/skills/clickhouse-io/SKILL.md, line 380:

<comment>Translation diverges from English source: the ETL `setInterval` was refactored to add a concurrency guard that doesn't exist in the English source. Per the PR's own convention ("Code examples preserved as-is, comments translated"), only comments should be translated. If this is an intentional improvement, it should be applied to the English source first, then translated.</comment>

<file context>
@@ -362,31 +359,42 @@ ORDER BY cohort, months_since_signup;
-// Run periodically
-setInterval(etlPipeline, 60 * 60 * 1000)  // Every hour
+// 주기적으로 실행
+let etlRunning = false
+
+setInterval(async () => {
</file context>
Fix with Cubic

timestamp: trade.timestamp.toISOString()
}))

await clickhouse.insert('trades', rows)
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Translation diverges from English source: bulkInsertTrades was refactored, not just translated. The English source uses clickhouse.query(INSERT INTO ... VALUES ${values}).toPromise() while this uses clickhouse.insert('trades', rows) — an API that doesn't match the clickhouse npm package. The "bad" example below still uses .query().toPromise(), creating an inconsistency within the same file. A translation PR should only translate comments, preserving code as-is per the PR's own conventions ("Code examples preserved as-is, comments translated").

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/ko-KR/skills/clickhouse-io/SKILL.md, line 185:

<comment>Translation diverges from English source: `bulkInsertTrades` was refactored, not just translated. The English source uses `clickhouse.query(`INSERT INTO ... VALUES ${values}`).toPromise()` while this uses `clickhouse.insert('trades', rows)` — an API that doesn't match the `clickhouse` npm package. The "bad" example below still uses `.query().toPromise()`, creating an inconsistency within the same file. A translation PR should only translate comments, preserving code as-is per the PR's own conventions ("Code examples preserved as-is, comments translated").</comment>

<file context>
@@ -172,25 +172,22 @@ const clickhouse = new ClickHouse({
-    INSERT INTO trades (id, market_id, user_id, amount, timestamp)
-    VALUES ${values}
-  `).toPromise()
+  await clickhouse.insert('trades', rows)
 }
 
</file context>
Fix with Cubic


// ✅ GOOD: Memoize expensive computations
const sortedMarkets = useMemo(() => {
return [...markets].sort((a, b) => b.volume - a.volume)
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot Mar 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: This code example diverges from the English source (markets.sort(...)[...markets].sort(...)). While the spread-copy is arguably more correct for React (avoids mutating props/state), the PR convention is "code examples preserved as-is." If the example should be fixed, apply the fix to the English source first and propagate to all translations; otherwise revert to match the source.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/ko-KR/skills/coding-standards/SKILL.md, line 400:

<comment>This code example diverges from the English source (`markets.sort(...)` → `[...markets].sort(...)`). While the spread-copy is arguably more correct for React (avoids mutating props/state), the PR convention is "code examples preserved as-is." If the example should be fixed, apply the fix to the English source first and propagate to all translations; otherwise revert to match the source.</comment>

<file context>
@@ -397,7 +397,7 @@ import { useMemo, useCallback } from 'react'
 // ✅ GOOD: Memoize expensive computations
 const sortedMarkets = useMemo(() => {
-  return markets.sort((a, b) => b.volume - a.volume)
+  return [...markets].sort((a, b) => b.volume - a.volume)
 }, [markets])
 
</file context>
Suggested change
return [...markets].sort((a, b) => b.volume - a.volume)
return markets.sort((a, b) => b.volume - a.volume)
Fix with Cubic

@affaan-m affaan-m merged commit cc9b11d into affaan-m:main Mar 13, 2026
3 checks passed
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.

2 participants