chore: complete package.json metadata and guard against publish#35
Merged
Conversation
package.json declared no repository, bugs, homepage, or author, and was not marked private. Four consequences, in descending order of how much they matter: - No `private: true`. agentry installs by clone, never from a registry (D12/D21) -- there is no npm package and there is not meant to be one. A stray `npm publish` would have uploaded the whole repo under the unclaimed name "agentry". npm refuses to publish a package marked private. - No `repository`. Tooling that resolves a project's source from its manifest (and anyone reading package.json first) had nothing to follow. - No `bugs` / `homepage`. Now point at the issue tracker and the README. - `keywords` omitted opencode and mcp, two of the four harnesses and one of the source types. PR #29 made package.json the single source for the plugin manifest's version, description, and license, and left `author` as a literal because package.json had no author field. Adding the field would have recreated exactly the drift #29 removed -- so this also derives `name` and `author` from package.json. No metadata is hardcoded in scripts/ any more. The author value is unchanged ("MANVENDRA-github"), so .claude-plugin/plugin.json regenerates byte-identically. Verified by diffing it across the sync.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What was missing
In descending order of how much each matters:
private: true. agentry installs by clone, never from a registry (D12/D21) — there is no npm package and there is not meant to be one. A straynpm publishwould upload the whole repo under the unclaimed nameagentry. npm refuses to publish a package marked private.repository. Tooling that resolves a project's source from its manifest — and anyone who openspackage.jsonbefore the README — had nothing to follow.bugs/homepage. Now the issue tracker and the README.keywordsomittedopencodeandmcp— one of the four harnesses and one of the six source types.The trap I avoided
PR #29 made
package.jsonthe single source for the manifest'sversion,description, andlicense, and its commit message says:Adding an
authorfield without wiring it would recreate the exact two-source drift #29 removed. So this derivesnameandauthorfrompackage.jsontoo:No project metadata is hardcoded in
scripts/any more.Verification
The author value is unchanged, so the generated manifest must be byte-identical. It is:
One claim I could not verify empirically.
npm publish --dry-runexits0even withprivate: true— dry-run does not perform the private check, so it proves nothing here. I did not run a realnpm publishto test the guard. That npm refuses a private package withEPRIVATEis documented behavior, not something this PR demonstrates.