fix(package): mark the manifest private - the npm name voyage belongs to a third party
D-census (order 6242020304, from .claude, 2026-08-20/21) measured that registry.npmjs.org/voyage answers 200 with someone else's package: "Advanced HTTP Routing System for Node.js" (NEURS/voyage, v0.0.1, 2022). This manifest declared `"name": "voyage"` with no `private` flag, so nothing stopped an accidental `npm publish` against a name we do not own - and publishing is one-way. This manifest is test tooling for a Claude Code plugin distributed through the marketplace catalogue (`ref: vX.Y.Z`), never through npm. The sibling non-package manifests (okr, repo-mailbox, repo-standard) all carry `private: true`; voyage was the exception. Operator decision S93: option A (set `private: true`), not option B (scope the name to `@<org>/voyage` for a future publish) - there is no publishing plan, so B would only defer the same choice. Tests first (Iron Law): tests/lib/doc-consistency.test.mjs pins `pkg.private === true`, seen red (actual `undefined`) before the manifest change. New baseline: 1025 tests, 1023 pass / 0 fail / 2 skip (was 1024: 1022/0/2). No `npm publish` in any form, no version bump, no tag, no catalogue change. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
4e5523fb0a
commit
d650ff3bac
2 changed files with 18 additions and 0 deletions
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "voyage",
|
"name": "voyage",
|
||||||
"version": "5.10.0",
|
"version": "5.10.0",
|
||||||
|
"private": true,
|
||||||
"description": "Voyage — brief, research, plan, execute, review, continue. Contract-driven Claude Code pipeline. /trekbrief, /trekplan, and /trekreview each end by building a self-contained operator-annotation HTML (scripts/annotate.mjs, modelled on claude-code-100x): select text or click any heading/paragraph/list-item, pick intent (Fiks/Endre/Spørsmål), write comment, copy structured prompt, paste back, Claude revises the .md.",
|
"description": "Voyage — brief, research, plan, execute, review, continue. Contract-driven Claude Code pipeline. /trekbrief, /trekplan, and /trekreview each end by building a self-contained operator-annotation HTML (scripts/annotate.mjs, modelled on claude-code-100x): select text or click any heading/paragraph/list-item, pick intent (Fiks/Endre/Spørsmål), write comment, copy structured prompt, paste back, Claude revises the .md.",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|
|
||||||
|
|
@ -701,6 +701,23 @@ test('producing commands emit file:// link in final report (operator-UX contract
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('package.json is marked private — the npm name `voyage` belongs to a third party', () => {
|
||||||
|
// D-census 2026-08-20/21: registry.npmjs.org/voyage answers 200, but that is
|
||||||
|
// NOT this package — it is "Advanced HTTP Routing System for Node.js"
|
||||||
|
// (NEURS/voyage, v0.0.1, 2022, maintainer kevin.martin). This manifest is test
|
||||||
|
// tooling for a Claude Code plugin distributed through the marketplace catalogue
|
||||||
|
// (`ref: vX.Y.Z`), never through npm. Without `private`, nothing in the manifest
|
||||||
|
// stops an accidental `npm publish` against a name someone else owns — a one-way
|
||||||
|
// action. Sibling non-package manifests (okr, repo-mailbox, repo-standard) all
|
||||||
|
// carry the flag; voyage was the exception. Operator decision (S93): option A.
|
||||||
|
const pkg = JSON.parse(read('package.json'));
|
||||||
|
assert.equal(
|
||||||
|
pkg.private,
|
||||||
|
true,
|
||||||
|
'package.json must declare "private": true — the npm name `voyage` is owned by a third party',
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
test('package.json still has no "npm run render" script (removed in v5.0.1)', () => {
|
test('package.json still has no "npm run render" script (removed in v5.0.1)', () => {
|
||||||
const pkg = JSON.parse(read('package.json'));
|
const pkg = JSON.parse(read('package.json'));
|
||||||
assert.equal(
|
assert.equal(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue