Repository navigation
fix: write PR body edits before pushes and push once per review round - #5899
Conversation
…ts before pushes and push once per round Agent lanes multiplied CI runs on one head: a PR body edit right after a push starts a contract-only run beside the push's run, and pushing one fix at a time cancels a full run per push. - implement and implement-dispatch: a plan refresh in the PR body lands before the push or after its run finished; a worker dispatched onto an open PR pushes once after its change set passes. - work: one fix worker per round, after every CI and reviewer check run on the head finished; the Related body write precedes that push. - pull-request monitor: section 3.3.2 step 0 waits for every reviewer on the head, CI and review fixes share one push, D6 pushes per round. - ready-for-review: security-review commits go up in one push right before the flip; records that update-branch pushes nothing when the head already contains the base tip. - babysit-prs: a comment wave starts after every reviewer check run on the head completed. - repo-sweep next: tick the committed step before pushing it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
# Conflicts: # plugins/implementation/CHANGELOG.md # plugins/playbooks/CHANGELOG.md
# Conflicts: # plugins/implementation/CHANGELOG.md
Resolve the implementation version collision: main shipped 0.20.3, so this branch's push-habit change moves to 0.20.4, with main's 0.20.3 CHANGELOG entry kept below this branch's re-headed entry. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8da77cda48
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Conflicts in plugins/source-control plugin.json and CHANGELOG.md: main shipped 0.74.0 (watch-handoff) while this branch carried 0.73.1 (push habits). Kept both changelog entries and set the version to 0.74.1, re-heading this branch's entry. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 3m 5s —— View job Security review (
|
|
Claude finished @kyle-sexton's task in 5m 40s —— View job Code review (
|
Main shipped source-control 0.74.1 and implementation 0.20.4, the versions this branch used. Kept every changelog entry and moved this branch's entries to source-control 0.74.2 and implementation 0.20.5. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 2m 1s —— View job Code review (
|
|
Claude finished @kyle-sexton's task in 2m 36s —— View job Security review (
|
Version collisions in implementation, playbooks, source-control and work-items: kept every changelog entry and set each to one patch above main (0.20.6, 0.17.6, 0.77.1, 0.45.3). work-items work/SKILL.md takes main's reworded fix-don't-file sentence and keeps this branch's rule that the PR body write goes before the push. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 1m 49s —— View job Code review (
|
|
Claude finished @kyle-sexton's task in 2m 27s —— View job Security review (
|
Restore push-then-tick in repo-sweep next: tick.sh writes the remote PR body and state.sh never re-checks a committed line, so ticking first let the body name a commit the branch lacked. A death after the push is already reconciled as untick-committed. D6 in review-discipline.md and pull-request SKILL.md, and babysit-prs loop.md 5.1.4, now commit per finding, push once per round, then run the verify-commit-pushed check and D7 for every finding after that push. ready-for-review.md 2.5.4 shows the push-branch.sh push before the flip. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Version bumps resolved with resolve-version-bump-conflict.sh: implementation 0.21.1, playbooks 0.18.1, source-control 0.77.2, work-items 0.45.4. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 3m 10s —— View job Skip gate: does not apply. The What changed since the last review round
Verified these by reading the full diff of New finding (1)
This passage (the "main-session contract" for the ≥3-findings subagent-ledger path) is untouched by this PR — confirmed with
That's a strict per-row D6→D7 chain with a gate between them. But §3's D6 (the part this PR did fix, lines 263–267) now says the round pushes once after every finding's D6 commit, and "D7 and D7.5 for every finding in the round wait for that push." A worker following §2 literally — process ledger row 1's D4.5 through D7 with a gate before moving to row 2 — hits exactly the stall the earlier reviews flagged for D6→D7 elsewhere: row 1's D7 gate (commit pushed) can't pass until every other row's D6 commit has also landed and the round has pushed, but §2 never says to wait, only "gates between each step." Since §2 governs decomposing any single comment with ≥3 findings, and that path is common (subagent ledger dispatch), this reintroduces the same correctness bug in a passage the fix commit didn't touch. Suggested fix: add the same "D7 and D7.5 wait for the round's push" clause to §2's contract, or have §2 point at §3's D6 bullet instead of restating its own D6/D7 sequencing. Minor, not re-filed as a new findingThe PR body's "Patch bumps" versions (e.g. VerificationRead the full diff of |
|
Claude finished @kyle-sexton's task in 1m 30s —— View job Security review (
|
source-control version bump resolved with resolve-version-bump-conflict.sh to 0.77.3. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 1m 37s —— View job Code review (
|
|
Claude finished @kyle-sexton's task in 1m 5s —— View job Security review (
|
No related issue: CI-volume follow-up from the wave-2 waste audit (section J), which has no tracker item.
Summary
Agent lanes multiply CI runs on one pull-request head. Measured over a week: 730 contract-only runs, mostly PR body edits within a minute of a push; 305 runs cancelled by a newer push from the same lane; 345 draft runs cancelled by the ready flip. This changes the lane instructions so a PR body or label edit lands before the push that triggers CI (or after its run finished), and fixes go up in one push per round instead of one per finding.
Fix
implementation:implementStep 4 andimplement-dispatchPhase boundaries write a plan refresh in the PR body before the push, or after its run finished.implement-dispatchkeeps the early push only for the time before the PR exists; a worker dispatched onto an open PR pushes once after its change set passes.work-items:/work-items:workwaits until every CI and reviewer check run on the head finished, then hands every failing check and finding to one fix worker that pushes once; the deferred-finding## Relatedwrite precedes that push.source-control: monitor.md section 3.3.2 gains step 0 (wait for every reviewer on the head before pushing; CI fixes from section 3.2 share the push); D6 inSKILL.mdandreview-discipline.mdpushes once per round; ready-for-review.md pushes the security review's commits in one push right beforegh pr ready, and records thatgh pr update-branchalready pushes nothing when the head contains the base tip; babysit-prs starts a comment wave only after every reviewer check run on the head completed.playbooks: repo-sweepnextticks the committed step before pushing it.Verification
markdownlint-cli2over the 13 changed markdown files: 0 issues.scripts/check-changed-skills.sh origin/main: implement, implement-dispatch, pull-request, babysit-prs and work PASS. repo-sweep FAILs locally only on its bundledstate.test.shandtick.test.sh, whose scripts this PR does not touch; the failures are CRLF byte comparisons under Git Bash on Windows, and CI on Linux is the check of record.scripts/affected-tests.sh --run --jobs 4(87 suites) on Windows, stopped at the one-hour limit after 48 suites: 41 pass, 7 fail, all in plugins this PR does not touch (instruction-placement timing and symlinks, ai-slop no-git PATH shim, harness-config concurrency, skill-quality, testing hooks). CI on Linux is the check of record.gh pr update-branchskipping an up-to-date head: cli/clipkg/cmd/pr/update-branch/update_branch.go, theBehindBy == 0return, read 2026-10-02.Related
🤖 Generated with Claude Code