diff --git a/.correx/project.toml b/.correx/project.toml index f59136a9..e215eef1 100644 --- a/.correx/project.toml +++ b/.correx/project.toml @@ -14,13 +14,27 @@ test-all = "./gradlew check --rerun-tasks" test-module = "./gradlew :core::test --rerun-tasks" context-lookup = "python scripts/ctx.py " epic-status = "bash scripts/epic-status.sh" -# Build-gate aliases (BuildExpectation → commandAlias): MODULE→typecheck, PROJECT→build, TESTS→test. +# Build-gate aliases (BuildExpectation → commandAlias): MODULE→typecheck, PROJECT→build, TESTS→test, +# plus `setup` run before each gate. This repo hosts TWO toolchains — Kotlin at root, a Node app in +# frontend/ — so the flat aliases below are the jvm default and the [commands.*] sections below take +# precedence when the gate can tell what a stage wrote (#40, BuildGateToolchain.stageProducedToolchain). # 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. +# frontend` targets the Node subproject without a `cd`. +typecheck = "./gradlew compileKotlin" +build = "./gradlew assemble" +test = "./gradlew check" + +[commands.jvm] +typecheck = "./gradlew compileKotlin" +build = "./gradlew assemble" +test = "./gradlew check" + +[commands.node] +# `npm run build` = `tsc && vite build` (npm's own shell handles the &&), which fails on a dangling +# asset import — exactly the COMPLETED-lie hole the terminal build gate exists to catch. +# QA runs clear frontend/ before each run, so node_modules is absent when that gate fires; without +# `setup` it fails on missing deps instead of on the code. `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"