Skip to content

chore: pre-public hardening — fix lockfile, bin, license, README - #38

Merged
aryanjasala merged 9 commits into
mainfrom
chore/pre-public-hardening
Jul 27, 2026
Merged

chore: pre-public hardening — fix lockfile, bin, license, README#38
aryanjasala merged 9 commits into
mainfrom
chore/pre-public-hardening

Conversation

@aryanjasala

Copy link
Copy Markdown
Member

What this PR does

Pre-public hardening for @rtcamp/wp-tooling. Fixes the packaging defects that make main broken to install and adds the missing license. No behavioral change to the shipped modules.

Changes

  • Regenerate package-lock.json — the committed lockfile on main contained hundreds of unresolved git merge-conflict markers, so npm ci failed. Regenerated cleanly (npm audit: 0 vulnerabilities).
  • Drop the dangling bin entrypackage.json declared bin.wp-tooling → ./bin/wp-tooling.js and listed bin in files, but there is no bin/ on main. The package is consumed through its subpath exports, not as a CLI, so npm i -g was installing a broken command. Removed bin + the bin allowlist entry.
  • Add LICENSE — full GPL-2.0 text, matching the declared GPL-2.0-or-later (already in the files allowlist).
  • Rewrite README.md — it advertised a scaffold registry, release scripts, git hooks, CI helpers and a version monitor as if present; those are empty stubs on main. Now separates what works today (TTY UI kit, shared ESLint/Stylelint/Tailwind configs) from the planned stubs, and documents subpath-export usage.
  • Remove .claude/ internal work-logs and the redundant .npmignore (the files allowlist governs publishing; .npmignore also referenced a nonexistent .eslintrc.js).

How I verified

$ npm ci        # succeeds on the regenerated lockfile (was failing on conflict markers)
$ npm audit     # 0 vulnerabilities

Reviewer notes

  • Not addressed here (out of scope / needs a decision):
    • publishConfig still targets GitHub Packages with access: "restricted" (private publish) — decide the public target/visibility before release.
    • The audit's symfony/http-foundation advisory is on the release/v1.0.0 branch's composer.lock, not on main (which has no composer files) — needs a separate fix on that branch.
    • main remains a library stub: the real scaffold/release/CI engine lives on the unmerged release/v1.0.0 line.

package.json declares GPL-2.0-or-later and lists LICENSE in the files allowlist,
but no license text was ever committed. Add the full GPL-2.0 text.
The committed lockfile on main contained hundreds of unresolved git merge-conflict
markers (<<<<<<< / ======= / >>>>>>>), so npm ci failed. Regenerate it cleanly
from package.json (npm audit: 0 vulnerabilities).
package.json declared bin.wp-tooling -> ./bin/wp-tooling.js and listed "bin" in
files, but no bin/ directory exists on main — the package is consumed through its
subpath exports, not as a CLI. Remove the bin field and the bin allowlist entry so
npm install no longer creates a broken wp-tooling command. The CLI returns when the
engine on the release/v1.0.0 line merges.
The old README advertised a scaffold registry, release scripts, git hooks, CI
helpers and a version monitor as if present, but those are empty stubs on main.
Rewrite it to separate what works today (TTY UI kit, shared ESLint/Stylelint/Tailwind
configs) from the planned stubs, document the subpath-export usage, and drop the
.claude references.
Delete the .claude/ work-logs (not for a public repo) and .npmignore (the files
allowlist governs publishing, and .npmignore referenced a nonexistent .eslintrc.js).
Copilot AI review requested due to automatic review settings July 15, 2026 18:14

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR hardens the @rtcamp/wp-tooling package for pre-public consumption by fixing install/publish footguns and aligning repository metadata/docs with what’s actually shipped (library subpath exports, no CLI).

Changes:

  • Regenerates package-lock.json to remove merge-conflict corruption so npm ci works reliably.
  • Removes the broken CLI packaging surface (bin + files allowlist entry) from package.json.
  • Adds the GPL-2.0 license text, rewrites README.md to reflect current vs stubbed exports, and removes internal .claude/ work logs plus the redundant .npmignore.

Reviewed changes

Copilot reviewed 9 out of 10 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
README.md Updates documentation to describe subpath-export usage, current modules, and stubbed modules.
package.json Removes nonexistent CLI bin entry and stops publishing a nonexistent bin/ path.
package-lock.json Re-generated lockfile (verified no remaining merge-conflict markers).
LICENSE Adds full GPL v2 license text to match the package’s declared licensing.
.npmignore Deletes redundant ignore file (publish is controlled via files allowlist).
.claude/issues/4-lint-configs.md Removes internal engineering work log.
.claude/issues/13-tailwind-config.md Removes internal engineering work log.
.claude/issues/1-tty-ui-kit.md Removes internal engineering work log.
.claude/issues/_TEMPLATE.md Removes internal issue-log template.
.claude/commands/handoff.md Removes internal workflow/command documentation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md
The LICENSE shipped the plain GPL v2 text while composer.json/package.json (and
plugin headers) declare GPL-2.0-or-later. Prepend the standard 'version 2 or
later' grant + SPDX-License-Identifier so the file matches the declaration.
Copilot AI review requested due to automatic review settings July 15, 2026 23:26

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 10 changed files in this pull request and generated 1 comment.

Comment thread README.md
The package can be consumed from the public repo without publishing to a registry
(npm install github:rtCamp/wp-tooling), which sidesteps the restricted
publishConfig. Add that alongside the registry install.
Copilot AI review requested due to automatic review settings July 20, 2026 08:55

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 10 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

README.md:8

  • README says both lint and Tailwind toolchains are "optional peer dependencies", but only Tailwind peers are marked optional via peerDependenciesMeta. Installing the package without ESLint/Stylelint deps will still raise peer-dependency warnings, so this sentence is currently inaccurate.
**Node 22+.** The UI kit has zero runtime dependencies; the lint/Tailwind configs
declare their toolchains as optional peer dependencies (install only what you use).

Comment thread package.json Outdated
The description advertised the scaffold registry/release/hooks/CI/version-monitor
that are stubs on main; narrow it to what ships (TTY UI + lint/Tailwind configs).
Mark every peer dependency optional in peerDependenciesMeta: the package is consumed
via subpath exports, so a consumer only needs the peers for the subpath it imports
(and the README's 'optional peer dependencies' claim is now accurate).
Copilot AI review requested due to automatic review settings July 20, 2026 09:10

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 10 changed files in this pull request and generated 1 comment.

Comment thread README.md Outdated
'no CLI on this branch' is ambiguous in published docs; say it exposes no
command-line binary.
Copilot AI review requested due to automatic review settings July 20, 2026 09:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 10 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

README.md:8

  • Because the lint/Tailwind toolchains are marked as optional peer dependencies in package.json, consumers can install @rtcamp/wp-tooling without any peer-dep warnings but then hit runtime Cannot find module ... errors when they import .../eslint-config, .../stylelint-config, or .../tailwind-config. Please add a brief note pointing users to install the relevant peer deps when they use those subpath exports.
**Node 22+.** The UI kit has zero runtime dependencies; the lint/Tailwind configs
declare their toolchains as optional peer dependencies (install only what you use).

@aryanjasala
aryanjasala merged commit 601eba3 into main Jul 27, 2026
1 check passed
@aryanjasala
aryanjasala deleted the chore/pre-public-hardening branch July 27, 2026 20:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants