Andy.Skills 2026.7.21-rc.17

This is a prerelease version of Andy.Skills.
dotnet add package Andy.Skills --version 2026.7.21-rc.17
                    
NuGet\Install-Package Andy.Skills -Version 2026.7.21-rc.17
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Andy.Skills" Version="2026.7.21-rc.17" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Andy.Skills" Version="2026.7.21-rc.17" />
                    
Directory.Packages.props
<PackageReference Include="Andy.Skills" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Andy.Skills --version 2026.7.21-rc.17
                    
#r "nuget: Andy.Skills, 2026.7.21-rc.17"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Andy.Skills@2026.7.21-rc.17
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Andy.Skills&version=2026.7.21-rc.17&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Andy.Skills&version=2026.7.21-rc.17&prerelease
                    
Install as a Cake Tool

Andy.Skills

⚠️ ALPHA — APIs may change without notice. Not for production use.

Agent Skills for .NET: discovery, parsing, and prompt composition for SKILL.md skill packages, following the Agent Skills convention with lazy disclosure — only skill names and descriptions go into the system prompt; a skill's full instructions are read from disk when the agent decides the skill is relevant.

Part of the Andy ecosystem (Andy Engine, Andy CLI) but usable independently.

What's in the box

  • SkillParser — parses SKILL.md manifests (YAML frontmatter + markdown body). No YAML dependency. Handles the frontmatter shapes real skills use: quoted scalars, inline ([a, b]) and block (- item) lists — including block sequences at the same indent as their key — folded (>) / literal (|) scalars, unmarked multi-line plain scalars and multi-line quoted scalars (a wrapped description:), and a one-level metadata: map. Extension structures it doesn't model (embedded JSON flow-maps, nested lists/maps) are tolerated, not rejected. Only a manifest that can't yield a skill throws (no frontmatter, missing name/description, unclosed block); spec-limit lints (an over-long / non-conforming name or description) come back as non-fatal warnings via ParseWithWarnings. Validated against 80,000+ real skills from the skills.sh catalog (~2,400 repos): 98%+ parse.
  • SkillDiscovery — scans skill roots (<root>/<skill-dir>/SKILL.md), with precedence (project skills override user skills) and non-fatal diagnostics for invalid manifests. Conventional roots: <workspace>/.andy/skills, then ~/.andy/skills.
  • SkillPromptComposer — renders the lazy-disclosure summary block for a system prompt.
  • Skill.GetBodyAsync() — loads a skill's full instructions on demand.

Skill layout

.andy/skills/
  pdf-forms/
    SKILL.md          # frontmatter: name, description, [license, allowed-tools, metadata]
    scripts/          # optional resources referenced by the body
    references/

Usage

using Andy.Skills;

var result = await SkillDiscovery.DiscoverAsync(SkillDiscovery.DefaultRoots(workspaceDir));

// Inject one-line summaries into the system prompt (lazy disclosure).
var promptBlock = SkillPromptComposer.Compose(result.Skills);

// Later, when the agent activates a skill:
var body = await result.Skills[0].GetBodyAsync();

Example

A runnable end-to-end demo (discover → compose → activate) lives under examples/Andy.Skills.Examples, with a sample skill tree at examples/Andy.Skills.Examples/skills/pdf-forms/:

dotnet run --project examples/Andy.Skills.Examples

Building

Requires the .NET 10 SDK (the library multi-targets net8.0 and net10.0).

dotnet build
dotnet test

Conformance

SkillParser is validated against the full skills.sh catalog (~80k manifests). The check is committed and re-runnable — run it after any parser change:

conformance/run.sh --limit 0 --max-error-rate 0.5   # full catalog, gate on regressions
conformance/run.sh --limit 300                       # quick sample, ~1 min

See conformance/README.md and docs/skills-sh-catalog-report.md.

Andy.Tools integration

The Andy.Skills.Tools package plugs skills into Andy.Tools / Andy.Engine as two tools: skill — the agent calls it to pull a skill's body on demand (lazy disclosure) — and skill_file, read-only access to a skill's own bundled resources (scripts/, references/, …) confined to that skill's directory. Register them after AddAndyTools:

using Andy.Skills;
using Andy.Skills.Tools;

services
    .AddAndyTools()
    .AddAndySkills(SkillDiscovery.DefaultRoots(workspaceDir).ToArray());

// Compose the one-line summaries into your system prompt so the model knows what's available:
var catalog = provider.GetRequiredService<ISkillCatalog>();
var promptBlock = SkillPromptComposer.Compose(await catalog.GetSkillsAsync());

AddAndySkills registers an ISkillCatalog (discovers + caches the skill list; bodies stay fresh) and the skill + skill_file tools. The core Andy.Skills package stays dependency-free — only Andy.Skills.Tools takes the Andy.Tools dependency.

Roadmap

  • AGENTS.md instruction-file loading (hierarchical), sharing the discovery machinery.

See docs/design.md for the full design and integration plan.

License

Apache-2.0

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Andy.Skills:

Package Downloads
Andy.Skills.Tools

Andy.Tools adapter for Andy.Skills — a `skill` tool and AddAndySkills DI extension for lazy skill loading.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2026.7.21-rc.17 631 7/21/2026
2026.7.8-rc.15 109 7/8/2026
2026.7.7-rc.10 86 7/7/2026
2026.7.7-rc.8 94 7/7/2026
2026.7.6-rc.6 89 7/6/2026
2026.7.5-rc.1 90 7/5/2026