Wiki · Design
Release-readiness assessment
Shelf
Design

Release-readiness assessment

Assessed 2026-08-15. This is an evidence record, not a release approval. The assessment ran on feature/WI-033-assess-quality-and-adoption-readiness at 9129888 with Windows PowerShell, Node v22.22.3, npm 10.9.8, and the local package metadata at @rungs/cli 0.1.1. Publication and external announcements were not performed.

Verdict at assessment time

Not ready for external adoption or a public-release push. The repository source and extracted package pass their local checks, but a clean consumer install cannot execute the published package’s rungs binary: Node refuses to strip TypeScript from a file under node_modules. The site also has three current npm-audit vulnerabilities. Both are release-blocking work for WI-034; WI-035 must wait for their disposition and a second clean-consumer run.

Evidence checklist

DimensionEvidenceDispositionOwner / follow-up
Source testsnpm test → 6/6 pass on the assessment branchaccepted-riskThe tests cover the current CLI/module seams; this is not a user-success benchmark.
Repository gatesnpm run rungs -- check → 20 pass, 0 fail after the assessment item was committedaccepted-riskThe gate result is necessary but not sufficient for adoption.
Docs and frontendcd site && npm run build → 97 pages; cd site && npm run check → 0 Astro errors/warnings/hints, 1,203 internal links, 0 brokenaccepted-riskThe build retains the pre-existing duplicate-content-id warnings; see F-010 / WI-034.
Package shapenpm pack --json → @rungs/cli@0.1.1, 100 files, 120,216-byte tarball, 368,552-byte unpacked; LICENSE and MIT metadata includedaccepted-riskThe packed file contains src/ and modules/ as declared by package.json.
Clean dependency installnpm install --prefix C:\Temp\rungs-wi033-consumer C:\Temp\rungs-wi033-package\rungs-cli-0.1.1.tgz → 2 packages added, 3 audited, 0 vulnerabilitiesaccepted-riskDependency resolution itself is clean on this host.
Clean consumer commandnpm exec --prefix C:\Temp\rungs-wi033-consumer -- rungs --help fails with ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING in node_modules/@rungs/cli/src/cli.ts on Node 22.22.3blockingWI-034: ship an executable consumer entry point (or a supported runtime strategy), then replay the journey.
Extracted package journeyAfter extracting the same tarball outside node_modules and installing smol-toml, doctor, init, check, render, upgrade preview, and eject --dry-run ran; a git-backed packed smoke repo registered 19 gates and passed 18/18accepted-riskThis proves the source files work outside the Node restriction; it does not clear the installed-bin blocker.
Safe failure / recoveryadd definitely-not-a-module --into C:\Temp\rungs-wi031-smoke --dry-run exits 1 with an explicit unknown-module message; the consumer repo remains cleanaccepted-riskThe no-write path is safe and attributable.
Root dependency auditnpm audit --omit=dev → 0 vulnerabilitiesaccepted-riskRoot runtime dependency posture is clean at assessment time.
Site dependency auditcd site && npm audit → 3 vulnerabilities (2 high, 1 low): Astro, Sharp, and esbuild; npm audit fix --force proposes breaking Astro 7.2.2remediate-before-releaseF-009 → WI-034. Do not force-upgrade as part of this assessment.
LicensingRoot LICENSE is MIT and the packed artifact includes it; package.json declares MITaccepted-riskThe Rift Forge source’s unresolved licence is not a dependency of this package.
Upgrade/eject boundaryPreview and dry-run completed on the extracted package; ejection reports 19 declared gates and writes nothing in dry-run modeaccepted-riskRe-run after the installed-bin fix; ejected copies intentionally stop receiving engine updates.
Platform matrixSuperseded 2026-08-17. At assessment time only Windows PowerShell + Node 22.22.3 was exercised. CI now runs {ubuntu, macos, windows} × node {22.18, 22} on every push, and its first runs found four defects that had never worked off Windows — F-033 (a gate shipped in four of five profiles) and F-036 (three more, one shared path bug). The row’s disposition was not-applicable; it should have been blocking, and it took twelve days and a published package to find that outblocking → addressedThe matrix is the criterion now, not a note about one. release-runbook.md §6 requires reading the run before the tag.
Registry / provenanceNo publish, npm view, provenance attestation, or consumer run from the public registry was performednot-applicableWI-035 owns publication credentials, registry verification, and rollback evidence.
External recoveryNo public issue/report flow, upgrade from an older published version, or uninstall/rollback was exercisednot-applicableWI-035 must provide the operator path; WI-034 owns any CLI defect it exposes.
Site content warningsAstro reports duplicate collection ids for existing root/docs inputs, including backlog/backlog; build succeeds and link checks passremediate-before-releaseF-010 → WI-034: make ids collision-free or make the warning an explicit checked boundary.

Replayable commands

The following are the exact local commands used. Temp paths are disposable and outside the repository; no command published or modified the package registry.

node --version                         # v22.22.3
npm --version                          # 10.9.8
git rev-parse HEAD                     # 9129888
npm pack --pack-destination C:\Temp\rungs-wi033-package --json
npm install --prefix C:\Temp\rungs-wi033-consumer C:\Temp\rungs-wi033-package\rungs-cli-0.1.1.tgz
npm exec --prefix C:\Temp\rungs-wi033-consumer -- rungs --help  # fails before doctor
npm audit --omit=dev
cd site && npm audit
cd site && npm run build
cd site && npm run check

For the extracted-package control, the tarball was unpacked to C:\Temp\rungs-wi033-extracted\package, smol-toml@1.8.0 was installed there, and the following were run against C:\Temp\rungs-wi033-packed-smoke:

node ...\src\cli.ts init ...\packed-smoke tracked
node ...\src\cli.ts check ...\packed-smoke
node ...\src\cli.ts render ...\packed-smoke
node ...\src\cli.ts upgrade ...\packed-smoke
node ...\src\cli.ts eject ...\packed-smoke --dry-run

What remains unknown

This report does not infer readiness from local gates, file presence, or a successful tarball pack. The installed-bin failure prevents a real clean-consumer journey from reaching doctor, so user upgrade and recovery behaviour remain unproven. Registry publication, provenance attestations, platform compatibility, network/proxy policy, and a clean install from the public registry are also unknown. Those are explicit release-checklist inputs for WI-035, not accepted facts.

Release recommendation

WI-034 has now fixed the installed entry-point blocker, the site audit findings, and the duplicate content-id warning. WI-035 may proceed with the release procedure, but must still verify the public registry artifact, credentials/provenance, and the supported Node/platform matrix before announcing readiness.

WI-034 remediation update

The assessment blockers were replayed on feature/WI-034-remediate-readiness-findings on 2026-08-15 with the same Windows/Node 22.22.3 environment:

FindingBeforeRemediation evidenceCurrent disposition
Installed package entry pointnpm exec ... rungs --help failed with ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING because the bin pointed at src/cli.tspackage.json now points at dist/cli.js; prepack bundles src/cli.ts with esbuild. A fresh tarball installed in C:\Temp\rungs-wi034-consumer and npm exec --prefix ... -- rungs --help passed.fixed; WI-035 must verify the registry artifact
F-009 site audit3 vulnerabilities (2 high, 1 low)Astro 7.2.2, compatible integrations, and the lock were refreshed; cd site && npm audit reports 0 vulnerabilities.fixed
F-010 duplicate idsAstro build warned that collection ids were overwrittenThe Astro 7 unified processor and cwd-based source map now build 97 pages with no duplicate-id warnings; cd site && npm run check reports 0 errors, 0 warnings, 0 hints, 1,203 links, 0 broken.fixed

The clean consumer journey now passes locally: packed install, doctor, git-backed init tracked, add release, check (21/21), render, upgrade preview, eject --dry-run, and an unknown-module dry-run that exits 1 without changing the repository. This clears WI-033’s local blockers but is not evidence of a public-registry install or cross-platform compatibility.