fix(rules): document 3 stale-armed-PR resolution patterns in blocked-green-ci rule#3910
Merged
AceHack merged 1 commit intoMay 16, 2026
Merged
Conversation
…green-ci rule This session's empirical evidence (5 stale-armed PR investigations between 13:10Z and 16:33Z) clarifies three distinct resolution patterns: close-as-redundant, re-land-via-cherry-pick, and forward-signal-comment. Added a decision tree and links to the empirical instances. Composes with the forced-escalation-finds-hidden-work anchor on holding-without-named-dependency rule (PR #3901). Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Documents three empirical resolution patterns for stale-armed PRs (close-as-redundant, cherry-pick re-land, forward-signal comment) in the blocked-green-ci investigation rule, with a decision tree and empirical anchors from a single session's 5 investigations.
Changes:
- Adds "Stale-armed-PR resolution patterns" section with empirical anchor table
- Adds 3-step decision tree
- Cross-links to
refresh-world-model-poll-pr-gate.mdrate-limit tiers
3 tasks
AceHack
added a commit
that referenced
this pull request
May 16, 2026
…reme cost-aware tier + Lior cascade observed (#3911) Per .claude/rules/tick-must-never-stop.md, fresh session re-armed <<autonomous-loop>> sentinel (job a32665e9, * * * * *). State-of-world: GraphQL 451/5000 (extreme cost-aware tier, reset in 2 min), 35 open PRs (~28 Lior preservation/shadow/archive cascade), Lior gemini processes active in parallel. Substrate-honest deferral of --all-open batch poll per rate-limit tier discipline + Lior-parallel-duplication avoidance. Otto in-flight PRs (#3909 1643Z shard, #3910 stale-armed-resolution) both have auto-merge armed; trust the queue. Co-authored-by: Claude <noreply@anthropic.com>
AceHack
added a commit
that referenced
this pull request
May 16, 2026
… 5 (#3916) * fix(rules): add push-time explicit-branch-push mitigation to sub-case 5 When peer Otto's git switch race moves HEAD between commit and push, the standard 'git push -u origin <branch>' reads CURRENT HEAD which may have moved off my branch. The safer pattern: git branch <name> <sha> git push origin <name>:<name> This bypasses HEAD-state confusion because (1) git branch creates the ref without changing HEAD, (2) git push origin <src>:<dst> reads the source ref directly, (3) the commit SHA is the durable handle. Empirical anchor: session 2026-05-16T16:30Z-16:40Z had >=3 mid-commit HEAD-contamination events; the final successful pattern (PR #3910) used this explicit-branch-push sequence. Co-Authored-By: Claude <noreply@anthropic.com> * fix: correct git-push semantics + persona-name in push-time mitigation Two substantive findings from Copilot + chatgpt-codex-connector on #3916: 1. Persona-name in rule: replaced 'peer Otto' with 'a peer agent' in my newly-added section (pre-existing 'peer Otto' instances at lines 90 + 174 are out-of-scope for this PR) 2. Technical correctness on git push semantics: - 'git push -u origin <branch>' pushes the NAMED local ref refs/heads/<branch>, NOT current HEAD - The footgun was misdiagnosed in my prior text as 'reads CURRENT HEAD' - True failure mode: peer-agent operations CONTAMINATE the local ref (refs/heads/<branch>) between commit and push, so push correctly pushes the now-poisoned ref - Mitigation still works: 'git branch <fresh-name> <sha>' creates a ref peer agents don't write to Co-Authored-By: Claude <noreply@anthropic.com> * fix(rules): correct refspec-syntax overclaim per Vera P2 finding (PR #3916 thread) Vera (chatgpt-codex-connector) caught that bullet 2 of the push-time mitigation section claimed `git push origin <src>:<dst>` reads the source "by hash, not by name resolution" — but per git-push(1), <src> is a SHA-1 expression Git resolves through the local ref namespace before updating the remote when <src> is a branch name. The refspec syntax does NOT inherently bypass ref-name races. Substrate-honest rewrite: - Bullet 1: name the actual protection — the fresh UNIQUE ref name that peers don't know to write to. - Bullet 2: correct the overclaim. The explicit refspec form removes the implicit current-branch dependency, but race-resistance comes from bullet 1's name-uniqueness, not from the syntax. - Bullet 3: document the literal-SHA form (git push origin <sha>:<dst> or git push origin $(git rev-parse <name>):<dst>) as the strongest defense — that form genuinely bypasses local ref resolution at push time. Composes with verify-before-fix discipline in .claude/rules/blocked-green-ci-investigate-threads.md — direct inspection of git-push(1) confirmed Vera's finding was substantive, not a false positive. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
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.
Carves this session's empirical evidence (5 stale-armed-PR investigations between 13:10Z and 16:33Z) into `.claude/rules/blocked-green-ci-investigate-threads.md`. Three distinct resolution patterns now have a decision tree.
The three patterns
Decision tree
Composes with
Multi-Otto contention note
The substrate was preserved as commit `fc6ee73` through 3 mid-commit HEAD-contamination events; this PR uses an explicit `git push origin ` without `-u` to dodge HEAD-state confusion in the working tree (the branch ref was created via `git branch fc6ee73` and pushed without HEAD movement).