docs: add ADR 0001 (ecosystem trust, upstream contribution, fork stewardship) - #24
Conversation
…ardship) Formalizes how Numan handles third-party plugins, modules, scripts, completions, and nupm-discovered packages across all sources (official registry, custom registries, nupm) -- not just the curated official registry. Evaluated against the current codebase before writing this up, not transcribed blind: - Confirmed the "Registry Trust Requirements" section describes already-implemented behavior (RegistryManager's atomic index promote + last-known-good fallback in src/core/registry.rs), not a new ask. Recorded that explicitly so this ADR doesn't read as a TODO where the work is done. - Confirmed no contradiction with existing CLAUDE.md invariants (install is inert, activate is the only Nu-touching command, Ed25519 signatures, mandatory plugin SHA-256, lockfile snapshots). - Confirmed the package-status taxonomy here is orthogonal to, not a duplicate of, docs/nupm-compatibility.md's NupmOutcome taxonomy -- one is "can we import this nupm package," the other is "what's our trust/maintenance relationship with its origin." Added a cross-reference in nupm-compatibility.md so the two don't get conflated by a future reader. - Confirmed the inspect/audit/provenance UX and metadata schema are genuinely new work -- no such commands exist in src/cmd/ today. - Cited nushell/nu_scripts#1265 (opened this session, fixing a broken seed-package candidate upstream instead of forking it) as a live example of Lane 1 already working in practice. Status: Proposed. Implementation priorities in the ADR sequence the metadata schema, inspect/audit UX, and patch/fork workflows as separate follow-up work, not part of this change.
There was a problem hiding this comment.
Pull request overview
This PR adds a proposed Architecture Decision Record (ADR) documenting Numan’s policy for ecosystem trust, upstream contribution, and fork stewardship across package sources, and cross-references it from the existing nupm compatibility contract to clarify that the two documents cover orthogonal concerns.
Changes:
- Add ADR 0001 describing package trust/maintenance status classes and decision lanes (upstream vs patch vs fork vs unsupported).
- Update
docs/nupm-compatibility.mdwith a short cross-reference clarifying thatNupmOutcometaxonomy is separate from ADR trust/maintenance status.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| docs/nupm-compatibility.md | Adds a cross-reference clarifying how the nupm compatibility taxonomy relates to ADR 0001. |
| docs/adr/0001-ecosystem-trust-upstream-contribution-fork-stewardship.md | Introduces ADR 0001 documenting ecosystem trust and fork stewardship policy. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 30101f2455
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Co-authored-by: Anthony Thompson <tonythethompson@hotmail.com>
Summary
Formalizes how Numan handles third-party plugins, modules, scripts, completions, and nupm-discovered packages -- across all sources (official registry, custom registries, nupm), not just the curated official registry.
Evaluation before writing this up
RegistryManager's atomic index promote + last-known-good fallback already exists insrc/core/registry.rs. Noted this explicitly in the ADR so it reads as a recorded requirement, not an open TODO.CLAUDE.md's Critical Rules (install is inert, activate is the only Nu-touching command, Ed25519 signatures, mandatory plugin SHA-256, lockfile snapshots).docs/nupm-compatibility.md'sNupmOutcometaxonomy -- one answers "can we import this nupm package," the other answers "what's our trust/maintenance relationship with its origin." Added a cross-reference innupm-compatibility.mdso a future reader doesn't conflate the two.inspect/audit/provenanceUX and metadata schema are genuinely new work -- no such commands exist insrc/cmd/today (info.rsis the closest analog).Status
Proposed. The ADR's own Implementation Priorities section sequences the metadata schema,
inspect/auditUX, and compat-patch/fork workflows as separate follow-up work -- none of that is part of this change.Test plan