Skip to content

Promote the Platform Handoff Lane Rule to Main - #2671

Merged
ptr727 merged 1 commit into
mainfrom
develop
Oct 9, 2026
Merged

ptr727 merged 1 commit into
mainfrom
develop

Conversation

@ptr727

@ptr727 ptr727 commented Oct 9, 2026

Copy link
Copy Markdown
Owner

Summary

Promotes develop to main. It carries one change:

Fixes #2610

🤖 Generated with 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 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 #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:

- `introduced`, fixed in 7251c7a: the systemd, apt, and bash exception
named only WSL, so a macOS-only defect got two answers.
- `introduced`, deferred to #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 #2670: an unattended run has no channel to
report a platform or mixed issue it skipped.
- `pre-existing`, noted on #2670: the attended session's pick has no
host check.
- `introduced`, fixed in c2bc6e2: the topic carve-outs for systemd,
apt, bash, and `pwsh` fell 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 #2670: #2610's own "on that platform alone"
test gives a defect failing on two non-Linux platforms no lane.
- `introduced`, deferred to #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.py` markdownlint, cspell, editorconfig-checker: success.
- `spec/validate.py`: OK.

🤖 Generated with [Claude Code](https://claude.com/claude-code)


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

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

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 9, 2026 18:12
@coderabbitai

coderabbitai Bot commented Oct 9, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Repository: ptr727/ProjectTemplate/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: e56c4f04-839a-4dac-ab5f-7f04e1ca37a5

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

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.

🔵 Needs a closer look

The changes require final human review because they are too complex or risky for automated approval.

0 open findings

What changed in this PR

Promotes the platform handoff lane rule and synchronized generated skill copies to main.

Changes:

  • Defines platform-lane eligibility and mixed-issue handling.
  • Excludes platform-dependent issues from attended and unattended backlog selection.
  • Updates generated distributions and source digests.
File Description
.github/​skills/​unattended-handoff/​SKILL.md Updated as part of this pull request.
.github/​skills/​session-handoff/​SKILL.md Updated as part of this pull request.
.github/​skills/​backlog-burndown/​SKILL.md Updated as part of this pull request.
.claude-plugin/​fleet-skills/​skills/​unattended-handoff/​SKILL.md Updated as part of this pull request.
.claude-plugin/​fleet-skills/​skills/​session-handoff/​SKILL.md Updated as part of this pull request.
.claude-plugin/​fleet-skills/​skills/​backlog-burndown/​SKILL.md Updated as part of this pull request.
.claude-plugin/​fleet-skills/​.source-digests/​unattended-handoff Updated as part of this pull request.
.claude-plugin/​fleet-skills/​.source-digests/​session-handoff Updated as part of this pull request.
.claude-plugin/​fleet-skills/​.source-digests/​backlog-burndown Updated as part of this pull request.
.agents/​skills/​unattended-handoff/​SKILL.md Updated as part of this pull request.
.agents/​skills/​session-handoff/​SKILL.md Updated as part of this pull request.
.agents/​skills/​backlog-burndown/​SKILL.md Updated as part of this pull request.

🧠 Review effort: Lite


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@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 (5d68293).
⚠️ Report is 353 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2671   +/-   ##
=======================================
  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.

@ptr727

ptr727 commented Oct 9, 2026

Copy link
Copy Markdown
Owner Author

Answer to the Copilot round on 5d68293, whose verdict Needs a closer look counts no finding (0 findings, 0 threads, its file table naming all 12 changed files). Its headline, "The changes require final human review because they are too complex or risky for automated approval", names a caution rather than a defect. No change needed: the promotion carries one change, #2668, prose in three skills plus their generated copies, whose own review loop resolved every thread and answered every finding its body lists. Deferred work is in #2670 and the open question is decision #2669, neither of which blocks this merge.

@ptr727
ptr727 merged commit 4411755 into main Oct 9, 2026
14 checks passed
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.

State When an Issue Belongs in a Platform Handoff Lane

2 participants