name: windows-image-updater version: 1.0.0 model: claude-sonnet-4-5 description: Automate Windows container image updates in OneBranch pipelines. Bumps ConfigurationGeneration.AdoPipelineGeneration NuGet package, resolves dependency conflicts, runs ConfigGen, and verifies old image references are removed. Use when updating LTSC container images across service repositories. license: MIT
Windows Image Updater
Automates the end-to-end workflow for updating Windows container images in OneBranch pipelines. Handles NuGet package bumps, dependency resolution, ConfigGen execution, and image reference verification.
Triggers
| Trigger Phrase | Operation |
|---|---|
update windows image |
Full 4-phase workflow |
bump configgen package |
Phase 1: Package update only |
resolve package dependencies |
Phase 2: Dependency resolution only |
run configgen |
Phase 3: ConfigGen execution only |
verify image references |
Phase 4: Image verification only |
When to Use
Use this skill when:
- A Windows LTSC container image reaches end-of-life (e.g., ltsc2019)
- The
ConfigurationGeneration.AdoPipelineGenerationNuGet package needs upgrading - Pipeline YAML files contain outdated image references
- Service repositories need bulk container image migration
Process
Phase 1: Package Update
- Identify the current
ConfigurationGeneration.AdoPipelineGenerationversion inpackages.configor.csprojfiles - Determine the target version (latest stable or specified version)
- Update the package reference to the target version
- Stage the package reference change
Phase 2: Dependency Resolution
- Run
nuget restoreordotnet restoreto detect dependency conflicts - For each conflict, identify the required version range
- Update transitive dependencies to compatible versions
- Re-run restore to confirm all conflicts are resolved
- Repeat until restore succeeds with zero warnings
Phase 3: ConfigGen Execution
- Locate the ConfigGen tool (typically
tools/ConfigGen/ConfigGen.exeor via NuGet) - Run ConfigGen to regenerate pipeline YAML files
- Capture stdout/stderr for diagnostics
- Verify ConfigGen exits with code 0
Phase 4: Image Verification
- Search all
.ymland.yamlfiles for the old image reference (e.g.,ltsc2019) - Confirm zero matches remain
- Search for the new image reference to confirm replacement
- Report file-level diff summary
Output
After completing all phases, create a draft PR with this structure:
## Summary
- Bumped ConfigurationGeneration.AdoPipelineGeneration from {old} to {new}
- Resolved {N} dependency conflicts
- Regenerated pipeline YAML via ConfigGen
- Verified: 0 references to {old_image} remain
## Changes
| File | Change |
|------|--------|
| packages.config | Package version bump |
| {dependency files} | Dependency version updates |
| {pipeline files} | Regenerated by ConfigGen |
## Verification
- [ ] `nuget restore` completes without warnings
- [ ] ConfigGen exits with code 0
- [ ] `grep -r --include="*.yml" -- "ltsc2019" .` returns 0 results
Composability
After this skill creates a PR, invoke the pipeline-validator skill to trigger, monitor, and validate pipeline runs. The two skills are intentionally separate: this skill handles code changes, pipeline-validator handles CI validation.
Constraints
- Do not modify pipeline YAML files manually. ConfigGen is the single source of truth.
- Do not skip dependency resolution. Partial updates cause build failures downstream.
- Always verify image references after ConfigGen. ConfigGen may not update all files.
See Also
| Document | Content |
|---|---|
| troubleshooting.md | Phase-by-phase error guide |
pipeline-validator skill |
Post-PR pipeline validation |
chat Comments (0)
Sign in to join the discussion and leave a comment.
Skill Details
GitHub Stars
14
GitHub Forks
3
Created
Mar 2026
Last Updated
il y a 3 mois
tools
tools automation tools
Related Skills
Build your own?
Join 12,000+ developers contributing to the Claude ecosystem.
No comments yet. Be the first to share your thoughts!