Skip to main content

rust-review

Rust code review guidelines for Coglet

Source facts

Repository
replicate/cog
Last source activity
April 24, 2026 at 19:38
Detected SKILL.md language
English
Stars
9,490
Forks
699

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
rust-review
description
Rust code review guidelines for Coglet
## Rust review guidelines This project uses Rust for Coglet (`crates/`), the prediction server that runs inside Cog containers. It handles HTTP requests, worker process management, and prediction execution. ### What linters already catch (skip these) clippy runs in CI. cargo-deny audits dependencies for license/advisory issues. Don't flag issues these would catch. ### What to look for **Error handling** - Use `thiserror` for typed errors in library code, `anyhow` for application errors - Don't use `.unwrap()` or `.expect()` in non-test code unless the invariant is documented - Error context: use `.context()` or `.with_context()` from anyhow, not bare `?` **Ownership and lifetimes** - Unnecessary cloning where a borrow would work - Lifetime issues that suggest a design problem (not just annotation noise) - Arc/Mutex when simpler patterns exist **Async (tokio)** - Blocking operations inside async contexts (use `spawn_blocking`) - Missing `.await` on futures (compiler catches some, but not all logical issues) - Proper cancellation handling and cleanup - Task/JoinHandle leaks **Safety** - Any `unsafe` block needs justification and a safety comment - FFI boundaries with Python (PyO3) -- check for panics across FFI, GIL handling - Memory safety in IPC between parent and worker processes **Architecture** - `crates/coglet/` is the core: HTTP server, worker orchestration, IPC - `crates/coglet-python/` is PyO3 bindings for Python predictor integration - Two-process architecture: parent (HTTP + orchestrator) and worker (Python execution) - Don't mix IPC concerns with HTTP handling - Snapshot tests use `insta` -- check if snapshots need updating **Dependencies** - New dependencies should be justified -- `crates/deny.toml` audits them - Prefer std or existing deps over adding new ones for small tasks
View on GitHub