You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
bug: squad upgrade leaves .squad/templates skills and workflows stale #2047
Bug: squad upgrade leaves shipped .squad/templates/skills and workflows stale
Summary
squad init seeds a complete .squad/templates snapshot, but squad upgrade does not refresh the existing repository's .squad/templates/skills or .squad/templates/workflows directories. An older repository upgraded to the current CLI can therefore report a current Squad version while still using obsolete template skills and workflows.
Reproduction
Start with an older Squad repository whose .squad/templates directory already exists.
Run squad upgrade (or squad upgrade --dry-run) using the current CLI.
Compare the repository's .squad/templates contents with a fresh squad init at the same CLI version.
Observed in:
Legacy repository: E:\src\Repository\.squad
Fresh current install used for comparison: C:\source\squad-new-install\.squad
CLI/SDK version: 0.13.1
Observed behavior
squad upgrade --dry-run reports 0.13.1 -> 0.13.1 and lists Squad-owned files, but does not include .squad/templates/skills/* or .squad/templates/workflows/*.
The legacy tree has 32 template skills; the current tree has 53.
21 current template skill files are missing from the legacy tree, and 29 shared skill files have different content.
All 11 shared .squad/templates/workflows/*.yml files differ.
Examples:
.squad/templates/skills/model-selection/SKILL.md
Current: YAML frontmatter, current model defaults such as gpt-5.6-luna, and the current five-layer model resolution rules.
Legacy: no current frontmatter and older claude-* defaults.
.squad/templates/skills/cross-squad/SKILL.md
Current: newer triggers and the product-vs-English “squad” disambiguation protocol.
Legacy: older, shorter protocol.
.squad/templates/workflows/squad-ci.yml
Current: actions pinned to commit SHAs.
Legacy: floating @v4 action tags.
Expected behavior
When upgrading an existing repository, Squad-owned static template content should reach parity with what a fresh squad init would seed for the same CLI version, including:
.squad/templates/skills/**
.squad/templates/workflows/**
User-specific mutable state must remain preserved. In particular, the upgrade must not overwrite or delete team/project state such as agents, team.md, decisions, identity, logs, orchestration logs, memory, casting state, routing, ceremonies, or user configuration.
Likely root cause
The upgrade implementation appears to intentionally skip skills and workflows while refreshing .squad/templates, because their operational destinations are .github/skills and .github/workflows. This creates a semantic mismatch: init creates a complete .squad/templates snapshot, while upgrade leaves existing copies of those static templates behind.
If .squad/templates is intended to remain a current static snapshot, update squad upgrade to refresh Squad-owned files under .squad/templates/skills and .squad/templates/workflows, while preserving target-only files and all mutable state exclusions.
Add regression coverage that upgrades an existing .squad/templates directory and verifies:
model-selection/SKILL.md is refreshed.
Newly introduced skill directories are added.
Existing shared workflow files are refreshed.
User-specific state and target-only files are preserved.
This issue is related to #1436, but this report focuses specifically on upgrade parity and stale template contents.
@bradygaster > of the ~50 skills currently within the .squad/templates/skills directory, how many do we expect to copy into the .github/skills directory? I notice some are there, and others aren't - 19 skill on a fresh squad init.
If they are not supposed to be included, why are they there to begin with? :D
This confuses me a bit. As an example: A fresh squad init includes 19 skills. Neither of which is the model-selection skill. I would have expected that to be included, and it might explain why my local interactive sessions seems to "forget" assigning af model from the onset unless I remind it to inspect the model-selection-reference file.
side-note: It would be nice if all squad specific skills where prefixed with squad- to distinguish custom project specific skills, from squad provided skills.
Activity
Danta1st commentedon Sep 26, 2026
@bradygaster > of the ~50 skills currently within the
.squad/templates/skillsdirectory, how many do we expect to copy into the.github/skillsdirectory? I notice some are there, and others aren't - 19 skill on a freshsquad init.If they are not supposed to be included, why are they there to begin with? :D
This confuses me a bit. As an example: A fresh
squad initincludes 19 skills. Neither of which is themodel-selectionskill. I would have expected that to be included, and it might explain why my local interactive sessions seems to "forget" assigning af model from the onset unless I remind it to inspect the model-selection-reference file.side-note: It would be nice if all squad specific skills where prefixed with
squad-to distinguish custom project specific skills, from squad provided skills.fix(cli): 2.0.0-preview.2 upgrade/health fixes from dogfooding
fix(cli): 2.0.0-preview.2 upgrade/health fixes from dogfooding (#2303)