diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index 61f925af..53195cbc 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -3,7 +3,7 @@ # days after the breaking merge) - see issue #54. # # This job deliberately runs `pnpm run verify` VERBATIM rather than re-listing -# its three phases as separate steps. `verify` is the single definition of "the +# its four phases as separate steps. `verify` is the single definition of "the # repo is consistent"; splitting it here would create a second definition that # can silently drift from package.json. Note it is `verify`, not `check` - # `check` is `vp check --fix` and CI must never rewrite files. diff --git a/CLAUDE.md b/CLAUDE.md index 51369e4c..2c019307 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -144,20 +144,41 @@ Adding a root dependency needs `pnpm add -w` (or `--workspace-root`); a bare `pnpm add ` at the root fails with `ERR_PNPM_ADDING_TO_ROOT`. Prefer targeted `pnpm add` over `pnpm up` for dependency bumps - see the type-checking note below for why `pnpm up`'s transitive re-resolution can break `vp check`. +Always follow any `add` with a bare `pnpm install`: `add` relinks only its own +workspace and leaves sibling workspaces' symlinks dangling. Only the full +install prints `Scope: all 3 workspace projects`. + +**The 24-hour release-age guard is real but invisible to `pnpm config`.** +`pnpm config get minimumReleaseAge` reports `undefined`, which reads like "no +policy here" - it only reports what is _explicitly_ set, and nothing in this +repo or `~/.npmrc` sets it. The value comes from pnpm 11's own defaults table, +`"minimum-release-age": 24 * 60, // 1 day` (read out of pnpm 11.17.0's shipped +code, 2026-07-29). So a package published less than a day ago will not install +without pnpm writing a `minimumReleaseAgeExclude` bypass into +`pnpm-workspace.yaml` - which is the thing to watch for in a diff. Don't +conclude the guard is off because `config get` came back empty, and don't rely +on it silently either: a pnpm 12 could change the default, so if it ever +matters, set it explicitly. - `pnpm install` - install deps - `pnpm vp dev` - dev server - `pnpm vp test` - full test suite (Vitest-compatible; tests import from `"vite-plus/test"`) - `pnpm vp test test/controlScale.spec.ts` - a single test file -- `pnpm vp check --fix` - format + lint + **type-check**, the single static-check - step (see the type-checking note below; there is still **no** `vue-tsc` check - of `.vue` bodies) +- `pnpm vp check --fix` - format + lint + **type-check** of `.ts`, the main + static-check step (see the type-checking note below). It does **not** see + inside `.vue` bodies - that is `check:vue`'s job, and the two together are the + full net. +- `pnpm run check:vue` - `vue-tsc --noEmit`, the type-check of `