Skip to content
Development
Skill

/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 plugin
socket
9200 skills5 MCP

Claude Code

$ npx -y skills add gaelic-ghost/socket --skill package-workflow --agent claude-code

SKILL.md

package-workflow.SKILL.md
name: package-workflow
description: Validate .NET package surfaces for F# and C# libraries with project metadata, dotnet pack, local package smoke checks, semantic versioning, and release-boundary guidance.
license: Apache-2.0
compatibility: Designed for Codex and compatible Agent Skills clients working with NuGet package-oriented .NET SDK projects in F#, C#, or mixed-language solutions.
metadata:
  owner: gaelic-ghost
  repo: socket
  category: dotnet-packaging
allowed-tools: Read Bash(rg:*) Bash(git:*) Bash(dotnet:*)

.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 pack` documentation](https://learn.microsoft.com/dotnet/core/tools/dotnet-pack)
  • [`dotnet build` documentation](https://learn.microsoft.com/dotnet/core/tools/dotnet-build)
  • [`dotnet restore` documentation](https://learn.microsoft.com/dotnet/core/tools/dotnet-restore)
  • [NuGet package creation guidance](https://learn.microsoft.com/nuget/create-packages/creating-a-package-dotnet-cli)
  • [NuGet package versioning](https://learn.microsoft.com/nuget/concepts/package-versioning)

Translate documentation into the specific package, project file, and release decision in front of you.

Inspection Workflow

1. Identify package-bearing projects:

  • `.fsproj`
  • `.csproj`
  • `Directory.Build.props`
  • `Directory.Packages.props`
  • package metadata fields

2. Confirm the intended package boundary:

  • one package per public library project
  • no accidental app project packages
  • no hidden machine-local references

3. Check metadata:

  • `PackageId`
  • `Version` or repository-owned version source
  • `Authors`
  • `Description`
  • `PackageTags`
  • `RepositoryUrl`
  • `PackageLicenseExpression` or license file policy
  • README and release notes if the repo ships them

4. Run validation:

  • `dotnet restore`
  • `dotnet build --configuration Release`
  • `dotnet test`
  • `dotnet pack --configuration Release --no-build`

5. Inspect generated package output.

F# Package Notes

For F# packages:

  • check `.fsproj` compile 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:

1. `Package boundary`: which project or projects produce packages. 2. `Metadata`: fields changed or verified. 3. `Validation`: exact restore, build, test, and pack commands. 4. `Artifacts`: package output paths. 5. `Consumer check`: skipped, passed, failed, or not applicable. 6. `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-build` unless 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.
Read more
@gaelic-ghost
Ships withsocket

Stuff for Agents on macOS Promo audio: Socket Codex Marketplace Promo

9200 skills5 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
9
Star history of gaelic-ghost/socket on GitHub, a chart by star-history.com

Other skills on socket.

orchestrate-agent-work

orchestrate-agent-work

Coordinate bounded worker tasks with a launch envelope, report-back, escalation, and synthesis contract. Use before spawning,…

@gaelic-ghost@gaelic-ghostInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about package-workflow.

Which coding agents can use package-workflow?
package-workflow installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.