Skip to content

Workspace Manifest & Resolution #38

Description

@sameera

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestepicEpic (created by nxs-gh-create-epic)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions