**UTILITY SKILL** — Must be consulted for SDK development workflow tasks. Routes agents to the correct tools and documentation for building, testing, linting, formatting, provisioning, deploying, and other package development tasks. WHEN: "build package", "run tests", "lint code", "format code", "run checks", "prepare samples", "publish samples", "apply customization", "run migrations", "bump version", "extract API", "update snippets", "check API compatibility", "manage test recordings", "provision test resources", "deploy test resources", "create test resources", "set up test environment", "authenticate to Azure", "login to Azure", "release package", "increment version", "troubleshoot CI", "fix CI failure", "CredScan", "credential scan", "push recordings", "asset sync", "update recordings".
npx skills add https://github.com/Azure/azure-sdk-for-js --skill sdk-workflow
This skill routes you to the correct tools and documentation for common SDK
development tasks. Read the referenced docs — don't guess at commands.
Every code change must pass the checks that CI defines for the affected package
locally before you push or open a PR. This includes every pnpm workspace
package, not just sdk/*, including common/tools/* and
eng/containers/turborepo-remote-cache. Tools elsewhere under eng/* are not
workspace packages and use package-specific managers and scripts, so follow
their CI configuration.
For a pnpm workspace package, from its directory:
pnpm format — auto-format with Prettier (this is what fixes acheck-format CI failure).
pnpm check-format — verify formatting is clean (what CI runs).pnpm lint — check lint (pnpm lint:fix to auto-fix where possible).pnpm turbo build --filter=<package-name>... --token 1.test script; for sdk/*,npx dev-tool check --tag=local runs build and unit tests.
For sdk/* packages, npx dev-tool check --fix bundles format + lint +
package.json validation in one step.
| What you need | Where to look |
| ------------- | ------------- |
| Dev workflows (build, test, lint, install deps, clean) | CONTRIBUTING.md § "Development Workflows" |
| Dev-tool CLI commands (checks, samples, API extraction, etc.) | common/tools/dev-tool/README.md |
| Writing and running tests | documentation/Quickstart-on-how-to-write-tests.md |
| Test recordings (record, playback, push) | documentation/Quickstart-on-how-to-write-tests.md § "Recording" |
| Provisioning test resources | eng/common/TestResources/README.md |
| Linting rules and troubleshooting | documentation/linting.md |
| Code generation from TypeSpec | documentation/Generate-code-from-TypeSpec.md |
| Customization after code generation | documentation/modular-customization.md |
| Build system (dual emit with warp) | documentation/dual-emitting-using-warp.md |
| Dependency management | documentation/dependency-management.md |
| Min/max dependency version testing | eng/tools/dependency-testing/README.md |
| Post-generation steps (changelog, samples, release prep) | documentation/steps-after-generations.md |
| Bundling for browser | documentation/Bundling.md |
| Resolving pnpm-lock.yaml merge conflicts | documentation/resolve-pnpm-lock-merge-conflict.md |
| Writing and running perf tests | sdk/test-utils/perf/GettingStarted.md |
| TypeSpec client generator CLI | eng/common/tsp-client/README.md |
| Code review agents (archie, scribe, sentinel, tester, dash, dexter) | documentation/reviewer-agents.md |
| Troubleshooting CI failures | documentation/Troubleshoot-ci-failure.md |
| Asset sync workflow (test recordings) | sdk/test-utils/recorder/ASSET_SYNC_WORKFLOW.md |
| CredScan suppression process | documentation/credscan-process.md |
pnpm or node are not available, download and installthem before running any commands. Provisioning test resources requires PowerShell 7+
(pwsh) and the Azure PowerShell module. If pwsh is not installed, install it
from https://learn.microsoft.com/powershell/scripting/install/installing-powershell,
then run Install-Module -Name Az -Force -AllowClobber to install the Az module.
Always run pnpm install before building or running any dev-tool commands.
pnpm install fails due to feedauthentication errors, or when adding new packages that are not yet cached for
anonymous access, authenticate to the Azure Artifacts feed by running
npx artifacts-npm-credprovider at the repo root. pnpm is configured to install
from the internal Azure Artifacts feed (devfeed); anonymous read access works for
packages already in the feed, but authenticated access may be required when
installing new or updated packages. See CONTRIBUTING.md §
"Authenticating to the Azure DevOps npm feed" for details.
pnpm turbo build --filter=<package-name>... --token 1 (note the trailing ...).
Running npm run build in a package directory will fail if dependencies aren't built.
dev-tool under the hood.Use npx dev-tool <command> --help for detailed options. Dev-tool does not need
to be built — it runs via tsx after pnpm install.
npx dev-tool check runs format, lint, build, test, and package.jsonvalidation. Use --fix to auto-repair, --tag to select check categories.
src/ after a release, the packageversion must be incremented. Use npx dev-tool package increment-version to bump
the version in package.json, update tracked version constants, and add a new
changelog entry. Before opening or updating a PR, verify whether a version bump is needed
by running the following from the repo root:
node eng/tools/ci-runner/index.js check-package-version <service-dir> -packages "<artifact-name>"
where <service-dir> is the first path segment after sdk/ (e.g. keyvault for
sdk/keyvault/keyvault-keys) and <artifact-name> is the package name with @
removed and / replaced by - (e.g. azure-keyvault-keys for
@azure/keyvault-keys). If the check exits with a non-zero code, run
npx dev-tool package increment-version from the package directory and commit the
result before opening the PR or pushing updates to PRs.
recording, or provisioning test resources. Always authenticate using the interactive
browser-based login flow (e.g. Connect-AzAccount or az login). Never use device
code authentication.
New-TestResources.ps1,use the TME tenant and its subscription Azure SDK Test Resources - TME
(4d042dc6-fe17-4698-a23f-ec6a8d1e98f4). The script auto-selects this subscription
when it detects a TME tenant, but you can also pass -SubscriptionId explicitly.
After provisioning, write the output environment variables to a .env file in every
library under the service folder. For example, for sdk/keyvault, write the .env
file in sdk/keyvault/keyvault-keys, sdk/keyvault/keyvault-certificates, etc.
npx dev-tool run test:vitest automatically manages the test proxylifecycle. You do not need to start it manually.
See documentation/reviewer-agents.md for details on each agent — archie
(API design), scribe (documentation), sentinel (security), tester
(test coverage), dash (performance), dexter (dependencies),
mgmt-review (management SDKs).
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup
Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).
React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
Next.js best practices - file conventions, RSC boundaries, data patterns, async APIs, metadata, error handling, route handlers, image/font optimization, bundling
Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification
Take azure/sdk-workflow 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 npm, npx.
Without those the skill loads but fails at the first command.