You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: include the pro typecheck in the pre-declare verification
The documented verification (`tsconfig.node.json` + `tsconfig.web.json` +
`npm test`) does not compile `pro/**/__tests__`. CI does, as its own
`Typecheck (pro)` step, and the release build does not run it at all.
So a pro-only type error passes every local check AND a full green release,
then turns main red - which is exactly what just happened with an undeclared
js-yaml import that had been sitting in a pro test.
Adds the pro leg to both places the guide states the command, with the reason
attached so it does not read as an optional extra.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CdzrfHqPNEHev5QTVgy7AU
Copy file name to clipboardExpand all lines: CLAUDE.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -52,7 +52,7 @@ Two process rules, learned from the same incident — they matter as much as the
52
52
53
53
## Conventions
54
54
55
-
- Verify changes with `npx tsc --noEmit` (main: `tsconfig.node.json`, web: `tsconfig.web.json`) before declaring done.
55
+
- Verify changes with `npx tsc --noEmit` (main: `tsconfig.node.json`, web: `tsconfig.web.json`) before declaring done.**If you touched `pro/`, also run `cd pro && npx tsc --noEmit -p tsconfig.json`** — that is a separate CI gate, and core's two configs do NOT compile pro's tests.
56
56
- Main-process changes need an app restart; renderer changes hot-reload.
57
57
- Don't over-restart — it interrupts capture.
58
58
-**Local packaged builds:** commands for building the `.app` on a dev Mac (signing, unsigned, fresh-profile) live in `local-build.local.md` (gitignored, machine-specific). Check it before running `build:unpack`/`build:mac` locally — keychain cert setup varies per machine. Real release signing is CI-only (`release.yml`).
@@ -104,7 +104,7 @@ When iterating (a request, a fix, a tweak the user just confirmed), add a test t
104
104
-**Regression guards for prompts/contracts** — when a fix lives in a prompt or string contract, assert it by reading the source (see `extract-prompt.test.ts`, which guards the observation-confabulation fix).
105
105
-**Tests guard the architecture too (SOLID + DRY).** Prove the seam: exercise the abstraction through a second/fake implementation so a test fails the moment a caller starts branching on a concrete type (`kind === 'x'`, `instanceof`) instead of the interface — that is how we test for DSP, not just assert it in review. Guard DRY: import the single source of truth into the test and assert against it; never re-hardcode the value the code defines, or the duplication just moves into the test. A mapping/rule/constant is defined once and tested once.
106
106
-**E2E** — Playwright Electron tour in `e2e/` (`npm run test:e2e`), DOM-driven, fresh temp profile, `OFFGRID_PRO=0`. Assert new surfaces render. Screenshot key states via `page.screenshot({ path: 'e2e/screenshots/<name>.png' })`; include those screenshots in the PR body.
107
-
- Before declaring a change done: `npx tsc --noEmit -p tsconfig.node.json && npx tsc --noEmit -p tsconfig.web.json && npm test` — fix failures first. When you touched logic, run `npm run test:coverage` and keep every metric at or above the 85% floor.
107
+
- Before declaring a change done: `npx tsc --noEmit -p tsconfig.node.json && npx tsc --noEmit -p tsconfig.web.json && (cd pro && npx tsc --noEmit -p tsconfig.json) && npm test` — fix failures first. The `pro` leg is not optional when you touched `pro/`: CI runs it as its own `Typecheck (pro)` step, the release does not run it at all, and core's two configs never compile `pro/**/__tests__`. A pro-only type error therefore passes every local check and every release build, then fails CI on main (this is exactly how an undeclared `js-yaml` import reached main). When you touched logic, run `npm run test:coverage` and keep every metric at or above the 85% floor.
108
108
109
109
## E2E capture — SYNTHETIC data only, seeded via the demo script
0 commit comments