netdaemon-nuget-upgrade
Updates NetDaemon NuGet packages. Consolidates updates while protecting MQTT dependencies.
Install
mkdir -p .claude/skills/netdaemon-nuget-upgrade && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18307" && unzip -o skill.zip -d .claude/skills/netdaemon-nuget-upgrade && rm skill.zipInstalls to .claude/skills/netdaemon-nuget-upgrade
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
NetDaemon project workflow for consolidating Dependabot and NuGet dependency updates with dotnet-outdated while excluding MQTT packages. Use when working in net-daemon/netdaemon to upgrade NuGet packages, verify no MQTT package versions changed, run tests, and publish a dependency-update PR with gh-axi.Key capabilities
- →Upgrade NetDaemon NuGet packages
- →Exclude MQTT packages from updates
- →Run dry-run of dotnet outdated
- →Verify package diff before testing
- →Run full test command for NetDaemon solution
How it works
The skill creates a new branch, runs `dotnet outdated` to identify and apply NuGet package updates while excluding MQTT packages, verifies the changes, runs tests, and then creates a pull request.
Inputs & outputs
When to use netdaemon-nuget-upgrade
- →Upgrading NuGet dependencies
- →Managing project library updates
- →Validating dependency changes
About this skill
NetDaemon NuGet Upgrade
Purpose
Use this project-local workflow to upgrade NetDaemon NuGet packages and prove the resulting dependency set before publishing it.
Ground Rules
- Work from the NetDaemon repo root unless the user gives another checkout.
- Inspect
git statusfirst and preserve unrelated work. When the user requests a branch without a worktree, work directly in the checkout and keep the dependency change on its own branch. - Follow
AGENTS.md: usegh-axifor GitHub work and never add an agent co-author. - Use the existing repo label
pr: dependency-updatewith the space after the colon. Do not create a duplicate no-space label. - Upgrade every package reported by the dry-run when the user asks for all packages. Do not silently exclude MQTT or other package families. Call out major-version updates before applying them.
- Only commit, push, or open a PR when the user authorizes those actions.
- If the task includes merging a PR, ask the user immediately before each merge.
Workflow
- Fetch
origin, confirm that the worktree is clean, update localmainwith a fast-forward only, and create a branch such ascodex/upgrade-nuget-packages. Use a date or short suffix if that branch already exists. - Check the tool:
Ifdotnet outdated --versiondotnet-outdatedis missing, install or restore it only after confirming the appropriate project-local/global approach. If .NET first-run output mentionsdotnet workload update, treat that as informational; do not upgrade the SDK or workloads unless the user requests it. If an isolated execution environment fails while the user's CLI works, retry with normal local .NET/NuGet access before changingglobal.json, the SDK, or project files. - Run the dry-run exactly:
Review the proposed package IDs and highlight major-version changes.dotnet outdated - Apply the update only after the dry-run is clean:
dotnet outdated -u - Verify the package diff before testing:
Confirm that only intended project files and package versions changed.git diff --stat git diff --check - Run the full test command:
If the only failure is the Docker-backed integration project reportingdotnet test NetDaemon.sln --configuration Release --logger "trx;LogFileName=netdaemon-tests.trx" --verbosity quietDockerUnavailableException, inactive Docker, or an unreachable Docker socket, treat it as a local environment limitation. The owner will handle Docker; do not block the dependency-update PR solely on that local Docker failure. - If Docker blocks local integration tests, still run the CI unit-test projects explicitly:
Fix any non-Docker test, build, lint, or diff-check failure before publishing.dotnet test src/HassModel/NetDaemon.HassModel.Tests --no-build --configuration Release --logger "trx;LogFileName=unit-hassmodel.trx" --verbosity quiet dotnet test src/Extensions/NetDaemon.Extensions.Scheduling.Tests --no-build --configuration Release --logger "trx;LogFileName=unit-scheduling.trx" --verbosity quiet dotnet test src/Client/NetDaemon.HassClient.Tests --no-build --configuration Release --logger "trx;LogFileName=unit-hassclient.trx" --verbosity quiet dotnet test src/AppModel/NetDaemon.AppModel.Tests --no-build --configuration Release --logger "trx;LogFileName=unit-appmodel.trx" --verbosity quiet dotnet test src/Runtime/NetDaemon.Runtime.Tests --no-build --configuration Release --logger "trx;LogFileName=unit-runtime.trx" --verbosity quiet - Re-run the dry-run and require this result before publishing:
Confirm that it reportsdotnet outdatedNo outdated dependencies were detected. - Stage only intended project-file changes and any user-requested process files. Do not stage
TestResultsor other generated outputs. Then verify the staged diff:git diff --cached --check git diff --cached --stat - Commit with a plain message such as:
git commit -m "Upgrade NuGet packages"
Preserve repository signing behavior and verify the resulting commit signature and clean worktree before pushing.
11. Push the branch and create the PR with gh-axi:
git push -u origin <branch>
gh-axi pr create --title "Upgrade NuGet packages" --body-file <body-file> --base main --head <branch> --label "pr: dependency-update"
Make the PR ready for review unless the user asks for a draft or a non-Docker validation issue remains.
12. Check initial CI:
bash gh-axi pr checks <number>
PR Body
Include:
dotnet outdateddry-run completed successfully.dotnet outdated -uapplied the upgrades.- Test commands and outcomes.
- The post-upgrade
dotnet outdatedresult. - Any build warnings, even when they are in unchanged files and do not fail validation.
- A short note if local Docker prevented the integration project from running, while CI is expected to cover it.
When not to use it
- →When the user explicitly changes the instruction to exclude MQTT packages
- →When the task includes merging a PR without explicit user approval before each merge
- →When the task is not related to upgrading NetDaemon NuGet packages
Prerequisites
Limitations
- →The skill treats package IDs containing `mqtt`, case-insensitive, as excluded.
- →The skill will not block a dependency-update PR solely on a local Docker failure for integration tests.
- →The skill requires explicit user approval before merging any PRs.
How it compares
This skill automates the process of upgrading NuGet packages, specifically excluding MQTT packages and validating changes through tests before creating a PR, which is more structured than manual dependency updates.
Compared to similar skills
netdaemon-nuget-upgrade side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| netdaemon-nuget-upgrade (this skill) | 0 | 2mo | Review | Intermediate |
| azure-mgmt-fabric-dotnet | 0 | 4mo | Review | Intermediate |
| vvvv-node-libraries | 0 | 3mo | No flags | Advanced |
| script-execute | 0 | 4mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
azure-mgmt-fabric-dotnet
microsoft
Azure Resource Manager SDK for Fabric in .NET. Use for MANAGEMENT PLANE operations: provisioning, scaling, suspending/resuming Microsoft Fabric capacities, checking name availability, and listing SKUs via Azure Resource Manager. Triggers: "Fabric capacity", "create capacity", "suspend capacity", "resume capacity", "Fabric SKU", "provision Fabric", "ARM Fabric", "FabricCapacityResource".
vvvv-node-libraries
tebjan
Helps set up C# library projects that provide nodes to vvvv gamma — project directory structure, Initialization.cs with AssemblyInitializer, service registration via RegisterService, IResourceProvider factories, ImportAsIs / ImportNamespace / ImportType selection, category organization, .csproj setu
script-execute
Yunbada
Compiles and executes C# code dynamically using Roslyn. Supports two modes: full code mode (default) requires a complete class definition, while body-only mode (isMethodBody=true) auto-generates the boilerplate so you only provide the method body. Unity objects (GameObject, Component, etc.) can be p
csharp-developer
zenobi-us
Expert C# developer specializing in modern .NET development, ASP.NET Core, and cloud-native applications. Masters C# 12 features, Blazor, and cross-platform development with emphasis on performance and clean architecture.
csharp-pro
sickn33
Write modern C# code with advanced features like records, pattern matching, and async/await. Optimizes .NET applications, implements enterprise patterns, and ensures comprehensive testing. Use PROACTIVELY for C# refactoring, performance optimization, or complex .NET solutions.
dotnet-architect
sickn33
Expert .NET backend architect specializing in C#, ASP.NET Core, Entity Framework, Dapper, and enterprise application patterns. Masters async/await, dependency injection, caching strategies, and performance optimization. Use PROACTIVELY for .NET API development, code review, or architecture decisions.