Context
The existing skills in .github/skills/ are repo-maintenance skills — they help agents produce release data (update supported-os, generate the release graph, enrich CVEs, etc.). They are designed for contributors working inside this repository.
We need a complementary external-facing skill that helps agents consume this data to answer user questions. The immediate use case is distro package and dependency information, which is now available as structured JSON in release-notes/{version}/distros/.
Motivating scenario
The VS Code .NET runtime extension is adding Language Model Tools so AI agents can help users install and manage .NET. When a user asks an agent to install .NET on their Linux distro, the agent needs to know:
- What packages to install — the distro-specific package names (e.g.
dotnet-sdk-10.0 on Ubuntu, dotnet-sdk-10.0 on Fedora)
- What dependencies are required — the native library packages the runtime needs (e.g.
libicu78 on Ubuntu 26.04, libicu74 on Ubuntu 24.04)
- What install command to use —
apt-get install vs dnf install vs apk add, etc.
This information is already in the repo as structured JSON (example: Ubuntu 10.0), but there's no skill to help an agent navigate and interpret it.
What the skill should do
Given a user question like "What packages do I need to install .NET 10 on Ubuntu 24.04?", the skill should:
- Navigate to
release-notes/{version}/distros/index.json to find available distros
- Load the distro-specific JSON file (e.g.
ubuntu.json)
- Match the user's distro release to the correct entry
- Return the dependency packages, .NET packages, and install command
Data structure
The distro data is organized as:
release-notes/{version}/distros/
├── index.json # Maps distro filenames → display names
├── dependencies.json # Cross-distro dependency catalog with descriptions
├── ubuntu.json # Per-distro: releases, dependencies, dotnet packages
├── fedora.json
├── alpine.json
└── ...
Each distro file contains per-release entries with:
dependencies[] — native library packages (with canonical id and distro-specific name)
dotnet_packages[] — .NET component packages available from package feeds
install_command — the package manager command template
Design considerations
- Read-only skill — this skill only reads data, it doesn't modify anything
- Multi-version — should support querying across .NET versions (10.0, 11.0, etc.)
- Fuzzy matching — users may say "Ubuntu 24" or "Fedora" without specifying a release; the skill should handle this gracefully
- Composable — the VS Code extension or other tools could invoke this skill (or use the same data) to answer distro questions
- Broader scope later — this starts with distro data but should be extensible to other release-note queries (supported OS, EOL dates, latest versions, CVE history, etc.)
Related
/cc @nagilson
Context
The existing skills in
.github/skills/are repo-maintenance skills — they help agents produce release data (update supported-os, generate the release graph, enrich CVEs, etc.). They are designed for contributors working inside this repository.We need a complementary external-facing skill that helps agents consume this data to answer user questions. The immediate use case is distro package and dependency information, which is now available as structured JSON in
release-notes/{version}/distros/.Motivating scenario
The VS Code .NET runtime extension is adding Language Model Tools so AI agents can help users install and manage .NET. When a user asks an agent to install .NET on their Linux distro, the agent needs to know:
dotnet-sdk-10.0on Ubuntu,dotnet-sdk-10.0on Fedora)libicu78on Ubuntu 26.04,libicu74on Ubuntu 24.04)apt-get installvsdnf installvsapk add, etc.This information is already in the repo as structured JSON (example: Ubuntu 10.0), but there's no skill to help an agent navigate and interpret it.
What the skill should do
Given a user question like "What packages do I need to install .NET 10 on Ubuntu 24.04?", the skill should:
release-notes/{version}/distros/index.jsonto find available distrosubuntu.json)Data structure
The distro data is organized as:
Each distro file contains per-release entries with:
dependencies[]— native library packages (with canonicalidand distro-specificname)dotnet_packages[]— .NET component packages available from package feedsinstall_command— the package manager command templateDesign considerations
Related
/cc @nagilson