Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions