rust-patterns
Rust-specific coding patterns and conventions used in the Grove codebase. Loaded for Builder and Reviewer agents working on Rust code.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Rust-specific coding patterns and conventions used in the Grove codebase. Loaded for Builder and Reviewer agents working on Rust code.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Structured code review checklist for the Reviewer agent. Provides a systematic framework for evaluating code changes across correctness, security, performance, and maintainability.
Resolve git merge conflicts in a Grove conversation worktree before the task agent begins work. This skill is invoked automatically by the orchestrator when a pre-run `git merge origin/main` into the conversation branch produces conflicts. The agent receives the list of conflicting files and the worktree path, resolves every conflict, validates the result, and stages the files so the engine can finalize the merge commit. This is not a user-facing skill — it is called programmatically by the Grove engine.
Test-Driven Development workflow for the Builder agent. Ensures code is written test-first with proper red-green-refactor cycles.
| name | rust-patterns |
| description | Rust-specific coding patterns and conventions used in the Grove codebase. Loaded for Builder and Reviewer agents working on Rust code. |
| applies_to | ["builder","reviewer"] |
GroveResult<T> (alias for Result<T, GroveError>) everywhere? operator for propagation — no .unwrap() in production codeexternal_call().map_err(|e| GroveError::External(e.to_string()))?GroveError::NotFound for missing resources, GroveError::Config for config issuesrusqlite::Connectionconn.execute() for writes, conn.query_row() for single readsconn.prepare() + stmt.query_map() for multi-row reads[&run_id], never string interpolationcrates/grove-core/src/db/migrations/ — numbered sequentially#[derive(Serialize, Deserialize)] on all IPC types#[serde(rename_all = "snake_case")] for enums#[serde(default)] for optional fields that may be missing in older datastd::fs for sync file operationsfs::create_dir_all(parent)?Path and PathBuf — never string concatenation for paths#[tauri::command] async functionsspawn_blocking for sync operations (DB, git, file I/O)Result<T, String> where T: Serialize.map_err(|e| e.to_string())?#[cfg(test)] mod tests at bottom of each moduletempfile::tempdir() for filesystem testsConnection::open_in_memory()snake_case_describing_behavior