Skip to content

docs(npm-to-deno): declare migration substantially complete (closeout #253, #275)#325

Merged
hyperpolymath merged 1 commit into
mainfrom
campaign-253/closeout-language-policy
May 31, 2026
Merged

docs(npm-to-deno): declare migration substantially complete (closeout #253, #275)#325
hyperpolymath merged 1 commit into
mainfrom
campaign-253/closeout-language-policy

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

Campaign closeout for the npm → Deno estate-wide migration (umbrella #253). All seven STEP issues (#261/#262/#265/#268/#270/#273/#275) are closed. STEP 7 (workspace finalisation) gets its proof-point landed in ssg-collection#25 (8 SSG adapter manifests migrated Class B → deno.json) and closes alongside this PR.

Changes

File Change
rhodium-standard-repositories/spec/LANGUAGE-POLICY.adoc §Banned-Languages Node.js row: nine carve-out classes (six original + three added via hypatia#405). §Migration-Priority item 3: Medium-term → Done 2026-05-31 (parallels V-lang Zig Done 2026-05-28).
docs/JS-RUNTIME-POLICY.adoc :issue-253: attribute + front-matter NOTE declaring the migration substantially complete. Bump :revdate: 2026-05-19 → 2026-05-31.
.claude/CLAUDE.md npm-Exemptions Reword In-flight migration tracked under #253 → Migration substantially complete 2026-05-31 under umbrella #253, with close-tally summary.

What is NOT changed

  • The carve-out table itself (already authoritative post hypatia#405 + standards#320)
  • The runtime-hierarchy table
  • The hard-rules section

The closeout is purely a status update. npm remains banned, the hypatia rule cicd_rules/nodejs_detected remains armed with nine carve-out classes, the per-repo recipe at docs/migrations/npm-to-deno-template/MIGRATION.md stays canonical.

Closeout state at merge time

STEP Issue State
1 — Layer-1 policy #261 CLOSED 2026-05-30
2 — Template + re-inventory #262 CLOSED 2026-05-30
3 — Smallest-first batch #265 CLOSED 2026-05-30 (22 PRs + carve-out)
4 — Mid-tier batch #268 CLOSED 2026-05-30 (SUBSTANTIALLY DONE)
5 — Larger batch #270 CLOSED 2026-05-30 (SUBSTANTIALLY DONE)
6 — developer-ecosystem #273 CLOSED 2026-05-30 (SUBSTANTIALLY DONE)
7 — workspace finalisation #275 CLOSED 2026-05-31 (this PR + ssg-collection#25)
umbrella #253 CLOSED 2026-05-31 (this PR)

Residual longtail (per-repo follow-ups, not blocking)

  • flat-mate (4 manifests, apps/ subtree)
  • accessibility-everywhere (8 manifests, tools/ subtree)
  • kaldor-iiot (backend+frontend, 26+26 deps)
  • excel-economic-numbers-tool (Class C? Office add-in)
  • ubicity (heavy node src/*.js)
  • the-nash-equilibrium/mvt (Bun-specific)
  • svalinn/ui (local cadre-router + rescript-tea deps)
  • A handful of heavier Vite/Vitest/Jest/Express stacks (anamnesis/visualization, git-scripts/ui, patallm-gallery/claude-integrations/gitlab-bridge)

Each tracked as a per-repo PR when shipped; none gate the umbrella close, parallel to how STEPS 3-6 each closed SUBSTANTIALLY DONE.

Test plan

Refs #252 (ReScript-to-AS, still in-flight)
Refs #239 (TS-to-AS, still in-flight)

🤖 Generated with Claude Code

…te (closes #253, #275)

Campaign closeout for the npm → Deno estate-wide migration. All seven
STEP issues (#261/#262/#265/#268/#270/#273/#275) are closed. ~22
physical-migration PRs landed across STEP 3 (smallest-first) plus
named-bucket audits for STEPS 4/5/6 closed `SUBSTANTIALLY DONE`. STEP 7
(workspace finalisation) closed alongside this PR, with the 8 ssg-collection
adapter migrations shipped in ssg-collection#25 as the workspace-finalisation
proof point.

Updates:

- `rhodium-standard-repositories/spec/LANGUAGE-POLICY.adoc`
  - §Banned Languages "Node.js" row: list the nine carve-out classes
    (six original + three added during the migration via hypatia#405:
    `vscode-` substring, `tree-sitter-` substring, `**/.lake/`,
    `**/office-addin/`, `**/bindings/{javascript,typescript}/`). Note
    that migration is substantially complete with per-repo follow-up
    trackers for the residual longtail.
  - §Migration Priority item 3: change "Medium-term" → "✅ Done
    2026-05-31" (parallels the V-lang→Zig "Done 2026-05-28" entry).

- `docs/JS-RUNTIME-POLICY.adoc`
  - Add `:issue-253:` attribute + a campaign-complete NOTE in the
    front matter, cross-referencing the umbrella close and the
    per-repo migration recipe at
    `docs/migrations/npm-to-deno-template/MIGRATION.md`.
  - Bump `:revdate:` 2026-05-19 → 2026-05-31.

- `.claude/CLAUDE.md §npm Exemptions (Approved)`
  - Reword "In-flight migration tracked under #253" → "Migration
    substantially complete 2026-05-31 under umbrella #253", with
    the same close-tally summary as the LANGUAGE-POLICY.adoc note.

What's NOT changed: the carve-out table itself (already authoritative
post hypatia#405 + standards#320), the runtime-hierarchy table, the
hard-rules section. The closeout is purely a status update — npm is
still banned, the hypatia rule remains armed with nine carve-out
classes, the per-repo recipe stays canonical.

Carry-forward: residual longtail per-repo follow-ups (flat-mate,
accessibility-everywhere, kaldor-iiot, excel-economic-numbers-tool,
ubicity, heavier Vite/Vitest/Jest/Express stacks) are tracked as
per-repo PRs as they ship; they don't gate the umbrella close.

Closes #253. Closes #275.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hyperpolymath hyperpolymath enabled auto-merge (squash) May 31, 2026 07:08
@hyperpolymath hyperpolymath merged commit 3315bbc into main May 31, 2026
0 of 18 checks passed
@hyperpolymath hyperpolymath deleted the campaign-253/closeout-language-policy branch May 31, 2026 07:11
hyperpolymath added a commit to hyperpolymath/hypatia that referenced this pull request May 31, 2026
#275 closeout cleanup) (#412)

## Summary

Surfaced during the hyperpolymath/standards#275 STEP 7 closeout
**estate-wide hypatia scan**:
`proven-servers/bindings/rescript/package-lock.json` was the single
uncarved hit across 20 estate-wide `package-lock.json` files.

The `rescript` variant is **host-required for the rescript-to-js compile
chain** (same pattern as JS/TS consumer exports, just produced from
`.res` sources) and is symmetric to the existing `/bindings/javascript/`
and `/bindings/typescript/` carve-out class (5c).

## Changes

**`lib/rules/cicd_rules.ex`** — carve-out class 5c extended:

| Before | After |
|---|---|
| `/bindings/javascript/` | `/bindings/javascript/` |
| `/bindings/typescript/` | `/bindings/typescript/` |
| — | `/bindings/rescript/` |

Comment block updated to reflect the rescript variant + reference the
standards#275 STEP 7 surfacing context.

**`test/rules/cicd_rules_rescript_npm_js_test.exs`** — 1 new test case
in the `nodejs_detected rule` describe block asserting that lockfiles
under any of the three sibling consumer-export bindings paths are
exempt.

## Why this closes the loop

The standards#253 closeout PR
(hyperpolymath/standards#325) merged
2026-05-31T07:11Z, declaring the npm → Deno migration "substantially
complete" with "zero `:nodejs_detected` flags outside carve-outs". The
estate-wide scan during that closeout's STEP 7 audit
(hyperpolymath/standards#275) surfaced one
uncarved hit. This PR makes the closeout declaration **exactly true**
(was 19/20 prior).

## Test plan

- [ ] CI: existing nodejs_detected suite passes
- [ ] New test: `exempts */bindings/{javascript,typescript,rescript}/
consumer exports` passes (already syntactically validated via
`Code.string_to_quoted!`)
- [ ] Hypatia self-scan: no false-positive flagging on
`proven-servers/bindings/rescript/`

Refs hyperpolymath/standards#253 (umbrella, CLOSED 2026-05-31)
Refs hyperpolymath/standards#275 (STEP 7, CLOSED 2026-05-31)
Refs #405 (predecessor — first batch of class-5c carve-outs added
vscode-*, tree-sitter-*, Lake, Office, javascript/typescript bindings)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
hyperpolymath added a commit that referenced this pull request May 31, 2026
…t (post #275 closeout cleanup) (#328)

## Summary

Surfaced during the standards#275 STEP 7 closeout **estate-wide hypatia
scan**: `proven-servers/bindings/rescript/package-lock.json` was the
single uncarved hit across 20 estate-wide `package-lock.json` files.

[hypatia#412](hyperpolymath/hypatia#412) extends
the `:nodejs_detected` rule's class 5c
(`/bindings/{javascript,typescript}/`) to also cover
`/bindings/rescript/`. This PR **mirrors that to the
LANGUAGE-POLICY.adoc Node.js narrative row**, matching the docs-vs-rule
parity pattern from hypatia#405 + standards#320.

## Change

`rhodium-standard-repositories/spec/LANGUAGE-POLICY.adoc` Node.js
banned-language row:

| Before | After |
|---|---|
| "nine carve-out classes (six original + three added during the
migration via hypatia#405)" | "nine carve-out classes (six original +
three added during the migration via hypatia#405 + one added
post-closeout via hypatia#412 for `/bindings/rescript/` symmetry)" |
| Class (5): `**/bindings/{javascript,typescript}/**` | Class (5):
`**/bindings/{javascript,typescript,rescript}/**` with rationale "the
`rescript` variant is host-required for the rescript-to-js compile
chain" |

## Why post-closeout

The standards#253 closeout PR (#325) merged 2026-05-31T07:11Z. The
campaign is officially complete. This PR makes the closeout declaration
"zero `:nodejs_detected` flags outside carve-outs" **exactly true** (was
19/20 prior) without re-opening #253 or #275.

Pairs with hyperpolymath/hypatia#412 (rule update + test). Both should
land together to maintain docs↔rule parity.

## Test plan

- [ ] CI green (text-only change)
- [ ] Cross-link to hypatia#412 PR description visible in this PR
comments
- [ ] Hypatia self-scan unchanged (rule is in hypatia repo, not
standards)

Refs #253 (umbrella, CLOSED 2026-05-31)
Refs #275 (STEP 7, CLOSED 2026-05-31)
Refs #320 (predecessor mirror PR pattern for hypatia#405)
Refs hyperpolymath/hypatia#412 (the rule update this mirrors)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

[campaign #253] STEP 7 — WORKSPACE FINALISATION: multi-manifest workspace repos [campaign] npm → Deno estate migration (UMBRELLA)

1 participant