fix(external-plugins): address review feedback

Revoke synthetic first-party fast-tracks when ownership changes while preserving human decisions, manual buckets, and queued re-reviews. Apply normal review guidance when explicitly opted out of fast-track, and document that first-party routing does not bypass validation or maintainer approval.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 821f4796-505e-4fb8-96cf-0b5bbf80a636
This commit is contained in:
Aaron Powell
2026-10-13 11:37:54 +11:00
co-authored by Copilot App
parent b653c23244
commit f4088ee185
4 changed files with 58 additions and 5 deletions
@@ -43,6 +43,14 @@ function applyFirstPartyFastTrack(item) {
return true;
}
function clearFirstPartyFastTrack(item) {
if (item.labels?.includes(FIRST_PARTY_LABEL) || !item.review?.fastTracked || item.reviewStatus === "queued") {
return;
}
item.review = null;
if (!item.decision && !item.manualColumn) item.reviewStatus = "unreviewed";
}
function newQueueId() {
return randomBytes(6).toString("base64url");
}
@@ -151,7 +159,9 @@ export class BoardStore {
};
added.push(issue.number);
}
if (applyFirstPartyFastTrack(this.state.items[key])) fastTracked.push(issue.number);
const item = this.state.items[key];
if (applyFirstPartyFastTrack(item)) fastTracked.push(issue.number);
else clearFirstPartyFastTrack(item);
}
for (const key of Object.keys(this.state.items)) {
if (!incoming.has(key)) {
@@ -75,8 +75,10 @@ and read the `/approve` / `/reject` comments on the most recent ones.
Intake labels submissions by who owns the plugin repository:
- `first party` — owned by a Microsoft/GitHub organization (Microsoft, GitHub, Azure, dotnet, MicrosoftDocs,
microsoftgraph). The board fast-tracks these straight to `accept` without an AI review. If one is sent for
review anyway, recommend `accept` unless there is a hard failure (broken/missing plugin contents,
security concern, or something that would have failed intake validation).
microsoftgraph). The board fast-tracks these straight to `accept` without an AI review. If a maintainer
explicitly moves one to `Unreviewed`, that opts it out of the fast-track: review it using the same procedure,
maintainer decision pattern, and recommendation buckets as any other submission. Assess its repo fit,
usefulness, duplication, and content quality on their merits; first-party ownership is not a reason to
recommend `accept`.
- `third party` — owned by another organization. This is a signal only; apply the normal decision pattern.
- No ownership label — owned by a user account (or ownership couldn't be determined).