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 页面并帮你完成安装。
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.
基于 SOC 职业分类
| 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