AgentSkillsCN

dotnet-sdk-align

在有门禁的工作流程中,对.NET SDK的固定版本(`global.json` + CI引用)进行校准,并验证恢复/构建/测试的影响。

SKILL.md
--- frontmatter
name: dotnet-sdk-align
description: Align .NET SDK pinning (`global.json` + CI references) and validate restore/build/test impact in a gated workflow.
triggers:
  - "align dotnet sdk"
  - "update global.json sdk"
  - "sync .NET SDK with CI"
inputs:
  - "mode flag: --dry-run | --execute | --verify-only"
  - "target SDK in execute mode via --sdk=<version>"
outputs:
  - "global.json changes (execute mode)"
  - "verification/report output for impact assessment"
safety:
  - "execute requires clean git tree"
  - "explicit --sdk version required before mutations"
commands:
  - "skills/dotnet-sdk-align/scripts/run.sh --dry-run"
  - "skills/dotnet-sdk-align/scripts/run.sh --execute --sdk=8.0.204"

When to use / when NOT to use

  • Use to standardize SDK versions and avoid local/CI drift.
  • Do not use for package-version upgrades (use package workflow skill).

Preconditions (tools, versions, repo state)

  • dotnet CLI installed.
  • Repo contains .NET files (*.sln, *.csproj, or props files).
  • Clean git state before --execute.

Workflow (DISCOVER → PLAN → EXECUTE → VERIFY → REPORT)

  1. DISCOVER: inspect SDK pinning and CI hints.
  2. PLAN: define target SDK and expected impact.
  3. EXECUTE: update/create global.json for target SDK.
  4. VERIFY: run restore/build/test.
  5. REPORT: summarize alignment status and remaining CI actions.

Exact commands and expected signals

bash
skills/dotnet-sdk-align/scripts/run.sh --dry-run
skills/dotnet-sdk-align/scripts/run.sh --execute --sdk=8.0.204 --ci
skills/dotnet-sdk-align/scripts/run.sh --verify-only --ci

Success: global.json reflects target SDK (execute) and restore/build/test complete. Failure: missing dotnet, dirty tree, or omitted --sdk in execute mode.

If it fails (checklist)

  • Install required .NET SDK locally.
  • Verify SDK version exists (dotnet --list-sdks).
  • Reconcile CI image/toolset with selected SDK.

Final report template

  • Current vs target SDK.
  • Files touched (global.json, CI references).
  • Restore/build/test results.
  • CI changes needed.
  • Rollback command.