Skip to content

Portable Nexus Tooling #44

Description

@sameera

Epic: Portable Nexus Tooling

Description

In a multi-repo workspace the hub is a docs repo: it holds the concept store and drains the
committed queue with /nxs.distill. The hub is not a code project — it carries no node package,
no node_modules, no pnpm setup. But two of distillation's deterministic steps are today wired to
that missing toolchain: the concept validator and the atlas generator are TypeScript scripts run
through tsx, which only exists after a full workspace install. Run in a bare hub, those steps
cannot start, and distillation stalls at the gate that is supposed to block a failing concept page
from shipping.

This epic makes that deterministic tooling portable: it runs in the hub on a plain Node.js runtime,
with no workspace install and no tsx. The concept store the hub owns gets validated and its atlas
regenerated exactly as they are in a single code repo today — same findings, same output — so the
hub is a first-class place to distill from. Nothing about single-repo distillation changes.

The distributable this produces is also the foundation two later multi-repo epics build on
(workspace-setup-cli shares it; distill-multi-repo depends on it), so the packaging vehicle is
designed to grow — to carry additional deterministic tools later, including ones with real npm
dependencies — even though this epic only ships the validator and the atlas generator through it.

Success Metrics

  • Distilling in a hub repo that carries no node project completes its deterministic steps — atlas
    regeneration, atlas sync-check, and concept validation — with zero manual toolchain setup (no
    pnpm/npm install, no tsx).
  • Across the concept corpus, the packaged tooling and the in-repo scripts produce identical
    validator findings and byte-identical atlas output — zero diffs — and any divergence fails an
    automated check.
  • Single-repo distillation is unchanged: the existing invocation still runs the deterministic steps
    and passes, with no regression.

Personas

Per docs/product/context.md. The primary engineer persona runs the full pipeline — including
/nxs.distill — and in a multi-repo product runs it from the hub docs repo.

Assumptions

  • The hub machine has a Node.js runtime available — the engineer already runs Prime and the Nexus
    toolchain on it. "No local node tooling of its own" means the hub repo carries no node project
    (no package.json, node_modules, pnpm, or tsx), not that the machine lacks a node binary.
  • The hub is a git repository (it holds the committed queue and concept store), so the git CLI the
    validator's --base append-only check shells out to is present.
  • The in-repo scripts remain the authoritative source. Portability tracks that source rather than
    forking a second implementation, which is what makes the parity guarantee meaningful.
  • The distributable is the shared vehicle later multi-repo tooling joins, so its packaging mechanism
    must be able to carry bundled npm dependencies even though the validator and atlas generator need
    none today.

Out of Scope

  • The workspace resolver and its status read-out (@nexus/workspace, the nxs-workspace-status
    skill) and its yaml npm dependency — the heavy portability case, claimed by workspace-setup-cli
    and consumed by distill-multi-repo. This epic only ensures the distributable can host it later;
    packaging it is deferred to those epics.
  • The GitHub-issue scripts (nxs_gh_create_epic.py, create_gh_issues.py) — already node-free
    (python stdlib) and run in code repos, not the hub. No portability gap.
  • The absolute-doc-path helper (get_abs_doc_path.ts) — runs in member code repos, which have the
    node toolchain; it does not run in the bare hub.
  • The reciprocity fan-out and code-anchor refresh — these are model-driven prose steps in
    /nxs.distill, not scripts, so there is nothing to package.
  • Reimplementing the tooling in another language, and publishing to a public package registry —
    neither is required by the runtime contract; both are HLD's call if chosen at all.

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