Skip to content

squad upgrade overwrites squad.agent.md — no mechanism to preserve local customizations #1052

@joniba

Description

@joniba

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:

  1. *\squad upgrade --merge* — three-way merge that preserves local changes (like \git merge)
  2. .squad/overrides/\ directory — local overrides that get applied on top of upstream files automatically
  3. Post-upgrade hook — a .squad/hooks/post-upgrade.ps1\ that runs automatically after upgrade
  4. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions