Part of #253. Blocked by step 2.
Goal
Migrate the long tail of repos with ≤2 package.json manifests, applying the canonical template from STEP 2. This is the "warm-up" batch — predictable, repeatable, and validates the template at scale before tackling larger consolidations.
Scope
Per umbrella body inventory table, the ≤2-manifest bucket includes:
| Manifests |
Repos |
| 2 |
zotero-tools, typed-wasm, proven, proof-burrower, patallm-gallery, my-lang, kaldor-iiot, julia-the-viper, ephapax, claude-integrations, bofj-kitt |
| ≤1 |
tail (per re-inventory from STEP 2) |
Final repo list comes from the STEP 2 re-inventory.
Per-repo recipe
For each repo:
- Verify per-PR ownership gate:
gh repo view hyperpolymath/<repo> --json owner,isFork,parent → owner=hyperpolymath, isFork=false
- Apply STEP 2 template: replace
package.json with deno.json import map
- Port npm scripts →
deno task entries
- Update
.gitignore (drop node_modules exemption)
- Update CI workflow file(s) to call
deno task instead of npm run
- Verify hypatia scan is GREEN (carve-outs from STEP 1 absorb legit npm-style manifests)
- Open PR with auto-merge armed
Acceptance
- One PR per repo (or batched per repo if multiple manifests in same repo)
- All PRs auto-merged with GREEN CI
- Hypatia scan estate-wide shows no new
:nodejs_detected flags from migrated repos
- Per-PR ownership gate verified for each before opening PR
Sequencing
Blocked by: STEP 2 (template + accurate inventory).
Blocks: STEP 4 (mid-tier benefits from long-tail lessons-learned).
Part of #253. Blocked by step 2.
Goal
Migrate the long tail of repos with ≤2
package.jsonmanifests, applying the canonical template from STEP 2. This is the "warm-up" batch — predictable, repeatable, and validates the template at scale before tackling larger consolidations.Scope
Per umbrella body inventory table, the ≤2-manifest bucket includes:
Final repo list comes from the STEP 2 re-inventory.
Per-repo recipe
For each repo:
gh repo view hyperpolymath/<repo> --json owner,isFork,parent→owner=hyperpolymath, isFork=falsepackage.jsonwithdeno.jsonimport mapdeno taskentries.gitignore(dropnode_modulesexemption)deno taskinstead ofnpm runAcceptance
:nodejs_detectedflags from migrated reposSequencing
Blocked by: STEP 2 (template + accurate inventory).
Blocks: STEP 4 (mid-tier benefits from long-tail lessons-learned).