.squad/skills/dotnet-ci-cd/SKILL.md
# SKILL: .NET NuGet CI/CD Pipeline > Reusable pattern for .NET projects that produce NuGet packages. ## CI Workflow Pattern (build.yml) **Triggers:** `push` to main + `pull_request` to main. **Key steps (in order):** 1. `dotnet restore <solution>` 2. `dotnet build <solution> -c Release --no-restore` 3. `dotnet test --no-build -c Release --verbosity normal` 4. `dotnet pack -c Release --no-build -o nupkgs` 5. Upload `nupkgs/*.nupkg` as artifact **Best practices:** - Use concurrency groups (`b
npx skillsauth add csharpfritz/aspire-minecraft .squad/skills/dotnet-ci-cdInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Reusable pattern for .NET projects that produce NuGet packages.
Triggers: push to main + pull_request to main.
Key steps (in order):
dotnet restore <solution>dotnet build <solution> -c Release --no-restoredotnet test --no-build -c Release --verbosity normaldotnet pack -c Release --no-build -o nupkgsnupkgs/*.nupkg as artifactBest practices:
build-${{ github.ref }} + cancel-in-progress: true) to kill stale runs.ubuntu-latest + windows-latest for cross-platform verification.--no-restore to build and --no-build to test/pack for speed.Trigger: Push of a v* tag.
Key steps:
dotnet nuget push "nupkgs/*.nupkg" --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicatesoftprops/action-gh-release@v2 attaching nupkg files.Requirements:
NUGET_API_KEY repo secret.permissions: contents: write for release creation.--skip-duplicate prevents failures on re-runs.developer pushes to main → build.yml runs CI
developer tags v0.1.0 → release.yml builds, packs, publishes to NuGet, creates GitHub Release
dotnet pack without --no-build after a build step (double compilation).tools
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
tools
Techniques for visually connecting water bodies (canals, lakes, rivers) in Minecraft
development
# Static Configuration Pattern **Confidence:** low **Source:** earned ## When to Use When a class has compile-time constants (`const`) that need to become runtime-configurable without breaking existing consumers. ## Pattern 1. Convert `const` fields to `static T { get; private set; } = <original value>`. 2. Add a public `Configure*()` method that sets the new values. Call once at startup. 3. Add an `internal static Reset*()` method that restores defaults — needed for test isolation since `p
development
Core conventions and patterns used in the Squad codebase