Skip to content

Add external-facing skill for distro package and dependency discovery #10333

@richlander

Description

@richlander

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:

  1. What packages to install — the distro-specific package names (e.g. dotnet-sdk-10.0 on Ubuntu, dotnet-sdk-10.0 on Fedora)
  2. What dependencies are required — the native library packages the runtime needs (e.g. libicu78 on Ubuntu 26.04, libicu74 on Ubuntu 24.04)
  3. What install command to useapt-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:

  1. Navigate to release-notes/{version}/distros/index.json to find available distros
  2. Load the distro-specific JSON file (e.g. ubuntu.json)
  3. Match the user's distro release to the correct entry
  4. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-setupIssues related to installing .NET Core

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions