From 60dafa1e1cbda25bac629ed01c5ae2cc28c86d6d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Feb 2026 23:58:37 +0000 Subject: [PATCH 1/5] Initial plan From 43a94698e264d82cc9f362dc378853748bc44a16 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 12 Feb 2026 00:01:23 +0000 Subject: [PATCH 2/5] Add version number to Squad agent name for visibility in Copilot UI Co-authored-by: bradygaster <41929050+bradygaster@users.noreply.github.com> --- .github/agents/squad.agent.md | 2 +- index.js | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/agents/squad.agent.md b/.github/agents/squad.agent.md index a3dff9d6b..3e2981a32 100644 --- a/.github/agents/squad.agent.md +++ b/.github/agents/squad.agent.md @@ -1,5 +1,5 @@ --- -name: Squad +name: Squad (v0.0.0-source) description: "Your AI team. Describe what you're building, get a team of specialists that live in your repo." version: "0.0.0-source" --- diff --git a/index.js b/index.js index ecc2641a7..67a344315 100644 --- a/index.js +++ b/index.js @@ -468,8 +468,12 @@ const isUpgrade = cmd === 'upgrade'; // Stamp version into squad.agent.md after copying function stampVersion(filePath) { - const content = fs.readFileSync(filePath, 'utf8'); - fs.writeFileSync(filePath, content.replace('version: "0.0.0-source"', `version: "${pkg.version}"`)); + let content = fs.readFileSync(filePath, 'utf8'); + // Replace version field + content = content.replace('version: "0.0.0-source"', `version: "${pkg.version}"`); + // Replace version in name field to show in agent picker UI + content = content.replace('name: Squad (v0.0.0-source)', `name: Squad (v${pkg.version})`); + fs.writeFileSync(filePath, content); } // Read version from squad.agent.md frontmatter From 611a00dbe70b0a38587b61ae412380144033fbdd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 12 Feb 2026 00:02:28 +0000 Subject: [PATCH 3/5] Update documentation to reflect version display across Copilot hosts Co-authored-by: bradygaster <41929050+bradygaster@users.noreply.github.com> --- README.md | 2 +- docs/guide.md | 8 +++++--- docs/scenarios/upgrading.md | 32 ++++++++++++++++++++++++-------- 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index b05d7c074..696c819dc 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ npx github:bradygaster/squad copilot ``` -Select **Squad** from the `/agents` list, then: +Select **Squad (v0.3.0)** from the `/agents` list, then: ``` I'm starting a new project. Set up the team. diff --git a/docs/guide.md b/docs/guide.md index b2ddd5ab6..9e5159114 100644 --- a/docs/guide.md +++ b/docs/guide.md @@ -2,7 +2,7 @@ ## What Is Squad? -Squad gives you an AI development team through GitHub Copilot CLI. You describe what you're building. Squad proposes a team of specialists — lead, frontend, backend, tester — that live in your repo as files. Each agent runs in its own context window, reads its own knowledge, and writes back what it learned. They persist across sessions, share decisions, and get better the more you use them. +Squad gives you an AI development team through GitHub Copilot. You describe what you're building. Squad proposes a team of specialists — lead, frontend, backend, tester — that live in your repo as files. Each agent runs in its own context window, reads its own knowledge, and writes back what it learned. They persist across sessions, share decisions, and get better the more you use them. It is not a chatbot wearing hats. Each team member is spawned as a real sub-agent with its own tools, its own memory, and its own area of expertise. @@ -16,11 +16,13 @@ npx github:bradygaster/squad **Requirements:** - Node.js 22+ -- GitHub Copilot CLI (the `copilot` command) +- GitHub Copilot (CLI, VS Code, Visual Studio, or Coding Agent) - A git repository (Squad stores team state in `.ai-team/`) This copies `squad.agent.md` into `.github/agents/` and installs templates into `.ai-team-templates/`. Your actual team (`.ai-team/`) is created at runtime when you first talk to Squad. +**Note:** When you select Squad from the agent picker, you'll see the version number in the name (e.g., "Squad (v0.3.0)"). This helps you confirm which version is installed. + --- ## How Teams Form (Init Mode) @@ -379,7 +381,7 @@ The coordinator uses 6.6% of its window. A 12-week veteran agent uses 4.5% — b - **Silent success bug** — approximately 7–10% of background agent spawns complete all their file writes but return no text response. This is a platform-level issue. Squad detects it by checking the filesystem for work product and reports what it finds. Work is not lost. - **Platform latency** — response times depend on the Copilot platform. Complex multi-agent tasks take 40–60 seconds. Simple questions are answered in 2–3 seconds. - **Node 22+** — requires Node.js 22.0.0 or later. -- **GitHub Copilot CLI only** — no other runtimes are supported. +- **GitHub Copilot required** — Squad works across Copilot hosts (CLI, VS Code, Visual Studio, Coding Agent). - **First session is the least capable** — agents improve as they accumulate history. Give it a few sessions before judging. --- diff --git a/docs/scenarios/upgrading.md b/docs/scenarios/upgrading.md index 2a8a41aab..832015c0a 100644 --- a/docs/scenarios/upgrading.md +++ b/docs/scenarios/upgrading.md @@ -57,20 +57,36 @@ Example: upgrading to v0.2.0 creates `.ai-team/skills/` if it doesn't already ex ## Version Stamping -`squad.agent.md` is version-stamped on install and upgrade. You can check your installed version: +`squad.agent.md` is version-stamped on install and upgrade. The version appears in two places: -```bash -npx github:bradygaster/squad --version -``` +### 1. Agent Name (Visible in UI) +The version is displayed in the agent picker across all Copilot hosts (VS Code, CLI, Visual Studio): + +```yaml +name: Squad (v0.3.0) ``` -0.2.0 -``` -Or look at the frontmatter in `.github/agents/squad.agent.md`: +When you select agents in Copilot, you'll see **"Squad (v0.3.0)"** in the dropdown — making it immediately clear which version you're running. + +### 2. Version Field (For Reference) + +The frontmatter also includes a standalone version field: ```yaml -version: "0.2.0" +version: "0.3.0" +``` + +### 3. CLI Check + +You can also check your installed version from the command line: + +```bash +npx github:bradygaster/squad --version +``` + +``` +0.3.0 ``` --- From f9bb4b54ed465e34e373a189990129a147585ab3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 12 Feb 2026 00:03:58 +0000 Subject: [PATCH 4/5] Make version stamping more robust with regex patterns Co-authored-by: bradygaster <41929050+bradygaster@users.noreply.github.com> --- README.md | 2 +- docs/scenarios/upgrading.md | 10 ++++------ index.js | 4 ++-- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 696c819dc..0db45aa0f 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ npx github:bradygaster/squad copilot ``` -Select **Squad (v0.3.0)** from the `/agents` list, then: +Select **Squad (vX.Y.Z)** from the `/agents` list, then: ``` I'm starting a new project. Set up the team. diff --git a/docs/scenarios/upgrading.md b/docs/scenarios/upgrading.md index 832015c0a..0e2396109 100644 --- a/docs/scenarios/upgrading.md +++ b/docs/scenarios/upgrading.md @@ -64,17 +64,17 @@ Example: upgrading to v0.2.0 creates `.ai-team/skills/` if it doesn't already ex The version is displayed in the agent picker across all Copilot hosts (VS Code, CLI, Visual Studio): ```yaml -name: Squad (v0.3.0) +name: Squad (vX.Y.Z) ``` -When you select agents in Copilot, you'll see **"Squad (v0.3.0)"** in the dropdown — making it immediately clear which version you're running. +When you select agents in Copilot, you'll see **"Squad (vX.Y.Z)"** in the dropdown — making it immediately clear which version you're running. ### 2. Version Field (For Reference) The frontmatter also includes a standalone version field: ```yaml -version: "0.3.0" +version: "X.Y.Z" ``` ### 3. CLI Check @@ -85,9 +85,7 @@ You can also check your installed version from the command line: npx github:bradygaster/squad --version ``` -``` -0.3.0 -``` +The output will show your installed version (e.g., `0.3.0`). --- diff --git a/index.js b/index.js index 67a344315..e83b05de1 100644 --- a/index.js +++ b/index.js @@ -470,9 +470,9 @@ const isUpgrade = cmd === 'upgrade'; function stampVersion(filePath) { let content = fs.readFileSync(filePath, 'utf8'); // Replace version field - content = content.replace('version: "0.0.0-source"', `version: "${pkg.version}"`); + content = content.replace(/^version:\s*"[^"]*"/m, `version: "${pkg.version}"`); // Replace version in name field to show in agent picker UI - content = content.replace('name: Squad (v0.0.0-source)', `name: Squad (v${pkg.version})`); + content = content.replace(/^name:\s*Squad\s*\(v[^)]*\)/m, `name: Squad (v${pkg.version})`); fs.writeFileSync(filePath, content); } From 5f5204aa4450d9886aacc5457e936bfe78e5aec4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 12 Feb 2026 00:05:00 +0000 Subject: [PATCH 5/5] Handle edge cases in version stamping and fix documentation consistency Co-authored-by: bradygaster <41929050+bradygaster@users.noreply.github.com> --- docs/scenarios/upgrading.md | 2 +- index.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/scenarios/upgrading.md b/docs/scenarios/upgrading.md index 0e2396109..4fb1df61a 100644 --- a/docs/scenarios/upgrading.md +++ b/docs/scenarios/upgrading.md @@ -85,7 +85,7 @@ You can also check your installed version from the command line: npx github:bradygaster/squad --version ``` -The output will show your installed version (e.g., `0.3.0`). +The output will show your installed version (e.g., `X.Y.Z`). --- diff --git a/index.js b/index.js index e83b05de1..525a7a798 100644 --- a/index.js +++ b/index.js @@ -472,7 +472,8 @@ function stampVersion(filePath) { // Replace version field content = content.replace(/^version:\s*"[^"]*"/m, `version: "${pkg.version}"`); // Replace version in name field to show in agent picker UI - content = content.replace(/^name:\s*Squad\s*\(v[^)]*\)/m, `name: Squad (v${pkg.version})`); + // Handles both "Squad" and "Squad (vX.Y.Z)" formats + content = content.replace(/^name:\s*Squad(?:\s*\([^)]*\))?$/m, `name: Squad (v${pkg.version})`); fs.writeFileSync(filePath, content); }