[MCP/Service labels] Read labels, propose a label
- Dominant language
- C#
- Stars
- 135
- Forks
- 260
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 143
Description
## Read labels, propose a label
1. Download [common-labels.csv](https://raw.githubusercontent.com/Azure/azure-sdk-tools/refs/heads/main/tools/github/data/common-labels.csv)
2. Filter by color `e99695`
3. Provide to the LLM (possibly a [resource](https://modelcontextprotocol.io/specification/2025-06-18/server/resources) or a tool)
4. Some kind of prompt/instructions for the system would see if a current project maps to a specific label and then "select" the label
Tools:
* ~(❓need to confirm) Reads `_meta.json` and sees if a label exists~ (`_meta.json` is language-specific and not in the REST API specs repo)
* Get content of common-labels.csv, filter by color, provide output to LLM/agent/copilot in chat
* Given the name of a new label, add the label to `common-labels.csv` in the appropriate alphabetical order, and open a PR in the tools repo with these changes
* ~(❓need to confirm) Writes the label into `_meta.json` for the service~
Prompt/workflow:
* `.github/copilot-instructions.md` -- Under **SDK generation from TypeSpec** add pre-req for getting a label
* Try to infer a label based on the style guide (@ronniegeraghty -- what is the definitive style guide for label names?)
* Check if the inferred label already exists
* If not, prompt the user with the proposed label and open a PR
### How to test
1. Propose a change in the specs repo (like building data-plane SDK for [`contosowidgetmanager`](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/contosowidgetmanager/data-plane))
2. Initiate a conversation with agent
3. Agent should prompt for a service label
4. Ensure the agent tries to correlate existing changes with the service label
5. Ensure agent proposes a new label
6. Allow user to update the proposed label
7. Check that agent opened a PR (make sure and close the PR as test data so nobody reviews it)
Contributor guide
Assessment
This issue has not been assessed yet.