From ecc
소유권, 수명(lifetimes), 에러 처리, unsafe 사용 및 관용적 패턴에 대한 종합적인 Rust 코드 리뷰입니다. rust-reviewer 에이전트를 호출합니다.
npx claudepluginhub sam42-lab/everything-claude-code-kr# Rust 코드 리뷰 이 커맨드는 종합적인 Rust 전용 코드 리뷰를 위해 **rust-reviewer** 에이전트를 호출합니다. ## 이 커맨드가 하는 것 1. **자동 체크 검증**: `cargo check`, `cargo clippy -- -D warnings`, `cargo fmt --check`, `cargo test`를 실행하며, 하나라도 실패하면 중단합니다. 2. **Rust 변경 사항 식별**: `git diff HEAD~1`(또는 PR의 경우 `git diff main...HEAD`)을 통해 수정된 `.rs` 파일을 찾습니다. 3. **보안 오디트 실행**: 가능한 경우 `cargo audit`을 실행합니다. 4. **보안 스캔**: unsafe 사용, 커맨드 인젝션, 하드코딩된 시크릿 등을 확인합니다. 5. **소유권 리뷰**: 불필요한 clone, 수명(lifetime) 이슈, 빌림(borrowing) 패턴을 분석합니다. 6. **보고서 생성**: 발견된 이슈를 심각도별로 분류합니다. ## 사용 시점 다음과 같은 경우에 `/rust-review`를 사용하세요: - Rust 코드를 작성하거나 수정했을 때 - Rust 변경 사...
/rust-reviewRuns comprehensive Rust code review: cargo check/clippy/fmt/test/audit, security scan, ownership/lifetimes analysis, severity-categorized report.
/rust-reviewRuns cargo clippy on Rust code at optional path, categorizing issues by severity and lint type (correctness, perf, style), with targeted code fix suggestions.
/rust-reviewAudits Rust code for safety, correctness, ownership, lifetimes, error handling, concurrency, unsafe blocks, traits, and Cargo dependencies. Produces safety reports, analysis, and recommendations.
/rust-reviewPerforms Rust code review: runs cargo check/clippy/fmt/test/audit, scans ownership/lifetimes/error-handling/unsafe/idiomatic issues. Outputs severity-categorized report.
Share bugs, ideas, or general feedback.
이 커맨드는 종합적인 Rust 전용 코드 리뷰를 위해 rust-reviewer 에이전트를 호출합니다.
cargo check, cargo clippy -- -D warnings, cargo fmt --check, cargo test를 실행하며, 하나라도 실패하면 중단합니다.git diff HEAD~1(또는 PR의 경우 git diff main...HEAD)을 통해 수정된 .rs 파일을 찾습니다.cargo audit을 실행합니다.다음과 같은 경우에 /rust-review를 사용하세요:
unwrap()/expect() 사용// SAFETY: 주석 없는 unsafe 사용std::process::Command에서 검증되지 않은 입력을 통한 커맨드 인젝션.clone()&str 또는 impl AsRef<str>로 충분한 곳에 String 파라미터 사용std::thread::sleep, std::fs 등)Send/Sync 바운드 누락_ => 매치with_capacity 누락/// 문서화가 없는 public APImust_use 반환 타입에 #[must_use] 고려# 빌드 게이트 (리뷰 전 반드시 통과해야 함)
cargo check
# 린트 및 제안
cargo clippy -- -D warnings
# 포맷팅
cargo fmt --check
# 테스트
cargo test
# 보안 오디트 (가능한 경우)
if command -v cargo-audit >/dev/null; then cargo audit; else echo "cargo-audit이 설치되지 않음"; fi
User: /rust-review
Agent:
# Rust 코드 리뷰 보고서
## 리뷰된 파일
- src/service/user.rs (수정됨)
- src/handler/api.rs (수정됨)
## 정적 분석 결과
- 빌드: 성공
- Clippy: 경고 없음
- 포맷팅: 통과
- 테스트: 모두 통과
## 발견된 이슈
[치명적] 프로덕션 경로에서 체크되지 않은 unwrap 발견
파일: src/service/user.rs:28
이슈: 데이터베이스 쿼리 결과에 `.unwrap()` 사용
```rust
let user = db.find_by_id(id).unwrap(); // 사용자가 없을 경우 패닉 발생
```
수정: 컨텍스트와 함께 에러 전파
```rust
let user = db.find_by_id(id)
.context("사용자 정보를 가져오지 못했습니다")?;
```
[높음] 불필요한 Clone
파일: src/handler/api.rs:45
이슈: borrow checker를 만족시키기 위해 String을 복제함
```rust
let name = user.name.clone();
process(&user, &name);
```
수정: 복제를 피하도록 구조 재조정
```rust
let result = process_name(&user.name);
use_user(&user, result);
```
## 요약
- 치명적: 1
- 높음: 1
- 중간: 0
권고: 치명적 이슈가 수정될 때까지 머지를 차단하세요.
| 상태 | 조건 |
|---|---|
| 승인 (Approve) | 치명적 또는 높음 이슈 없음 |
| 주의 (Warning) | 중간 이슈만 있음 (주의해서 머지) |
| 차단 (Block) | 치명적 또는 높음 이슈 발견됨 |
/rust-test를 먼저 사용/rust-build 사용/rust-review 사용/code-review 사용agents/rust-reviewer.mdskills/rust-patterns/, skills/rust-testing/