Spatie Version Control Guidelines
Overview
Apply Spatie's Git and version control conventions for consistent repository management.
When to Activate
- Activate this skill when creating commits, branches, or pull requests.
- Activate this skill when naming new repositories.
- Activate this skill when deciding on branching or merging strategies.
Scope
- In scope: Git operations, repository naming, branch naming, commit messages, merge strategies.
- Out of scope: Code style, deployment pipelines, CI/CD configuration.
Repository Naming
Site source code
Use the main domain name in lowercase, without www:
- Good:
spatie.be
- Bad:
https://www.spatie.be, www.spatie.be, Spatie.be
Subdomains
Include the subdomain in the repo name:
- Good:
guidelines.spatie.be
- Bad:
spatie.be-guidelines
Packages and other projects
Use kebab-case:
- Good:
laravel-backup, spoon
- Bad:
LaravelBackup, Spoon
Branches
Initial development
- Maintain
main and develop branches.
- Commit through
develop, not directly to main.
- Feature branches are optional; if used, branch from
develop.
Live projects
- Delete the
develop branch.
- All commits to
main must come through feature branches.
- Prefer squashing commits on merge.
Branch naming
- Use lowercase letters and hyphens only.
- Good:
feature-mailchimp, fix-deliverycosts, updates-june-2016
- Bad:
feature/mailchimp, random-things, develop
Commits
Message format
- Always use present tense.
- Good:
Update deps, Fix vat calculation in delivery costs
- Bad:
wip, commit, a lot, solid
Granularity
- Prefer small, focused commits over large ones.
- Use
git add -p for interactive staging to create granular commits.
Merging
- Rebase regularly to reduce merge conflicts.
- For deploying feature branches: use
git merge <branch> --squash.
- If push is denied: use
git rebase (not merge).
Pull Requests
- Optional but useful for peer review, merge validation, and historical reference.
Source: https://spatie.be/guidelines/version-control
Source: spatie/guidelines-skills — distributed by TomeVault.
1---2name: spatie-version-control3description: Apply Spatie's version control conventions when creating commits, branches, pull requests, or managing Git repositories; use for naming repos, writing commit messages, choosing branch strategies, and merging code. Use when this capability is needed.4---56# Spatie Version Control Guidelines78## Overview9Apply Spatie's Git and version control conventions for consistent repository management.1011## When to Activate12- Activate this skill when creating commits, branches, or pull requests.13- Activate this skill when naming new repositories.14- Activate this skill when deciding on branching or merging strategies.1516## Scope17- In scope: Git operations, repository naming, branch naming, commit messages, merge strategies.18- Out of scope: Code style, deployment pipelines, CI/CD configuration.1920## Repository Naming2122### Site source code23Use the main domain name in lowercase, without `www`:24- Good: `spatie.be`25- Bad: `https://www.spatie.be`, `www.spatie.be`, `Spatie.be`2627### Subdomains28Include the subdomain in the repo name:29- Good: `guidelines.spatie.be`30- Bad: `spatie.be-guidelines`3132### Packages and other projects33Use kebab-case:34- Good: `laravel-backup`, `spoon`35- Bad: `LaravelBackup`, `Spoon`3637## Branches3839### Initial development40- Maintain `main` and `develop` branches.41- Commit through `develop`, not directly to `main`.42- Feature branches are optional; if used, branch from `develop`.4344### Live projects45- Delete the `develop` branch.46- All commits to `main` must come through feature branches.47- Prefer squashing commits on merge.4849### Branch naming50- Use lowercase letters and hyphens only.51- Good: `feature-mailchimp`, `fix-deliverycosts`, `updates-june-2016`52- Bad: `feature/mailchimp`, `random-things`, `develop`5354## Commits5556### Message format57- Always use **present tense**.58- Good: `Update deps`, `Fix vat calculation in delivery costs`59- Bad: `wip`, `commit`, `a lot`, `solid`6061### Granularity62- Prefer small, focused commits over large ones.63- Use `git add -p` for interactive staging to create granular commits.6465## Merging66- Rebase regularly to reduce merge conflicts.67- For deploying feature branches: use `git merge <branch> --squash`.68- If push is denied: use `git rebase` (not merge).6970## Pull Requests71- Optional but useful for peer review, merge validation, and historical reference.7273---7475Source: https://spatie.be/guidelines/version-control7677---78> Source: [spatie/guidelines-skills](https://github.com/spatie/guidelines-skills) — distributed by [TomeVault](https://tomevault.io).79<!-- tomevault:4.0:skill_md:2026-06-23 -->