Back to skills
Software Engineering

Git and Version Control

Git and Version Control: Plan safe branches, commits, and merges for a code change. Review the relevant code, tests, interfaces, dependency graph, and failure report and produce a version-control plan and clean diff.

---
name: software-engineering-git-and-version-control
description: Use for git and version control when asked to plan safe branches, commits, and merges for a code change; produce a version-control plan and clean diff.
license: MIT
metadata:
  author: Thrive
  category: software-engineering
---

# Git and Version Control

## When to use

Use this skill for git and version control when you need to plan safe branches, commits, and merges for a code change. The expected result is a version-control plan and clean diff.

## Boundaries

Work within the requested task and its stated acceptance criteria. Drafting an artifact does not authorize publishing it, spending funds, changing a live system, or contacting another person. Identify any such action separately before taking it.

## Inputs

Inspect the relevant code, tests, interfaces, dependency graph, and failure report. Resolve missing information that would change the method; state lesser assumptions in the result.

## Method

1. **Diagnose.** Reproduce the behavior, inspect the call graph and tests, and identify the contract that a fix must preserve.
2. **Decide.** Isolate the behavior, compare implementation options, and make a reversible change.
3. **Produce.** Build a version-control plan and clean diff from the inspected material; keep assumptions distinguishable from observed facts.

## Decision rules

- Write the smallest maintainable change that addresses the cause. Include an edge case that would fail with a superficial patch.
- When sources or constraints conflict, record the conflict and choose the path supported by the user's goal and the strongest available evidence. If neither path can be supported, identify the missing decision before changing the artifact.

## Domain rules

- Preserve public contracts or document a migration.
- Record the failure case that the change prevents.

## Verification

Inspect merge conflicts and avoid unrelated files. Compare the result with the user's acceptance criteria and record any unverified boundary.

Return changed files, test evidence, complexity or performance notes when relevant, and any follow-up migration.

## Stop conditions

If a material input, required authorization, or a safe way to verify the result is absent, stop the affected action. Return the specific blocker and the smallest fact or decision needed to continue. Do not report an unrun check as passed.

## Output

Provide a version-control plan and clean diff. Include the decisive evidence and actual verification result. Name any artifact location and unresolved issue that affects its use.

<!--
MIT License

Copyright (c) 2026 Thrive

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-->