Steward: catch up on the PR after a late subscribe - #1798
Conversation
A steward whose first subscribe_pr_activity fails and only succeeds on a later retry has a window in which review comments and failed checks were never queued. Nothing polls, so those events were silently lost: the steward just waited for new ones. Seen on #1794. Require one read-only, counts-only check of the PR right after a late subscribe, classified and dispatched like any other wake. The fast path (subscribe succeeds at spawn) is unchanged. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X9bnuNRMZfUyxdMcJz2FRQ
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: d17ec1b602
ℹ️ 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".
| the PR — counts only, no bodies: unresolved review threads and review comments, failed | ||
| checks on the current head, the head sha. Classify that like a drained queue (step 2) |
There was a problem hiding this comment.
Include every actionable comment surface in catch-up
When a top-level PR comment or a formal review body arrives during the failed-subscription gap, this snapshot never sees it because it checks only review threads/comments and CI. That loses Peter's questions/change requests and findings submitted in review bodies—the exact events step 2 otherwise treats as actionable—so the steward can wait indefinitely without dispatching them. Query top-level comments and formal reviews (on both repositories, as required by the existing feedback workflow) during catch-up as well.
AGENTS.md reference: AGENTS.md:L120-L121
Useful? React with 👍 / 👎.
PR Surface ReportCompared Summary: 1 changed file(s) | EF migrations: 0 added file(s), max 0/1 per context Reforge Surface Score
Section DeltasNo section score changes. Section Size & Complexity DeltasNo section size/complexity changes. Rule DeltasNo rule score changes. Published Write Surface14 of 48 sections publish write capability, 23 interfaces (0). Interface SurfaceNo new interfaces or interface methods. Diff Size
|
What
The steward skill now requires one read-only, counts-only catch-up check of the PR (unresolved threads/comments, failed checks on head, head sha) right after a
subscribe_pr_activitythat failed at spawn and succeeded on a later retry. Findings are classified and dispatched like any other wake.Why
On #1794 the steward's first subscribe failed; the tooling later came back, but nothing checked what had landed on the PR in the gap. Nothing polls, so review comments or failed checks from that window were silently lost. The fast path (subscribe succeeds at spawn) is unchanged.
Existing surface checked
No new durable surface. Extends the existing Hand-off step 3 and steward brief, and adds a step 0 to the existing wake protocol in
.claude/skills/steward/SKILL.md.Checklist
mainonpeterdrier/Humans.origin/main.EF migrations— none.NuGet packages updated?— none.New project rule?— skill doc update, not a memory atom.Build + test pass locally— docs-only change, no build/tests per AGENTS.md.Nav coverage— no pages.No magic strings— n/a.Dates/times via NodaTime, icons via Font Awesome 6— n/a.Reviewer notes
Step 0 is an explicit exception to step 2's "classify without any other tool call": one counts-only read, no thread bodies, so the steward's context stays small.
🤖 Generated with Claude Code
https://claude.ai/code/session_01X9bnuNRMZfUyxdMcJz2FRQ
Generated by Claude Code