Rust Practice
目的
- Rust の変更手順と品質基準を揃える。
- Edition 2024 と MSRV を明示し、再現可能な検証フローで回帰を防ぐ。
unsafe・公開 API・依存更新のような事故りやすい領域を安全に進める。
優先順位
- ユーザーの明示指示
- リポジトリ内の既存規約と設定ファイル
- 本スキルの詳細規約:
references/coding-guidelines.md - Edition 2024 への移行:
references/migration-2024.md
クイックスタート(毎回)
README/CONTRIBUTING/Makefile/ CI を確認し、リポジトリの正を決める。Cargo.toml/Cargo.lock/rust-toolchain.toml(またはrust-toolchain)を確認する。- workspace の場合は対象 crate を確定する(
default-members/members/-pの使い分け)。 - 詳細規約を確認する:
references/coding-guidelines.md。 - 差分最小で実装する。公開 API 変更と
unsafeの有無を明示する。 - 可能なら次の順で検証する。
cargo check --workspace --all-targetscargo test --workspace --all-targetscargo fmt --all -- --checkcargo clippy --workspace --all-targets --all-features -- -D warningscargo doc --workspace --no-deps
- 省略した検証がある場合は、理由と残リスクを報告する。
Cargo.toml / Cargo.lock 確認ルール
- 新規 crate の
editionは原則2024を使う。 rust-version(MSRV)は必ず明示し、CI と合わせる。- workspace ルートが virtual manifest の場合は
resolver = "3"を明示する。 Cargo.lockは手編集しない。依存更新由来の差分のみ許容する。- 依存更新は目的を限定する(必要以上の一括更新を避ける)。
コマンド選択(例)
- 全 crate を検証:
cargo check --workspace --all-targets - 単一 crate を検証:
cargo check -p <crate> - 主要 feature を含めて検証:
cargo clippy --workspace --all-targets --all-features -- -D warnings - デフォルト feature なし検証:
cargo check -p <crate> --no-default-features - Edition 移行の自動補助:
cargo fix --edition --workspace --all-features
相談の振り分け(迷ったら)
- 命名、エラー処理、
unsafe、公開 API の作法:references/coding-guidelines.md - 実装から検証までの手順、CI での回し方:
references/workflow.md - 旧 Edition から 2024 への移行:
references/migration-2024.md
完了条件(DoD)
references/coding-guidelines.mdの必須ルールに違反しない。- 関心の分離、状態とロジックの分離、 コントラクト層の明示を満たしている。
- 可能な範囲で
check/test/fmt/clippy/docを通す。 unsafeを追加・変更した場合は安全性の前提を説明できる。- 公開 API を変更した場合は破壊的変更の有無を説明できる。
Source: tr-yasuda/everything-codex — distributed by TomeVault.