Repository navigation
fix: let a records-only change preflight without the unit and race stages - #1236
Merged
Merged
Conversation
…ages A change confined to the record tiers waited behind the load gate for the full unit and race stages and could time out before it was pushed. make preflight now takes a shorter rule for a committed change whose every path since the merge base with origin's default branch is under .abcd/development or .abcd/work and named by no test. It runs the same gates, build and vet, and precheck's tests in place of the unit and race stages, and says so. The receipt names its scope, verdict and merge base, and a records-only receipt is refused over a code change. Anything the classifier cannot answer takes the full run; CI's unit lane still runs every test. Resolves: iss-2610251555094324 Assisted-by: Claude:claude-opus-5-5
The guard's false-positive sweep reads each line of a script on its own, so the continuation line of the records-only receipt write read as a command named by a variable and was blocked, one block over the sweep's ceiling. The write is now one line, as the full receipt's is. Refs: iss-2610251555094324 Assisted-by: Claude:claude-opus-5-5
REPPL
enabled auto-merge
October 29, 2026 19:56
The records-only preflight is described in the Makefile and announced by the run itself; the two AGENTS.md lines pushed the merged file past the 32768 bytes a host may read, so they are dropped. Refs: iss-2610251555094324 Assisted-by: Claude:claude-opus-5-5
The full preflight rule gained secrets-check and vulncheck; the records-only rule runs the same gates, so it takes both too. Refs: iss-2610251555094324 Assisted-by: Claude:claude-opus-5-5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A change whose whole diff is records (a new issue, a resolved one, an intent) waited behind the load gate for the full unit and race stages of every other preflight on the machine, and on a busy day it timed out and could not be pushed.
make preflightnow takes a shorter rule for a committed change confined to the record tiers. It runs the same gates, build and vet, then precheck's tests in place of the unit and race stages.What counts as records-only (
scripts/records-only.sh, fail-closed). All of these must hold:.abcd/development/or.abcd/work/;*_test.gonames any of them, by path, by file name, by record id followed by a dash (a test that globsitd-121-*.md), or by an ADR's bare number;precheck now also runs the packages whose tests read the committed record tree whole (record ids and slugs, the changelog, intents, release pages, the release digest, decisions, record matching, lifeboat packing), so a bad record fails there before the push.
The limit, stated in the script: a test that reads the record tiers by walking a directory, rather than by a path it names, runs for a records-only change only if it sits in a package precheck runs. One anywhere else runs only in CI's unit lane, which runs every test before the merge.
Anything else, a git failure included, takes the full run.
How it shows:
full, orrecords-onlywith the classifier's verdict and the merge base it was taken at, so a later reader can redo the check.make preflight PREFLIGHT_RECORDS_ONLY=takes the full run whatever the change.The full rule is unchanged and comes first in the Makefile, so everything that reads it still does. CI is unaffected: its unit lane still runs every test on the pull request.
Tests:
Resolves: iss-2610251555094324
Assisted-by: Claude:claude-opus-5-5