From 129e56f4b2ac0945c9e70a73a2f72a7012f0e760 Mon Sep 17 00:00:00 2001 From: Lourince Daging Date: Tue, 14 Jul 2026 23:43:11 +0200 Subject: [PATCH] docs(skill): document the extension lint/typecheck CI checks omitted from the table and test:ci reference.md's CI table and its 'one command for everything except security' claim both omitted the four extension-lane checks (extension:lint/typecheck, miner-extension:lint/typecheck) that ci.yml's validate-code runs on push || ui==true. Adds table rows for them (matching the ui -> * row style + trigger) and corrects the claim: test:ci does NOT run the extension checks, so a green local test:ci does not exercise them. Mirrors the same fix into SKILL.md's 'entire CI gate' framing. Docs-only; no code, no coverage-scope files. Closes #5811 --- .claude/skills/contributing-to-loopover/SKILL.md | 5 ++++- .claude/skills/contributing-to-loopover/reference.md | 10 +++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.claude/skills/contributing-to-loopover/SKILL.md b/.claude/skills/contributing-to-loopover/SKILL.md index 304bbf17f2..f1c8cacf51 100644 --- a/.claude/skills/contributing-to-loopover/SKILL.md +++ b/.claude/skills/contributing-to-loopover/SKILL.md @@ -215,7 +215,7 @@ Migrations must use the **next free number** (contiguous, no gaps, no reuse) and ```sh git diff --check # no trailing whitespace / conflict markers -npm run test:ci # the entire CI gate, in one command (see below) +npm run test:ci # nearly the entire CI gate, in one command (one exception, see below) npm audit --audit-level=moderate # the dependency-review job's local equivalent ``` @@ -228,6 +228,9 @@ npm audit --audit-level=moderate # the dependency-review job's local eq `command-reference:check`, `ui:lint`, `ui:typecheck`, `ui:test`, `ui:build`. If any step fails, fix it and re-run — do not push a red tree. (Full per-check table in `reference.md`; check `package.json`'s own `test:ci` script if this list and that script ever disagree — the script is the source of truth.) +One CI-gating exception `test:ci` does **not** run: the extension lint/typecheck checks +(`extension:lint`, `extension:typecheck`, `miner-extension:lint`, `miner-extension:typecheck`), gated in +CI's `validate-code` on `push || ui==true` — run them separately if you touch the VS Code / miner extensions. If `ui:lint` fails on formatting, run `npm --workspace @loopover/ui run format`. If `ui:openapi:check` fails, you forgot Phase 4's `ui:openapi`. diff --git a/.claude/skills/contributing-to-loopover/reference.md b/.claude/skills/contributing-to-loopover/reference.md index a370438d1b..3cab16d09c 100644 --- a/.claude/skills/contributing-to-loopover/reference.md +++ b/.claude/skills/contributing-to-loopover/reference.md @@ -47,12 +47,20 @@ path filter matched; on push to `main`, everything runs. | ui → typecheck | `tsc --noEmit` (UI) | `npm run ui:typecheck` | UI type error | | ui → tests | vitest jsdom (UI) | `npm run ui:test` | failing UI component test | | ui → build | UI build | `npm run ui:build` | build failure (note: it re-runs `ui:openapi` internally) | +| ui → extension lint | `eslint` (VS Code + miner extensions) | `npm run extension:lint && npm run miner-extension:lint` | extension ESLint error (same `push \|\| ui==true` trigger as the `ui →` rows) | +| ui → extension typecheck | `tsc --noEmit` (extensions) | `npm run extension:typecheck && npm run miner-extension:typecheck` | extension type error (same `push \|\| ui==true` trigger) | | security (PR only) | dependency-review (moderate+) | `npm audit --audit-level=moderate` | a **newly added** dep has a moderate+ advisory | -**One command for everything except `security`:** `npm run test:ci`. There is **no** CodeQL/Analyze +**One command for *almost* everything except `security`:** `npm run test:ci`. There is **no** CodeQL/Analyze workflow in this repo. There is **no** root-level Prettier gate — Prettier is enforced only inside `ui:lint` (so it only bites `apps/loopover-ui/**`). +**One CI-gating exception `test:ci` does NOT cover:** the four extension lint/typecheck checks +(`extension:lint`, `extension:typecheck`, `miner-extension:lint`, `miner-extension:typecheck`) run in CI's +`validate-code` job (gated on `push || ui==true`, the `ui →` rows above) but are **absent from the `test:ci` +chain** — so a green local `test:ci` does not exercise them. Run them separately (or rely on CI) if your +change touches `apps/loopover-extension/**` or `apps/loopover-miner-extension/**`. + **Local-only checks with no separate named CI status — `npm run test:ci` is the only thing that catches these for a normal PR:**