Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ tags:
area: azsdk-common-apiview-feedback-resolution
type: ci-gate

config:
defaults:
runs: 1
timeout: "90s"
model: claude-opus-4.6
Expand All @@ -19,30 +19,52 @@ scoring:

stimuli:
- name: apiview-basic-001
prompt: "My Python SDK PR has APIView comments that I need to address. Can you help me retrieve and resolve them?"
prompt: "My Python SDK PR has APIView comments at https://spa.apiview.dev/review/mock-python-sdk?activeApiRevisionId=mock-python-revision that I need to address. Can you retrieve and resolve them?"
# Load the real skill so the executor can route to it and call its tools.
environment: &apiviewSkill
skills:
- ..
graders:
- type: skill-invocation
config:
required: ["azsdk-common-apiview-feedback-resolution"]
- type: tool-calls
config:
required:
- name: azure-sdk-mcp-azsdk_apiview_get_comments

- name: apiview-edge-001
prompt: "An APIView reviewer says I need to rename 'ComputeProvisioningState' to 'ProvisioningState' in my SDK. Use the SDK customization tools to apply this rename."
prompt: "An APIView reviewer at https://spa.apiview.dev/review/mock-dotnet-sdk?activeApiRevisionId=mock-dotnet-revision says I need to rename 'ComputeProvisioningState' to 'ProvisioningState' in the .NET SDK package sdk/compute/Azure.ResourceManager.Compute (~/repos/azure-sdk-for-net). Retrieve the feedback and use the SDK customization tools to apply this rename."
environment: *apiviewSkill
graders:
- type: output-not-contains
config:
substring: "cannot help"
- type: tool-calls
config:
required:
- name: azure-sdk-mcp-azsdk_apiview_get_comments
- name: azure-sdk-mcp-azsdk_customized_code_update

- name: apiview-no-feedback-001
prompt: "Check if there are any APIView comments on my .NET SDK PR that I need to address before release."
prompt: "Resolve APIView feedback for my .NET SDK PR. Start by checking https://spa.apiview.dev/review/mock-dotnet-sdk?activeApiRevisionId=mock-no-feedback; if there are no comments, report that clearly."
environment: *apiviewSkill
graders:
- type: tool-calls
config:
required:
- name: azure-sdk-mcp-azsdk_apiview_get_comments
- type: output-contains
config:
substring: "APIView"

- name: apiview-negative-001
prompt: "I need to create a new TypeSpec project for my Azure Storage service."
prompt: "Author Azure TypeSpec by adding an optional color property to the WidgetSuite model in main.tsp."
environment: *apiviewSkill
graders:
- type: skill-invocation
config:
disallowed: ["azsdk-common-apiview-feedback-resolution"]
- type: tool-calls
config:
disallowed:
Expand All @@ -52,15 +74,27 @@ stimuli:
substring: "APIView"

- name: basic-trigger
prompt: "I have APIView comments on my SDK PR that need to be resolved. Can you help?"
prompt: "I have APIView comments at https://spa.apiview.dev/review/mock-sdk?activeApiRevisionId=mock-basic-trigger on my SDK PR that need to be resolved. Can you help?"
environment: *apiviewSkill
graders:
- type: skill-invocation
config:
required: ["azsdk-common-apiview-feedback-resolution"]
- type: tool-calls
config:
required:
- name: azure-sdk-mcp-azsdk_apiview_get_comments
- type: output-contains
config:
substring: "APIView"

- name: anti-trigger
prompt: "How do I set up a new Azure Storage account?"
environment: *apiviewSkill
graders:
- type: skill-invocation
config:
disallowed: ["azsdk-common-apiview-feedback-resolution"]
- type: output-not-contains
config:
substring: "APIView"
Expand All @@ -76,7 +110,15 @@ stimuli:

- name: url-trigger
prompt: "I have review comments on my SDK PR from this page: https://spa.apiview.dev/review/abc123?activeApiRevisionId=def456 — can you help me resolve them?"
environment: *apiviewSkill
graders:
- type: skill-invocation
config:
required: ["azsdk-common-apiview-feedback-resolution"]
- type: tool-calls
config:
required:
- name: azure-sdk-mcp-azsdk_apiview_get_comments
- type: output-contains
config:
substring: "apiview"
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ tags:
area: azsdk-common-apiview-feedback-resolution
type: ci-gate

config:
defaults:
runs: 1
timeout: "90s"
model: claude-opus-4.6
Expand All @@ -20,79 +20,122 @@ scoring:
stimuli:
- name: trigger-resolve-apiview-feedback-on-my-pr
prompt: "resolve APIView feedback on my PR"
environment:
skills:
- ..
graders:
- type: skill-invocation
config:
required: ["azsdk-common-apiview-feedback-resolution"]
- name: trigger-fix-apiview-comments
prompt: "fix APIView comments"
environment:
skills:
- ..
graders:
- type: skill-invocation
config:
required: ["azsdk-common-apiview-feedback-resolution"]
- name: trigger-address-api-review-feedback
prompt: "address API review feedback"
environment:
skills:
- ..
graders:
- type: skill-invocation
config:
required: ["azsdk-common-apiview-feedback-resolution"]
- name: trigger-apiview-shows-issues-with-my-sdk
prompt: "APIView shows issues with my SDK"
prompt: "My SDK has APIView issues at https://spa.apiview.dev/review/mock-sdk?activeApiRevisionId=mock-issues. Retrieve and resolve the feedback."
environment:
skills:
- ..
graders:
- type: skill-invocation
config:
required: ["azsdk-common-apiview-feedback-resolution"]
- name: trigger-help-me-with-apiview-suggestions
prompt: "help me with APIView suggestions"
environment:
skills:
- ..
graders:
- type: skill-invocation
config:
required: ["azsdk-common-apiview-feedback-resolution"]
- name: trigger-fix-comments-apiview-url-1
prompt: "Help me fix these comments: https://spa.apiview.dev/review/0qw98r9qwur9q823r?activeApiRevisionId=afiq948tquajf8jq9f"
environment:
skills:
- ..
graders:
- type: skill-invocation
config:
required: ["azsdk-common-apiview-feedback-resolution"]
- name: trigger-address-feedback-apiview-url-2
prompt: "Address this feedback: https://spa.apiview.dev/review/akldfja9qjta498tjaejg0?activeApiRevisionId=odiufa9sefighj98439"
environment:
skills:
- ..
graders:
- type: skill-invocation
config:
required: ["azsdk-common-apiview-feedback-resolution"]
- name: trigger-resolve-comments-staging-url
prompt: "Resolve these comments: https://apiviewstagingtest.com/review/akldfja9qjta498tjaejg0?activeApiRevisionId=odiufa9sefighj98439"
environment:
skills:
- ..
graders:
- type: skill-invocation
config:
required: ["azsdk-common-apiview-feedback-resolution"]

- name: anti-trigger-deploy-my-azure-function
prompt: "deploy my Azure Function"
environment:
skills:
- ..
graders:
- type: skill-invocation
config:
disallowed: ["azsdk-common-apiview-feedback-resolution"]
- name: anti-trigger-fix-my-pipeline-build-error
prompt: "fix my pipeline build error"
environment:
skills:
- ..
- ../../azsdk-common-pipeline-fixer
graders:
- type: skill-invocation
config:
required: ["azsdk-common-pipeline-fixer"]
disallowed: ["azsdk-common-apiview-feedback-resolution"]
- name: anti-trigger-create-a-new-typespec-definition
prompt: "create a new TypeSpec definition"
prompt: "Author Azure TypeSpec by adding an optional color property to the WidgetSuite model in main.tsp."
environment:
skills:
- ..
graders:
- type: skill-invocation
config:
disallowed: ["azsdk-common-apiview-feedback-resolution"]
- name: anti-trigger-how-do-i-release-an-sdk-package
prompt: "how do I release an SDK package"
environment:
skills:
- ..
- ../../azsdk-common-sdk-release
graders:
- type: skill-invocation
config:
required: ["azsdk-common-sdk-release"]
disallowed: ["azsdk-common-apiview-feedback-resolution"]
- name: anti-trigger-set-up-azure-storage-account
prompt: "set up Azure Storage account"
environment:
skills:
- ..
graders:
- type: skill-invocation
config:
Expand Down
3 changes: 3 additions & 0 deletions .github/skills/azsdk-common-generate-sdk-locally/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ DO NOT USE FOR: publishing to package registries, CI pipeline configuration, API

## Rules

- This skill generates a **single language** SDK **locally**. If the user asks to "generate SDK for **all languages**", to generate **without a local clone**, or wants SDK **pull requests created** for them (release plan / pipeline flow), do **not** generate locally — call `azure-sdk-mcp:azsdk_run_generate_sdk` instead. It runs the SDK generation pipeline for each language and produces the SDK pull requests.
Comment thread
helen229 marked this conversation as resolved.
- Never use `azure-sdk-mcp:azsdk_get_sdk_pull_request_link` or `azure-sdk-mcp:azsdk_get_pull_request` to _generate_ an SDK; those only retrieve links for SDKs that were already generated.
- Requires the `azure-sdk-mcp` server for the MCP workflow; without MCP, use `npm exec --prefix eng/common/tsp-client -- tsp-client` CLI.
- Verify the target language repo and the correct TypeSpec configuration file before generation.
- After generation or customization, run the check and test steps before updating metadata or finalizing changes.
Expand Down Expand Up @@ -83,6 +85,7 @@ Prerequisites: azure-sdk-mcp server must be running. Without MCP, use `npx tsp-c

## Troubleshooting

- For "generate SDK for all languages", pipeline-based generation, or when no local SDK clone exists, call `azure-sdk-mcp:azsdk_run_generate_sdk` instead of the local generate flow, and never substitute `azure-sdk-mcp:azsdk_get_sdk_pull_request_link` / `azure-sdk-mcp:azsdk_get_pull_request` for generation.
- Run `azure-sdk-mcp:azsdk_verify_setup` to confirm MCP and tools.
- If build fails with type conflicts, breaking changes, analyzer errors, or customization drift, use `azure-sdk-mcp:azsdk_customized_code_update` to apply customizations.
- The customization tool uses a two-phase approach: TypeSpec decorators first (Phase A), then code repairs if needed (Phase B).
Expand Down
Loading
Loading