From c3a3b6ae41fdde392d75afb887cec022b724ae62 Mon Sep 17 00:00:00 2001 From: Tianyi Cui <53024+tianyicui@users.noreply.github.com> Date: Sun, 14 Jun 2026 10:38:43 +0800 Subject: [PATCH] docs: clarify CI and hook gates --- docs/development.md | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/docs/development.md b/docs/development.md index 507c305ae7..f2e40a0517 100644 --- a/docs/development.md +++ b/docs/development.md @@ -1,6 +1,6 @@ # Development guide -This guide covers the local setup needed to work on DeepSeek Harness and run the same checks the hooks and CI run. +This guide covers the local setup needed to work on DeepSeek Harness and understand the local hooks, daily checks, and CI gates. ## Prerequisites @@ -54,13 +54,30 @@ DEEPSEEK_BASE_URL=https://... # optional ## Git hooks -lefthook is configured in `lefthook.yml` and calls the same package scripts used by CI: +lefthook is configured in `lefthook.yml` as an early local checkpoint before review: - `pre-commit` runs staged-file ESLint fixes, `yarn typecheck`, and the vendor manifest guard. - `pre-push` runs `yarn test` and `yarn hygiene`. The vendor manifest guard checks that changes under `vendor/*/src` are staged with the matching `vendor/README.md` manifest update. See `vendor/README.md` before editing vendored code. +These hooks do not exactly mirror CI. Notably, `pre-push` runs unit tests without coverage, while CI runs `yarn test:coverage`; CI also runs an echo-agent smoke test and exercises the matrix on Node 24 and 26. + +## CI gates + +The GitHub workflow runs these gates on each pull request: + +- `yarn install --immutable` +- `yarn constraints` +- `yarn typecheck` +- `yarn lint` +- `yarn test:coverage` +- `yarn build` +- `yarn knip && yarn publint` +- an echo-agent smoke test that checks the demo's tool call, tool result, and JSONL output + +`yarn hygiene` is the local shorthand for `yarn knip && yarn publint && yarn constraints`; CI splits `yarn constraints` into its own earlier step, then runs `yarn knip && yarn publint` after `yarn build`. + ## Daily commands Use these from the repo root: