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

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

Removes the npm-mirror leftovers after align 9.0.0. fta-check now publishes only as @j4k-oss/fta-check on the Forge registry.

Gone are the .npm-mirror marker, .github/workflows/release-npm.yml, and the npm-mirror job and OIDC gating in release.yml (545 lines removed, 10 added). The Forge-registry publish still renders, and release.config.mjs no longer sets npmPublish: false or tarballDir. The rest is align's own output: AGENTS.md, a workflow comment, two script hints.

The README now installs the scoped package. 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. It also says the unscoped package is frozen.

🤖 Generated with Claude Code

Removes the npm-mirror leftovers after align 9.0.0. `fta-check` now publishes only as `@j4k-oss/fta-check` on the Forge registry. Gone are the `.npm-mirror` marker, `.github/workflows/release-npm.yml`, and the `npm-mirror` job and OIDC gating in `release.yml` (545 lines removed, 10 added). The Forge-registry publish still renders, and `release.config.mjs` no longer sets `npmPublish: false` or `tarballDir`. The rest is align's own output: `AGENTS.md`, a workflow comment, two script hints. The README now installs the scoped package. 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. It also says the unscoped package is frozen. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Delete the .npm-mirror marker and the .github release-npm workflow, drop the
npm-mirror job and OIDC gating from the Forge release workflow, and let
semantic-release publish through the default npm plugin. The other changes are
align 9.0.0 renders: AGENTS.md, a workflow comment, and the check-dts script
hints.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs: point install instructions at the scoped Forge package
All checks were successful
Checks / pr-flow-canary (pull_request) Has been skipped
Checks / reuse (pull_request) Successful in 4s
Checks / quality-checks (24.15.0) (pull_request) Successful in 30s
Checks / quality-checks (26.5.0) (pull_request) Successful in 31s
Review / Review (pull_request_target) Successful in 4s
commit-msg / commitlint (pull_request) Successful in 9s
d7ea775f04
Replace the npmjs install and npx commands with @j4k-oss/fta-check on the
Forge registry, each carrying the scope's registry flag, and note that the
unscoped package is frozen.

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

Review 01M5JBKQC9M7M7MQSN3JKWK9HC — head e937e8a800cc1ecbd274833de672490377fe23ab

Review — j4k-oss/fta-check @ 9dcf2acb15

Scope: diff against base tree a67f85540504
Status: dispatched — coverage complete (5/5 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:

  • restated-sets (whole/default): no-claims
  • general-bug (whole/default): no-claims
  • writing-quality (whole/default): no-claims
  • project-docs (whole/default): no-claims
  • unix-cli (whole/default): no-claims
  • test-trimming: skipped-by-dispatch — no test files changed; changes are CI workflows, docs, config and scripts
  • use-effect: skipped-by-dispatch — no React code changed; paths are workflows, docs, release config and build scripts
  • react: skipped-by-dispatch — no React components, manifests or callers changed

Other claims

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

Coverage

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

lens part arm unit status runs loss
restated-sets whole default no-claims 1 no
general-bug whole default no-claims 1 no
writing-quality whole default no-claims 1 no
project-docs whole default no-claims 1 no
unix-cli whole default no-claims 1 no
  • test-trimming — skipped-by-dispatch: no test files changed; changes are CI workflows, docs, config and scripts
  • use-effect — skipped-by-dispatch: no React code changed; paths are workflows, docs, release config and build scripts
  • react — skipped-by-dispatch: no React components, manifests or callers changed
<!-- review:summary --> **Review** `01M5JBKQC9M7M7MQSN3JKWK9HC` — head `e937e8a800cc1ecbd274833de672490377fe23ab` # Review — j4k-oss/fta-check @ 9dcf2acb15bc Scope: diff against base tree `a67f85540504` Status: dispatched — coverage complete (5/5 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: - restated-sets (whole/default): no-claims - general-bug (whole/default): no-claims - writing-quality (whole/default): no-claims - project-docs (whole/default): no-claims - unix-cli (whole/default): no-claims - test-trimming: skipped-by-dispatch — no test files changed; changes are CI workflows, docs, config and scripts - use-effect: skipped-by-dispatch — no React code changed; paths are workflows, docs, release config and build scripts - react: skipped-by-dispatch — no React components, manifests or callers changed ## Other claims - grounding-pending (0) - ungrounded (0) - rejected (0) - duplicate-of (0) - unadjudicated (0) ## Coverage Coverage pass: 01M5JBM1PKZ38VY0JNEPAQB90G Accounting: complete Slot health: healthy | lens | part | arm | unit status | runs | loss | | --- | --- | --- | --- | --- | --- | | restated-sets | whole | default | no-claims | 1 | no | | general-bug | whole | default | no-claims | 1 | no | | writing-quality | whole | default | no-claims | 1 | no | | project-docs | whole | default | no-claims | 1 | no | | unix-cli | whole | default | no-claims | 1 | no | - test-trimming — skipped-by-dispatch: no test files changed; changes are CI workflows, docs, config and scripts - use-effect — skipped-by-dispatch: no React code changed; paths are workflows, docs, release config and build scripts - react — skipped-by-dispatch: no React components, manifests or callers changed
@ -6,22 +6,35 @@ A thin wrapper around [FTA (Fast TypeScript Analyzer)](https://github.com/sgb-io
## Installation

medium — Installation instructions omit the required Node.js version

Readers can follow the one-shot or global installation instructions on an unsupported Node.js version without being told to upgrade first. The section explains registry setup and the fta-cli prerequisite but never states the runtime prerequisite.

package.json declares engines.node as >=24.15.0. The installed executable, bin/fta-check, invokes Node through its shebang and imports dist/cli.js; it does not provide its own runtime. The lockfile also records a Node engine requirement for the CLI's Commander dependency.

Add ‘Requires Node.js 24.15.0 or later.’ before the installation commands. This supplies the environment decision an installer must make and preserves the registry and peer-dependency guidance. Under the writing standards' reader-task distinction, the exact prerequisite belongs here: a pointer alone leaves readers likely to run the commands before discovering that their runtime is unsupported. package.json remains the authority for the supported range.

I read the complete README, package.json, bin/fta-check, src/cli.ts, and the dependency engine declaration in pnpm-lock.yaml. This is a documentation comparison, not a reproduced installation failure; I did not test particular older Node releases. The explicit package engine requirement establishes the missing prerequisite. Evidence that these installation paths supply a compatible Node runtime automatically would refute the reader impact.

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

<!-- review:claim:01M5JA9AQEY0VE9P7RDN9GMJX2 --> **medium** — Installation instructions omit the required Node.js version > Readers can follow the one-shot or global installation instructions on an unsupported Node.js version without being told to upgrade first. The section explains registry setup and the `fta-cli` prerequisite but never states the runtime prerequisite. > > `package.json` declares `engines.node` as `>=24.15.0`. The installed executable, `bin/fta-check`, invokes Node through its shebang and imports `dist/cli.js`; it does not provide its own runtime. The lockfile also records a Node engine requirement for the CLI's Commander dependency. > > Add ‘Requires Node.js 24.15.0 or later.’ before the installation commands. This supplies the environment decision an installer must make and preserves the registry and peer-dependency guidance. Under the writing standards' reader-task distinction, the exact prerequisite belongs here: a pointer alone leaves readers likely to run the commands before discovering that their runtime is unsupported. `package.json` remains the authority for the supported range. > > I read the complete README, `package.json`, `bin/fta-check`, `src/cli.ts`, and the dependency engine declaration in `pnpm-lock.yaml`. This is a documentation comparison, not a reproduced installation failure; I did not test particular older Node releases. The explicit package engine requirement establishes the missing prerequisite. Evidence that these installation paths supply a compatible Node runtime automatically would refute the reader impact. lens `writing-quality` · arm `default` · tally 1 valid / 0 invalid / 0 uncertain claim `01M5JA9AQEY0VE9P7RDN9GMJX2` of review `01M5JA2WK56PMXKQTGHJV1XW8K`
jercik marked this conversation as resolved
Author
Owner

Replying to review comment #177974

Tracked in #7. The finding holds: package.json declares engines.node as >=24.15.0, and the README on main never states a Node.js requirement, so the omission predates this PR. #7 adds the requirement above ## Installation, outside the text this PR rewrites, and merges cleanly with it in either order.

> Replying to review comment #177974 Tracked in https://code.j4k.dev/j4k-oss/fta-check/pulls/7. The finding holds: `package.json` declares `engines.node` as `>=24.15.0`, and the README on `main` never states a Node.js requirement, so the omission predates this PR. #7 adds the requirement above `## Installation`, outside the text this PR rewrites, and merges cleanly with it in either order.
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 6s
commit-msg / commitlint (pull_request) Successful in 11s
Checks / quality-checks (26.5.0) (pull_request) Successful in 58s
Checks / quality-checks (24.15.0) (pull_request) Successful in 58s
Review / Review (pull_request_target) Successful in 5m27s
4f1f607d16
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
README.md Outdated
@ -25,0 +36,4 @@
npm install --save-dev --@j4k-oss:registry=https://code.j4k.dev/api/packages/j4k-oss/npm/ @j4k-oss/fta-check fta-cli
```
Also add the mapping line to the project's `.npmrc`. Without it, a later plain `npm install` looks the scope up on npmjs.org and fails with a 404.

low — The project registry warning ignores the user mapping configured above

A reader who follows the installation section is told that a later install will fail unless they duplicate their registry mapping in the project. The section has already instructed that reader to add the mapping to ~/.npmrc, and explicitly says npm reads the registry from that configuration. The unconditional 'Without it' warning makes that working setup appear broken.

Replace the paragraph with: 'Commit the scope mapping in the project's .npmrc so collaborators also use the Forge registry.' This preserves the useful project setup instruction and the protection against resolving the package from the wrong registry, while giving the project-local copy its distinct reader task. It follows the human-facing skill's clarity and consistency guidance and the agent-writing skill's reader-task distinction.

I read the full Installation section, including its user-level mapping and global-update explanation, and checked package.json for the publishing registry. This is a contradiction in the documented configuration path; I did not run an npm install or contact either registry. The warning would be justified if it were scoped to users who have neither a user-level nor a project-level mapping; it is not currently scoped that way.

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

<!-- review:claim:01M5JB9T0ZP9RVNXJSTB1R0156 --> **low** — The project registry warning ignores the user mapping configured above > A reader who follows the installation section is told that a later install will fail unless they duplicate their registry mapping in the project. The section has already instructed that reader to add the mapping to ~/.npmrc, and explicitly says npm reads the registry from that configuration. The unconditional 'Without it' warning makes that working setup appear broken. > > Replace the paragraph with: 'Commit the scope mapping in the project's .npmrc so collaborators also use the Forge registry.' This preserves the useful project setup instruction and the protection against resolving the package from the wrong registry, while giving the project-local copy its distinct reader task. It follows the human-facing skill's clarity and consistency guidance and the agent-writing skill's reader-task distinction. > > I read the full Installation section, including its user-level mapping and global-update explanation, and checked package.json for the publishing registry. This is a contradiction in the documented configuration path; I did not run an npm install or contact either registry. The warning would be justified if it were scoped to users who have neither a user-level nor a project-level mapping; it is not currently scoped that way. lens `writing-quality` · arm `default` · tally 1 valid / 0 invalid / 0 uncertain claim `01M5JB9T0ZP9RVNXJSTB1R0156` of review `01M5JB2BNANF9GJ0GF0VQNR2VP`
Author
Owner

Fixed in e937e8a: the README now says to commit the mapping to the project .npmrc for collaborators and CI, and the 404 applies only without a user or project mapping.

<!-- gh-feedback:reply-to:178062 --> Fixed in e937e8a: the README now says to commit the mapping to the project .npmrc for collaborators and CI, and the 404 applies only without a user or project mapping.
jercik marked this conversation as resolved
docs: tie the project npmrc advice to collaborators and CI
All checks were successful
Checks / pr-flow-canary (pull_request) Has been skipped
Checks / reuse (pull_request) Successful in 5s
commit-msg / commitlint (pull_request) Successful in 16s
Checks / quality-checks (26.5.0) (pull_request) Successful in 44s
Checks / quality-checks (24.15.0) (pull_request) Successful in 44s
Review / Review (pull_request_target) Successful in 2m16s
e937e8a800
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jercik merged commit 352e48fb0f into main 2026-10-22 17:53:17 +00:00
jercik deleted branch chore/remove-npm-mirror 2026-10-22 17:53:17 +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/fta-check!6
No description provided.