Problem
Running \squad upgrade\ overwrites .github/agents/squad.agent.md\ with the upstream version, destroying any local customizations teams have made. There's no merge strategy, diff, or hook to preserve team-specific changes.
Example
Our team removed the Reviewer Rejection Lockout Semantics section because we prefer a simpler model where original authors self-revise on rejection (no skip lists, no lockouts). Every time we upgrade, we have to manually re-apply this change.
Current workaround
We wrote a post-upgrade fixer script (\Fix-SquadUpgrade.ps1) that detects upstream patterns and re-applies our customizations. It works, but it's brittle — if the upstream text changes, the regex breaks.
Suggestion
Consider one or more of:
- *\squad upgrade --merge* — three-way merge that preserves local changes (like \git merge)
- .squad/overrides/\ directory — local overrides that get applied on top of upstream files automatically
- Post-upgrade hook — a .squad/hooks/post-upgrade.ps1\ that runs automatically after upgrade
- Diff preview — \squad upgrade --dry-run\ showing what would change before overwriting
Any of these would make upgrades safe for teams with customizations.
Environment
- Squad CLI version: latest (npm @bradygaster/squad-cli)
- OS: Windows 11
- Shell: PowerShell 7
Problem
Running \squad upgrade\ overwrites .github/agents/squad.agent.md\ with the upstream version, destroying any local customizations teams have made. There's no merge strategy, diff, or hook to preserve team-specific changes.
Example
Our team removed the Reviewer Rejection Lockout Semantics section because we prefer a simpler model where original authors self-revise on rejection (no skip lists, no lockouts). Every time we upgrade, we have to manually re-apply this change.
Current workaround
We wrote a post-upgrade fixer script (\Fix-SquadUpgrade.ps1) that detects upstream patterns and re-applies our customizations. It works, but it's brittle — if the upstream text changes, the regex breaks.
Suggestion
Consider one or more of:
Any of these would make upgrades safe for teams with customizations.
Environment