chore: remove npm-mirror leftovers after align 9.0.0 #2

Merged
jercik merged 3 commits from chore/remove-npm-mirror into main 2026-10-22 17:49:39 +00:00
Owner

Removes the npm-mirror leftovers after align 9.0.0, because this package now publishes only as @j4k-oss/conventional-commit-msg on the Forge registry.

release.yml shrinks from 663 to 208 lines: the npm-mirror job, its integrity step and the OIDC gating are gone, and the Forge publish stays. The GitHub-only release-npm.yml and the empty .npm-mirror marker are deleted. The same align run updates AGENTS.md and two check-dts script messages.

The README now installs the scoped Forge package and says the unscoped npm package is frozen. Every npm command carries --@j4k-oss:registry=https://code.j4k.dev/api/packages/j4k-oss/npm/, because the @j4k-oss scope on npmjs.org has an unconfirmed owner.

🤖 Generated with Claude Code

Removes the npm-mirror leftovers after align 9.0.0, because this package now publishes only as `@j4k-oss/conventional-commit-msg` on the Forge registry. `release.yml` shrinks from 663 to 208 lines: the `npm-mirror` job, its integrity step and the OIDC gating are gone, and the Forge publish stays. The GitHub-only `release-npm.yml` and the empty `.npm-mirror` marker are deleted. The same align run updates `AGENTS.md` and two `check-dts` script messages. The README now installs the scoped Forge package and says the unscoped npm package is frozen. Every npm command carries `--@j4k-oss:registry=https://code.j4k.dev/api/packages/j4k-oss/npm/`, because the `@j4k-oss` scope on npmjs.org has an unconfirmed owner. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Drops the npm-mirror job and its OIDC gating from the Forgejo release
workflow, the GitHub-only release-npm workflow, and the .npm-mirror
marker. Also applies the template and AGENTS.md updates that
j4k-align 9.0.0 renders for this repository.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs: point install and usage at the scoped Forge package
All checks were successful
Checks / pr-flow-canary (pull_request) Has been skipped
Checks / reuse (pull_request) Successful in 5s
Checks / quality-checks (26.5.0) (pull_request) Successful in 33s
Checks / quality-checks (24.15.0) (pull_request) Successful in 35s
Review / Review (pull_request_target) Successful in 4s
commit-msg / commitlint (pull_request) Successful in 14s
77880b7ae9
The unscoped npm package is frozen, so the README now installs
@j4k-oss/conventional-commit-msg from the Forge registry. Each install
command carries the --@j4k-oss:registry flag because the @j4k-oss scope
on npmjs.org has an unconfirmed owner.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Review 01M5JB2XQ9Q1KK39NR4R2GB0H6 — head 7bd5c6de8669bba3ea8bd0ba36b16221420228b6

Review — j4k-oss/conventional-commit-msg @ 6a91110197

Scope: diff against base tree 20e1560f435c
Status: dispatched — coverage complete (8/8 slots terminal)
Facts: current review-wide projection

Computed under:

{
  "abandonment": "abandonment-v1",
  "anchor_recipe": 1,
  "batch_policy": "batch-v1",
  "coverage": "coverage-v3",
  "dispatch_policy": "dispatch-v2",
  "grounder_version": 1,
  "grounding_read_rule": "grounding-read-v1",
  "promotion_policy": "promotion-v1",
  "report": "report-v4",
  "tally": "tally-v1",
  "triage_settle": "triage-settle-v2"
}

Findings (0)

No findings survived.

Reviewed:

  • general-bug (whole/default): no-claims
  • writing-quality (whole/default): no-claims
  • test-trimming (whole/default): no-claims
  • restated-sets (whole/default): no-claims
  • project-docs (whole/default): no-claims
  • unix-cli (whole/default): no-claims
  • use-effect (whole/default): no-claims
  • react (whole/default): no-claims

Other claims

  • grounding-pending (0)
  • ungrounded (0)
  • rejected (0)
  • duplicate-of (0)
  • unadjudicated (0)

Coverage

Coverage pass: 01M5JB2XSWAJ02696WHPXXY46F
Accounting: complete
Slot health: healthy

lens part arm unit status runs loss
general-bug whole default no-claims 1 no
writing-quality whole default no-claims 1 no
test-trimming whole default no-claims 1 no
restated-sets whole default no-claims 1 no
project-docs whole default no-claims 1 no
unix-cli whole default no-claims 1 no
use-effect whole default no-claims 1 no
react whole default no-claims 1 no
<!-- review:summary --> **Review** `01M5JB2XQ9Q1KK39NR4R2GB0H6` — head `7bd5c6de8669bba3ea8bd0ba36b16221420228b6` # Review — j4k-oss/conventional-commit-msg @ 6a911101974a Scope: diff against base tree `20e1560f435c` Status: dispatched — coverage complete (8/8 slots terminal) Facts: current review-wide projection Computed under: ```json { "abandonment": "abandonment-v1", "anchor_recipe": 1, "batch_policy": "batch-v1", "coverage": "coverage-v3", "dispatch_policy": "dispatch-v2", "grounder_version": 1, "grounding_read_rule": "grounding-read-v1", "promotion_policy": "promotion-v1", "report": "report-v4", "tally": "tally-v1", "triage_settle": "triage-settle-v2" } ``` ## Findings (0) No findings survived. Reviewed: - general-bug (whole/default): no-claims - writing-quality (whole/default): no-claims - test-trimming (whole/default): no-claims - restated-sets (whole/default): no-claims - project-docs (whole/default): no-claims - unix-cli (whole/default): no-claims - use-effect (whole/default): no-claims - react (whole/default): no-claims ## Other claims - grounding-pending (0) - ungrounded (0) - rejected (0) - duplicate-of (0) - unadjudicated (0) ## Coverage Coverage pass: 01M5JB2XSWAJ02696WHPXXY46F Accounting: complete Slot health: healthy | lens | part | arm | unit status | runs | loss | | --- | --- | --- | --- | --- | --- | | general-bug | whole | default | no-claims | 1 | no | | writing-quality | whole | default | no-claims | 1 | no | | test-trimming | whole | default | no-claims | 1 | no | | restated-sets | whole | default | no-claims | 1 | no | | project-docs | whole | default | no-claims | 1 | no | | unix-cli | whole | default | no-claims | 1 | no | | use-effect | whole | default | no-claims | 1 | no | | react | whole | default | no-claims | 1 | no |
Lines 59-60
@ -86,14 +103,14 @@ npx -y conventional-commit-msg --last --verbose
```bash
# Check if last commit is valid (for CI scripts)
npx -y conventional-commit-msg --last && echo "Valid" || echo "Invalid"
conventional-commit-msg --last && echo "Valid" || echo "Invalid"

medium — The CI example turns failed validation into a successful command

A CI job that copies this example passes when the last commit is invalid: the failure selects echo "Invalid", whose successful exit becomes the status of the command list. The printed label reports failure while the CI runner receives success.

The README labels conventional-commit-msg --last && echo "Valid" || echo "Invalid" as a check for CI scripts. In src/run-commitlint.ts, runCommitlint returns 1 for an invalid report; src/cli.ts passes that result to process.exit. The documented shell expression then discards that failure status.

Use conventional-commit-msg --last directly for the CI example, or retain the labels in an explicit conditional whose invalid branch exits 1. This preserves the reader's task of failing CI on invalid commits without adding another definition of valid messages. The human-facing writing standard requires describing the effect accurately, and the agent-writing standard requires examples to preserve the contract needed for the reader's task.

I read the README and traced runCommitlint through the CLI action. Running bash -c 'false && echo "Valid" || echo "Invalid"' printed Invalid and exited 0, confirming the shell behavior; this probe substitutes a failing command and does not execute the package itself.

An end-to-end run of the documented expression against an invalid last commit would settle the package-level reproduction: the command list must return nonzero to enforce a CI check. The static exit-code trace and shell probe establish why the present expression does not.

lens writing-quality · arm default · tally 1 valid / 0 invalid / 0 uncertain
claim 01M5JA7YZH0SYR68P0VFT9B60K of review 01M5JA2XF3B5Y6G4B60JZFFS5N

<!-- review:claim:01M5JA7YZH0SYR68P0VFT9B60K --> **medium** — The CI example turns failed validation into a successful command > A CI job that copies this example passes when the last commit is invalid: the failure selects `echo "Invalid"`, whose successful exit becomes the status of the command list. The printed label reports failure while the CI runner receives success. > > The README labels `conventional-commit-msg --last && echo "Valid" || echo "Invalid"` as a check for CI scripts. In `src/run-commitlint.ts`, `runCommitlint` returns 1 for an invalid report; `src/cli.ts` passes that result to `process.exit`. The documented shell expression then discards that failure status. > > Use `conventional-commit-msg --last` directly for the CI example, or retain the labels in an explicit conditional whose invalid branch exits 1. This preserves the reader's task of failing CI on invalid commits without adding another definition of valid messages. The human-facing writing standard requires describing the effect accurately, and the agent-writing standard requires examples to preserve the contract needed for the reader's task. > > I read the README and traced `runCommitlint` through the CLI action. Running `bash -c 'false && echo "Valid" || echo "Invalid"'` printed `Invalid` and exited 0, confirming the shell behavior; this probe substitutes a failing command and does not execute the package itself. > > An end-to-end run of the documented expression against an invalid last commit would settle the package-level reproduction: the command list must return nonzero to enforce a CI check. The static exit-code trace and shell probe establish why the present expression does not. lens `writing-quality` · arm `default` · tally 1 valid / 0 invalid / 0 uncertain claim `01M5JA7YZH0SYR68P0VFT9B60K` of review `01M5JA2XF3B5Y6G4B60JZFFS5N`
jercik marked this conversation as resolved
Author
Owner

Replying to review comment #177970

Tracked in #3. Reproduced: with an invalid last commit, --last exits 1, but the documented && echo "Valid" || echo "Invalid" exits 0 because the echo after || succeeds. The example predates this PR, which only drops its npx -y prefix. #3 makes the invalid branch exit 1. It edits the same two lines as this PR, so I will merge this PR first and then update #3.

> Replying to review comment #177970 Tracked in https://code.j4k.dev/j4k-oss/conventional-commit-msg/pulls/3. Reproduced: with an invalid last commit, `--last` exits 1, but the documented `&& echo "Valid" || echo "Invalid"` exits 0 because the `echo` after `||` succeeds. The example predates this PR, which only drops its `npx -y` prefix. #3 makes the invalid branch exit 1. It edits the same two lines as this PR, so I will merge this PR first and then update #3.
docs: tell existing global installs to uninstall first and keep the registry line
All checks were successful
Checks / pr-flow-canary (pull_request) Has been skipped
Checks / reuse (pull_request) Successful in 3s
commit-msg / commitlint (pull_request) Successful in 8s
Checks / quality-checks (24.15.0) (pull_request) Successful in 35s
Checks / quality-checks (26.5.0) (pull_request) Successful in 35s
Review / Review (pull_request_target) Successful in 2m51s
7bd5c6de86
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jercik merged commit 5370fb570a into main 2026-10-22 17:49:39 +00:00
jercik deleted branch chore/remove-npm-mirror 2026-10-22 17:49:39 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
j4k-oss/conventional-commit-msg!2
No description provided.