.github/skills/create-crate/SKILL.md
Create a new Azure SDK crate from a TypeSpec specification.
npx skillsauth add azure/azure-sdk-for-rust create-crateInstall 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.
All new service crates must be generated from TypeSpec specifications in Azure/azure-rest-api-specs. Do not hand-write client libraries from scratch.
Install tsp-client
eng/common/tsp-client/README.md to install dependenciesnpm ci from eng/common/tsp-client/npm exec --prefix eng/common/tsp-client -- tsp-client <command> to invoke it from the repository rootFind the TypeSpec spec
tspconfig.yaml under specification/<service>/ in azure-rest-api-specstspconfig.yaml for @azure-tools/typespec-rust emitter configurationInitialize the crate
npm exec --prefix eng/common/tsp-client -- tsp-client init --tsp-config <url> from the repository root<url> is the GitHub URL to the tspconfig.yamlhttps://github.com/Azure/azure-rest-api-specs/blob/<commit-sha>/specification/<service>/<rp>/tspconfig.yamlGenerate the client
azsdk_package_generate_code MCP tool, ornpm exec --prefix eng/common/tsp-client -- tsp-client update from the crate directoryAdd hand-written wrappers
clients.rs (or similar) for custom client constructors, authentication setup, and convenience methodssrc/generated/Register the crate
members list in the root Cargo.tomlAdd tests, examples, and documentation
#[recorded::test])README.md, and a CHANGELOG.mddevelopment
Enforce consistent struct design conventions across sdk/cosmos crates. Validates visibility modifiers, field privacy, #[non_exhaustive] usage, and construction API patterns (`Default`/`new` with `with_*` setters, or optional separate builders with `builder()`/`build()`), and construction correctness on public structs. Can auto-fix violations or report them as errors.
development
Run pre-commit checks for a specific set of crates. Use this when validating changes under sdk/cosmos before committing or during code review.
tools
Update the TypeSpec emitter for Rust and optionally regenerate all clients
tools
Check and fix formatting and other issues in markdown files using markdownlint-cli2.