-
Notifications
You must be signed in to change notification settings - Fork 2.2k
[Skills] Directory-based package skill discovery (drop registry table) #49478
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
samvaity
merged 1 commit into
Azure:main
from
samvaity:savaity/directory-based-skill-discovery
Jun 12, 2026
+72
−60
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,47 @@ | ||
| # Phase 4: Finalize 📋 | ||
|
|
||
| > 📍 **Phase 4 — Finalize** | Confirm the skill is in its discoverable location and summarize. | ||
|
|
||
| ## Step 1 — Confirm discoverable location | ||
|
|
||
| Package skills are discovered automatically by `find-package-skill`, which looks | ||
| for a `.github/skills/` directory **inside the package directory**. There is no | ||
| central registry to update — placement *is* registration. | ||
|
|
||
| Verify the skill lives at: | ||
|
|
||
| ``` | ||
| sdk/<service>/<package>/.github/skills/<skill-name>/SKILL.md | ||
| ``` | ||
|
|
||
| If it's there, it will be discovered for that package. No further wiring needed. | ||
|
|
||
| ## Step 2 — Summary | ||
|
|
||
| Print a summary of everything created: | ||
|
|
||
| 📋 **Package Skill Created** | ||
|
|
||
| | Item | Path | Status | | ||
| |---|---|---| | ||
| | SKILL.md | `sdk/<service>/<package-name>/.github/skills/<skill-name>/SKILL.md` | Created | | ||
| | architecture.md | `...references/architecture.md` | Created/Skipped | | ||
| | customizations.md | `...references/customizations.md` | Created/Skipped | | ||
| | find-package-skill | discovers automatically via package `.github/skills/` | No action | | ||
| | vally lint | 3/3 checks | Passed | | ||
|
|
||
| **Next steps for the service team:** | ||
| 1. Fill in any `<!-- TODO -->` sections with domain-specific knowledge | ||
| 2. Test the skill by asking an agent to regenerate your package | ||
| 3. Iterate: agent gets something wrong -> update skill -> test again | ||
| 4. Submit a PR | ||
|
|
||
| **Maintaining your skill:** | ||
| - When your package's customizations change, update the skill | ||
| - Keep content static -- no version numbers or release-specific info | ||
|
|
||
| ## Step 3 — CONFIRM | ||
|
|
||
| Question: "The skill is in place and will be discovered automatically. Anything else to adjust?" | ||
|
|
||
| 📍 **Phase 4 complete** | Skill in place and discoverable | Wizard done 🎉 | ||
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,25 +1,31 @@ | ||
| --- | ||
| name: find-package-skill | ||
| description: '**UTILITY SKILL** — Must be consulted before making any changes to packages under sdk/. Provides package-specific domain knowledge that prevents common mistakes. WHEN: add feature to package; fix bug in package; modify package code; regenerate from typespec; change client library.' | ||
| description: '**UTILITY SKILL** — Must be consulted before making any changes to packages under sdk/. Discovers and loads package-specific domain knowledge that prevents common mistakes. WHEN: add feature to package; fix bug in package; modify package code; regenerate from typespec; change client library.' | ||
| --- | ||
|
|
||
| # Find Package Skill | ||
|
|
||
| Before modifying any SDK package in this monorepo, check this registry to see | ||
| if a package-specific skill exists. Package skills contain tribal knowledge | ||
| (architecture, data flows, type mappings, pitfalls) that prevents common mistakes. | ||
| Some SDK packages in this monorepo have **package-specific skills** — tribal | ||
| knowledge (architecture, data flows, type mappings, pitfalls) that prevents | ||
| common mistakes. Before modifying any SDK package, check whether a skill exists | ||
| for it using the steps below. | ||
|
|
||
| Always check this registry before modifying any SDK package — even if you think | ||
| you already know the package well. | ||
| ## How to Discover Package Skills | ||
|
|
||
| ## How to Use | ||
| 1. **Determine the package directory.** If you already know the file path you're | ||
| modifying, extract the package directory from it (e.g., a file at | ||
| `sdk/search/azure-search-documents/src/main/java/com/azure/search/documents/SearchClient.java` | ||
| belongs to the package at `sdk/search/azure-search-documents/`). If you only | ||
| have a package name, search for a matching directory under `sdk/` (package | ||
| directories are named after the Maven artifactId, e.g., | ||
| `com.azure:azure-search-documents` → `sdk/search/azure-search-documents/`). | ||
|
|
||
| 1. Find the package you're modifying in the table below. | ||
| 2. Read the SKILL.md at the listed path using the Read tool. Then read all files under the `references/` directory next to it for additional context. | ||
| 3. If the package isn't listed, no package-specific skill exists yet — proceed normally. | ||
| 2. **Check for a `.github/skills/` directory** inside the package directory. For | ||
| example, check whether `sdk/search/azure-search-documents/.github/skills/` exists. | ||
|
|
||
| ## Package Skills | ||
| 3. **If it exists**, read every `SKILL.md` found under that directory. If a | ||
| `references/` subdirectory exists next to a `SKILL.md`, read all files in it | ||
| too for additional context. | ||
|
|
||
| | Package | Path | | ||
| | -------------------------- | ------------------------------------------------------------------------------------------------- | | ||
| | `azure-search-documents` | `sdk/search/azure-search-documents/.github/skills/azure-search-documents/SKILL.md` | | ||
| 4. **If no `.github/skills/` directory exists** for the package, no | ||
| package-specific skill has been created yet — proceed normally. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.