Skip to content

[EPIC] v0.5.0 — .squad/ Migration & Architectural Cleanup #90

Closed as not planned

Description

@bradygaster

Overview

v0.5.0 is a breaking change release anchored on directory rename (.ai-team/ → .squad/). This affects 745 occurrences across 123 files and requires customer migration. This is the last breaking change before v1.0.

This release combines the migration with critical fixes and architectural cleanup that share the same code paths. Bundling these changes reduces total migration cost for users.


🎯 Anchor Issue

#69 — Rename .ai-team/ to .squad/ with backward-compatible migration

  • Impact: 745 occurrences across 123 files (index.js, squad.agent.md, 6 workflows, 9 templates, 27 docs, tests, configs)
  • Timeline: 3-4 weeks (audit → implementation → beta → ship)
  • Migration UX: Auto-migrate by default via npx github:bradygaster/squad upgrade
  • Safety: Automatic backup to .ai-team-backup-{timestamp}/, rollback available
  • Rationale: Product identity alignment (Squad deserves .squad/, not generic .ai-team/), pre-1.0 house cleaning

🔧 Critical Fixes Bundled

#76 — squad.agent.md Exceeds GitHub Enterprise Limit (30K tokens)

Status: INTEGRATED INTO #69 (not separate work)

  • Problem: squad.agent.md is 31,842 characters. GitHub Enterprise enforces 30K limit. GHE users blocked.
  • Solution: Refactor squad.agent.md into lib/ structure while rewriting paths for Rename .ai-team/ to .squad/ with backward-compatible migration #69
    • Main file: 600 lines (coordinator core)
    • .github/agents/lib/spawning.md: 300 lines (spawn patterns)
    • .github/agents/lib/ceremonies.md: 200 lines (casting/init)
    • .github/agents/lib/operations.md: 385 lines (routing/plugins/GitHub)
  • Result: 60% size reduction (1485 → 600 lines), GHE compatibility restored
  • Why bundled: We're rewriting EVERY path in squad.agent.md for Rename .ai-team/ to .squad/ with backward-compatible migration #69 anyway. Touch once, not twice.

#86 — Squad Undid Uncommitted Changes (Data Loss Bug)

Status: HIGH SEVERITY - Week 1 investigation required

  • Problem: User report of Squad silently discarding uncommitted work
  • Impact: Trust-destroying if true. Cannot ship v0.5.0 with data loss bugs.
  • Action: Investigate in Week 1. If migration-related, MUST fix before release. If elsewhere, still fix.

🧹 Cleanup & Hardening

#71 — Remove .ai-team/ Deprecation Banner

#84 — Standardize Timestamps to ISO 8601 UTC

#62 — Release & CI/CD Hardening Plan


✅ Success Criteria

All must be GREEN before v0.5.0 ships:

  • Zero data loss: All users can migrate .ai-team/ → .squad/ with no lost casting, history, decisions, or skills
  • GHE compatibility: squad.agent.md loads on GitHub Enterprise (<30K characters)
  • Rollback safety: squad upgrade --rollback-migration works for 100% of beta testers
  • Workflow compatibility: Guard/triage/heartbeat detect .squad/** correctly (not .ai-team/**)
  • Migration success rate ≥90%: At most 1 in 10 migrations requires manual intervention
  • Documentation accuracy: Zero stale .ai-team/ references in shipped docs
  • Beta validation: 5-10 power users complete migration on real repos with no corruption

📅 Timeline (4 Weeks)

Week Dates Work
Week 1 Feb 17-23 Audit all 745 .ai-team/ references. Investigate #86 data loss bug. Design atomic migration logic. Kick off parallel work (#62, #84).
Week 2 Feb 24-Mar 2 Implementation: Fenster (rename paths), Verbal (refactor squad.agent.md). Update workflows. Recruit beta cohort via GitHub Discussion.
Week 3 Mar 3-9 Beta program: 5-10 users test migration on real repos. 7 exit criteria must pass. Fix any corruption bugs discovered.
Week 4 Mar 10-16 Final validation. Ship v0.5.0. Post-release monitoring.

Target ship date: March 16, 2026 (70% confidence)
Fallback date: March 23, 2026 (if beta finds critical issues)


🔴 Top 3 Risks + Mitigations

Risk 1: State Corruption During Migration (CRITICAL)

Likelihood: 15-20% | Impact: Catastrophic

Mitigations:

  • Pre-flight validation (refuse if uncommitted changes, if .squad/ exists, if mid-merge)
  • Automatic backup before ANY changes: cp -r .ai-team/ .ai-team-backup-{timestamp}/
  • Atomic commit (all changes in ONE commit, auto-rollback if commit fails)
  • Rollback command: squad upgrade --rollback-migration
  • Test coverage for ALL failure scenarios

Risk 2: Workflow Failures (HIGH)

Likelihood: 25-30% | Impact: High

Mitigations:

  • Exhaustive audit: grep -r "\.ai-team" .github/workflows/ — every workflow file
  • Guard workflow is HIGHEST priority (must block .squad/ from main/preview)
  • Dual-path testing during beta (both .ai-team/ and .squad/ repos validated)
  • Template sync enforcement via CI

Risk 3: GHE Prompt Size Still Broken After Refactor (MEDIUM)

Likelihood: 10-15% | Impact: High

Mitigations:


🚫 Deferred to v0.6.0 (Scope Control)

These issues are legitimate but NOT urgent enough to delay v0.5.0:


🧪 Beta Program (MANDATORY)

Cohort: 5-10 power users

Exit Criteria (All Must Be GREEN):

  1. ✅ Zero state corruption reports
  2. ✅ Zero rollback failures
  3. ✅ GHE compatibility confirmed (at least 1 GHE user)
  4. ✅ Workflow compatibility (guard/triage/heartbeat work with .squad/)
  5. ✅ Migration success rate ≥90%
  6. ✅ Documentation accuracy (zero stale references)
  7. ✅ Performance regression ≤5%

Red Flags That STOP Release:

  • 2+ state corruption reports
  • GHE user reports prompt still too large
  • Workflows don't detect .squad/
  • Rollback fails for any user
  • Docs have >5 stale .ai-team/ references

📣 Communication Plan

Timing: Mid-March ship = MINIMUM breathing room (4 weeks post-v0.4.1). Late March is safer (6-8 weeks).

Key Message: "Your team is safe. Migration is automatic. Rollback is available. This is the last structural change before 1.0."

Channels:

Release Headline: v0.5.0: .ai-team/ → .squad/
Subhead: Automatic migration, rollback available, last structural change before 1.0

Why This Change (3 Beats):

  1. Product identity alignment: Squad deserves .squad/, not generic .ai-team/
  2. GitHub Enterprise compatibility (Squads in GitHub Enterprise Copilot- Invalid config "Prompt" exceeds max length 30000 #76): Fixes prompt size bloat, unblocks GHE users
  3. Pre-1.0 house cleaning: Last breaking structural change before v1.0

🔗 Related Issues

Included in v0.5.0:

Deferred to v0.6.0:

Closed as duplicate:


📊 Work Breakdown

Total estimated effort: 242 squad-hours (30 calendar days with parallel work)

Issue Owner Estimate Dependency
#69 (rename) Fenster 80h (2 weeks) NONE
#76 (refactor) Verbal 24h (3 days) Parallel to #69
#86 (data loss) Fenster + Hockney TBD (Week 1 investigation) NONE
#71 (banner) Fenster 2h #69 complete
#62 (CI/CD) Kobayashi 40h (1 week) NONE
#84 (timestamps) Fenster 16h (2 days) NONE

❓ Decision Points

For Brady:

  1. ☑️ Squads in GitHub Enterprise Copilot- Invalid config "Prompt" exceeds max length 30000 #76 integration: Merge into Rename .ai-team/ to .squad/ with backward-compatible migration #69 (recommended by all three agents)
  2. ☑️ Squad undid its own uncommited changes from a previous session #86 severity: Investigate in Week 1, blocks release if migration-related
  3. ⏱️ Ship date: March 16 (aggressive) vs. March 23-30 (safer post-Fritz video)
  4. ☑️ Beta mandatory: No exceptions. 7 exit criteria must pass.
  5. ⏱️ Scope locked: No additions after Week 1 starts (protect timeline)

This epic represents Squad's last breaking change before v1.0. After v0.5.0, directory structure is stable.

Activity

  1. added this to the v0.5.0 milestone on Feb 17, 2026
  2. bradygaster commented on Feb 17, 2026

    @bradygaster
    CollaboratorAuthor

    Duplicate epic created during command retry. Using #91 as the primary epic for v0.5.0 tracking.

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

    release:v0.5.0Targeted for v0.5.0type:epicParent issue that decomposes into sub-issues

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions