Phase A of the quality-gate rollout — local + pre-push gates that stop
slop before it leaves the laptop. Preventative controls, per the
architect playbook.
- .husky/pre-commit — adds scripts/secret-scan.sh as the first check
before the existing Biome format/lint. Blocks the commit when a
likely secret is found in staged additions. Existing Biome behaviour
is preserved.
- .husky/pre-push (new) — runs `pnpm check` (lint + typecheck + test)
before the branch leaves the laptop. Mirrors the `check` job in
.github/workflows/ci.yml so PR-blocking issues surface locally first.
Bypassable for genuine emergencies with `git push --no-verify`.
- scripts/secret-scan.sh (new) — regex scan over staged additions for
the common accidents: AWS keys, Anthropic/OpenAI/GitHub/Slack/Google/
Stripe tokens, JWTs, PEM private key blocks, hardcoded password
literals. Validated against synthetic leaks of each type. No external
tool dependency — pure bash + grep, runs in <100ms typical.
- scripts/pr-evidence.sh (new) — drafts a PR_BODY.md from the diff vs
origin/main: file lists (added/modified/deleted), commit summaries,
and the QA checklist. Flags screenshots as REQUIRED when the diff
touches packages/web/src/{components,routes} or packages/desktop.
Wired as `pnpm pr:evidence` so it runs from anywhere in the
workspace.
- .gitignore — adds PR_BODY.md so drafts don't get committed by
accident.
Pre-commit stays fast (<2s typical). Heavy checks (typecheck, full
test run) live in pre-push.
44 lines
1.4 KiB
JSON
44 lines
1.4 KiB
JSON
{
|
|
"name": "openconcho",
|
|
"private": true,
|
|
"version": "0.8.0",
|
|
"packageManager": "pnpm@10.33.2",
|
|
"engines": {
|
|
"node": ">=22",
|
|
"pnpm": ">=10"
|
|
},
|
|
"scripts": {
|
|
"bootstrap": "pnpm install && pnpm exec playwright install --with-deps chromium",
|
|
"dev": "pnpm --filter @openconcho/desktop dev",
|
|
"dev:web": "pnpm --filter @openconcho/web dev",
|
|
"dev:desktop": "pnpm --filter @openconcho/desktop dev",
|
|
"build": "turbo run build",
|
|
"lint": "turbo run lint",
|
|
"lint:fix": "biome check --write .",
|
|
"format": "biome format --write .",
|
|
"test": "turbo run test",
|
|
"test:e2e": "turbo run test:e2e",
|
|
"typecheck": "turbo run typecheck",
|
|
"check": "turbo run lint typecheck test",
|
|
"ci:web": "turbo run lint typecheck test build --filter=@openconcho/web",
|
|
"ci:desktop": "turbo run cargo-check --filter=@openconcho/desktop",
|
|
"pr:evidence": "./scripts/pr-evidence.sh",
|
|
"prepare": "husky"
|
|
},
|
|
"devDependencies": {
|
|
"@biomejs/biome": "catalog:",
|
|
"@commitlint/cli": "~20.5.2",
|
|
"@commitlint/config-conventional": "~20.5.0",
|
|
"@semantic-release/changelog": "^6.0.0",
|
|
"@semantic-release/commit-analyzer": "^13.0.0",
|
|
"@semantic-release/exec": "^7.1.0",
|
|
"@semantic-release/git": "^10.0.0",
|
|
"@semantic-release/github": "^10.0.0",
|
|
"@semantic-release/npm": "^13.1.5",
|
|
"@semantic-release/release-notes-generator": "^14.0.0",
|
|
"husky": "~9.1.7",
|
|
"semantic-release": "catalog:",
|
|
"turbo": "^2"
|
|
}
|
|
}
|