Repository navigation
docs: post-#834 pass — workflow names, merge gating, zero-check policy - #985
Merged
Merged
Conversation
thekevinbot
changed the base branch from
claude/issue-981-preflight-workflows
to
main
August 20, 2026 19:13
thekevinbot
force-pushed
the
claude/tackle-932-4sxof0
branch
from
August 20, 2026 19:14
bcd054b to
402111b
Compare
This was referenced Aug 20, 2026
thekevinscott
enabled auto-merge
August 20, 2026 19:39
thekevinbot
disabled auto-merge
August 20, 2026 19:39
thekevinbot
enabled auto-merge
August 20, 2026 19:39
deleted conventions.yml, but the docs still routed readers to files that no longer exist -- conventions.yml, python-test.yml, ts-test.yml, rust-test.yml. Names them by their surviving homes instead, and adds the caller-job table so "which workflow runs this gate" is answerable without grepping .github/workflows. skip-changelog: docs and CI comments only, no package source Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KcNqe44kvgP5mBRr9LjQcE
The PR Monitoring section still taught pre-sleep, minimum-checks and timeout as the gate's tuning knobs. pr-monitor@v1 removed all three when it stopped guessing: willfire now predicts the exact run set from the workflow files, and github-token is the whole input surface. Ours had been passing the removed inputs inertly until they were dropped, so the documented failure modes described machinery that was not running. Records the zero-check-merge policy the anchor removal left unwritten, now that prediction makes it a derived verdict rather than an accepted blind spot -- including the corollary that reversed: a path-filtered workflow in flight does hold the gate, because it was predicted. The rewrite outgrew AGENTS.md's 40k budget, so the operational half moves to agents/reference/pr-monitor.md alongside the other extracted references. AGENTS.md ends up smaller than before. skip-changelog: docs only, no package source Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KcNqe44kvgP5mBRr9LjQcE
#834's path-filter spec listed README.md with the root prose files as free. The gate disagrees on purpose -- _is_exempt omits READMEs, since they ship in the PyPI long-description, the npm tarball and the crate, and release-ci.yml keeps them in its triggers for the same reason. The maintainer decision during that stack's final review was to keep the gate and correct the rules text, which nothing had done. skip-changelog: docs only, no package source Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KcNqe44kvgP5mBRr9LjQcE
The recipe comments still routed readers to python-test.yml, ts-test.yml and conventions.yml for the distcheck jobs, the python e2e-verify gate and the packaging gate. Same four retired files as the rest of this branch, and a contributor reading `just --list` hits these before any reference doc. Also names `--conventions`, which #983 added while this branch was open, in AGENTS.md's preflight line -- that line enumerates the other two options, so omitting it reads as though it does not exist. skip-changelog: docs and recipe comments only, no package source Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KcNqe44kvgP5mBRr9LjQcE
thekevinbot
force-pushed
the
claude/tackle-932-4sxof0
branch
from
August 20, 2026 19:46
402111b to
5bc9a39
Compare
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.
Fixes #932
Docs-only. The code half of the post-#834 cleanup —
just preflightreading the deletedconventions.yml— landed separately as #983, and this PR deliberately does not touch it.Item 1 — retire the pre-#834 workflow names
conventions.yml,python-test.yml,ts-test.yml,rust-test.ymlare gone; the docs still routed readers to them. Renamed to their surviving homes acrossAGENTS.md, all three named reference docs (testing-conventions-ci.md,testing-gates.md,e2e-attestation.md), plusinternals/distcheck/README.md, thejustfilerecipe comments and atesting-conventions.tomlcomment — same stale names, and a contributor readingjust --listhits those first.Added the caller-job table to
testing-conventions-ci.md, so "which workflow runs this gate" is answerable without grepping.github/workflows. The eight caller job ids survived the split unchanged, which is why check-run names did too — worth stating, since it's the non-obvious part.Historical mentions of
conventions.ymlare kept where they're describing what #861 changed.Items 2 + 3 — merge gating, rewritten against what actually runs
Staler than the issue assumed. AGENTS.md was already off Mergify (#950), but it taught
pre-sleep: 30/minimum-checks: 0/timeout: 45as the gate's tuning knobs — and pr-monitor@v1 has none of those inputs.github-tokenis the entire surface; the rest were removed upstream when the action stopped guessing. Ours sat inert until3d248a0dropped them as such. So the documented failure modes described machinery that was not running.What v1 actually does: willfire evaluates the workflow files against the PR's base, changed files and head to predict the exact run set, and the gate is a set comparison — yellow while a predicted run is missing or unfinished, red on a bad conclusion, red on a run nothing predicted.
Item 3's premise inverted, and I documented the reversal rather than the request. The issue asked to write down "a path-filtered workflow still in flight does not hold the gate". Under prediction the opposite holds: it was predicted, so it is required, and it holds the gate pending. Zero-check-merge is still the policy, but it is now a derived verdict (the gate reads the same files GitHub does) rather than the accepted blind spot it was under check-counting.
Item 3 also said to cross-reference #862. That's closed
not_planned, so pointing at it would send readers to a dead end — documented instead that prediction subsumes most of what it would have checked.Note on size: the rewrite pushed AGENTS.md past the 40k limit its own line 13 declares. Split the operational half into
agents/reference/pr-monitor.md, following the convention the file already uses for four other references. AGENTS.md ends at 36,479 — smaller than the 36,884 it started at.Item 4 — READMEs
Recorded in
AGENTS.mdandagents/reference/changelog-migrations.mdthat a package README needs a changelog fragment: READMEs ship in all three published artifacts, which is whyrelease-ci.ymlkeeps them while excluding fragment dirs, and why_is_exemptomits them. No code change — the gate is correct as written. #834's spec row amended in a comment.Item 5 — #885
Amended in a comment: the publisher is
docs-release.yml, notdocs-deploy.yml. The underlying fix already landed in #967, and I verified the asymmetry is fully closed — neither docs workflow listsMIGRATIONS.md, anddocs-ci.ymlnow carries its own self-path.Why comments and not body edits for items 4 and 5: the GitHub MCP
issue_readreturns bodies HTML-entity-escaped and lossy — it silently drops HTML-ish text, including the VitePress include directive in #885. Writing a fetched body back would have destroyed content in a closed issue.Rebased onto #983
#983 merged while this was open and touched two of the same files. Resolution:
internals/checks/README.mdand thepreflightrecipe comment — fix(checks): derive preflight's gate matrix from every workflow that calls testing-conventions #983 made the same correction with better knowledge (it documents--conventions, and the newinternals-checks-integrationjob). Took its version wholesale; this PR no longer touches that README.python-test.yml/ts-test.ymlin the distcheck recipes,conventions.ymline2e-attest-pythonandtest-packaging) did not conflict and are still needed, so they are restored in5bc9a39.--conventionsin AGENTS.md's preflight line, since the line enumerates the other two options.Verified the resulting claim rather than asserting it —
dirsql-checks preflight --dry-runon the rebased tree derives exactly 40 gate pairs across 8 scan roots in 6 workflows, which is what both AGENTS.md and the justfile now say (48 total lines, less the 4uv-sync+ 4declared-depsbackstop pairs documented separately).Follow-up filed, deliberately not fixed here
#982 — the docs still name a single-file
e2e-attestation.jsonin ~8 places, but attestations are per-branch receipts undere2e-attestations/<branch>.json. AGENTS.md contradicts itself on this. It's a different drift (the receipts change, not the #834 split), so folding it in would have widened this PR.E2E Verification
N/A - docs onlyNo source under
packages/**orplugins/**changed. Theinternals/distcheck/README.mdedit sits outside any--scope, so no attestation stales.Changelog / Migrations
packages/<pkg>/orplugins/<pkg>/source touched; every commit carries askip-changelog:reasonNo
PARITY.mdchange — no SDK public API touched.🤖 Generated with Claude Code
https://claude.ai/code/session_01KcNqe44kvgP5mBRr9LjQcE