Package workflow
Skill gaelic-ghost/socket/plugins/dotnet-skills/skills/package-workflow
Validate .NET package surfaces for F# and C# libraries with project metadata, dotnet pack, local package smoke checks, semantic versioning, and release-boundary guidance.From its SKILL.md
npx -y skills add gaelic-ghost/socket --skill package-workflowAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.6 KB, 890 tokens by cl100k_base, as published. Nobody here has run it
.NET Package Workflow
Purpose
Validate a .NET library package before release or publication.
The practical job is to make package metadata explicit, build and test the library, run dotnet pack, inspect the generated package, and keep publishing as an explicit release step rather than an accidental side effect.
When To Use
- Use this skill when a .NET library is intended to become a NuGet package.
- Use this skill when package metadata, versioning, or release notes are changed.
- Use this skill when adding package validation to F#, C#, or mixed solutions.
- Use this skill before package publication, but do not publish unless the user asks for that release step.
Source Check
Use repo-local .NET files, checked-out dependency sources, Dash MCP or Dash HTTP for installed .NET docsets, and then official Microsoft documentation when Dash/local coverage is missing or stale:
dotnet packdocumentationdotnet builddocumentationdotnet restoredocumentation- NuGet package creation guidance
- NuGet package versioning
Translate documentation into the specific package, project file, and release decision in front of you.
Inspection Workflow
- Identify package-bearing projects:
.fsproj.csprojDirectory.Build.propsDirectory.Packages.props- package metadata fields
- Confirm the intended package boundary:
- one package per public library project
- no accidental app project packages
- no hidden machine-local references
- Check metadata:
PackageIdVersionor repository-owned version sourceAuthorsDescriptionPackageTagsRepositoryUrlPackageLicenseExpressionor license file policy- README and release notes if the repo ships them
- Run validation:
dotnet restoredotnet build --configuration Releasedotnet testdotnet pack --configuration Release --no-build
- Inspect generated package output.
F# Package Notes
For F# packages:
- check
.fsprojcompile order before packaging - keep public modules and types intentional
- avoid exposing implementation-only records or unions as accidental public API
- add C#-friendly API shapes only when there is a real C# consumer or package promise
C# Package Notes
For C# packages:
- keep nullable reference type behavior explicit
- respect analyzer and warnings-as-errors settings
- avoid publishing broad interfaces or service types that only exist for test setup
- document public async contracts clearly
Local Smoke Checks
When package behavior matters, create a temporary consumer outside the package source tree or in an ignored scratch path.
The smoke check should prove:
- the package can be restored from a local output directory
- the public API can be referenced by a fresh project
- F# and C# consumers work when the package promises both
Do not commit scratch consumers unless the repo intentionally keeps package integration tests.
Output Shape
Return:
Package boundary: which project or projects produce packages.Metadata: fields changed or verified.Validation: exact restore, build, test, and pack commands.Artifacts: package output paths.Consumer check: skipped, passed, failed, or not applicable.Release boundary: whether publication is still pending and what explicit release step would be needed.
Guardrails
- Do not publish packages unless the user explicitly asks or the repo-local release workflow requires it.
- Do not pack app projects accidentally.
- Do not commit package metadata that points at machine-local paths.
- Do not use
--no-buildunless a successful Release build already ran in the same validation flow. - Do not treat package creation as proof that public API design is good; inspect the API boundary too.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.