From ecc
Rust 빌드 에러, borrow checker 이슈 및 종속성 문제를 점진적으로 수정합니다. 최소한의 수술적 수정을 위해 rust-build-resolver 에이전트를 호출합니다.
npx claudepluginhub sam42-lab/everything-claude-code-kr# Rust 빌드 및 수정 이 커맨드는 최소한의 변경으로 Rust 빌드 에러를 점진적으로 수정하기 위해 **rust-build-resolver** 에이전트를 호출합니다. ## 이 커맨드가 하는 것 1. **진단 실행**: `cargo check`, `cargo clippy`, `cargo fmt --check` 실행 2. **에러 파싱**: 에러 코드와 영향을 받은 파일 식별 3. **점진적 수정**: 한 번에 하나의 에러씩 수정 4. **수정 사항 검증**: 각 변경 후 `cargo check` 재실행 5. **요약 보고**: 수정된 내용과 남은 문제 표시 ## 사용 시점 다음과 같은 경우에 `/rust-build`를 사용하세요: - `cargo build` 또는 `cargo check`가 에러와 함께 실패할 때 - `cargo clippy`가 경고를 보고할 때 - Borrow checker 또는 lifetime 에러가 컴파일을 차단할 때 - Cargo 종속성 해결(dependency resolution)이 실패할 때 - 빌드를 깨뜨리는 변경 사항을 pull한 후 ## 실행되는 진단 커맨드 ## 세션 예시 bash $ cargo ch...
/rust-buildFixes Rust build errors, borrow checker issues, and dependency problems incrementally with minimal changes, verifying each fix via cargo check, clippy, and fmt.
/rust-buildIncrementally fixes Rust build errors, borrow checker issues, and dependency problems by running cargo check/clippy/fmt, applying minimal changes, and verifying each fix.
Share bugs, ideas, or general feedback.
이 커맨드는 최소한의 변경으로 Rust 빌드 에러를 점진적으로 수정하기 위해 rust-build-resolver 에이전트를 호출합니다.
cargo check, cargo clippy, cargo fmt --check 실행cargo check 재실행다음과 같은 경우에 /rust-build를 사용하세요:
cargo build 또는 cargo check가 에러와 함께 실패할 때cargo clippy가 경고를 보고할 때# 기본 빌드 체크
cargo check 2>&1
# 린트 및 제안
cargo clippy -- -D warnings 2>&1
# 포맷팅 체크
cargo fmt --check 2>&1
# 종속성 이슈
cargo tree --duplicates
# 보안 오디트 (가능한 경우)
if command -v cargo-audit >/dev/null; then cargo audit; else echo "cargo-audit이 설치되지 않음"; fi
User: /rust-build
Agent:
# Rust 빌드 해결
## 초기 진단 결과
```bash
$ cargo check
error[E0502]: cannot borrow `map` as mutable because it is also borrowed as immutable
--> src/service/cache.rs:25:5
error[E0308]: mismatched types
--> src/handler/api.rs:42:12
error[E0425]: cannot find value `db` in this scope
--> src/handler/api.rs:58:9
```
발견된 에러: 3개
## 수정 1: Borrow Checker 에러
파일: src/service/cache.rs:25
에러: E0502 — 이미 불변(immutable)으로 빌려왔기 때문에 `map`을 가변(mutable)으로 빌릴 수 없음
원인: 가변 삽입 시점에 불변 빌림이 여전히 활성 상태임
```rust
// 수정됨: 가변 접근 전에 불변 빌림이 끝나도록 구조 재조정
if !map.contains_key("key") {
map.insert("key".into(), default);
}
```
```bash
$ cargo check
# 2개 에러 남음
```
## 수정 2: 타입 불일치
파일: src/handler/api.rs:42
에러: E0308 — 타입 불일치: `usize`가 필요하나 `&str`이 발견됨
```rust
// 수정 전
let count = params.get("count");
// 수정 후
let count: usize = params.get("count")
.and_then(|s| s.parse().ok())
.unwrap_or(0);
```
```bash
$ cargo check
# 1개 에러 남음
```
## 수정 3: 정의되지 않은 이름
파일: src/handler/api.rs:58
에러: E0425 — 이 스코프에서 `db` 값을 찾을 수 없음
원인: import 누락
```rust
// 추가됨
use crate::db;
```
```bash
$ cargo check
# 빌드 성공!
```
## 최종 검증
```bash
$ cargo clippy -- -D warnings
# 경고 없음
$ cargo test
running 6 tests
test service::cache::tests::test_insert ... ok
test service::cache::tests::test_get ... ok
test handler::api::tests::test_parse_count ... ok
test handler::api::tests::test_missing_count ... ok
test handler::api::tests::test_db_import ... ok
test handler::api::tests::test_response ... ok
test result: ok. 6 passed; 0 failed; 0 ignored
```
## 요약
| 지표 | 개수 |
|------|------|
| 수정된 빌드 에러 | 3 |
| 수정된 Clippy 경고 | 0 |
| 수정된 파일 | 2 |
| 남은 문제 | 0 |
빌드 상태: 성공 (SUCCESS)
| 에러 | 일반적인 수정 방법 |
|---|---|
cannot borrow as mutable | 불변 빌림을 먼저 끝내도록 구조 변경. 정당한 이유가 있는 경우에만 clone 사용 |
does not live long enough | 소유 타입(owned type)을 사용하거나 lifetime 어노테이션 추가 |
cannot move out of | 소유권을 가져오도록 구조 변경. 최후의 수단으로만 clone 사용 |
mismatched types | .into(), as 또는 명시적 변환 추가 |
trait X not implemented | #[derive(Trait)] 추가 또는 수동 구현 |
unresolved import | Cargo.toml에 추가하거나 use 경로 수정 |
cannot find value | import 추가 또는 경로 수정 |
cargo fmt 준수다음과 같은 경우 에이전트가 중단을 보고합니다:
/rust-test - 빌드 성공 후 테스트 실행/rust-review - 코드 품질 리뷰/verify - 전체 검증 루프agents/rust-build-resolver.mdskills/rust-patterns/