Skip to content

Install Nexus components outside the target repo #261

Description

@sameera

Tracking issue for the fourteen goals produced by the discovery on installing Nexus components outside the target repo. It plans no work of its own and files no stories. Each child is a backlog stub, which is an epic that has been identified but not yet planned. Plan one with /nxs.epic <issue-number>.

What the children deliver together

Nexus components stop being committed into every repository. The TypeScript capabilities collapse onto one named executable, the Python capabilities stay a second named toolkit, and both arrive through one package under one semantic version together with the component payload. Exactly one component set exists per user account, at the Claude configuration directory. Every repository that carries a committed set today runs a gated migration verb, and the Nexus repository itself is not exempt. No repository declares a Nexus version, so the toolkit stamps its version onto the artifacts it writes and the changelog carries what changed in how a stage behaves.

Ordering

Three gates are recorded as dependency edges between the children rather than as prose here.

  • Every verb lands and passes the parity gate before any invocation string changes. A component that names a verb which does not exist yet fails when a pipeline stage runs, not when the toolkit is installed.
  • The writer stamp lands before the shared install ships. No artifact records which toolkit stamped it today, so a canonicalisation change would silently invalidate every in-flight receipt.
  • The source-link install content works before the Nexus repository moves its authored tree. Get that order wrong and the first person to install a release discovers that Nexus can no longer be developed.

Where the reasoning lives

Each child carries the resolved decisions that goal hangs on, in full, in its body and again as a comment. The comment is the copy that survives, because planning rewrites the body. Nothing here points at the discovery store, which is removed once the discovery ends.

Children

Issue Goal Est.
#247 Collapse the component-invoked TypeScript capabilities into verbs on one named executable M
#248 Reach project state through an explicitly passed target root M
#249 Make the Python toolkit reachable by name and let it find the executable by name S
#250 Rewrite every component invocation to name a toolkit, behind a build-time gate M
#251 Give the release one version identity, a writer stamp, and a version-difference ladder M
#252 Publish the release as one package carrying both toolkits and the component payload M
#253 Build the install verb that places the component payload and prints the allowlist entries M
#254 Build the removal verb that removes the installed component set S
#255 Migrate a repository off its committed component set with a gated verb M
#256 Separate authoring from loading in the Nexus repository M
#257 Retire the hub's vendored tools directory S
#258 Seed the project templates the pipeline stages read S
#259 Publish the permission allowlist entry for each named toolkit S
#260 Publish an adopter-language changelog on the releases page S

Two decisions that produced no goal

The Nexus Prime session resolves the toolkit by the same rule as a local shell, so Prime supplies nothing and implies no work. The optional minimum-version floor is deferred rather than refuted, and its revisit trigger is a second person working one repository, or a continuous-integration workflow invoking a pipeline stage.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions