Claude Compass

Workspaces β€” Portable Claude

🧭 The Concept

The whole Claude workspace is backed by git repos in Azure DevOps, so it can be rebuilt on any machine. On the home machine, OneDrive remains the live, continuously synced copy. The repos are the backup and travel layer: client machines that cannot sync personal OneDrive (e.g. Savills) clone only the repos they need.

Every repo is the same thing scoped differently: the files for one scope of the workspace, minus anything that lives in its own repo. Delivery code never lives in a workspace repo; anything under a repos\ folder is an ephemeral clone from its own DevOps home, excluded by .gitignore.

ℹ️
Agreed and built 23–26 October 2026. Full decision log in _output\claude-repo-portability-plan.md on the home machine.
πŸ—ΊοΈ The Repo Map

All workspace repos live in the Workspaces project of the Disseminate DevOps org. The Compass guide stays in its original project with its Cloudflare pipeline.

RepoBecomes this folderWhat it holds
workspace-core{root}\_global\Global CLAUDE.md, all skills, agents, portable memory, sql-standards, setup.ps1. Clone this first on any new machine.
workspace-root{root}\ itselfRoot CLAUDE.md and AGENTS.md, _notes\, _contracts\, _receipts\. Tracks only those; everything else at root is ignored.
workspace-savillsCustomers\Savills\Context, outputs and local skills for all six Savills projects.
workspace-ngbaileyCustomers\NG Bailey\NG Bailey customer workspace.
workspace-ttCustomers\Turner and Townsend\T&T customer workspace (multi-GB PBIX and Power BI caches stay local via .gitignore).
workspace-wycaCustomers\West Yorkshire Combined Authority\WYCA customer workspace.
workspace-disseminateDisseminate\Business work: assets, templates, admin, internal projects.
workspace-personalPersonal\Personal projects including Health and Chrome profile config. Chrome backup zips are excluded (rotating 500 MB files).
chrome-profilesPersonal\Chrome Profiles\repos\chrome-profiles\Backup and deploy scripts for Chrome profiles. Scripts only, never data. See Chrome Profiles.
disseminate-compass{root}\_claude-guide\This site. Lives in the "Disseminate Web Site" DevOps project, deployed to Cloudflare behind a password.

{root} is C:\Users\matt_\OneDrive\Claude\ at home and C:\Claude\ on client machines. Each machine records its root in ~\.claude\workspace-root.txt.

πŸ”— Addresses & Credentials
ThingWhere
Workspaces projecthttps://dev.azure.com/diss-tfs/Workspaces
Clone URL patternhttps://dev.azure.com/diss-tfs/Workspaces/_git/{repo}
DevOps PATSecrets vault, entry DEVOPS_PAT (Code read/write/manage scope). Use /secrets get.
⚠️
Always use dev.azure.com, never the legacy diss-tfs.visualstudio.com address. Client networks commonly allowlist dev.azure.com only. The legacy address hangs forever at "Cloning into..." on the Savills network, and the failure looks like an authentication problem when it is actually the proxy.
πŸ’» New Machine Setup
StepAction
1Install Git and Claude Code. Sign into Claude Code. Set git config --global credential.msauthFlow system so DevOps sign-in opens the real browser.
2git clone https://dev.azure.com/diss-tfs/Workspaces/_git/workspace-core C:\Claude\_global
3cd C:\Claude\_global then powershell -ExecutionPolicy Bypass -File setup.ps1
4Answer the prompts: workspace root (Enter for C:\Claude), then y only to the repos that belong on that machine.
5Per project, open Claude in the project folder and /clone-repo the delivery repos as normal.

On a client machine, clone only: workspace-core, the guide, that client's workspace repo, and chrome-profiles if the browser estate is wanted. Other clients' workspaces, workspace-personal, workspace-disseminate and the secrets vault stay at home. The vault never travels at all; credentials are re-entered per machine.

πŸ”„ Keeping Machines in Sync

Pull at session start, push at session end. Telling Claude "push today's work" is sufficient; a /sync skill to pull or push every workspace repo in one command is planned.

No branches, no PRs for workspace repos. Both machines commit directly to main. This deliberately differs from the delivery repo standard (PR required, no direct commits): that standard protects client code with reviewers, while workspace repos have one author, two machines and no reviewer, so a PR would be ceremony. The machines take turns; on the rare occasion both edit the same line, git raises a conflict at pull and Claude resolves it. If a workspace repo ever gains a second person, that is the day it earns branch policies.

OneDrive still protects the home machine continuously between pushes. On client machines, anything committed and pushed is safe; the exposure is only ever the current session's uncommitted work.