Skip to content

Add squad template apply command #1135

Closed as not planned
Closed as not planned

Description

@mfrieman

Problem

mfrieman/agentic-ai-collective
(v0.1.0-alpha) ships squad-template compositions — pre-assembled .squad/
baselines that bundle agents, skills, routing, and ceremonies scaffolding into a
single versioned package. These templates live under
compositions/squad-templates/<name>/ with a manifest.json and a scaffold/
subtree.

There is currently no upstream CLI command to apply one. Consumers have to:

squad upstream add https://github.com/mfrieman/agentic-ai-collective.git --name collective
squad upstream sync collective
cp -r ~/.squad/upstream/collective/compositions/squad-templates/general-dev/scaffold/ ./
# then manually resolve every squad:// URI in manifest.json and copy atoms

This is fragile, undiscoverable, and doesn't track what was installed.

Current state

squad upstream add / squad upstream sync can register and pull a remote
library. There is no squad template subcommand family, and no way to apply a
template composition to a new or existing project through the CLI.

Desired state

A squad template subcommand that can discover and apply template compositions
from registered upstreams or via canonical squad:// URIs.

# Discover available templates in a registered upstream
squad template list collective

# Apply a template to the current directory (new project)
squad template apply collective/general-dev

# Apply by canonical URI (pinned version)
squad template apply squad://mfrieman/agentic-ai-collective/squad-templates/general-dev@1.0.0

# Alternatively, surface this as a flag on squad init
squad init --template squad://mfrieman/agentic-ai-collective/squad-templates/general-dev@1.0.0

What apply should do:

  1. Resolve the template manifest (manifest.json) from the upstream registry.
  2. Copy/expand the scaffold/ subtree into the target directory.
  3. Materialize all referenced atoms (agents, skills, instructions, hooks) to their
    canonical install targets (.copilot/skills/, .squad/agents/, etc.).
  4. Write a .squad/assets.lock.json (or equivalent) recording source URIs,
    resolved versions, and install paths for reproducibility.
  5. Skip files that already exist and match, prompt or --force for conflicts.

Acceptance criteria

  • squad template list <upstream> enumerates templates from a registered
    upstream, showing name, version, and description from manifest.json.
  • squad template apply <upstream>/<name> copies scaffold files and
    materializes all atoms referenced in manifest.json into the working
    directory.
  • squad template apply squad://<owner>/<repo>/squad-templates/<name>@<ver>
    works without a pre-registered upstream (resolves on-demand).
  • After apply, .squad/assets.lock.json (or equivalent lockfile) contains an
    entry for every materialized atom: source_uri, resolved version, and
    local install path.
  • Running apply twice on the same template is idempotent: existing files that
    match the source are skipped; conflicts require --force to overwrite.
  • squad template apply --dry-run prints what would be created/overwritten
    without writing any files.

References

Notes

  • Templates may target either a blank directory or an existing project. The command
    should detect whether .squad/ already exists and behave accordingly (init vs
    overlay).
  • Safe extension into an existing squad (partial apply, no-clobber) is a
    scope decision for Brady; at minimum, the --force flag should make behavior
    explicit.
  • This issue is intentionally scoped to the apply surface. Template authoring
    tooling (squad template scaffold, validation) is a separate concern.
  • Related: issue feat: GitHub Issues intake, PRD mode, and human team members #2 (workstream add) depends on the same atom materialization
    machinery; a shared internal resolver would serve both.

Activity

  1. bradygaster commented on Nov 5, 2026

    @bradygaster
    Collaborator

    Closing as not planned for the 2.0 line during board triage (owner decision). The squad:// registry/workstream install work is out of scope for 2.0; reopen if it returns to the roadmap.

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

    triagedIssue has been triagedwave:3-laterWave 3 — backlog, future

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions