Mirror agent lane claims to an agent-claimed GitHub label (#210) - #220
Conversation
Mirror an active lane claim on the claimed issue/PR with a visible agent-claimed label: apply after a successful agent-coord claim, remove on release, and let the coordination daemon reconcile labels for claims that expire without a clean release. Like codex-wip, it is a visible hint, not the durable lock — the backend claim and heartbeat TTL remain the source of truth (a stale label after a restart is expected until the daemon reconciles). Skip label mirroring when coordination_backend is n/a. State the symmetric owned-means-skip decay rule once: a human assignee or an agent-claimed label both mean skip; humans decay via the stale-assignment sweep, agents via heartbeat TTL, and the sweep skips agent-claimed items. Contract test locks the invariants; registered in bin/validate. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 45 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (6)
WalkthroughThe PR documents mirroring active agent claims to GitHub with a configurable ChangesAgent claim label mirroring
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related issues
Suggested reviewers: Sequence Diagram(s)sequenceDiagram
participant AgentLane
participant CoordinationBackend
participant GitHubIssuePR
participant ReconciliationDaemon
AgentLane->>CoordinationBackend: Claim issue or PR lane
CoordinationBackend->>GitHubIssuePR: Apply configured agent claim label
AgentLane->>CoordinationBackend: Release or cancel claim
CoordinationBackend->>GitHubIssuePR: Remove claim label
ReconciliationDaemon->>GitHubIssuePR: Remove label after heartbeat TTL expiry
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ReviewOverview: Docs-and-test-only PR that closes out #210 — mirrors coordination-backend lane claims to a visible Verified:
Findings (posted inline):
Security/performance: N/A — no executable logic changed, only prose the agent reads and a Ruby test that does string containment checks against local files. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 97a664ef4c
ℹ️ 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".
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@skills/pr-batch/SKILL.md`:
- Line 467: Update skills/pr-batch/SKILL.md at lines 467-467 to document
target-repository agent-claimed label creation during setup and daemon removal
after an unclean claim expires, while preserving backend n/a skipping and the
stated ownership semantics. Update
skills/pr-batch/bin/agent-claimed-mirror-contract-test.rb at lines 28-38 to
assert the complete mirrored rule set: setup, expiry cleanup, backend n/a
skipping, symmetric human/agent decay, and stale-assignment sweep behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 01b94253-d601-4863-b6b5-115e7c06955a
📒 Files selected for processing (5)
CHANGELOG.mdbin/validateskills/pr-batch/SKILL.mdskills/pr-batch/bin/agent-claimed-mirror-contract-test.rbworkflows/pr-processing.md
… selection Round 1 review (validate + claude + codex P2): - Fix validate: the agent-claimed rule no longer bloats the size-limited Codex goal-prompt template — it lives canonically in pr-processing.md, with a brief reference in the SKILL.md Coordination State prose. - Route the claim label through a seam (`agent_claimed_label`, default `agent-claimed`) instead of hardcoding a mandatory label in a portable pack. - Selection and triage (plan-pr-batch, triage, plan-issue-triage) now skip `agent-claimed` items, so the mirrored label is actually respected as an ownership marker — closing the owned-means-skip symmetry. - Drop the duplicated claim-step rule (now a pointer to the label-mirror rule); soften the label-creation reference to a repo-adopted `gh label create` like codex-ready/codex-wip. - Contract test updated: seam-configurable label, selection skips agent-claimed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c09dc667a3
ℹ️ 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".
Review: Mirror agent lane claims to an
|
…ract Round 2 review (codex P2 + claude + coderabbit): - Selection and triage now resolve the claim label through the seam (`agent_claimed_label`, default `agent-claimed`) instead of a hardcoded name, so a renamed consumer label is respected. - Add the agent-claimed selection skip to docs/pr-batch-skills.md and docs/issue-evaluation.md (parity with the assignee rule) and assert it in the contract test. - Document claim-label reconciliation plus the daemon expiry backstop as an optional backend capability in docs/coordination-backend.md, giving the daemon dependency a canonical home. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Review SummaryThis PR extends the assignment-aware selection series (#208, #209) with a symmetric Verified: I checked every string constant in the new contract test against the diff text (after whitespace normalization) — all match, and Findings
Both are documentation-completeness gaps rather than functional bugs (nothing in this repo executes the label mirroring itself), but they weaken the "clean release" and "reserved item visibility" guarantees the PR advertises. No security or performance concerns — this is a docs/skill-spec change with a purely textual contract test. |
…in reserved output Round 3 review (claude): - Add "remove the mirrored claim label" to the two agent-coord release sites (worker drain rule, hard escape hatch step 3) so the remove-on-release policy is actually wired into the steps that release the claim. - Broaden the reserved-output buckets in triage and plan-issue-triage to cover agent-claimed items (surfaced by the seam's claim label), not just human-assigned items with an assignee name. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Review: Mirror agent lane claims to an
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 87cfcb81b8
ℹ️ 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".
…-review mirror Round 4 review (codex P2 x3): - Add the agent-claimed skip to plan-issue-triage's emitted prompt template (Triage rules), so a generated triage prompt actually reserves claimed items. - Gate label mirroring on the backend providing claim-label expiry reconciliation — without it a crashed claim would leave a stale label that excludes a released item indefinitely. - Mirror/release the claim label in address-review's private-claim loop (workflows/address-review.md + skills/address-review), so its PR claims are visible to selection/triage too. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ReviewDocs-only PR (14 files, +146/-11) that closes the assignment-aware series (#208, #209) by mirroring active agent-lane claims to a visible What the PR does
Verification performed
Nit (left as inline comment)
Overall: well-scoped, internally consistent, and the new contract test meaningfully guards the invariants the PR body claims. No functional/correctness issues found. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 225b030c47
ℹ️ 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".
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ReviewOverviewThis PR extends the assignment-aware series (#208, #209) by mirroring an active agent lane claim to a visible Code quality / consistency
Potential issue (flagged inline)The PR introduces SecurityNo security-relevant surface here — this is instruction/spec text for AI agents plus a doc-consistency test; nothing executes GitHub mutations as part of this diff. Test coverageThe new contract test meaningfully locks the documented invariants in place (as the existing pattern in this repo does), but — like its sibling tests — it only checks that specific strings exist in prose, not that any runtime behavior is correct. That's consistent with how this repo already tests other "policy" changes, so not a new gap introduced by this PR, but worth being aware of given the finding above: a contract test passing here doesn't guarantee the SummarySolid, well-cross-referenced documentation change that keeps the existing repo conventions. The one substantive gap is the disconnect between the newly-formalized configurable |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@skills/address-review/SKILL.md`:
- Around line 702-705: Update the private-claim release handling in the
address-review workflow to remove the mirrored claim label only when the
released claim’s holder/generation still matches the active claim, using the
same claim-specific cleanup rule as the processing workflow. Preserve label
mirroring, expiry-reconciliation gating, and the coordination_backend: n/a skip
behavior.
In `@skills/pr-batch/SKILL.md`:
- Around line 562-565: Update the backend reconciliation routing summary in
SKILL.md to reference the configurable agent_claimed_label seam key instead of
hardcoding agent-claimed. Preserve the existing claim, release, skip, and
backend-n/a guidance, while deferring the default label value to the canonical
workflow/configuration.
In `@workflows/address-review.md`:
- Around line 552-557: Update the private-claim release and cleanup flow
described in workflows/address-review.md so label removal is conditional on the
exact released claim/target generation still being current; do not remove a
label if a replacement or retry has already reclaimed the target. Apply the same
generation-verified cleanup to rollback handling for every acquired target,
while preserving the existing backend and n/a coordination rules.
In `@workflows/pr-processing.md`:
- Around line 1183-1187: Make mirrored-label cleanup claim-specific: in
workflows/pr-processing.md lines 1183-1187, require confirmed release plus
matching holder/generation before removing the label; at lines 1777-1779, remove
it only after a successful release; at lines 1794-1798, avoid manual clearing
when cancellation or ownership is UNKNOWN; apply the same guarded cleanup to
normal and rollback release paths in workflows/address-review.md lines 702-705.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 20a1a864-18ff-48ef-b646-391413595efe
📒 Files selected for processing (13)
.agents/agent-workflow.ymlCHANGELOG.mddocs/coordination-backend.mddocs/issue-evaluation.mddocs/pr-batch-skills.mdskills/address-review/SKILL.mdskills/plan-issue-triage/SKILL.mdskills/plan-pr-batch/SKILL.mdskills/pr-batch/SKILL.mdskills/pr-batch/bin/agent-claimed-mirror-contract-test.rbskills/triage/SKILL.mdworkflows/address-review.mdworkflows/pr-processing.md
🚧 Files skipped from review as they are similar to previous changes (2)
- skills/pr-batch/bin/agent-claimed-mirror-contract-test.rb
- CHANGELOG.md
#221 Round 6 review (coderabbit Major x3 + claude + minor): - Make claim-label removal claim-specific: verify this lane is still the claim holder (holder/generation check) before removing, so a replacement or retried claim that reapplied the label is not cleared. Applied in the canonical rule and both address-review references. - Make the pr-batch SKILL.md routing summary seam-driven (agent_claimed_label). - Note in the CHANGELOG that the stale-assignment sweep still matches the default label literally; wiring it to the agent_claimed_label seam is tracked in #221. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ReviewThis PR is entirely documentation/prompt changes (no application logic runs the actual What it doesAdds a new seam key Strengths
Issue found (posted as inline comments)
Minor style noteThe new bullet in No security or performance concerns — this is pure documentation/config with no code path executing label mutations in this repo. |
Summary
Completes the assignment-aware series (#208 selection, #209 human sweep) by making agent ownership visible and symmetric. An active lane claim is mirrored to a visible
agent-claimedGitHub label so humans and other agents can see that a lane is working an issue/PR — owned means skip for agents just as for humans.Behavior (documented in
workflows/pr-processing.mdCoordination State +skills/pr-batch/SKILL.md)agent-claimedafter a successfulagent-coord claimon an issue/PR lane (not ad-hoc lanes — no GitHub surface); remove it on the release/teardown path; the coordination daemon reconciles labels for claims that expire without a clean release.codex-wip, it is a visible hint, not the durable lock — the backend claim and its heartbeat TTL remain the source of truth, and a stale label after a crash/restart is expected until the daemon reconciles it.coordination_backend: n/a(single-operator repos like this one).agent-claimedlabel both mean skip; humans decay via the stale-assignment sweep, agents via backend heartbeat TTL. The sweep (Add a stale-assignment sweep: warn-then-release ownership decay for human-assigned work #209) already skipsagent-claimeditems.agent-claimedlabel in target repos as part of coordination setup.skills/pr-batch/bin/agent-claimed-mirror-contract-test.rblocks these invariants (registered inbin/validate).Acceptance criteria (issue #210)
agent-claimeditems (implemented in Add a stale-assignment sweep: warn-then-release ownership decay for human-assigned work #209; asserted here).agent-claimed; decays via sweep / heartbeat TTL).Closes #210. Completes the symmetry with #208 and #209.
🤖 Generated with Claude Code
Summary by CodeRabbit
agent-claimedlabel for active agent work on GitHub issues and pull requests, including default behavior and symmetry with human reservations.coordination_backendisn/a, and handling stale labels after interruptions.