SmartSkills.Core
0.1.0-preview2
This is a prerelease version of SmartSkills.Core.
dotnet add package SmartSkills.Core --version 0.1.0-preview2
NuGet\Install-Package SmartSkills.Core -Version 0.1.0-preview2
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="SmartSkills.Core" Version="0.1.0-preview2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SmartSkills.Core" Version="0.1.0-preview2" />
<PackageReference Include="SmartSkills.Core" />
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 SmartSkills.Core --version 0.1.0-preview2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: SmartSkills.Core, 0.1.0-preview2"
#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 SmartSkills.Core@0.1.0-preview2
#: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=SmartSkills.Core&version=0.1.0-preview2&prerelease
#tool nuget:?package=SmartSkills.Core&version=0.1.0-preview2&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
SmartSkills.Core
Core SDK library for SmartSkills — scan project dependencies, match them against skill registries, and install agent skills automatically.
Installation
dotnet add package SmartSkills.Core
Getting Started
Register all SmartSkills services with a single extension method:
using Microsoft.Extensions.DependencyInjection;
using SmartSkills.Core;
var services = new ServiceCollection();
services.AddSmartSkills();
This registers scanning, matching, installation, caching, and provider services as singletons.
Key Services
| Interface | Description |
|---|---|
ILibraryScanner |
Scans projects, solutions, or directories for package references |
ISkillMatcher |
Matches resolved packages against skill registry entries using exact and glob patterns |
ISkillInstaller |
Orchestrates the full install/restore/uninstall workflow |
ISkillRegistry |
Loads and merges built-in and custom skill registries |
IProjectDetector |
Auto-detects project ecosystems (.NET, Node.js, Python, Java) in a directory |
ISkillLockFileStore |
Reads and writes the smart-skills.lock.json lock file |
ISkillSourceProviderFactory |
Creates GitHub or Azure DevOps providers from a repository URL |
Scanning
var scanner = serviceProvider.GetRequiredService<ILibraryScanner>();
// Scan a single project
var packages = await scanner.ScanProjectAsync("path/to/MyProject.csproj");
// Scan a solution
var packages = await scanner.ScanSolutionAsync("path/to/MySolution.sln");
// Auto-detect and scan all projects in a directory
var packages = await scanner.ScanDirectoryAsync("path/to/repo");
// Recursive scan with depth control
var packages = await scanner.ScanDirectoryAsync("path/to/repo", new ProjectDetectionOptions
{
Recursive = true,
MaxDepth = 3
});
Supported Ecosystems
| Ecosystem | Project Files |
|---|---|
| .NET | .csproj, .fsproj, .vbproj, .sln, .slnx |
| Node.js | package.json (npm, yarn, pnpm, bun) |
| Python | pyproject.toml, Pipfile.lock, requirements.txt, uv.lock |
| Java | pom.xml, build.gradle |
Registry & Matching
using SmartSkills.Core.Registry;
// Load only the built-in embedded registry
var entries = RegistryIndexParser.LoadEmbedded();
// Merge built-in + custom registries
var entries = RegistryIndexParser.LoadMerged(new[]
{
"path/to/my-team-skills.json",
"path/to/project-skills.json"
});
// Match packages against registry
var matcher = serviceProvider.GetRequiredService<ISkillMatcher>();
var matched = matcher.Match(resolvedPackages, registryEntries);
Package patterns support exact match and glob syntax:
Azure.Identity— matches exactlyAzure.Identity.*— matches any package starting withAzure.Identity.
Installation Workflow
var installer = serviceProvider.GetRequiredService<ISkillInstaller>();
// Install skills for a project
var result = await installer.InstallAsync(new InstallOptions
{
ProjectPath = "path/to/project",
DryRun = false,
Force = false
});
// result.Installed, result.Updated, result.SkippedUpToDate, result.Failed
// Restore skills from lock file
await installer.RestoreAsync("path/to/project");
// Remove a skill
await installer.UninstallAsync("skill-name", "path/to/project");
Skill Providers
Skills are fetched from remote repositories. The provider is auto-detected from the URL:
| Provider | URL Pattern | Authentication |
|---|---|---|
| GitHub | https://github.com/{owner}/{repo} |
Public repos — none required |
| Azure DevOps | https://dev.azure.com/{org}/{project}/_git/{repo} |
DefaultAzureCredential (Azure CLI, env vars, managed identity) |
Configuration
| Class | Property | Default |
|---|---|---|
ProjectDetectionOptions |
Recursive |
false |
ProjectDetectionOptions |
MaxDepth |
5 |
InstallOptions |
DryRun |
false |
InstallOptions |
Force |
false |
Further Reading
- SmartSkills repository — full documentation, CLI tool, and MSBuild integration
- Agent Skills specification
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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
- Azure.Identity (>= 1.17.1)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Options (>= 10.0.3)
- Microsoft.VisualStudio.SolutionPersistence (>= 1.0.52)
- Tomlyn (>= 0.20.0)
- YamlDotNet (>= 16.3.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview2 | 51 | 2/14/2026 |
| 0.1.0-preview | 49 | 2/12/2026 |