Repository navigation
Description
Found while fixing the .squad/templates/ README in #1949. Documentation-only there; this is the underlying behavioral gap, filed separately rather than papered over by a doc edit.
What ships
squad init copies the SDK templates directory recursively (copyRecursiveSync, packages/squad-sdk/src/config/init.ts:1481), so .squad-templates/casting/ lands in every new project as .squad/templates/casting/. It currently contains Futurama.json — a custom-universe character-name pool.
The gap
No shipped template or skill references that directory:
grep -rn "templates/casting/" .squad-templates/ # no matches
The only reference in the repository is:
.copilot/skills/init-mode/SKILL.md:29— "If the universe is custom, allocate character names from that universe based on the related list found in the.squad/templates/casting/directory."
.copilot/skills/ is the legacy install location — packages/squad-sdk/src/config/init.ts:1301 records that "Earlier versions of Squad installed to .copilot/skills/", and TEMPLATE_MANIFEST routes skills to ../.github/skills/....
The shipped counterpart is skills/coordinator-init-mode/SKILL.md (manifest source skills/coordinator-init-mode/SKILL.md → destination ../.github/skills/coordinator-init-mode/SKILL.md), and it does not reference the casting/ directory. The shipped casting-reference.md describes the casting algorithm in terms of top-level casting-policy.json / casting-registry.json, not the directory.
Consequence
For a user after squad init, the custom-universe name pools appear to be unreachable: the data is copied into their project, but nothing they have instructs an agent to read it. The behavior survives in this repo only via the legacy .copilot/ copy, which is why it isn't obvious from dogfooding here.
Not yet determined
I did not establish which of these is intended, and deliberately did not guess:
coordinator-init-modeshould carry the instruction and lost it (or never gained it) when skills moved to.github/skills/— a regression, fix by porting the line.- Custom-universe lists were superseded by the
allow_custom_universespolicy path incasting-reference.md, andcasting/is genuinely vestigial — fix by removing it from the shipped set.
These have opposite fixes, so it needs a decision before code changes.
Suggested next step
Diff .copilot/skills/init-mode/SKILL.md against .squad-templates/skills/coordinator-init-mode/SKILL.md for other instructions that did not survive the move — this may not be the only one.
Related
- docs: add .squad/templates/README.md — runtime inputs vs bootstrap templates #1949 — README now describes
casting/by its content and points atcasting-reference.md, rather than citing a legacy path users don't have. - enhancement: drop template folder from .squad #1436 — template inventory cleanup tracker.
Activity
fix(templates): repair merged table row and correct casting/ claim
docs: add .squad/templates/README.md — runtime inputs vs bootstrap te…
chore(release): promote dev to main (v1.0.0) (#2154)