AgentSkillsCN

rust-dev

遵循 NovelSaga Core 与 CLI 的 Rust 开发规范——在修改 projects/core 或 projects/cli 中的 Rust 代码时使用。

SKILL.md
--- frontmatter
name: rust-dev
description: Rust development conventions for NovelSaga core and CLI - use when modifying Rust code in projects/core or projects/cli

NovelSaga Rust Development

Quick Reference

  • Edition 2024 with nightly features (#![feature(mpmc_channel)])
  • Tests in same file: #[cfg(test)] mod tests { ... }
  • Type exports to TS: #[derive(TS)] + #[ts(export, export_to = "_config.ts")]

State Management

rust
// ✅ CORRECT: Initialize before get
Initializer::init(Feature::Config);
let state = Initializer::get::<ConfigState>();

// ❌ WRONG: Will panic!
let state = Initializer::get::<ConfigState>();

Build Commands

TaskCommand
Build corecargo build -p novelsaga-core
Build CLIcargo build -p novelsaga-cli
Test allcargo test
Lintcargo clippy --all-targets

Error Handling

  • Use anyhow::Result for application errors
  • Use thiserror::Error for library errors
  • Always add context: .context("loading config file")

Anti-Patterns

Don'tDo Instead
Separate test files#[cfg(test)] in same file
Initializer::get() without initCall init() first
println! in librariesUse tracing macros

When to Use

Load this skill when working on:

  • projects/core/src/**/*.rs
  • projects/cli/src/**/*.rs
  • Any Rust test files