Spaces for VS Code
An AI-powered on-call and engineering copilot for Microsoft engineering teams. Open an isolated, fully-instrumented VS Code workspace for every ICM incident, ADO task, or multi-repo exploration — pre-loaded with the right repos, wikis, MCP tools, and specialized agents so GitHub Copilot can get to work immediately.
Audience: Microsoft engineers with access to Azure DevOps, ICM, Kusto, and GitHub Copilot.
🌟 Why Spaces?
Built to compress on-call cycle time and lower the cost of context-switching — so engineers spend their time on root cause and customer impact, not on cloning repos and chasing Kusto links.
🚀 Accelerated velocity
- 🔎 Fast-track ICM resolution. Copilot starts the investigation with context, not a blank screen — incident details, recent code changes, an initial Kusto query, and candidate TSGs are all in the workspace before you read the first line.
- 🛠️ From task to PR in the same window. AdoAgent + CodeDetective explore the codebase, plan the work, and draft the PR without leaving the workspace.
- 🎯 Focus on solving, not setting up. No clone-the-repo / find-the-TSG / hunt-the-Kusto-query rituals — the workspace lands pre-configured.
🏗️ How it works
- 🗂️ Spaces Portal dashboard. A single VS Code panel lists your active ICMs, ADO tasks, custom spaces, and analytics. One click opens any of them in its own color-coded window.
- 🪟 Isolated workspaces per task. Every space lives in its own folder, with its own clones, its own state (
workspace_status.json), and its own Copilot instructions. Context never bleeds between investigations.
- 🧠 Specialized agents, pre-configured. Each space type lands with the right roster — IcmAgent + CodeDetective + LogAnalyst + GenevaAnalyst + RetrospecAgent for ICM investigations; AdoAgent + CodeDetective + LogAnalyst + RetrospecAgent for ADO tasks; CodeDetective + LogAnalyst + RetrospecAgent for multi-repo exploration.
- 🔌 MCP-wired Copilot. ICM, ADO, Kusto, Geneva, Eschat, Engineering Hub, Teams, Azure, and Work-IQ MCP servers are auto-configured per workspace.
- ⚡ Optional event monitoring. Spaces can poll ICM queues for new incidents (auto-investigate + triage), watched ICMs for new comments (notification only), and ADO work items tagged
Go-Spaces (the tag is hardcoded today; notification only — no write-back to ADO).
- 🔬 InspectorX integration. Microsoft's deep code-review companion extension is offered for install (prompted by default, silent when
spaces.inspectorX.autoInstall is on) to power fix verification.
Quick start
Prerequisites
The extension auto-checks and (on macOS / Windows) attempts to auto-install what it needs on startup via Homebrew / WinGet. Failures are non-blocking — the extension still loads, missing tools are logged as warnings.
| Tool |
Required for |
Detection / install |
| Git |
Cloning repos |
git --version |
| Node.js (v18+) |
Runtime for scripts |
node --version |
| npm |
Installing dependencies |
npm --version |
| Azure CLI |
ADO + Azure auth (you must az login once) |
az --version |
| Azure DevOps CLI extension |
ADO API calls |
auto-installed via az extension add --name azure-devops |
| .NET SDK (8+) |
ICM Copilot + Geneva MCP server |
dotnet --version; installed on-demand |
| Geneva MCP server |
Geneva metric queries |
dotnet tool install --global GenevaMcpServer from the WDATP NuGet feed |
| Agency CLI |
Agency-backed flows |
auto-installed via aka.ms/InstallAgency.sh (macOS / Linux) or aka.ms/InstallTool.ps1 (Windows) |
Recommended: install the Peacock extension so Spaces can color each workspace window.
Open your first space
- Run Spaces: Open Portal from the command palette.
- Pick a user type if prompted (Developer / Manager / Support Engineer — this filters which space types you see).
- From the Portal, click Create Investigation (ICM) or Create Task (ADO), enter the ID, and let Spaces provision the workspace.
- A new VS Code window opens in the workspace folder, color-coded, with Copilot already configured. Read
START_HERE.md and go.
See QUICK_START.md for the 2-minute version.
Space types
| Space |
Started by |
What it does |
Default agents |
| ICM Investigation |
Spaces: Create Investigation or ICM queue event |
End-to-end incident triage and resolution |
IcmAgent, CodeDetective, LogAnalyst, GenevaAnalyst, RetrospecAgent |
| ADO Task |
Spaces: Create Task |
Execute an ADO work item: explore, code, PR |
AdoAgent, CodeDetective, LogAnalyst, RetrospecAgent |
| Multi-Repo |
Spaces: Generate Space (or Portal → Create Space) |
Open-ended cross-repo exploration |
CodeDetective, LogAnalyst, RetrospecAgent |
| Onboarding |
Portal (when spaces.features.onboarding is on) |
Guided setup for new tools (e.g. ICM Copilot) |
CodeDetective |
| People Performance, Quality Metrics, Team Velocity |
Portal |
Analytics spaces — write structured metrics into results/*.json; 7-day TTL |
LogAnalyst, RetrospecAgent (+ CodeDetective for Quality Metrics) |
Which spaces appear in your Portal depends on your selected user type (configured via the spaces.userTypes setting; built-in roles include SWE, EM, and PM, and you can ship your own JSON profile that tags space templates). The analytics templates are not in any built-in role's tag set today, so they only surface when no role is selected (or via a custom user-type override).
Configuration
All settings live under spaces.* in VS Code settings. Most have sensible auto-detected defaults thanks to the bundled WorkIQ auto-detect service, which reads your ADO identity and recent work to pre-populate org / project / team / role / ICM Copilot team.
Azure DevOps
| Setting |
Purpose |
spaces.adoOrg / spaces.adoProject / spaces.adoTeam |
Your primary ADO context |
spaces.adoRepoProject |
Optional — set if git repos live in a different project than your work items |
spaces.role |
Your Microsoft level (used by some prompts for tone calibration) |
spaces.serviceTreeId |
Your team's ServiceTree node, used by ICM Copilot and Teams MCP |
spaces.icmCopilotTeam |
ICM team alias used by ICM-aware agents |
Workspace storage
| Setting |
Purpose |
spaces.basePath |
Root folder where spaces are provisioned (default: ~/Spaces) |
spaces.sharedResourcesRepo |
Sparse-cloned team shared-resources repo (override per team; defaults to MDE.AI.SharedResources) |
Knowledge base wikis
spaces.knowledgeBaseWikis is an array of wiki repos to clone into every workspace under knowledge-base/. Each entry:
{
"name": "Service Docs",
"url": "https://dev.azure.com/myorg/myproject/_git/MyService.Wiki",
"folderName": "knowledge-base/service-docs.wiki",
"enabled": true
}
Agents (IcmAgent, CodeDetective, etc.) recursively search knowledge-base/ for TSGs, architecture docs, and runbooks — predictable location regardless of how many wikis are configured.
To find a wiki's clone URL: open the wiki in ADO → "Clone Wiki" in the top-right "More" menu → copy the HTTPS URL.
Feature flags
spaces.features.* toggles optional capabilities:
| Flag |
What it does |
onboarding |
Exposes the onboarding space type in the Portal |
icmCopilot |
Enables the ICM Copilot integration |
myTeams |
Enables MyTeams browsing in the Portal |
contextRules |
Context-rules feature (always on) |
inspectorX |
Enables the InspectorX companion-extension flow (prompts to install on first use; silent install only when spaces.inspectorX.autoInstall: true) |
Event monitoring (optional)
Off by default. Set spaces.events.enabled = true to opt in.
| Setting |
Purpose |
spaces.events.enabled |
Master switch for the event pipeline |
spaces.icm.queues |
ICM queues to poll for new incidents |
spaces.icm.writeMode |
auto / approval-required (default) / dry-run — gates ICM discussion-thread and tag write-backs |
When enabled, three event sources are registered, each with a different pipeline:
- ICM queue (new incidents) — auto-investigate + triage, plus the global handlers.
- ICM comments (new comments on watched incidents) — notification only, plus the global handlers.
- ADO work items tagged
Go-Spaces — notification only, plus the global handlers. The trigger tag is hardcoded; there is no setting today to override it.
The global handlers (applied to all sources) are notification, lifecycle tracking, and dashboard update. A fourth global handler — ICM write-back — only acts on ICM lifecycle events (it filters out non-ICM entities), so ADO events never write back to ADO. ICM write-back surfaces four language-model tools to Copilot — icm_read_discussion, icm_add_discussion_entry, icm_update_keywords, icm_add_tags — all governed by spaces.icm.writeMode.
Sample workflows
ICM investigation
- Spaces: Create Investigation → enter ICM 12345.
- Spaces provisions
~/Spaces/ICM-12345/, clones the implicated service repos + your wikis, writes START_HERE.md, and opens a fresh VS Code window.
- Copilot lands as the IcmAgent: reads incident context, runs initial Kusto queries via LogAnalyst, checks recent code changes via CodeDetective, optionally pulls metric anomalies from GenevaAnalyst.
- Findings are written as confidence-graded artifacts (
impact_assessment.md, repro_query.kql, investigation_log.md) — see Spaces.AI/src/AGENTS.md for the quality standards every agent must follow.
- When wrapping up, RetrospecAgent offers (never auto-runs) a continuous-improvement pass on the wiki.
ADO task → PR
- Spaces: Create Task → enter ADO 67890.
- Spaces provisions the workspace and clones the relevant repo.
- Copilot, as the AdoAgent + CodeDetective pair, fetches work-item context, explores the codebase, and proposes a plan.
- Implementation happens in the same window; the orchestrator delegates PR creation back to AdoAgent (which knows the dual-project Tasks-vs-Repos routing rule).
Multi-repo exploration
- Spaces: Generate Space (or Create Space from the Portal) → pick the
multi-repo template and paste the repos you want side-by-side.
- Spaces clones them all into one workspace; Copilot has cross-repo grep, semantic search, and the full MCP fleet from the first turn.
Architecture
Manager / Worker. The Portal (Manager) lives in your main VS Code window and watches the spaces base path. Each space (Worker) is a self-contained folder with its own state file, its own clones, its own START_HERE.md, and its own Copilot instructions. Workers never depend on Manager state — everything they need is provisioned at creation time.
A new VS Code window is opened per worker, color-coded via Peacock, so you can run many investigations in parallel without losing track of which is which.
License
Copyright (c) Microsoft Corporation. All rights reserved.
Further reading
QUICK_START.md — 2-minute getting-started guide
docs/PREREQUISITES.md — Required tools and setup details
docs/SPECIFICATION.md — Full system specification
docs/SAFE_COMMANDS.md — Auto-approved terminal commands
../Spaces.AI/README.md — Agents, MCPs, spaces, quality standards
../ARCHITECTURE.md — Cross-package architecture
../docs/Work-IQ-Setup-Guide.md — Work-IQ MCP server setup
| |