Skip to content

Custom-universe casting lists ship to every project but no shipped skill reads them #1972

Open

Description

@bradygaster

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:

  1. coordinator-init-mode should carry the instruction and lost it (or never gained it) when skills moved to .github/skills/ — a regression, fix by porting the line.
  2. Custom-universe lists were superseded by the allow_custom_universes policy path in casting-reference.md, and casting/ 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingwave1:P3Wave 1 PR group P3wave:1-nextWave 1 — immediate next sprint

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions