azure/cosmos-pre-commit-validation
> Run pre-commit checks for a specific set of crates. Use this when validating changes under sdk/cosmos before committing or during code review.
npx skills add https://github.com/Azure/azure-sdk-for-rust --skill cosmos-pre-commit-validation
Use this skill when:
sdk/cosmos/**Follow these steps strictly:
scope argument is specified and is not equal (case-insensitive) to all or *, set the target path to sdk/cosmos/<scope> (for example, if scope is azure_data_cosmos, use sdk/cosmos/azure_data_cosmos as the target path).sdk/cosmos.changed-only is true (the default), restrict scanning to .rs files that differ between the current local branch and main. Use git diff --name-only main -- <target path> (and include per-crate tests/ directories) to obtain the list. Only .rs files in the result set are scanned; all other files are skipped.changed-only is false, scan all .rs files under the target path(s).generated/ subdirectories — these are produced by external tools and must never be modified.sdk/cosmos/AGENTS.md:-D warnings) to match CI behavior.Run clippy with RUSTFLAGS=-D warnings set:
RUSTFLAGS='-D warnings' cargo clippy -p <crate> --all-features --all-targets$env:RUSTFLAGS='-D warnings'; cargo clippy -p <crate> --all-features --all-targets; $env:RUSTFLAGS=$nullauto-fix is true and clippy or other tools modified files,re-run cargo fmt to ensure the auto-fixed code is properly formatted (e.g., cargo clippy --fix can
leave trailing blank lines when removing unused imports).
.vscode/cspell.jsonwith the Cosmos-specific dictionary at sdk/cosmos/.dict.txt. Run locally with:
npx cspell lint --config .vscode/cspell.json --no-must-find-files <target path>/**
If auto-fix is true and unknown words are legitimate (e.g., API type names, technical terms),
add them to sdk/cosmos/.dict.txt.
test_category (e.g., emulator, multi-write) are always compiled but are ignored at runtime unless the corresponding cfg is set via RUSTFLAGS.This means cargo check --tests and cargo test will compile these tests without any special flags, so build errors are caught locally.
RUSTFLAGS is only needed when you want to actually run the tests:
RUSTFLAGS='--cfg test_category="emulator"' cargo test -p azure_data_cosmos --features fault_injection,key_auth --testsRUSTFLAGS='--cfg test_category="multi_write"' cargo test -p azure_data_cosmos --features fault_injection,key_auth --testsOn Windows (PowerShell), set the env var first: $env:RUSTFLAGS='--cfg test_category="emulator"' then run the cargo test command, and clear it afterwards with $env:RUSTFLAGS=$null.
These tests require a live Cosmos DB emulator or multi-region account to run.
If scope targets a specific crate other than azure_data_cosmos, skip these checks.
auto-fix argument is truesdk/cosmosTake azure/cosmos-pre-commit-validation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npx.
Without those the skill loads but fails at the first command.