diff --git a/.correx/project.toml b/.correx/project.toml index 4a9cb56c..f59136a9 100644 --- a/.correx/project.toml +++ b/.correx/project.toml @@ -18,6 +18,10 @@ epic-status = "bash scripts/epic-status.sh" # The gate runner is whitespace-split / no-shell and runs at workspace_root (the repo), so `--prefix # frontend` targets the Node subproject without a `cd`. `npm run build` = `tsc && vite build` (npm's # own shell handles the &&), which fails on a dangling asset import — exactly the COMPLETED-lie hole. +# QA runs clear frontend/ before each run, so node_modules is absent when the terminal build gate +# fires. Without this the gate fails on missing deps instead of on the code it exists to verify. +# `install`, not `ci`: a fresh scaffold has no package-lock.json yet. +setup = "npm --prefix frontend install" typecheck = "npm --prefix frontend run build" build = "npm --prefix frontend run build" test = "npm --prefix frontend test" diff --git a/docs/sprints/2026-07-23.md b/docs/sprints/2026-07-23.md index a4a3ad2a..7d84763b 100644 --- a/docs/sprints/2026-07-23.md +++ b/docs/sprints/2026-07-23.md @@ -103,12 +103,14 @@ **Goal 1 remaining: #267** — the acceptance live run. Fold the unverified #312/#313 trailing-mandate check into the same run. -**Precondition, filed as #314.** #191 (dependency resolution before scaffold accept) closed on -2026-07-21: `runSetupCommand` runs the profile alias `setup` before every build gate and #40 resolves -it per toolchain. But `setup` is operator-declared in `.correx/project.toml`, and a freestyle run -scaffolding into an empty workspace has no profile — so `npm run build` runs with no `node_modules`. -Invisible until now; #263 making the terminal gate actually fire is what surfaces it. For #267, -hand-write a `project.toml` in the QA workspace; the general fix (toolchain-default `setup`) is #314. +**Precondition, handled.** #191 (dependency resolution before scaffold accept) closed on 2026-07-21: +`runSetupCommand` runs the profile alias `setup` before every build gate and #40 resolves it per +toolchain. But `setup` is operator-declared, and the repo profile didn't declare one — so with +`frontend/` cleared before each QA run, the now-firing terminal gate would run `npm run build` against +an absent `node_modules` and fail on deps instead of on the code. Added +`setup = "npm --prefix frontend install"` to `.correx/project.toml` (install, not `ci` — a fresh +scaffold has no lockfile). #267 needs nothing further. The general case — a workspace whose operator +declared no `setup` — is **#314** (toolchain-default fallback). ---