azd-grpc-contracts
Skill573 starsChanged 8 months agoMITView on GitHub
**WORKFLOW SKILL** - Inspects and evolves azd extension protobuf contracts across the stable v1 and preview v1beta channels. Reports the current channel state and delta, validates v1beta additions, implements beta-only services or focused overrides, and safely graduates compatible functionality from v1beta to v1.
In this repository25 other files it gives its agents.
- cli/azd/AGENTS.mdAGENTS.md
- cli/azd/extensions/azure.ai.agents/AGENTS.mdAGENTS.md
- cli/azd/extensions/azure.ai.connections/AGENTS.mdAGENTS.md
- cli/azd/extensions/azure.ai.inspector/AGENTS.mdAGENTS.md
- cli/azd/extensions/azure.ai.projects/AGENTS.mdAGENTS.md
- cli/azd/extensions/azure.ai.routines/AGENTS.mdAGENTS.md
- cli/azd/extensions/azure.ai.skills/AGENTS.mdAGENTS.md
- cli/azd/extensions/azure.ai.toolboxes/AGENTS.mdAGENTS.md
- ext/vscode/AGENTS.mdAGENTS.md
- .github/skills/extension-user-contract-review/evals/fixtures/cli/azd/AGENTS.mdAGENTS.md
- ext/vscode/.github/copilot-instructions.mdCopilot instructions
- .github/copilot-instructions.mdCopilot instructions
- azdSkill
- agentic-workflowsSkill
- azd-code-reviewerSkill
- azd-preflightSkill
- changelog-generationSkill
- extension-user-contract-reviewSkill
- foundry-extension-scenario-authoringSkill
- foundry-extension-scenario-pr-regressionSkill
- foundry-extension-scenario-suite-runSkill
- senseiSkill
- tool-version-upgradeSkill
- weekly-demo-videoSkill
- weekly-reportSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 25
Use this workflow as the safest and easiest path for changing the extension protobuf API.
- Distinctive: line 35
Before changing these files, read:
- Distinctive: line 41
Never edit generated protobuf, facade, or adapter files directly.
- Very specific: line 61
Every stable symbol and method shape must have a compatible counterpart in v1beta.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
azd gRPC contract lifecycle
Use this workflow as the safest and easiest path for changing the extension protobuf API. It owns the relationship between:
- Stable source:
cli/azd/grpc/proto/azd/extensions/v1 - Preview source:
cli/azd/grpc/proto/azd/extensions/v1beta - Generated contracts:
cli/azd/pkg/azdext/contracts/{v1,v1beta} - Stable SDK facade:
cli/azd/pkg/azdext - Generated beta adapters:
cli/azd/internal/grpcserver/versioned_services_generated.go
Before changing these files, read:
cli/azd/AGENTS.mdcli/azd/docs/extensions/contract-versioning.mdcli/azd/grpc/README.md
Never edit generated protobuf, facade, or adapter files directly.
Choose the workflow
| Request | Workflow |
| Explain the current channels or their differences | Inspect state and delta |
| Add a preview field, enum value, method, message, or service | Add to v1beta |
| Move a validated preview capability into stable | Graduate to v1 |
| Review a protobuf change | Validate the change |
{{ references/inspect-and-validate.md }}
{{ references/add-to-v1beta.md }}
{{ references/graduate-to-v1.md }}
Required invariants
v1is compatibility protected and changes only additively.- Every stable symbol and method shape must have a compatible counterpart in
v1beta; equivalently,v1must remain a subset ofv1beta. - A
v1betaaddition must not accidentally alter or remove an existing stable field, enum value, oneof, message, service, method, or streaming shape. - Beta-only behavior on a shared service needs a focused generated override.
Unary adaptation discards beta request fields unknown to
v1. Bidirectional stream adaptation preserves unknown wire fields for compatibility, but does not expose them as typed stable fields. - A beta-only service uses its native
v1betaimplementation rather than a stable adapter. - Graduation adds a compatible shape to
v1; it does not remove the beta route. - Changing an existing public Go accessor from a
v1betareturn type tov1is source-breaking. Stop and get an explicit API migration decision before making that change.
Exit criteria
- The requested contract shape exists in the correct channel.
- Stable-to-beta compatibility passes with an actionable result:
make proto-version-compatibility. - Historical compatibility and lint checks pass.
- Generated files are current.
- Runtime registration and any required focused overrides are covered by tests.
- SDK documentation and
requiredAzdVersionare updated when consumers need a newer host.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

