Skip to content

State When an Issue Belongs in a Platform Handoff Lane - #2668

Merged
ptr727 merged 13 commits into
developfrom
feature/auto-2610
Oct 9, 2026
Merged

ptr727 merged 13 commits into
developfrom
feature/auto-2610

Conversation

@ptr727

@ptr727 ptr727 commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

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 with build_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 is wsl work" 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 or pwsh scripts 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 the pwsh case 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:

Sixth push (bbd7552)

Verification

  • python3 scripts/build_dist.py --check: current.
  • prose_lint.py --diff origin/develop: no violations.
  • docker_lint.py markdownlint, cspell, editorconfig-checker: success.
  • spec/validate.py: OK.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Updated backlog and handoff guidance to clarify how fully or partly platform-dependent issues are ranked, split, and assigned to platform-specific lanes.
    • Clarified when platform-specific work qualifies for a separate handoff track and how those lanes are managed.
    • Round reports now identify held issues, the relevant platform, and whether a split is pending.

ptr727 and others added 3 commits October 9, 2026 10:12
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>
Copilot AI lite review requested due to automatic review settings October 9, 2026 17:21
@coderabbitai

coderabbitai Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: ptr727/ProjectTemplate/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 9dc38e99-3d3d-49fa-a9db-55072cb40d03

📥 Commits

Reviewing files that changed from the base of the PR and between 2cb7380 and bbd7552.


⛔ Files ignored due to path filters (9)
  • .claude-plugin/fleet-skills/.source-digests/backlog-burndown is excluded by !.claude-plugin/fleet-skills/**
  • .claude-plugin/fleet-skills/.source-digests/session-handoff is excluded by !.claude-plugin/fleet-skills/**
  • .claude-plugin/fleet-skills/.source-digests/unattended-handoff is excluded by !.claude-plugin/fleet-skills/**
  • .claude-plugin/fleet-skills/skills/backlog-burndown/SKILL.md is excluded by !.claude-plugin/fleet-skills/**
  • .claude-plugin/fleet-skills/skills/session-handoff/SKILL.md is excluded by !.claude-plugin/fleet-skills/**
  • .claude-plugin/fleet-skills/skills/unattended-handoff/SKILL.md is excluded by !.claude-plugin/fleet-skills/**
  • .github/skills/backlog-burndown/SKILL.md is excluded by !.github/skills/**
  • .github/skills/session-handoff/SKILL.md is excluded by !.github/skills/**
  • .github/skills/unattended-handoff/SKILL.md is excluded by !.github/skills/**

📒 Files selected for processing (3)
  • .agents/skills/backlog-burndown/SKILL.md
  • .agents/skills/session-handoff/SKILL.md
  • .agents/skills/unattended-handoff/SKILL.md

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.



📝 Walkthrough

Walkthrough

The 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.

Changes

Platform-dependent issue handling

Layer / File(s) Summary
Define platform lane eligibility
.agents/skills/session-handoff/SKILL.md
Defines when work qualifies for a platform track, how mixed issues are handled, and how platform lanes reopen and close.
Apply platform rules to issue selection
.agents/skills/backlog-burndown/SKILL.md, .agents/skills/unattended-handoff/SKILL.md
Ranking holds platform-dependent issues and reports their platform and split status. Auto-Resolvable criteria exclude wholly and partly platform-dependent issues.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes


Merge Risk: ⚪ Minimal · up to bbd75

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)
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the main change: defining when an issue belongs in a platform handoff lane.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.


✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR


  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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

codecov Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 59.34%. Comparing base (2cb7380) to head (bbd7552).

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           
Flag Coverage Δ
python-3.13 59.34% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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.

Comment thread .agents/skills/session-handoff/SKILL.md Outdated
Comment thread .agents/skills/session-handoff/SKILL.md Outdated
Comment thread .agents/skills/session-handoff/SKILL.md Outdated
ptr727 and others added 2 commits October 9, 2026 10:29
… 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>
@ptr727

ptr727 commented Oct 9, 2026

Copy link
Copy Markdown
Owner Author

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.

ptr727 and others added 3 commits October 9, 2026 10:37
…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>
ptr727 and others added 3 commits October 9, 2026 10:49
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>
@ptr727

ptr727 commented Oct 9, 2026

Copy link
Copy Markdown
Owner Author

A recorded local strict-review pass covers head bbd75521635c4962163dbf1f831c506e79273b00, the content this pull request carries at that commit against develop, and it recorded 1 finding.

@ptr727

ptr727 commented Oct 9, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@ptr727

ptr727 commented Oct 9, 2026

Copy link
Copy Markdown
Owner Author

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):

  1. session-handoff "The Chain": "one shared test did not tell platform lanes apart". Fixed in 2a18487
  2. session-handoff "The Chain": "Systemd user scopes and apt need neither was categorical". Fixed in 2a18487
  3. session-handoff "The Chain": "the lane-cost clause sat beside the backlog". Fixed in 2a18487

Second push (eefcf89):
4. "a WSL host is both a Linux host and a Windows machine". Fixed in cb9e668
5. "the close-out trigger lets a lane close with unfiled platform work". Fixed in cb9e668
6. "backlog-burndown Ranking does not exclude an issue a platform lane has taken". Fixed in cb9e668
7. "a split where every part needs some platform leaves the original narrowed to nothing". Fixed in cb9e668

Third push (555d85f):
8. "the examples say It is wsl work from the first condition alone". Fixed in 5f55ba4
9. "each remaining step first filed as a backlog issue files a duplicate". Fixed in 5f55ba4
10. "the Ranking paragraph asks for a split, which the unattended picker may not write". Fixed in 5f55ba4 and b90b9b1

Fourth push (b90b9b1):
11. "the exception widens #2610's, and the platform has no antecedent". Fixed in 8c629b0
12. "nothing names who makes a split, nor how a closed lane takes a new issue". Fixed in 8c629b0

Fifth push (7251c7a):
13. "the systemd, apt, and bash exception named only WSL". Fixed in 7251c7a
14. "nothing records that an issue belongs to a lane". Deferred to #2670
15. "an unattended run has no channel to report a skipped platform or mixed issue". Deferred to #2670
16. "the attended session's pick has no host check" (pre-existing). Deferred to #2670
17. "the topic carve-outs dropped the second condition". Fixed in c2bc6e2

Sixth push (bbd7552):
18. "the bullet did not say what makes a track a platform track". Fixed in bbd7552
19. "Its last link bound to the newly filed step issue". Fixed in bbd7552
20. "a whole one bound to platform, and It meant the fix". Fixed in bbd7552
21. "#2610's own test gives a two-platform defect no lane" (pre-existing). Deferred to #2670
22. "nothing drops an issue that fails the test from an open lane's next steps". Deferred to #2670

The local strict-review pass recorded on bbd7552 raised only item 22.

@ptr727
ptr727 merged commit 5d68293 into develop Oct 9, 2026
13 checks passed
@ptr727
ptr727 deleted the feature/auto-2610 branch October 9, 2026 18:11
ptr727 added a commit that referenced this pull request Oct 9, 2026
## 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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants