update-library-template
Template synchronization and conflict resolution tool.
Install
mkdir -p .claude/skills/update-library-template && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/10169" && unzip -o skill.zip -d .claude/skills/update-library-template && rm skill.zipInstalls to .claude/skills/update-library-template
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.
Merges the latest Library.Template into this repo (at position of HEAD) and resolves conflicts.Key capabilities
- →Merge Library.Template
- →Resolve merge conflicts
- →Validate build and tests
- →Update SDK versions
How it works
Automates the merge process from Library.Template, enforces conflict resolution policies, and validates the result.
Inputs & outputs
When to use update-library-template
- →Update library template
- →Resolve merge conflicts
- →Synchronize with latest repo standards
About this skill
Instructions
- Run
./tools/MergeFrom-Template.ps1from the repo root. - Resolve merge conflicts, taking into account conflict resolution policy below.
- Validate the changes, as described in the validation section below.
- Committing your changes (if applicable).
Conflict resolution policy
There may be special notes that describe special considerations for certain files or scenarios to help you resolve conflicts appropriately.
Always refer to that file before proceeding.
In particular, focus on the incoming part of the file, since it represents the changes from the Library.Template that you are merging into your repo.
Also refer to .github/prompts/repo-merge-notes.md for notes specific to this repo (e.g. which deleted files to keep, which customizations to preserve).
Also consider that some repos choose to reject certain Library.Template patterns.
For example the template uses MTPv2 for test projects, but a repo might have chosen not to adopt that.
When resolving merge conflicts, consider whether it looks like the relevant code file is older than it should be given the changes the template is bringing in.
Ask the user when in doubt as to whether the conflict should be resolved in favor of 'catching up' with the template or keeping the current changes.
Use #runSubagent to analyze and resolve merge conflicts across files in parallel.
Keep Current files
Conflicts in the following files should always be resolved by keeping the current version (i.e. discard incoming changes):
- README.md
Deleted files
Very typically, when the incoming change is to a file that was deleted locally, the correct resolution is to re-delete the file.
In some cases however, the deleted file may have incoming changes that should be applied to other files.
The test/Library.Tests/Library.Tests.csproj file is very typical of this.
Changes to this file should very typically be applied to any and all test projects in the repo.
You are responsible for doing this in addition to re-deleting this template file.
Files deleted by the template
When the template deletes a file that exists locally, check the template's commit history to understand why it was removed.
Use the GitHub commit history page for the file (e.g. https://github.com/aarnott/Library.Template/commits/microbuild/path/to/file) to find the relevant commit.
If the template restructured or centralized the functionality (e.g. OptProf pipelines moved to a centralized VS pipeline), accept the deletion.
If the file contains repo-specific customizations not present in the template, keep it.
Files deleted locally but updated by the template
These show as "deleted by us" conflicts. Refer to repo-merge-notes.md for this repo's specific decisions on which files to keep or re-delete.
Updating package and SDK versions
After the merge, always check global.json for MSBuild Sdks with names starting with Microsoft.VisualStudio.Internal.MicroBuild.
These SDK versions should match the value of the MicroBuildVersion property found in Directory.Packages.props.
Always take the latest of the versions you see among these SDKs and the MicroBuildVersion property.
Validation
Validate the merge result (after resolving any conflicts, if applicable). Use #runSubagent for each step.
- Verify that
dotnet restoresucceeds. Fix any issues that come up. - Verify that
dotnet buildsucceeds. - Verify that tests succeed by running
tools/dotnet-test-cloud.ps1.
While these validations are described using dotnet CLI commands, some repos require using full msbuild.exe.
You can detect this by checking the azure-pipelines/dotnet.yml or .github/workflows/build.yml files for use of one or the other tool.
You are not responsible for fixing issues that the merge did not cause. If validation fails for reasons that seem unrelated to the changes brought in by the merge, advise the user and ask how they'd like you to proceed. That said, sometimes merges will bring in SDK or dependency updates that can cause breaks in seemingly unrelated areas. In such cases, you should investigate and solve the issues as needed.
Committing your changes
If you have to make any changes for validations to pass, consider whether they qualify as a bad merge conflict resolution or more of a novel change that you're making to work with the Library.Template update. Merge conflict resolution fixes ideally get amended into the merge commit, while novel changes would go into a novel commit after the merge commit.
Always author your commits using git commit --author "🤖 Copilot <[email protected]>" (and possibly other parameters).
Describe the nature of the merge conflicts you encountered and how you resolved them in your commit message.
Later, if asked to review pull request validation breaks, always author a fresh commit with each fix that you push, unless the user directs you to do otherwise.
When not to use it
- →Unrelated repository updates
Prerequisites
Limitations
- →Requires adherence to conflict resolution policy
- →Requires validation steps
How it compares
It provides a specific policy-driven approach to template synchronization and conflict resolution.
Compared to similar skills
update-library-template side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| update-library-template (this skill) | 0 | 3mo | No flags | Advanced |
| resolve-conflicts | 81 | 8mo | Review | Intermediate |
| openspec-onboard | 10 | 6mo | Review | Beginner |
| codex-cli-bridge | 9 | 9mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by microsoft
View all by microsoft →You might also like
resolve-conflicts
antinomyhq
Use this skill immediately when the user mentions merge conflicts that need to be resolved. Do not attempt to resolve conflicts directly - invoke this skill first. This skill specializes in providing a structured framework for merging imports, tests, lock files (regeneration), configuration files, and handling deleted-but-modified files with backup and analysis.
openspec-onboard
studyzy
Guided onboarding for OpenSpec - walk through a complete workflow cycle with narration and real codebase work.
codex-cli-bridge
alirezarezvani
Bridge between Claude Code and OpenAI Codex CLI - generates AGENTS.md from CLAUDE.md, provides Codex CLI execution helpers, and enables seamless interoperability between both tools
skill-sync
KyleKing
Syncs Claude Skills with other AI coding tools like Cursor, Copilot, and Codeium by creating cross-references and shared knowledge bases. Invoke when user wants to leverage skills across multiple tools or create unified AI context.
github-workflow-automation
ruvnet
Advanced GitHub Actions workflow automation with AI swarm coordination, intelligent CI/CD pipelines, and comprehensive repository management
git-advanced-workflows
wshobson
Master advanced Git workflows including rebasing, cherry-picking, bisect, worktrees, and reflog to maintain clean history and recover from any situation. Use when managing complex Git histories, collaborating on feature branches, or troubleshooting repository issues.