You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Raised by CodeRabbit and Qodo on ptr727/PlexCleaner#999, a resync carrying .github/skills/** byte-identical from hub main at 4566946. Each was verified against the hub's .agents/skills/ source at that commit. The fix belongs here, followed by a regeneration, so the downstream copy is left as carried. No open issue or PR covered these when this was filed.
A. Handoff commands shown without the required --repo
scripts/handoff.py makes --repo required with no default (around line 976). Several command forms in the skills leave it out:
.agents/skills/unattended-handoff/SKILL.md:153: handoff.py chain --track "auto-<issue>" --limit 1. Line 154 turns "any other refusal" into STOP, so a picker that runs this as written stops on the argparse refusal instead of answering the eligibility question.
.agents/skills/unattended-handoff/SKILL.md:180 (handoff.py new) and :189 (handoff.py resume). The worker step has no pointer to session-handoff "Running the Chain", which is the only place that says every subcommand takes --repo.
.agents/skills/session-handoff/SKILL.md:146 and .agents/skills/unattended-handoff/SKILL.md:190: gh issue view "<n>" --comments without --repo. A session running from the hub checkout it needs for handoff.py reads the hub's issue <n> instead of the target repository's.
Expected: every documented invocation carries --repo "<owner>/<repo>", or states once, where the command appears, that it does.
B. Handoff pickers rank a list truncated at 100
.agents/skills/unattended-handoff/SKILL.md:167 and .agents/skills/session-handoff/SKILL.md:172 read open handoffs with gh issue list --label handoff --state open --limit 100 and then pick oldest-first or newest-update. Past 100 open handoffs, a candidate outside the window is invisible, so the picker can choose the wrong lane or return NONE while eligible work remains. This is far off in practice. Expected: paginate, or detect a full page and refuse rather than rank a truncated list.
C. backlog-burndown gives no precedence for an issue labeled both handoff and blocked
.agents/skills/backlog-burndown/SKILL.md:112-119: the handoff rule excludes an issue from "every count", while the blocked rule counts it while its blocker stands. The fleet's own parking flow (unattended-handoff) puts blocked on a handoff issue, so both rules apply, and the backlog count can be off by one per parked lane. Expected: state which rule controls.
Declined on the PR, recorded for context
Qodo on GOVERNANCE.md "Workflow YAML Conventions": the claim that $/ is not a valid self-repository uses: form is false. The hub uses it at .github/workflows/build-release-task.yml:115.
CodeRabbit on check-this-repo flagging a detached checkout: working as designed, since a detached checkout cannot track main.
CodeRabbit on unattended-handoff retained state omitting <owner>/<repo>: a wording preference, since the value is fixed for the run and every brief consumes it.
CodeRabbit on check-jsonschema@latest in workflow-ci-contract: fleet policy. GOVERNANCE.md "Running the Linters Locally" floats lint tools deliberately. Reopening that is a policy call for the maintainer.
Raised by CodeRabbit and Qodo on ptr727/PlexCleaner#999, a resync carrying
.github/skills/**byte-identical from hubmainat4566946. Each was verified against the hub's.agents/skills/source at that commit. The fix belongs here, followed by a regeneration, so the downstream copy is left as carried. No open issue or PR covered these when this was filed.A. Handoff commands shown without the required
--reposcripts/handoff.pymakes--reporequired with no default (around line 976). Several command forms in the skills leave it out:.agents/skills/unattended-handoff/SKILL.md:153:handoff.py chain --track "auto-<issue>" --limit 1. Line 154 turns "any other refusal" intoSTOP, so a picker that runs this as written stops on the argparse refusal instead of answering the eligibility question..agents/skills/unattended-handoff/SKILL.md:180(handoff.py new) and:189(handoff.py resume). The worker step has no pointer to session-handoff "Running the Chain", which is the only place that says every subcommand takes--repo..agents/skills/session-handoff/SKILL.md:146and.agents/skills/unattended-handoff/SKILL.md:190:gh issue view "<n>" --commentswithout--repo. A session running from the hub checkout it needs forhandoff.pyreads the hub's issue<n>instead of the target repository's.Expected: every documented invocation carries
--repo "<owner>/<repo>", or states once, where the command appears, that it does.B. Handoff pickers rank a list truncated at 100
.agents/skills/unattended-handoff/SKILL.md:167and.agents/skills/session-handoff/SKILL.md:172read open handoffs withgh issue list --label handoff --state open --limit 100and then pick oldest-first or newest-update. Past 100 open handoffs, a candidate outside the window is invisible, so the picker can choose the wrong lane or returnNONEwhile eligible work remains. This is far off in practice. Expected: paginate, or detect a full page and refuse rather than rank a truncated list.C.
backlog-burndowngives no precedence for an issue labeled bothhandoffandblocked.agents/skills/backlog-burndown/SKILL.md:112-119: thehandoffrule excludes an issue from "every count", while theblockedrule counts it while its blocker stands. The fleet's own parking flow (unattended-handoff) putsblockedon ahandoffissue, so both rules apply, and the backlog count can be off by one per parked lane. Expected: state which rule controls.Declined on the PR, recorded for context
$/is not a valid self-repositoryuses:form is false. The hub uses it at.github/workflows/build-release-task.yml:115..github/copilot-instructions.mdcoverage carry-forward: the review itself must still cover the current head. Only the file-count coverage statement carries forward, and only while the changed-file set is identical (see A ccr-overview-v2 Round States No File Coverage, and the Exit-45 Remedy Cannot Clear It #1692).check-this-repoflagging a detached checkout: working as designed, since a detached checkout cannot trackmain.unattended-handoffretained state omitting<owner>/<repo>: a wording preference, since the value is fixed for the run and every brief consumes it.check-jsonschema@latestinworkflow-ci-contract: fleet policy. GOVERNANCE.md "Running the Linters Locally" floats lint tools deliberately. Reopening that is a policy call for the maintainer.