Skip to content

agent-ready.py cannot return green for any change: five checkers always skip because preflight cannot supply their arguments #2826

Description

@localai-org-maint-bot

Row: -

scripts/agent-ready.py is AGENTS.md's documented "before remote handoff" command
(§Commands: python3 scripts/agent-ready.py # before remote handoff). On this checkout it
cannot return green for any change, because five checkers always skip.

Measured

scripts/agent-preflight.sh:584-595 auto-discovers scripts/check-*.py and classifies any
checker whose argparse demands arguments preflight cannot supply as a SKIP:

elif printf '%s' "$output" | grep -qE 'the following arguments are required|...'; then
  skip "$name" "needs arguments preflight does not supply: ..."

agent-ready.py then refuses on the skip:

5 gate(s) SKIPPED: check-arm-isa-build.py check-cpu-isa-build.py
  check-cuda-fat-gencode.py check-pr-size.py check-triton-aot-multiarch.py
NOT a green preflight: a skipped gate reported nothing about this tree.
READY FAILED: local preflight did not report every gate green.

Each of the five was run directly and each exits rc=2 on an argparse usage error:

Checker Demands
check-arm-isa-build.py --compile-commands
check-cpu-isa-build.py --compile-commands
check-cuda-fat-gencode.py --compile-commands and --library/--cuobjdump-list
check-triton-aot-multiarch.py --vendored-root and --library/--nm-list
check-pr-size.py --base --head

Four need build artifacts (compile_commands.json, a built library, a vendored Triton root).
check-cuda-fat-gencode.py is driven by scripts/build-linux-accelerator-release.sh:58, a
release lane, not by preflight.

These skip for every change, independent of what the change touches. It was observed on a
diff confined to audio_processor.{h,cpp}, dots3_note_processor.{h,cpp},
mm_chat_dots3note.cpp, two docs, three tests and a spec — nothing that could make a
build-artifact checker start or stop needing its arguments — and it also skipped while a
populated build tree still existed, so it is not "the build directory was deleted".

Why this is the defect and not the discipline

AGENTS.md says so itself, in the section retiring the line-count gates: "A gate that fires on
ordinary work is the defect, not the discipline."
A handoff command that no change can
satisfy trains its readers to ignore it, which is worse than not having it — and the plain
gate AGENTS.md actually mandates, scripts/agent-preflight.sh without --fail-on-skip, is
green (rc 0, 101 ok, zero FAIL) on the same tree.

Not fixed in flow, deliberately

A repair changes checker semantics, which AGENTS.md routes to the normal row/spec/fresh-review
path rather than the in-flow rule: "A semantic checker change needs a spec, a red-before test
or mutation, and green-after evidence."
This issue exists so the finding is not lost; it
needs an owning row in the gate lane, and this Row: - line should be replaced with one when
that owner is identified.

Shapes a fix might take

Stated as options, not a decision. Either agent-ready.py distinguishes a STRUCTURAL skip
(the checker cannot run without artifacts preflight never builds) from a MEANINGFUL one (the
checker could have run and did not), and refuses only on the latter; or preflight supplies the
artifacts for the four that need them, which makes it a build step; or the five are declared
out of preflight's scope and gated only in the lane that can feed them, which is where
check-cuda-fat-gencode.py already lives.

Incidental, worth recording beside it

The finding surfaced because the command had been reported green after being run as
python3 scripts/agent-ready.py 2>&1 | tail -20 — so the exit code read was tail's, not the
script's. That trap has now produced a false green on this repository more than once.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions