WORKSPACES & PROJECTS
Separate work domains, shared infrastructure.
A workspace is an isolation boundary. A project is the concrete work unit inside it. Persona duties bind to projects, while machines remain shared capacity for the whole installation.
HIERARCHY
Ownership narrows into duty.
The hierarchy describes authority and records. It does not dedicate a machine to each workspace.
HOME AND VERBS
Simple by default, explicit when you need separation.
virgo init creates the immutable default workspace ID home, so a single-domain owner never has to design a workspace structure first.
virgo workspace add job
virgo workspace add client-a
virgo workspace listEvery additional domain is an explicit act. Removal is absent from the initial command surface because a workspace carries personas and records; retirement needs specified destructive semantics.
PROJECT BINDINGS
Personas receive duties, not ambient access.
A project lives inside one workspace and usually corresponds to a repository. Persona duties attach at this level, so a project lead or coder receives the worktree and actions required for that project rather than the whole workspace.
This address converges routing, record provenance, and authority on the same hierarchy.
MECHANISM-ENFORCED ISOLATION
A valid-looking cross-workspace request still fails.
Capability authorization compares stamped scope to the operation. Transport compares the verified persona identity to its binding on every operation. A syntactically correct request for another workspace is denied; UI filtering is not the isolation boundary.
SHARED MACHINE FLEET
Placement follows capacity and policy, not workspace ownership.
job/persona-2
Machines belong to the installation and may host fenced personas from different workspaces. Optional placement constraints can narrow eligibility later without changing the hierarchy.