Enforce workspace Clippy standards and document lint policy

This commit is contained in:
Dylan M. Taylor
2026-10-28 04:36:48 +00:00
parent f0ea988d8f
commit 6a5dacb0e9
4 changed files with 8 additions and 1 deletions
+1
View File
@@ -20,6 +20,7 @@ FilmCraft is a clean-room, open-source, pure-Rust non-linear video editor target
- **Everything is a command** (`crates/engine`): id, label, menu path, shortcut, params, enabled(), run(). UI, CLI, control channel and MCP all dispatch by id.
- **Everything is agent-drivable:** every interactive widget registers an automation id; UI state is serde so the control channel can read/set it.
- **Quality gates** before every commit: `cargo fmt --check`, `cargo clippy --workspace --all-targets -- -D warnings`, `cargo test --workspace`, `cargo xtask layers`, `cargo xtask assets`, `cargo xtask wasm` (checks L0–L4 crates). `cargo xtask ci` runs them all.
- **New workspace crates** must include `[lints] workspace = true` in `Cargo.toml` to inherit `[workspace.lints]`. Production crate roots must declare the required crate-level lint attributes before modules or other crate items; crate-level `//!` documentation may precede them.
- **Commits:** one task id per commit (`M2.4: CABAC residual decoding`). Only green states. End messages with the attribution line required by the environment.
## Running and looking at the app
+3 -1
View File
@@ -91,9 +91,11 @@ rfd = "0.17"
unsafe_code = "forbid"
[workspace.lints.clippy]
cognitive_complexity = "deny"
too_many_arguments = "deny"
wildcard_imports = "deny"
dbg_macro = "warn"
todo = "warn"
too_many_arguments = "allow"
needless_range_loop = "allow"
type_complexity = "allow"
+1
View File
@@ -6,3 +6,4 @@ allow-indexing-slicing-in-tests = true
disallowed-types = [
{ path = "egui::ComboBox", reason = "use craft_ui::ComboBox: egui's combo box menu can't grow back while open (egui#5225)" },
]
cognitive-complexity-threshold = 30
+3
View File
@@ -5,6 +5,9 @@ edition.workspace = true
license.workspace = true
publish = false
[lints]
workspace = true
[dependencies]
serde_json = { workspace = true }
filmcraft-testkit = { workspace = true }