Skip to content

Agent Skills

Preview Results Reviewed 2026-09-30 purview-dev/results Star on GitHub 1 aspnetcore c-sharp csharp discriminated-unions dotnet error-handling minimal-apis nuget problem-details result-type roslyn source-generator union-types zodsharp

The packages ship agent skills to consumers. A repository that imports Purview.BuildSdk receives them in its own .agents/ folder on the next restore or build, so AI agents working there get the guidance automatically. The content is authored in this repository under src/src/<Project>/Sdk/.agents/** and packed as .agents/**; there is nothing to install by hand.

ContentPackageCovers
skills/purview-results-corePurview.ResultsThe result type, its three states, combinators and the throw-on-misuse contract
skills/purview-results-union-errorsPurview.Results.SourceGeneratorUnion modelling, the generated helpers, the diagnostics table, and the language rules that make the helper necessary
skills/purview-results-http-mappingPurview.Results.AspNetCoreResult-to-HTTP mapping, the failure resolution order, and unmapped-failure 500s
skills/purview-results-zodsharp-validationPurview.Results.ZodSharpZodSharp validation flowing through results
skills/purview-results-zodsharp-problemsPurview.Results.ZodSharp.AspNetCoreRendering validation-carrying failures as ProblemDetails

The generator package also ships the purview-results-union-author agent and the migrate-error-returns-to-result-unions prompt.

  • Modelling or migrating to result error unions → purview-results-union-errors
  • The result type, its states or its combinators → purview-results-core
  • Result-to-HTTP mapping or unmapped-failure 500s → purview-results-http-mapping
  • ZodSharp validation flowing through results → purview-results-zodsharp-validation, then purview-results-zodsharp-problems

Purview.BuildSdk and the source-generator framework packages also deliver their own skills (project placement, SDK configuration, generator authoring and testing, TUnit authoring) into the same .agents/ tree. Those are owned by the package that ships them — changes belong in the owning repository, not here.