From 52b51929dd11feb584068d5ed5738d7066f452f9 Mon Sep 17 00:00:00 2001 From: clawbot Date: Mon, 10 Aug 2026 12:53:37 +0000 Subject: [PATCH] Raise org-wide make test cap to 60s, backstop timeout to 90s Per the ruling on prompts issue 41: the 60-second cap is org-wide, not a per-repo divergence. 60 seconds is the hard cap for CI green; anything over 20 seconds is still green but must be filed as an improvement bug. The old pairing of a 20-second cap with a 30-second `-timeout` stays coherent only if the backstop exceeds the cap, so the timeout moves to 90s (the same 1.5x ratio the old numbers had). Applied to the prose ceiling in `REPO_POLICIES.md`, the Go example Makefile snippet, and the `make test` lines in both repo checklists. https://git.eeqj.de/sneak/prompts/issues/41 https://git.eeqj.de/sneak/dnswatcher/issues/93 --- prompts/EXISTING_REPO_CHECKLIST.md | 4 +++- prompts/NEW_REPO_CHECKLIST.md | 4 ++-- prompts/REPO_POLICIES.md | 13 +++++++++---- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/prompts/EXISTING_REPO_CHECKLIST.md b/prompts/EXISTING_REPO_CHECKLIST.md index 2f45550..53be732 100644 --- a/prompts/EXISTING_REPO_CHECKLIST.md +++ b/prompts/EXISTING_REPO_CHECKLIST.md @@ -59,7 +59,9 @@ with your task. - [ ] README has an **Entrypoints** section documenting the `script/` entrypoints and linking the standard - [ ] `make check` does not modify any files in the repo -- [ ] `make test` has a 30-second timeout +- [ ] `make test` has a 90-second timeout and completes within the 60-second + hard cap (over 20 seconds is green but must be filed as an improvement + bug) - [ ] `make test` runs real tests, not a no-op (at minimum, import/compile check) - [ ] `make check` passes on current branch diff --git a/prompts/NEW_REPO_CHECKLIST.md b/prompts/NEW_REPO_CHECKLIST.md index 2eb58ea..5f46b40 100644 --- a/prompts/NEW_REPO_CHECKLIST.md +++ b/prompts/NEW_REPO_CHECKLIST.md @@ -80,8 +80,8 @@ are thin shims calling them. Model scripts: installs - [ ] `script/setup` / `make setup` — readies a fresh clone: runs `bootstrap`, then `install-precommit`, plus repo-specific init -- [ ] `script/test` / `make test` — runs real tests, not a no-op (30-second - timeout) +- [ ] `script/test` / `make test` — runs real tests, not a no-op (90-second + timeout, 60-second hard cap on wall time) - [ ] `script/lint` / `make lint` — runs linter - [ ] `script/fmt` / `make fmt` — formats code (writes) - [ ] `script/fmt-check` / `make fmt-check` — checks formatting (read-only) diff --git a/prompts/REPO_POLICIES.md b/prompts/REPO_POLICIES.md index 79d2fb7..9aba6b0 100644 --- a/prompts/REPO_POLICIES.md +++ b/prompts/REPO_POLICIES.md @@ -189,8 +189,13 @@ style conventions are in separate documents: module under test to verify it compiles/parses. There is no excuse for `make test` to be a no-op. -- `make test` must complete in under 20 seconds. Add a 30-second timeout in the - Makefile. +- `make test` must complete in under 60 seconds. That is the hard cap, and a + suite that exceeds it fails. Under 20 seconds is the target. A suite between + 20 and 60 seconds is still green, but the overage must be filed as an + improvement bug against that repo. Add a 90-second timeout to the test + invocation in the Makefile (`go test -timeout 90s`). The backstop deliberately + sits above the hard cap so that it catches a genuinely hung test rather than a + merely slow one. - **`make test` should use the conditional verbose rerun pattern.** Run tests without `-v` (verbose) first. If tests fail, automatically rerun with `-v` to @@ -209,9 +214,9 @@ style conventions are in separate documents: ```makefile test: - @go test -timeout 30s -race -cover ./... || \ + @go test -timeout 90s -race -cover ./... || \ { echo "--- Rerunning with -v for details ---"; \ - go test -timeout 30s -race -v ./...; exit 1; } + go test -timeout 90s -race -v ./...; exit 1; } ``` Python example: -- 2.49.1