Skip to content

migrate-directory doesn't replace .ai-team/ references inside file content #134

Closed

Description

@spboyer

Description

The squad upgrade --migrate-directory command renames .ai-team/ to .squad/ and scrubs email addresses from file content, but it does not replace .ai-team/ path references inside the migrated files themselves.

Example

After running --migrate-directory, .squad/skills/squad-conventions/SKILL.md still contains:

`markdown

File Structure

  • .ai-team/ — Team state (user-owned, never overwritten by upgrades)
  • .ai-team-templates/ — Template files copied from templates/
  • .ai-team/skills/ — Team skills in SKILL.md format
  • .ai-team/decisions/inbox/ — Drop-box for parallel decision writes
    `

And in the code example:

javascript console.log(GREEN + '✓' + RESET + ' .ai-team/ceremonies.md');

The upstream template (templates/skills/squad-conventions/SKILL.md) has already been updated to use .squad/ paths, but the migration command doesn't propagate those content changes to existing user files.

Affected files

Any user-owned file inside .squad/ that contains .ai-team/ string references. The squad-conventions SKILL.md is one example, but decisions.md, history.md files, and log entries may also contain stale references.

Suggested fix

Add a content replacement pass to the --migrate-directory flow (after the rename, alongside the email scrub) that replaces .ai-team/ → .squad/ and .ai-team-templates/ → .squad-templates/ in all .md and .json files within the migrated directory.

Additional context

  • Also hit EPERM on Windows during the fs.renameSync call (VS Code file watchers holding handles on the directory). A copy+delete fallback for Windows would make the migration more robust.
  • Squad version: v0.5.2
  • OS: Windows 11

Activity

  1. added 2 commits that reference this issue on Feb 27, 2026
    106a592
    ce548bf
  2. bradygaster commented on Feb 27, 2026

    @bradygaster
    Collaborator

    Fixed in PR #151 (merged to dev). The --migrate-directory flow now includes a content replacement pass after the rename and email scrub — walks all .md and .json files inside .squad/ and replaces .ai-team/ → .squad/ and .ai-team-templates/ → .squad-templates/ in file content. Will ship in the next release.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions