Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .claude/skills/contributing-to-loopover/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
```

Expand All @@ -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`.
Expand Down
10 changes: 9 additions & 1 deletion .claude/skills/contributing-to-loopover/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:**

Expand Down