.claude/skills/rust-dependencies/SKILL.md
Rust dependency management principles for this workspace. Use whenever adding, updating, removing, or reviewing dependencies in any Cargo.toml — including deciding which version to use, where to declare a dep, or auditing for duplicates.
npx skillsauth add cedricziel/assistant rust-dependenciesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Workspace-level declarations only. All dependencies must be declared in [workspace.dependencies] in the root Cargo.toml. Never add a versioned dependency directly to a crate's [dependencies].
Crate Cargo.toml references workspace. In each crate, reference workspace deps with:
some-crate = { workspace = true }
# with features:
some-crate = { workspace = true, features = ["extra"] }
Always use the latest version. When adding a new dependency, look up and use the latest stable version on crates.io. Do not copy an old version from existing entries.
Check before adding. Before declaring a new dep in [workspace.dependencies], grep the root Cargo.toml to confirm it isn't already there (possibly under a different feature set).
No duplicate transitive deps. Avoid adding a crate that is already pulled in transitively. Run cargo tree -d to surface duplicates. Prefer cargo machete --with-metadata to detect unused deps.
When adding a dependency:
Cargo.toml [workspace.dependencies] — is it already declared?Cargo.toml, add { workspace = true }.make lint to catch any issues.When removing a dependency:
{ workspace = true } reference from the crate.[workspace.dependencies] too.cargo machete --with-metadata to confirm nothing is left unused.tools
Enforces OpenAPI spec discipline when working on REST API endpoints in this project. Triggers whenever adding, modifying, or removing HTTP routes, request/response types, or API handlers in the Rust web-ui crate (`crates/web-ui`). Reminds the agent to (1) update the committed `openapi.json` spec, (2) run `make dump-openapi` to re-export the spec from the running server, and (3) run `make generate-flutter-client` to regenerate the Dart/dio client in `app/packages/assistant_api/`. Also applies when changing route parameters, status codes, or authentication on existing endpoints.
tools
Browser automation via @playwright/mcp (Microsoft). Use this when the user wants to navigate websites, fill forms, take screenshots, scrape web content, test web apps, or run any multi-step browser workflow. Requires no display (headless mode supported).
testing
A minimal example WASM skill that returns a greeting. Use to verify that the WASM execution tier is working correctly.
development
Run coding agents (Claude Code, Codex, OpenCode, or others) as background processes for programmatic control. Use when you need non-blocking execution, parallel agents, PR reviews, or long-running coding tasks. Prefer this over direct bash for any task that takes more than ~20 seconds.