Skip to content

feature: track managed artifact lifecycle and clean obsolete paths on upgrade #2232

Open

Description

@Omzig

Problem

An upgraded Squad repository can retain artifacts from older layouts that a fresh squad init no longer creates. Stale skills or instructions can still be discovered and influence agent behavior, while the repository remains structurally different from a fresh install.

In one observed upgrade, the existing repository retained 21 folders and 24 tracked files under .copilot/skills, while a fresh init had no .copilot/skills directory. The installed upgrade migration only moves legacy skill names listed in TEMPLATE_MANIFEST; other entries are intentionally left behind to avoid deleting user content. This protects unknown files, but leaves old Squad artifacts and user-added skills indistinguishable in a deprecated location.

Expected behavior

Squad should track the lifecycle of artifacts it manages, rather than relying on filesystem comparisons or broad deletion. A machine-readable manifest could record each artifact's ownership, introduced version, canonical location, migration target, and retirement policy.

During squad upgrade, Squad should:

  • Identify known Squad-managed artifacts that are obsolete, moved, or need refresh.
  • Migrate managed content to the canonical location, verify the destination, then remove the old managed copy.
  • Preserve unknown or user-owned content and report conflicts instead of guessing.
  • Make --dry-run list planned moves, updates, and removals, with the reason for each.
  • Converge idempotently, so repeated upgrades do not leave managed artifacts drifting between layouts.

Acceptance criteria

  • A legacy-install fixture with versioned managed files upgrades to the current canonical layout without leaving obsolete managed copies.
  • A fixture with unknown or user-owned files at a deprecated path preserves them and reports the unresolved content.
  • A dry run reports every planned artifact action without changing files.
  • Upgrade verifies successful migration before removing a managed source file.
  • Re-running upgrade produces no further changes.

This is distinct from #2047, which covers stale .squad/templates/skills and workflow snapshots, and builds on the versioned layout manifest proposal in #670. #1126 covers a prior skills-path migration, but not lifecycle tracking and safe retirement of artifacts from older layouts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    wave1:P2Wave 1 PR group P2wave: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