Repository navigation
Gate pull request intake on a lead's request for the work - #368
Closed
rocklambros wants to merge 31 commits into
Closed
rocklambros wants to merge 31 commits into
rocklambros wants to merge 31 commits into
Conversation
Signed-off-by: rocklambros <rock@rockcyber.com>
Signed-off-by: rocklambros <rock@rockcyber.com>
Signed-off-by: rocklambros <rock@rockcyber.com>
Signed-off-by: rocklambros <rock@rockcyber.com>
Signed-off-by: rocklambros <rock@rockcyber.com>
The queue label and the bot's own unlabel no longer enter the hash, so a write is not followed by a redundant re-render. The data line records cleared_at so a lead's second clear after a push is honored, and the claimed and issues values are capped so decide is total on any facts. Signed-off-by: rocklambros <rock@rockcyber.com>
Signed-off-by: rocklambros <rock@rockcyber.com>
Signed-off-by: rocklambros <rock@rockcyber.com>
Signed-off-by: rocklambros <rock@rockcyber.com>
… dry run, and retract Signed-off-by: rocklambros <rock@rockcyber.com>
… and stamp seen with the bot's write time Signed-off-by: rocklambros <rock@rockcyber.com>
Signed-off-by: rocklambros <rock@rockcyber.com>
Signed-off-by: rocklambros <rock@rockcyber.com>
… comments Signed-off-by: rocklambros <rock@rockcyber.com>
…ails Signed-off-by: rocklambros <rock@rockcyber.com>
…and GOVERNANCE Signed-off-by: rocklambros <rock@rockcyber.com>
… text, and pin its numbers to the gate Signed-off-by: rocklambros <rock@rockcyber.com>
Signed-off-by: rocklambros <rock@rockcyber.com>
This was referenced Oct 30, 2026
…pull request Signed-off-by: rocklambros <rock@rockcyber.com>
…t's age Signed-off-by: rocklambros <rock@rockcyber.com>
…holder constant Signed-off-by: rocklambros <rock@rockcyber.com>
…ks an approval Signed-off-by: rocklambros <rock@rockcyber.com>
…tly sweep Signed-off-by: rocklambros <rock@rockcyber.com>
Signed-off-by: rocklambros <rock@rockcyber.com>
… as the sweep ref Signed-off-by: rocklambros <rock@rockcyber.com>
…read edges Signed-off-by: rocklambros <rock@rockcyber.com>
…d edits Signed-off-by: rocklambros <rock@rockcyber.com>
…dy to match Signed-off-by: rocklambros <rock@rockcyber.com>
… later legacy run does not post it twice Signed-off-by: rocklambros <rock@rockcyber.com>
Signed-off-by: rocklambros <rock@rockcyber.com>
Signed-off-by: rocklambros <rock@rockcyber.com>
rocklambros
marked this pull request as ready for review
October 31, 2026 04:39
This was referenced Oct 31, 2026
Collaborator
Author
|
Replaced by PR #406, a much smaller check with no rollout. |
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.
What changed
This replaces the intake bot's two bash steps with one Python gate,
tools/pr_intake.py, that queues a pull request no maintainer asked for, reading that from a lead's review or hand clear, the author's merged record, an assignment, a claim on ahelp wantedissue, or an editorial tick on the documentation lane. The bot owns thestatus:needs-triagelabel, keeps one comment per pull request edited in place, turns auto-merge off where the design names the harm, and lists the queue on the health issue, where the roadmap monitor raises the lead alarm when the nightly sweep fails. Enforcement stays off until two repository variables arm it, so a merge changes nothing beyond today's behavior, and the design, its premortem, and the plan are committed underdesign/with the design's Amendments section recording every change made since version 3.0.Which issue does this implement
Part of #362
Base branch
integration, because this touches the specification, schemas, a referenceimplementation, an adapter, tests, or CI
main, because every changed path is on the documentation lane allowlist inCONTRIBUTING.md
It changes workflows, tools, and tests, so it lands on
integrationand reachesmainby promotion.Type of change
I tested this
uv run pytest -vpasses on my machineuv run mkdocs build --strictpasses on my machineuv run pytest -q: 1222 passed, 1 skipped.uv run mkdocs build --strict: built with no warnings.uv run --locked --only-group zizmor zizmor .github/workflows/: exit 14, 2 high findings (github-app), both in.github/workflows/board-reconcile.yml, which this branch does not change and which is identical onintegration. The three workflows this branch changes (pr-intake.yml,roadmap-sync.yml,monitor-roadmap.yml) report no findings. The zizmor workflow runs with--no-exit-codes, so CI does not fail on these.Checklist
git commit -s(required by the DCO)Security
The workflow runs on
pull_request_target, so it holds the base repository's token on fork pull requests. These are the controls around that token.permissions: {}sits at the top ofpr-intake.yml. The one job holdscontents: read,pull-requests: write, andissues: read, each commented with its use.persist-credentials: false, never the head. Itsifadmits pull request events only againstmain,integration, orrelease/*, the ruleset-protected bases, so only code a lead approved runs beside the token.ghcall goes throughtools/gh_runner.py: absolute/usr/bin/gh, a minimal environment, and an allowlist with one argv shape per operation. No title, body, path, or login from a pull request reaches argv, a shell, or a workflow command. The allowlist refuses-f,-F,--jq,-q,-t, and--templatein every position.ghon stdin as JSON.${{ }}appears inside anyrun:, and zizmor reports no findings on the three workflows this branch changes.Rollout
The owner accepted the deviation on 2026-10-30. The line is in the design under "The owner writes one line here".
The checklist below is posted on issue #362 after merge and ticked there. Undo order at any step: unset
PR_INTAKE_ENFORCED, then dispatchmode=retract.mode=dryrunwith the variables unset. Expected: a summary with zero writes andarm with PR_INTAKE_TOOL_SHA=<value>. He posts the would-queue numbers and reasons on issue PR intake: one gate for work no maintainer asked for #362, naming PR docs: conformance is a technical measure — it cannot attest human intent #24, PR Batch Guardian log writes and drain them on shutdown #112, PR Record OpenCode host decision-honoring evidence for #92 #113, PR docs: acs-verdict-evidence-v1 predicate (draft) #297, PR Match toolCallRequest summary to schema #253, PR Tighten forward compat for 0.x versions #255, and PR Run AGT pin check and upstream watch in CI #259, and the three actions that clear them: approve, a fresh request for changes, or assign.#team-genai-asi-acs-generaland on the weekly call agenda.dryrunlists none of the named numbers, or a project lead writes "proceed with the remainder" on issue PR intake: one gate for work no maintainer asked for #362.evaluateon it, and comments on issue PR intake: one gate for work no maintainer asked for #362 which write the summary reports and the value ofautoMergeRequestafterwards. Expected: null.help wantedlabel description, dispatchesretractwithauthors=botsto clear the seven inherited Dependabot labels, then in one sitting outside 03:00 to 04:30 UTC setsPR_INTAKE_TOOL_SHAfrom the dry run's line, setsPR_INTAKE_ENFORCED=true, and dispatchesevaluate. Expected:mode=enforcedin the summary.PR_INTAKE_BASELINESfrom its "Queued pull requests" counts, and comments the values and the review date on issue PR intake: one gate for work no maintainer asked for #362.Open items