Epic: Workspace Manifest & Resolution
Description
Nexus today assumes one repo plays every role at once: code repo, planning-queue host, and
knowledge store. Multi-repo products split those roles — code lives in member repos, knowledge
in a docs hub — and developers work in whichever repo their task lives in, not at a parent
folder. Before any pipeline stage can operate across that split, the workspace itself must be a
declared, discoverable thing: which repo is the hub, which repos are members, and where their
checkouts are expected to live.
This epic delivers that foundation. A single manifest in the hub declares the workspace. A small
pointer in each member repo locates the hub. Resolution behaves identically whether it starts
from the hub or from any member repo, reports exactly what is missing when it cannot resolve,
and falls back to today's single-repo behavior when no workspace is declared — existing
single-repo projects are untouched.
Every later multi-repo capability — close-entry migration, cross-repo distillation, Prime's
workspace state — consumes this resolution rather than re-deriving it. Getting it right once,
with sharp diagnostics, is what keeps the rest of the program frictionless for developers.
Success Metrics
- Resolution parity: from the hub or from any member checkout, workspace resolution reports
an identical workspace description (same hub, same member set, same checkout locations).
- Diagnosability: every resolution failure mode — malformed manifest, missing hub checkout,
missing member checkout, undeclared member — produces an error naming the artifact and the
expected state; no generic failure messages.
- Zero regression: a repo with no workspace signals runs every
nxs.* command with behavior
unchanged from today.
- Setup cost: adding a member repo to an existing workspace touches at most two files — the
hub manifest and the new member's pointer.
Personas
Per docs/product/context.md, with one epic-specific addition:
| Persona |
Role in this epic |
| Delivery lead (epic-specific) |
Declares and maintains the workspace manifest in the hub repo |
The canonical engineer persona appears here as the member-repo developer who must never need to
know the workspace's full shape to work in their own repo.
Assumptions
- The sibling-checkout convention is the only supported layout in v1: the hub and all member
checkouts sit under one parent folder. Per-engineer checkout-path overrides are deferred.
- The manifest is committed in the hub repo; the hub pointer is committed in each member repo.
- Workspace membership changes are infrequent, lead-authored edits; no manifest-generation
tooling is needed in this epic.
- Git is the only version-control system in scope.
Out of Scope
- Consuming workspace resolution in
/nxs.close or /nxs.distill (the close-entry-migration
and distill-multi-repo stubs).
- Prime's derived workspace state (the
workspace-state-provider stub).
- Per-engineer checkout-path overrides for non-sibling layouts (re-triage via the feature
backlog if the convention proves insufficient).
- Auto-cloning or fetching missing checkouts — resolution reports; it never mutates.
Open Questions
Epic: Workspace Manifest & Resolution
Description
Nexus today assumes one repo plays every role at once: code repo, planning-queue host, and
knowledge store. Multi-repo products split those roles — code lives in member repos, knowledge
in a docs hub — and developers work in whichever repo their task lives in, not at a parent
folder. Before any pipeline stage can operate across that split, the workspace itself must be a
declared, discoverable thing: which repo is the hub, which repos are members, and where their
checkouts are expected to live.
This epic delivers that foundation. A single manifest in the hub declares the workspace. A small
pointer in each member repo locates the hub. Resolution behaves identically whether it starts
from the hub or from any member repo, reports exactly what is missing when it cannot resolve,
and falls back to today's single-repo behavior when no workspace is declared — existing
single-repo projects are untouched.
Every later multi-repo capability — close-entry migration, cross-repo distillation, Prime's
workspace state — consumes this resolution rather than re-deriving it. Getting it right once,
with sharp diagnostics, is what keeps the rest of the program frictionless for developers.
Success Metrics
an identical workspace description (same hub, same member set, same checkout locations).
missing member checkout, undeclared member — produces an error naming the artifact and the
expected state; no generic failure messages.
nxs.*command with behaviorunchanged from today.
hub manifest and the new member's pointer.
Personas
Per
docs/product/context.md, with one epic-specific addition:The canonical engineer persona appears here as the member-repo developer who must never need to
know the workspace's full shape to work in their own repo.
Assumptions
checkouts sit under one parent folder. Per-engineer checkout-path overrides are deferred.
tooling is needed in this epic.
Out of Scope
/nxs.closeor/nxs.distill(theclose-entry-migrationand
distill-multi-repostubs).workspace-state-providerstub).backlog if the convention proves insufficient).
Open Questions