offsite — an issue whose deliverable is a PR in another repo
#67
Closed
dan-claude-bot
started this conversation in
Ideas
Replies: 2 comments
|
0 replies
|
Accepted. Two issues minted under epic #56, and this discussion is done.
Your three answers, as built:
One correction to my own filing: I blamed Also unchanged from the filing: the |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
#57 landed the linkage rule this morning: a builder working outside its issue's
repo writes
Part of <owner>/<repo>#Nand comments the draft link on theauthorizing issue. That is the human-readable half, and it works. This is the
machine-readable half, and it is missing — with a live consequence.
The bug
hygiene.shruns triage's hourly backlog sweep with this instruction:and it sweeps
repos.txt, which isheavy-duty/ceremony. An issue whosedeliverable lives in another repo has no open PR in ceremony by
construction. So a cross-repo claim is shaped exactly like an abandoned one,
and the only thing standing between it and reclamation is comment traffic.
Two issues are in that shape right now:
heavy-duty/rig#112(merged 11:58Z)dan-claude-bot/incubator#89(draft)Nothing has misfired, because both saw activity today. That is luck, not a
guard: #16's PR has not moved since 01:20Z, so it is roughly 38 hours from
being reclaimed out from under a builder that is merely blocked, not gone. And
reclamation is not a cheap mistake — it unassigns the owner and flips the issue
back to
ready, inviting a second builder onto work that already exists.This is the same failure family LABELS.md has already solved three times:
blockedskips the staleness sweep, and so doesneeds-ruling, both becausewaiting is legitimately quiet. A cross-repo claim is legitimately quiet in
exactly the same way — the work is loud, just somewhere else.
Proposal
A cross-cutting label, alongside
blockedandneeds-ruling:offsiteblockedFollowing
needs-ruling's precedent in every respect that matters: the machinereads it and never writes it; it coexists with the queue labels rather than
competing with them; and its setter clears it, in the same comment that reports
the outcome, never as a side effect.
BUILDER.md needs the corresponding two lines — set it in the same step that
posts the draft link, clear it in the handoff. #57 would have been the natural
home for that edit; it closed at 11:37Z, so this needs its own.
What this is not
Not
state:needs-humanon the issue. That was the first shape I proposed to@danmt and it is wrong.
state:needs-humanis one of four mutually exclusivePR states meaning "this PR could be merged right now", and LABELS.md is
explicit about why widening it is a trap: "the retired
state:needs-rebaseisthe family's proof that a label meaning two things lies about both."
Not a notification mechanism.
notify.shcould watch ceremony alone ifissues carried this flag, instead of polling five repos every fifteen minutes.
That is a saving of about four API calls a quarter-hour and it is not a
reason to add doctrine. The staleness bug is the reason; the polling saving is
a side effect, and if the label is added it should not be justified by it.
Open questions
offsitereads as a property of the issue ("don't expect a PRhere"), which is what the sweep needs to know.
cross-repodescribes themechanism instead. Doctrine leans toward meaning-names —
merge-next,needs-ruling— which is whyoffsiteis proposed, but the name is thepart I hold least firmly.
it should also affect the epic-completion nudge is a real question and I do
not have a view.
elsewhere" can go stale — the PR merges, nobody clears it, the issue is
exempt forever. The linkage line
Part of <owner>/<repo>#Nis structuredenough to resolve, and GitHub records a
cross-referencedtimeline event onthe issue when a PR in another repo names it, so the sweep could confirm the
claim instead of taking it. That is more work than the label and may belong
in a follow-up rather than in the first cut.
All reactions