본문으로 건너뛰기
cccskills
무료GitHub에 공개

code-review

Provides a structured framework for conducting thorough code reviews covering correctness, security, architecture alignment, performance, and technical debt.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md6.2 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Code Review

Review Axes

Every finding must reference exactly one axis. This prevents vague feedback and makes it actionable.

AxisWhat to check
CorrectnessDoes the logic handle all cases in the acceptance criteria?
SecurityInjection vectors, secret exposure, auth bypasses, insecure defaults
ArchitectureDoes the code follow existing patterns and module boundaries?
PerformanceN+1 queries, unnecessary allocations, blocking I/O in hot paths
Error handlingAre failure cases handled explicitly and safely?
Test coverageDo tests verify the acceptance criteria, not just happy paths?
ScopeAre there changes outside the stated task boundary?
Technical debtDoes the implementation introduce debt without acknowledging it?

Finding Categories

CRITICAL — must be resolved before merge

  • Logic failures that violate acceptance criteria
  • Security vulnerabilities (injection, auth bypass, secret exposure)
  • Data loss or corruption risk
  • Breaking changes to public API or shared contracts
  • Missing error handling that causes silent failures

WARNING — should be resolved before merge

  • Missing edge case coverage in tests
  • Scope creep (changes outside the task boundary)
  • Pattern inconsistency that will confuse future maintainers
  • Performance issue that will degrade under load
  • Missing input validation at system boundaries

SUGGESTION — optional improvement

  • Naming clarity improvements
  • Extracting a reusable abstraction
  • Test readability
  • Documentation gaps on non-obvious behavior

Review Report Format

## Review Report

**Task**: [objective from task card]
**Verdict**: [approved | approved with warnings | blocked]

---

### CRITICAL

- [ ] [C1] `path/to/file:line` — [description]
  Axis: [axis] | Evidence: `[quoted code]` | Required action: [what must change]

_(none)_ if no critical findings

### WARNING

- [ ] [W1] `path/to/file:line` — [description]
  Axis: [axis] | Recommended action: [what should change]

_(none)_ if no warning findings

### SUGGESTION

- [ ] [S1] — [description] | Rationale: [brief reason]

_(none)_ if no suggestions

### Summary

- Critical: [count] | Warning: [count] | Suggestion: [count]
- **Verdict justification**: [one sentence]

Verdict rules:

  • blocked — any CRITICAL finding present
  • approved with warnings — no CRITICAL, at least one WARNING
  • approved — no CRITICAL, no WARNING

What to Check — by Axis

Correctness

  • Does every acceptance criterion have a corresponding code path?
  • Are null/empty/zero values handled explicitly?
  • Are boundary conditions checked (off-by-one, empty collections, max values)?
  • Do conditional branches cover all cases (exhaustive when/switch)?

Security

Injection: SQL, command, LDAP, XML — is input sanitized or parameterized?
Auth: is the endpoint protected? are role checks correct?
Secrets: no hardcoded credentials, tokens, or keys in source
Headers: are security headers set (CSP, HSTS, X-Frame-Options)?
CORS: is the origin whitelist explicit, not wildcard?
Dependencies: are new dependencies from trusted sources?

Performance

N+1 queries: does a loop call the database per iteration?
Eager loading: are JOINs or includes used where needed?
Pagination: are all list endpoints paginated?
Caching: is expensive computation cached at an appropriate layer?
Index: do new query filters have corresponding DB indexes?

Error Handling

Are exceptions caught at the right layer (not swallowed silently)?
Is the error response format consistent with the rest of the API?
Is the original exception logged before translating to a user-facing error?
Are transient failures retried with backoff, or propagated immediately?

What NOT to Flag

Personal style preferences. If the code follows the project's established conventions, do not flag it because you would have written it differently.

Trivial naming. Variable names are a SUGGESTION at most, never a WARNING. Do not block a PR over naming unless the name is genuinely misleading.

Tests for trivial code. Do not demand tests for getters, setters, or data class construction. Test behavior, not boilerplate.

Refactors not in scope. If you notice an improvement opportunity outside the task boundary, log it as a SUGGESTION. Do not block the PR for work that was not requested.

Framework defaults. Do not second-guess framework conventions (Spring dependency injection, Next.js file-based routing). Trust the framework.

Exact Diff Recommendations

When a finding requires a code change, provide the exact replacement:

# Current code (path/to/file:42)
val user = userRepository.findById(id)
return user.name   // NPE if not found

# Recommended fix
val user = userRepository.findById(id)
  ?: throw NotFoundException("User $id not found")
return user.name

Vague instructions ("handle the null case") force the author to guess your intent. Exact diffs remove ambiguity and speed up the review cycle.

Prioritization Order

When multiple findings exist, address them in this order:

  1. Security — security issues can silently compromise users or data
  2. Correctness — broken behavior defeats the purpose of the change
  3. Error handling — silent failures are hard to debug in production
  4. Test coverage — gaps mean regressions will be invisible
  5. Performance — degrade gradually; fix before it causes incidents
  6. Architecture — inconsistency compounds over time
  7. Technical debt — acknowledge and track; do not always block for it
  8. Suggestions — apply at author's discretion

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use when adding monitoring, metrics, logging, or tracing to Spring AI or LLM integration code. Covers token tracking, latency measurement, cost estimation, and prompt/response logging. Use when user mentions AI monitoring, token costs, or LLM observability.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

lgzarturo/springboot-course32026년 10월 17일 업데이트

android

무료

Provides expert knowledge for building modern native Android apps using Kotlin, Jetpack Compose, Material Design 3, MVI architecture, Hilt dependency injection, and Media3/ExoPlayer.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

lgzarturo/springboot-course32026년 10월 17일 업데이트

Design, implement, review, and audit Android Jetpack Compose UI/UX for phone interfaces. Use when a request concerns concrete Compose layout, components, interaction, accessibility, or visual behavior. Do not activate for framework or dependency presence alone; non-UI Android work is excluded.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

lgzarturo/springboot-course32026년 10월 17일 업데이트

Provides expert knowledge for designing, implementing, and managing REST API versioning strategies with deprecation workflows.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

lgzarturo/springboot-course32026년 10월 17일 업데이트

astro

무료

Provides expert knowledge for building Astro 5+ sites with Islands Architecture, Content Collections, TypeScript, and performance-first rendering strategies.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

lgzarturo/springboot-course32026년 10월 17일 업데이트

Audits token storage mechanisms to prevent XSS-based JWT theft.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

lgzarturo/springboot-course32026년 10월 17일 업데이트

lgzarturo의 스킬 모두 보기

이 스킬의 문제 신고