docs(npm-to-deno): declare migration substantially complete (closeout #253, #275)#325
Merged
Merged
Conversation
…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
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>
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.
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
What is NOT changed
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
Residual longtail (per-repo follow-ups, not blocking)
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