Skip to content

[finding] tracking is a prerequisite of every half-state patrol install and ensure-pm-labels.sh seeds it to no repo — the adopt recipe asks for a label the fleet's own seeder never creates #15001

Description

@os-steve

Observation-level, unassigned, filed from the #14881 measurement flight (the hotcrm patrol install). ⛔ Not the subject of that card — recorded here so it is not lost, and left for central triage to route and grade.

The gap

.github/workflows/half-state-patrol.yml's adopt recipe tells a sibling repo to "open one tracking-labeled anchor issue there". The label is load-bearing twice over: it is what the anchor is found by, and it is a member of H13_EXEMPT_LABELS in scripts/pm/check-half-states.mjs, so it is what stops the anchor appearing as a finding in the sweep it hosts.

scripts/pm/ensure-pm-labels.sh — the fleet's label seeder, whose five-repo loop covers objectstack, objectui, cloud, objectos and hotcrm — never creates it:

$ grep -n "tracking" scripts/pm/ensure-pm-labels.sh
(no match)

The loop seeds eleven labels (pm:queue, pm:dispatched, needs-user-decision, pm:on-hold, pm:blocked, pm:awaiting-maintainer, priority:p0, pm:blocking, pm:retriage, pm:epic, finding). tracking is in none of them, in the loop or out of it.

Why this is the same shape as the closed #10098

That card was "pm:seat and priority:p0 are state-model rows with no entry in the four-repo vocabulary loop", and its fix put priority:p0 in the loop with a comment stating the rule the seeder works by: a label is in the five-repo loop when the repo-parameterized sweep reads it in all five. tracking meets that test exactly — the sweeper reads it as an H13 exemption in whatever repo it is installed in — and was simply never enumerated.

Why it bites harder in a governed-label repo

In this repo the anchor already exists and carries the label, so nothing is visibly broken here. It is the adopter who pays. Measured on the hotcrm clone at 18444c8, .github/labels.yml opens with:

Governance (no ad-hoc labels): Every label this repo uses is declared here with a color and description. Add or change a label by PR-ing this file

and declares no tracking. So the recipe's one-line step 2 is really "raise a PR against another repo's label manifest, land it, wait for label-sync to apply it, then open the anchor" — an ordering constraint the recipe does not mention and that a seat following it will discover at the point of applying a label that does not exist.

What would close it

Either seed tracking in the five-repo loop with the other eleven (the #10098 remedy, and the one that matches the seeder's own stated rule), or state the label prerequisite explicitly in the workflow's adopt recipe so the adopter knows to create it first. ⛔ No opinion offered on which; both are one edit, and the choice is the seeder's owner's.

Not fixed in #14881's PR: the file is scripts/pm/ensure-pm-labels.sh, outside that card's declared surface.

Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions