Repository navigation
State When an Issue Belongs in a Platform Handoff Lane - #2668
Conversation
session-handoff "The Chain" now states that a platform lane holds only work whose defect reproduces, or whose fix can be verified, solely on that platform, that the Linux-verifiable half of a mixed issue goes to the ordinary backlog, and that a platform lane holding no qualifying issue is closed out with no successor. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Make the test whether a Linux host can both fix and verify the issue, narrow a mixed issue to its Linux half when its platform half is split out, and drop the hub-only loader example. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A WSL distro is a Linux host, so the test now names a Linux host outside WSL, and a bash or pwsh script needs a lane only where its defect depends on WSL or Windows itself. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
⛔ Files ignored due to path filters (9)
📒 Files selected for processing (3)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe handoff rules define when work belongs in a platform lane. The ranking and unattended-selection guidance now excludes wholly and partly platform-dependent issues, with partial issues waiting for a split. ChangesPlatform-dependent issue handling
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The platform handoff rules are consistent across the source skills and generated copies. No merge-blocking issue was found. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 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 |
Each platform track now holds only issues that need its own platform, systemd and apt take the same WSL or Windows exception as a script, and the lane-cost clause names the platform lane rather than the backlog. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #2668 +/- ##
========================================
Coverage 59.34% 59.34%
========================================
Files 16 16
Lines 8282 8282
========================================
Hits 4915 4915
Misses 3367 3367
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
An issue that needs a platform goes to that platform's lane, a mixed issue's platform parts each go to their own lane, and a lane closes out once its next steps name no issue that needs its platform. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🟡 Changes recommended
The new guidance can route work to the wrong platform lane and contains conflicting or ambiguous examples.
3 open findings
What changed in this PR
This PR adds routing guidance to session-handoff so platform handoff lanes contain only work that requires that platform.
Changes:
- Adds criteria for platform lanes, mixed issues, and closing empty lanes.
- Regenerates the distributed skill copies and source digest.
| File | Description |
|---|---|
.agents/skills/session-handoff/SKILL.md |
Adds the canonical routing guidance. |
.github/skills/session-handoff/SKILL.md |
Updates the generated GitHub copy. |
.claude-plugin/fleet-skills/skills/session-handoff/SKILL.md |
Updates the generated plugin copy. |
.claude-plugin/fleet-skills/.source-digests/session-handoff |
Updates the source digest. |
🧠 Review effort: Lite
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
… Ranking WSL is where a defect lives inside a distro or its interop, Windows where it lives on Windows itself, a lane closes once none of its next steps needs its platform, a split leaving nothing closes the original, and backlog-burndown no longer ranks an issue that needs a platform. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…mers The platform test is again where the defect reproduces or the fix is verified, with a Linux host outside WSL as the second condition. A lane files its non-platform steps before closing out. backlog-burndown names held-back platform issues and splits mixed ones, and unattended-handoff Auto-Resolvable excludes an issue that needs a platform. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Correction to my reply on the resolved thread "Make eligibility specific to the named platform": its second sentence carried a placeholder instead of a commit. The later refinement is in cb9e668 and 555d85f, where the test is the issue's own: the defect reproduces, or the fix can be verified, on that platform alone, and no Linux host outside WSL can both fix and verify it. |
…Back The examples now meet only the first condition and still go to the backlog where a Linux host verifies the fix. A lane files only the steps with no issue before closing out, backlog-burndown holds a mixed issue back until it is split, and the unattended picker skips one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
backlog-burndown holds a mixed issue until an attended session splits it and reports that it waits on the split, and unattended-handoff sends only a whole platform issue to its lane. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Systemd, apt, and bash scripts are not platform work outside the WSL cases, only pwsh keeps the Windows exception, the session finding a mixed issue splits it or names it, and a closed lane reopens with new. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The exception now covers a defect that reproduces on one platform alone, macOS included, rather than naming only the WSL cases. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The topic carve-outs for systemd, apt, bash, and pwsh dropped the second condition, so they are replaced by a sentence saying the two conditions decide those issues like any other. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The bullet now says a platform track is one kept for a single host platform, the close-out comment goes on the lane's last link, and the Auto-Resolvable sentences name the issue rather than the fix. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
A recorded local strict-review pass covers head |
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
Answers to the local-review findings listed in this pull request's body, under "Local Review Findings Still Open" (22 listed, plus the CI question). Each one is quoted short. First push (b3ccd27):
Second push (eefcf89): Third push (555d85f): Fourth push (b90b9b1): Fifth push (7251c7a): Sixth push (bbd7552): The local strict-review pass recorded on bbd7552 raised only item 22. |
## Summary Promotes develop to main. It carries one change: - #2668 States when an issue belongs in a platform handoff lane, in `session-handoff` "The Chain", with matching text in `backlog-burndown` "Ranking" and `unattended-handoff` "Auto-Resolvable". Fixes #2610 🤖 Generated with [Claude Code](https://claude.com/claude-code)

Summary
session-handoff"The Chain" defined a track only as a slug naming a lane of work, so nothing said when an issue belongs in a platform lane. This adds one bullet stating the maintainer's rule from the issue: a platform lane holds only work that needs its platform, an issue a Linux host can fix and verify goes to the ordinary backlog, a mixed issue's platform-only half is filed into the lane while the original is narrowed to the rest, and a platform lane holding no qualifying issue is closed out with no successor. The generated.claude-plugin/and.github/skills/copies are regenerated withbuild_dist.py.Closes on promotion: #2610
Local Review Findings Still Open
First push (b3ccd27)
The first push's local edit budget ran out after two rounds. The third pass raised three findings, all classed
introduced. Commits 2a18487 and eefcf89 fix them:introduced: one shared test did not tell platform lanes apart. It is now per platform.introduced: "Systemd user scopes and apt need neither" was categorical. They now take the same WSL or Windows exception a script takes.introduced: the lane-cost clause sat beside "the backlog". It now names the platform lane.The second pass on that push also asked whether a fix verified by CI on a platform runner counts as Linux-verifiable. #2610 does not settle that, so it is filed as decision #2669, which blocks nothing here.
Second push (eefcf89)
The second push's budget also ran out. Its last pass raised four findings, all classed
introduced. Commits cb9e668 and 555d85f fix them:introduced: a WSL host is both a Linux host and a Windows machine, so "no host lacking it" has no stable meaning there. It can send a Windows PowerShell 5.1 defect to the backlog, or list a WSL defect in both lanes.introduced: the close-out trigger "next steps name no issue that needs its platform" lets a lane whose next steps are unfiled platform work close with that work untracked.introduced: backlog-burndown "Ranking" does not exclude an issue a platform lane has taken, so a Windows-only issue can still be dispatched to a Linux worker.introduced: a split where every part needs some platform leaves the original "narrowed" to nothing and still open in the backlog.Third push (555d85f)
This push also adds a paragraph to backlog-burndown "Ranking" and a sentence to unattended-handoff "Auto-Resolvable", so neither seat dispatches a Linux worker on an issue that needs a platform. Its budget also ran out. The last pass raised three findings, all classed
introduced. Commits 5f55ba4 and b90b9b1 fix them:introduced: the examples say "It iswslwork" from the first condition alone. A/mnt/<drive>translation fix that a plain Linux unit test verifies fails the second condition and belongs in the backlog.introduced: "each remaining step first filed as a backlog issue" files a duplicate for a step that already has an open issue.introduced: the Ranking paragraph asks for a split, which the unattended picker may not write, and Auto-Resolvable excludes a mixed issue whole. The two skills disagree on whether a mixed issue's Linux half gets worked.Fourth push (b90b9b1)
Its budget also ran out. The last pass raised two findings, both classed
introduced. Commits 8c629b0 and 7251c7a answer them:introduced: "Systemd user scopes, apt, and bash orpwshscripts in a Linux container need a lane only where the defect depends on the platform" widens State When an Issue Belongs in a Platform Handoff Lane #2610's exception, which only thepwshcase carries, and "the platform" has no antecedent.introduced: nothing names who makes a split, so "which an attended session makes" is unverifiable. Nothing says how a closed platform lane takes a new issue either.Fifth push (7251c7a)
Its passes raised these. Two are deferred to #2670 rather than grown into this change, since each needs new machinery outside the rule:
introduced, fixed in 7251c7a: the systemd, apt, and bash exception named only WSL, so a macOS-only defect got two answers.introduced, deferred to Record Platform-Lane Membership and Report Skipped Platform Issues in Unattended Runs #2670: nothing records that an issue belongs to a lane, the close-out test reads next steps rather than membership, and no seat reopens a closed lane for a new issue.introduced, deferred to Record Platform-Lane Membership and Report Skipped Platform Issues in Unattended Runs #2670: an unattended run has no channel to report a platform or mixed issue it skipped.pre-existing, noted on Record Platform-Lane Membership and Report Skipped Platform Issues in Unattended Runs #2670: the attended session's pick has no host check.introduced, fixed in c2bc6e2: the topic carve-outs for systemd, apt, bash, andpwshfell back to where a defect reproduces and dropped the second condition. They are replaced by a sentence saying the two conditions decide those issues like any other.Sixth push (bbd7552)
introduced, fixed in bbd7552: the bullet did not say what makes a track a platform track.introduced, fixed in bbd7552: "Its last link" bound to the newly filed step issue rather than the lane.introduced, fixed in bbd7552: in unattended-handoff, "a whole one" bound to "platform", and "It" meant the fix rather than the issue.pre-existing, noted on Record Platform-Lane Membership and Report Skipped Platform Issues in Unattended Runs #2670: State When an Issue Belongs in a Platform Handoff Lane #2610's own "on that platform alone" test gives a defect failing on two non-Linux platforms no lane.introduced, deferred to Record Platform-Lane Membership and Report Skipped Platform Issues in Unattended Runs #2670: nothing tells a platform lane's session to drop an issue that fails the test from its next steps. This is the reverse direction of that issue's membership gap.Verification
python3 scripts/build_dist.py --check: current.prose_lint.py --diff origin/develop: no violations.docker_lint.pymarkdownlint, cspell, editorconfig-checker: success.spec/validate.py: OK.🤖 Generated with Claude Code
Summary by CodeRabbit