codegen

A workflow for generating code from TypeSpec, a language for describing APIs and their data types. It uses a project file named tsp-location.yaml to locate the TypeSpec inputs and tools.

In plain words
What is it for?
Use it to update code-generation tooling, sync TypeSpec definitions, generate code, optionally save the synced inputs, or change the recorded source commit before generation.
Why use it?
It gives a defined process for updating the generator, synchronizing TypeSpec sources, and producing code from them. This avoids running the workflow in a directory that lacks the required project file.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/azure/azure-sdk-for-java/codegen
Any agent
npx skills add Azure/azure-sdk-for-java --skill codegen
Clone the repo
git clone --depth 1 https://github.com/Azure/azure-sdk-for-java

Made for: Claude Code, Codex.

Per session 37 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 660 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00037 $0.00660
Opus 5 $0.00018 $0.00330
Sonnet 5 $0.00007 $0.00132
Haiku 4.5 $0.00004 $0.00066

Measured yesterday against content hash 460f42fccb27, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

codegen scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

sdk/ai/.workflow_docs/codegen/SKILL.md · 62 lines

How it starts

The opening of the file, as written. The whole thing — 62 lines — stays where its author put it; the contents beside it link to each section on GitHub.

TypeSpec Code Generation (tsp-client)

Use this skill to run tsp-client workflows for projects that include a tsp-location.yaml file.

Preconditions

  • You must be in the directory that contains tsp-location.yaml.
  • If the file is missing, warn the user and ask for the correct directory (do not run commands).

Commit hash update

If the user provides a commit hash, update the commit: field in tsp-location.yaml before running tsp-client.

  • Read the file and locate the commit: line.
  • Replace the value with the provided hash (keep the same key name and formatting).
  • Example:
    • Before: commit: 6267b6...
    • After: commit: <new_hash>

Commands

tsp-client update

Pull the latest codegen tooling or definitions (default action when the user is vague).

tsp-client update

tsp-client sync

Fetch/sync TypeSpec inputs for the project.

tsp-client sync

tsp-client generate

Generate code from TypeSpec inputs.

tsp-client generate

Keep the synced TypeSpec inputs:

tsp-client generate --save-inputs

Steps

  1. Verify tsp-location.yaml exists in the current directory. If not, stop and ask for the correct location.
  2. If the user provided a commit hash, update the commit: value in tsp-location.yaml.
  3. Determine the user intent:
    • Refresh/update/ingest changes from a commit: run tsp-client update.
    • Fetch/sync spec from the current commit: run tsp-client sync.
    • Generate from fetched spec: run tsp-client generate (use --save-inputs only if the user asks to keep inputs).
    • Generate (no fetch requested): run tsp-client generate.
  4. If the user doesn’t specify, default to tsp-client update.
  5. If the project defines or creates a TempTypeSpecFiles folder and the user wants code generation, run tsp-client generate (with --save-inputs if requested).
  6. If a tsp-client command fails, report the error output and suggest checking the TypeSpec repo/commit referenced in tsp-location.yaml. Build a GitHub URL from repo: and directory: (and include the commit: as the ref), e.g.:
    • Repo: Azure/azure-rest-api-specs
    • Commit: 6267b6...
    • Directory: specification/cognitiveservices/OpenAI.Inference
    • URL: https://github.com/Azure/azure-rest-api-specs/tree/6267b6.../specification/cognitiveservices/OpenAI.Inference

Read the full file on GitHub · 62 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 62 lines · 37 tokens per session scan A 460f42fccb27

Subscribe to this mod's changes

codegen is a skill published in the GitHub repository Azure/azure-sdk-for-java (2,566 stars, last pushed 2d ago), licensed MIT. It adds 37 tokens to every session and 660 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

dpg-migration

Migration logic for Azure SDK for .NET data-plane libraries migrating from AutoRest/Swagger to TypeSpec-based generation. Uses MCP tools from the generator-agent server for automated deterministic fixes.

Azure/azure-sdk-for-net · 41 tokens

csharp-azure-spector-coverage-gaps

Discovers and implements gaps in Spector test coverage for the Azure C# HTTP client emitter. Use when asked to find missing Spector scenarios, add Spector test coverage, or implement a specific Spector spec for the Azure C# emitter. Can also compare coverage between the Azure dashboard and the Standard (TypeSpec core)…

Azure/azure-sdk-for-net · 78 tokens

auto-build-repair

Headless, bounded repair of custom-code build failures in an already-generated Azure SDK PR. Thin wrapper over the shared azure-sdk-mcp:azsdkcustomizedcodeupdate engine in custom-code-only scope (editScope: CustomCode); the skill owns the iterate-until-green loop, capped by a per-language maxIterations read from…

Azure/azure-sdk-for-net · 149 tokens

azure-sdk-mgmt-pr-review

Review Azure SDK management-plane pull requests, check naming conventions, API compatibility, and code quality.

Azure/azure-sdk-for-net · 26 tokens

mgmt-review-comment-resolution

Resolve review comments on Azure management-plane .NET SDK PRs. Handles renaming types/properties, changing property types, and other API surface adjustments by updating TypeSpec client.tsp and regenerating.

Azure/azure-sdk-for-net · 46 tokens

mitigate-breaking-changes

Patterns and techniques for mitigating breaking changes during Azure management-plane SDK migration from Swagger/AutoRest to TypeSpec. Covers SDK-side customizations (partial classes, CodeGenType, CodeGenSuppress) and TypeSpec decorator customizations (clientName, access, markAsPageable, alternateType…

Azure/azure-sdk-for-net · 68 tokens