Skip to content

Add customization workflow to generate-sdk-locally skill#14821

Merged
samvaity merged 3 commits into
mainfrom
savaity/add-customization-to-generate-sdk-skill
Apr 1, 2026
Merged

Add customization workflow to generate-sdk-locally skill#14821
samvaity merged 3 commits into
mainfrom
savaity/add-customization-to-generate-sdk-skill

Conversation

@samvaity

Copy link
Copy Markdown
Member
  • Add azsdk_typespec_customized_code_update and azsdk_run_typespec_validation to MCP tools table
  • Add explicit Customize step (step 4) for build failure recovery
  • Add trigger phrases for customization/breaking changes in description
  • Add customization-workflow.md reference with detailed steps and common scenarios
  • Update sdk-repos.md build failure section with customization tool references
  • Add customization-workflow.yaml eval task for build failure + customization flow
  • Update edge-case.yaml to expect azsdk_typespec_customized_code_update tool call
  • Bump skill version to 1.1.0

@samvaity samvaity requested review from Copilot, praveenkuttappan, raych1 and ronniegeraghty and removed request for Copilot March 30, 2026 23:55
@samvaity samvaity self-assigned this Mar 30, 2026
Copilot AI review requested due to automatic review settings March 31, 2026 19:50
@samvaity samvaity force-pushed the savaity/add-customization-to-generate-sdk-skill branch from f8f03ce to 082f3db Compare March 31, 2026 19:50
@samvaity samvaity force-pushed the savaity/add-customization-to-generate-sdk-skill branch 2 times, most recently from 1b50956 to ecaff19 Compare March 31, 2026 19:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a customization-focused workflow and accompanying evaluation tasks to the generate-sdk-locally skill, so the skill can recover from build failures and handle common TypeSpec-driven SDK adjustments (renames, hiding operations, analyzer issues, breaking changes).

Changes:

  • Bumps the skill version and expands the skill’s documented workflow to include an explicit Customize step using azsdk_typespec_customized_code_update.
  • Adds multiple new evaluation tasks covering customization-trigger scenarios (rename, hide operation, analyzer errors, breaking changes, duplicate-field conflicts).
  • Adds a new reference doc (customization-workflow.md) and updates existing references to point to the new workflow and validation tool.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
.github/skills/generate-sdk-locally/SKILL.md Updates skill version, tool list, steps, and examples to include customization workflow.
.github/skills/generate-sdk-locally/references/sdk-repos.md Updates build-failure guidance to reference customization + TypeSpec validation and links to the workflow doc.
.github/skills/generate-sdk-locally/references/customization-workflow.md New detailed reference describing entry points, steps, scenarios, and retry logic for customization.
.github/skills/generate-sdk-locally/tasks/edge-case.yaml Updates build failure recovery expectations to include customization tool invocation.
.github/skills/generate-sdk-locally/tasks/rename-client.yaml New eval task for rename requests intended to trigger customization.
.github/skills/generate-sdk-locally/tasks/hide-operation.yaml New eval task for hiding an internal operation via customization.
.github/skills/generate-sdk-locally/tasks/analyzer-errors.yaml New eval task for .NET analyzer error remediation via customization.
.github/skills/generate-sdk-locally/tasks/breaking-changes.yaml New eval task for breaking changes/customization drift scenarios.
.github/skills/generate-sdk-locally/tasks/customization-workflow.yaml New eval task for duplicate-field conflicts after TypeSpec updates.

Comment thread .github/skills/generate-sdk-locally/SKILL.md Outdated
Comment thread .github/skills/generate-sdk-locally/SKILL.md Outdated
Comment thread .github/skills/generate-sdk-locally/tasks/rename-client.yaml
Comment thread .github/skills/generate-sdk-locally/tasks/breaking-changes.yaml
@samvaity samvaity added azsdk-cli Issues related to Azure/azure-sdk-tools::tools/azsdk-cli Scenario 2 Used for tracking work related to the Dev Inner Loop group's Scenario 2 spec. labels Mar 31, 2026
@samvaity samvaity force-pushed the savaity/add-customization-to-generate-sdk-skill branch from ecaff19 to 8e12148 Compare March 31, 2026 20:03
Expand the skill to cover all customization entry points from the spec:
- Build failures (compilation, analyzers, linting)
- Breaking changes from spec updates
- User prompts (rename, hide, restructure)
- API review feedback
- .NET analyzer errors (AZC0030, AZC0012)
- Customization drift after TypeSpec renames
- Duplicate field conflicts

Changes:
- SKILL.md: Add azsdk_typespec_customized_code_update and azsdk_run_typespec_validation
  to MCP tools, add Customize step (step 4), expand description with all trigger
  phrases, add diverse examples covering all entry points, bump to v1.1.0
- references/customization-workflow.md: Document entry points table, two-phase
  workflow (Phase A: TypeSpec decorators, Phase B: code repairs), common scenarios
  with phase mapping, retry logic with max iterations
- references/sdk-repos.md: Update build failure section with tool references
- tasks/customization-workflow.yaml: Duplicate field conflict scenario (Java)
- tasks/breaking-changes.yaml: Customization drift after TypeSpec rename (Java)
- tasks/rename-client.yaml: API review rename request (.NET)
- tasks/analyzer-errors.yaml: .NET analyzer errors (AZC0030/AZC0012)
- tasks/hide-operation.yaml: Hide internal operation (Python)
- tasks/edge-case.yaml: Expect azsdk_typespec_customized_code_update tool call

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@samvaity samvaity force-pushed the savaity/add-customization-to-generate-sdk-skill branch from 8e12148 to 961fce1 Compare March 31, 2026 20:06

@ronniegeraghty ronniegeraghty left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does the tool handle different starting states? And should the skill be what accounts for that?

Examples of different starting states:

# Working Repo TypeSpec State Description
1 Azure REST API Specs Local changes Editing TypeSpec locally within the specs repo before publishing or syncing
2 Azure SDK Repo Local changes Working in SDK repo with locally modified TypeSpec definitions
3 Azure SDK Repo Remote changes (not pulled) SDK repo is local, but TypeSpec updates exist only in the remote repo

Assuming SDK repos are cloned locally for all these.

Comment thread .github/skills/generate-sdk-locally/references/customization-workflow.md Outdated
…orkflow.md

Co-authored-by: Ronnie Geraghty  <ronniegerag@gmail.com>
Comment thread .github/skills/generate-sdk-locally/SKILL.md Outdated
@samvaity

samvaity commented Mar 31, 2026

Copy link
Copy Markdown
Member Author

How does the tool handle different starting states? And should the skill be what accounts for that?

Examples of different starting states:

Working Repo TypeSpec State Description

1 Azure REST API Specs Local changes Editing TypeSpec locally within the specs repo before publishing or syncing
2 Azure SDK Repo Local changes Working in SDK repo with locally modified TypeSpec definitions
3 Azure SDK Repo Remote changes (not pulled) SDK repo is local, but TypeSpec updates exist only in the remote repo
Assuming SDK repos are cloned locally for all these.

The CustoomizedCodeUpdateTool, it takes does take two inputs packagePath (SDK repo) and tspProjectPath (TypeSpec project) so it works cross-repo. But it requires both repos to be cloned locally (scenario 2 prereq).
#3 (remote-only changes) would need a git pull or tsp-client update first. Since it is just a git operation before invoking the tool, not something the tool itself handles.

I believe the #entry points should be enough for the tool invocation in that case and the tool just operates on local paths regardless of the git state.

Co-authored-by: Ray Chen <raychen@microsoft.com>
Comment thread .github/skills/generate-sdk-locally/tasks/analyzer-errors.yaml
@samvaity

samvaity commented Apr 1, 2026

Copy link
Copy Markdown
Member Author

/check-enforcer override

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AzSDK Tools Agent Issue related to the AzSDK Tools Agent. azsdk-cli Issues related to Azure/azure-sdk-tools::tools/azsdk-cli Scenario 2 Used for tracking work related to the Dev Inner Loop group's Scenario 2 spec.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants