Re-vendor the canonical files from sneak/prompts at dd4027b (closes #213)
check / check (push) Failing after 4s

Linting and testing become the lint and test phases of the Dockerfile,
and the build stage depends on both. Dockerfile.lint, CHECK_EPOCH and
the tests that checked them are removed. Every docker build in script/
passes --no-cache, and script/cibuild runs script/bootstrap first. The
image takes its version from the VERSION build arg or git describe, and
still stamps the commit and its date from .git. The golangci-lint
v2.14.0 findings are fixed in the code. The rules in CLAUDE.md move into
AGENTS.md. IsDevVersion now counts "unknown", the version script/docker
stamps outside a git checkout.

Model: opus-5-5
This commit is contained in:
2026-10-06 00:29:40 +00:00
parent 070090124a
commit 99f4318ae6
34 changed files with 787 additions and 1180 deletions
+9 -8
View File
@@ -5,27 +5,28 @@
#
# THIS IS A DEVELOPER CONVENIENCE AND NEVER A GATE. Nothing in
# script/check, script/precommit or script/cibuild calls it, and no gate
# reads its exit status. The gate is script/lint, which builds
# Dockerfile.lint; run that afterwards to find out whether the tree is
# actually clean.
# reads its exit status. The gate is script/lint, which builds the lint
# phase of the Dockerfile; run that afterwards to find out whether the
# tree is actually clean.
#
# Unlike script/lint this cannot be a build step: a build step writes
# into an image, and fixes have to land in the worktree. So it runs the
# same pinned image as a container with the tree bind-mounted, which
# means it needs a LOCAL docker daemon -- a remote daemon has no access
# to these files, and this script will appear to do nothing there. The
# image reference is parsed out of Dockerfile.lint's FROM line, so the
# image reference is parsed out of the lint phase's FROM line, so the
# autofixer is always the same version as the linter that gates; fixes
# written by a different version are not necessarily fixes for the
# version that decides.
set -eu
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
DOCKERFILE="$ROOT/Dockerfile.lint"
DOCKERFILE="$ROOT/Dockerfile"
# The image reference from Dockerfile.lint, tag and digest included.
# The image reference from the FROM line ending `AS lint`, tag and
# digest included.
lint_image() {
awk '$1 == "FROM" { print $2; exit }' "$DOCKERFILE"
awk '$1 == "FROM" && $NF == "lint" { print $2; exit }' "$DOCKERFILE"
}
main() {
@@ -33,7 +34,7 @@ main() {
image="$(lint_image)"
if [ -z "$image" ]; then
echo "lint-fix: no FROM line found in $DOCKERFILE" >&2
echo "lint-fix: no FROM ... AS lint line found in $DOCKERFILE" >&2
exit 1
fi