From f3cd70e45d591861109cbb20a4194aafec386f6f Mon Sep 17 00:00:00 2001 From: implementer Date: Sun, 30 Aug 2026 06:12:25 +0000 Subject: [PATCH] docs: document the lint command and the CI quality baseline stages (E00-S05-T01) The non-container guide now covers pnpm lint (the formatting/lint policy) in the Test and clean-clone smoke sections and describes the ordered PR CI stages locked in by tests/ci-stages.test.mjs. --- docs/development/non-container.md | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/docs/development/non-container.md b/docs/development/non-container.md index f85c1a5..d172635 100644 --- a/docs/development/non-container.md +++ b/docs/development/non-container.md @@ -143,11 +143,22 @@ node /dist/index.js # e.g. node packages/core/dist/index.js ```sh pnpm test +pnpm lint ``` -`pnpm test` runs the `node:test` suites under `tests/` (currently -`tests/architecture-import.test.mjs`, 10 tests) with zero extra dependencies. -This is also the suite that enforces the dependency-boundary rule. +`pnpm test` runs the `node:test` suites under `tests/` with zero extra +dependencies (this is also the suite that enforces the dependency-boundary +rule). `pnpm lint` runs the formatting/lint policy suite +(`tests/formatting-policy.test.mjs`): every tracked text file must use LF +line endings, no BOM, no trailing whitespace, no tab indentation and exactly +one final newline; JSON files must additionally parse, carry no duplicate +keys and use 2-space indentation. + +Pull requests run these checks as CI stages, in order — frozen lockfile +install → typecheck → formatting/lint → unit → architecture → PostgreSQL +integration → build of the applications (E00-S05-T01); the stage order, +the `needs` chain and the `tests/` coverage are locked in by +`tests/ci-stages.test.mjs`. ## Smoke check from a clean clone @@ -157,7 +168,8 @@ corepack enable pnpm install --frozen-lockfile # exit 0, lockfile untouched pnpm build # 5/5 packages emit dist/, exit 0 pnpm typecheck # 5/5 packages pass --noEmit, exit 0 -pnpm test # 10/10 pass, exit 0 +pnpm lint # formatting/lint policy passes, exit 0 +pnpm test # all node:test suites pass, exit 0 pnpm --filter @personal-blog/server start # requires EPPP_SESSION_SECRET (see [Run](#run)); serves GET /health on port 3000, stays up ```