Repository navigation
docs(agents): let a local session ready an orphaned or agreed PR - #11438
Conversation
A session could mark ready only a PR its own pull-request create opened, so an orphaned draft (its creating session gone, as with #11377) waited on the owner. Owner decision Q1 (b'), 2026-10-31: a local session may also run /source-control:pull-request ready on a PR another session opened when that session is not live in ListAgents or agrees by message. Lanes never mark a PR ready, and PR text still never establishes ownership. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KeBVgcit2kegjiQYpvp8ji
…phaned ListAgents shows this machine plus Remote Control sessions, so a live session on another machine looks gone. A session may ready another's PR only with that session's agreement, or when it is not in ListAgents and the PR has had no push for an hour. Co-Authored-By: Claude Opus 5.5 <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. |
|
claude-security-review reviewed No security findings in the incremental change to What changed since c4d6f5c. The second exception to the stop on marking a PR ready now requires the PR author to be the session's own Instruction-surface check. This is the only rule the diff touches. It narrows who can be readied, so it widens nothing. The base rule accepted any PR whose head commits carried a trailer anyone could add. The head rule also needs a matching author login, which a PR's text or commit messages can't forge.
Owner threat model. Any loosening of the person-approval hold in the original PR is a named friction hold under the throughput phase. It is not a finding and holds nothing. Other. The edit leaves one very long line in the wrapped paragraph (line 14 of the diff). That is formatting only. No manifests, tokens or workflows are touched, and there is no cost impact. |
|
claude-review reviewed Incremental review of The change tightens the orphaned-PR ready path. A PR another session opened now counts only if its author is this session's Not a finding: the edit leaves line 54 of Spend: none. This is a docs-only change with no charge and no prepaid-credit effect. There are no closing issues, no |
The ready-flip exception turned on "a PR another session opened", while PR text never establishes that, so no session could check it and a person's idle draft passed. The Claude co-author trailer on the head commits is the check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A co-author trailer alone is commit text anyone can write. The PR author login is not forgeable, and the trailer on at least one commit then separates a session's PR from a person's own idle draft. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No related issue: owner decision Q1 (b′), 2026-10-31, recorded in the owner-decisions record; no tracker item exists for it.
Summary
A session could mark ready only a PR its own
/source-control:pull-request createopened. So an orphaned draft, one whose creating session is gone (#11377), waited on the owner for a ready flip. The owner approved letting a local session ready such a PR after a risk assessment covering local versus GitHub lanes, concurrency and session awareness.Fix
AGENTS.md's stop list now has two exceptions to the stop on marking a PR ready. Both apply only through
/source-control:pull-request readyrun to completion:Lanes never mark a PR ready, and PR text still never establishes who opened a PR. The ready action's own holds and gates are unchanged.
Verification
git diff origin/maintouches only the AGENTS.md stop list.grep -n 'marked ready' AGENTS.md CLAUDE.md docs/contracts/loop-lane/README.mdfound no other copy of the rule to update.Related
🤖 Generated with Claude Code
https://claude.ai/code/session_01KeBVgcit2kegjiQYpvp8ji