bump-nuget-version
Bump the NuGet package versions for all 12 Gum projects (11 libraries + GumCli). Queries NuGet to check if a version exists for today, then sets the new version to YYYY.M.D.V where V increments from the latest published version today (or starts at 1). Creates a release branch named ReleaseCode_YYYY_M_D_V, commits the changes, and pushes. Run this before triggering the nuget release workflow.
Best use case
bump-nuget-version is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Bump the NuGet package versions for all 12 Gum projects (11 libraries + GumCli). Queries NuGet to check if a version exists for today, then sets the new version to YYYY.M.D.V where V increments from the latest published version today (or starts at 1). Creates a release branch named ReleaseCode_YYYY_M_D_V, commits the changes, and pushes. Run this before triggering the nuget release workflow.
Teams using bump-nuget-version should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/bump-nuget-version/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How bump-nuget-version Compares
| Feature / Agent | bump-nuget-version | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Bump the NuGet package versions for all 12 Gum projects (11 libraries + GumCli). Queries NuGet to check if a version exists for today, then sets the new version to YYYY.M.D.V where V increments from the latest published version today (or starts at 1). Creates a release branch named ReleaseCode_YYYY_M_D_V, commits the changes, and pushes. Run this before triggering the nuget release workflow.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
Invoking coder agent to bump NuGet package versions.
You are bumping the NuGet `<Version>` tag in all 12 Gum `.csproj` files (11 libraries + GumCli), then creating a release branch and pushing it. Follow these steps in order:
## Step 1: Get today's date
The current date is available in your system context. Use the year, month, and day as integers (no leading zeros) to form:
- The version prefix: `YYYY.M.D` (e.g., `2026.2.23`)
## Step 2: Query NuGet for today's highest V
Fetch the version list for `FlatRedBall.GumCommon` from the NuGet flat container API (package ID must be all-lowercase in the URL):
`https://api.nuget.org/v3-flatcontainer/flatredball.gumcommon/index.json`
The response has a `versions` array of strings. Filter for entries starting with `{today_prefix}.` (e.g., `2026.2.23.`). Parse the last segment of each match as an integer and find the maximum. The new version is `{today_prefix}.{max+1}`. If no versions for today exist, use `{today_prefix}.1`.
## Step 3: Create the release branch
From main, create and check out the new branch. The branch name includes the full version with underscores:
`ReleaseCode_YYYY_M_D_V` (e.g., `ReleaseCode_2026_2_23_2`)
```bash
git checkout main
git checkout -b ReleaseCode_YYYY_M_D_V
```
## Step 4: Update all 13 .csproj files
Read each file first, then use the Edit tool to replace the `<Version>...</Version>` line with the new version string.
The repo root is `C:\Users\vchel\Documents\GitHub\Gum`. The 12 files are:
1. `GumCommon\GumCommon.csproj`
2. `MonoGameGum\MonoGameGum.csproj`
3. `MonoGameGum\KniGum\KniGum.csproj`
4. `MonoGameGum\FnaGum\FnaGum.csproj`
5. `Runtimes\SkiaGum\SkiaGum.csproj`
6. `Runtimes\SkiaGum.Maui\SkiaGum.Maui.csproj`
7. `Runtimes\GumShapes\MonoGameGumShapes.csproj`
8. `Runtimes\GumShapes\KniGumShapes.csproj`
9. `Runtimes\RaylibGum\RaylibGum.csproj`
10. `Runtimes\GumExpressions\GumExpressions.csproj`
11. `Gum.Cli\Gum.Cli.csproj`
12. `Themes\Gum.Themes.Editor.MonoGame\Gum.Themes.Editor.MonoGame.csproj`
13. `Themes\Gum.Themes.Editor.Kni\Gum.Themes.Editor.Kni.csproj`
## Step 5: Commit and push the branch
Stage only the 12 csproj files and commit:
```bash
git add GumCommon/GumCommon.csproj MonoGameGum/MonoGameGum.csproj MonoGameGum/KniGum/KniGum.csproj MonoGameGum/FnaGum/FnaGum.csproj Runtimes/SkiaGum/SkiaGum.csproj Runtimes/SkiaGum.Maui/SkiaGum.Maui.csproj Runtimes/GumShapes/MonoGameGumShapes.csproj Runtimes/GumShapes/KniGumShapes.csproj Runtimes/RaylibGum/RaylibGum.csproj Runtimes/GumExpressions/GumExpressions.csproj Gum.Cli/Gum.Cli.csproj Themes/Gum.Themes.Editor.MonoGame/Gum.Themes.Editor.MonoGame.csproj Themes/Gum.Themes.Editor.Kni/Gum.Themes.Editor.Kni.csproj
```
Commit message should be `Bump version to {new_version}`.
Then push:
```bash
git push -u origin ReleaseCode_YYYY_M_D_V
```
## Step 6: Report
Print a summary:
- New version string
- Whether today already had a published version (and what the previous V was) or if this is the first release today
- Branch name
$ARGUMENTSRelated Skills
validate-code-changes
Validate all code changes on the current branch. Spawns QA and refactoring agents in parallel to review for correctness, edge cases, code quality, and pattern adherence. Use when ready to review branch changes before merging.
skills-writer
Creates and updates skill files (.claude/skills/*/SKILL.md) by reading source code and condensing knowledge into concise reference guides. Use when asked to create a new skill, update an existing skill, or document a subsystem for Claude Code agent context.
gum-variable-deep-dive
Deep dive into the full variable lifecycle — from VariableSave on ElementSave through runtime application on GraphicalUiElement and Forms controls. Load this when working on styling, theming, RefreshStyles, or when you need to understand how variable values flow from save data to live visuals.
gum-unit-tests
Reference guide for writing unit tests in the Gum repository. Load this when writing or modifying tests in Gum.ProjectServices.Tests, Gum.Cli.Tests, or any other Gum test project.
gum-tool-viewmodels
Reference guide for Gum tool ViewModel conventions. Load this when working on ViewModels, XAML views, data binding, DependsOn, or visibility properties in the Gum tool.
gum-tool-variable-references
Reference guide for Gum's variable reference system — Excel-like cross-instance/cross-element variable binding using Roslyn-parsed assignment syntax. Load this when working on VariableReferenceLogic, EvaluatedSyntax, ApplyVariableReferences, VariableChangedThroughReference, or the VariableReferences VariableListSave.
gum-tool-variable-grid
Reference guide for Gum's Variables tab and DataUiGrid system. Load this when working on the Variables tab, DataUiGrid control, MemberCategory, InstanceMember, category population, property grid refresh, or category expansion state persistence.
gum-tool-undo
Reference guide for Gum's undo/redo system. Load this when working on undo/redo behavior, the History tab, UndoManager, UndoPlugin, UndoSnapshot, or stale reference issues after undo.
gum-tool-selection
Reference guide for Gum's editor selection system. Load this when working on click/drag selection, the rectangle/marquee selector, input handlers (move, resize, rotate, polygon points), the IsActive flag, locked instance behavior, SelectionManager coordination, or the selection event cascade (plugin events, forced default state, tree view sync).
gum-tool-save-classes
Reference guide for Gum's save/load data model. Load this when working with GumProjectSave, ScreenSave, ComponentSave, StandardElementSave, ElementSave, StateSave, VariableSave, InstanceSave, BehaviorSave, or any serialization/deserialization of Gum project files.
gum-tool-plugins
Reference guide for the Gum tool's plugin system, including visualization plugins (EditorTabPlugin_XNA, TextureCoordinateSelectionPlugin). Load this when working on plugin registration, PluginBase, InternalPlugin, PluginManager, plugin events, visualization/rendering concerns, or finding which internal plugin owns a feature.
gum-tool-output
Reference guide for Gum's Output tab system. Load this when working on the Output tab, IOutputManager, MainOutputViewModel, GuiCommands.PrintOutput, or adding output/error messages to the tool.