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
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 onetracking-labeled anchor issue there". The label is load-bearing twice over: it is what the anchor is found by, and it is a member ofH13_EXEMPT_LABELSinscripts/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: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).trackingis 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:seatandpriority:p0are state-model rows with no entry in the four-repo vocabulary loop", and its fix putpriority:p0in 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.trackingmeets 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.ymlopens with: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 forlabel-syncto 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
trackingin 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