diff --git a/AGENTS.md b/AGENTS.md index d5c2b633bf7..aa2f961ba12 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -89,7 +89,7 @@ Scoped guides: ## Gates -- Pre-commit hook: staged format/lint, then `pnpm check:changed --staged`; docs/markdown-only skips changed-scope check; `FAST_COMMIT=1` skips changed-scope check only. +- Pre-commit hook: staged format/lint, then `pnpm check:changed --staged`; docs/markdown-only skips changed-scope check; `FAST_COMMIT=1` / `scripts/committer --fast` skips changed-scope check only. - Changed lanes: - core prod => core prod typecheck + core tests - core tests => core test typecheck/tests only @@ -101,6 +101,7 @@ Scoped guides: - Landing on `main`: verify touched surface near landing; default bar is `pnpm check` + `pnpm test` when feasible. - Hard build gate: run/pass `pnpm build` before push if build output, packaging, lazy/module boundaries, or published surfaces can change. - Do not land related failing format/lint/type/build/tests. If failures are unrelated on latest `origin/main`, say so and give scoped proof. +- Fast commit escape hatch: use `scripts/committer --fast "" ` only after the exact staged change set was already validated with equal-or-stronger gates, or after rerunning an isolated flaky failure with proof. State the gates/proof in handoff. - CI architecture gate: `check-additional`; local equivalent `pnpm check:architecture`. - Config docs drift: `pnpm config:docs:gen/check` - Plugin SDK API drift: `pnpm plugin-sdk:api:gen/check` @@ -151,7 +152,7 @@ Scoped guides: ## Git -- Use `scripts/committer "" `; stage only intended files. +- Use `scripts/committer "" `; stage only intended files. Use `--fast` only under the Gates escape-hatch rule above. - Commits: conventional-ish, concise/action-oriented. Group related changes. - No manual stash/autostash unless explicitly requested. No branch/worktree changes unless requested. - No merge commits on `main`; rebase on latest `origin/main` before push. diff --git a/docs/help/testing.md b/docs/help/testing.md index f4687bf38af..dde69cc80eb 100644 --- a/docs/help/testing.md +++ b/docs/help/testing.md @@ -326,6 +326,7 @@ Think of the suites as “increasing realism” (and increasing flakiness/cost): - Fast-local iteration note: - `pnpm changed:lanes` shows which architectural lanes a diff triggers. - The pre-commit hook runs `pnpm check:changed --staged` after staged formatting/linting, so core-only commits do not pay extension test cost unless they touch public extension-facing contracts. Release metadata-only commits stay on the targeted version/config/root-dependency lane. + - If the exact staged change set was already validated with equal-or-stronger gates, use `scripts/committer --fast "" ` to skip only the changed-scope hook rerun. Staged format/lint still run. Mention the completed gates in your handoff. This is also acceptable after an isolated flaky hook failure is rerun and passes with scoped proof. - `pnpm test:changed` routes through scoped lanes when the changed paths map cleanly to a smaller suite. - `pnpm test:max` and `pnpm test:changed:max` keep the same routing behavior, just with a higher worker cap. - Local worker auto-scaling is intentionally conservative now and also backs off when the host load average is already high, so multiple concurrent Vitest runs do less damage by default.