Skip to main content

rust-review

Rust code review guidelines for Coglet

来源信息

仓库
replicate/cog
最近来源活动
2026年4月24日 19:38
检测到的 SKILL.md 语言
英语
星标
9,492
Forks
699

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
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
在 GitHub 查看