Close the downstream pointer issue too, not just the conformance ticket #36
Labels
No labels
brandkit-conformance
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Grey.ooo/symfony-brand-kit#36
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
tools/conformanceconverges its own ticket per app and nothing else. Where someone has also filed a pointer issue in the app's own repo — so the work is visible on the tracker of the repo that has to act — that pointer has no lifecycle. It is opened by hand and it stays open, including after the conformance ticket it points at has closed itself.What happened
That stale pointer then cost a full session in the consuming repo: it reads as live work, it is picked up as live work, and the investigation to establish that it is not runs the whole audit again by hand —
composer update(nothing to do), the live roster on the deployed site, the template against the current component API. The pointer even carried the ticket's own already-superseded framing ("this is a version pin"), which #12's body had by then corrected to "this is a deployment that has not gone out, not a version pin" — so the copy was wrong as well as stale, and the wrong half is the half that sends someone to the wrong repo.The pointer is not the mistake. Routing the fix to the repo that owns it is exactly right, and
TARGETS[key].repoexists to say where that is. The mistake is that a hand-filed copy cannot follow the thing it copies.Proposal
Extend
reconcile()inreport.mjsto treat the downstream pointer as a second surface of the same ticket, reconciled by the same rules that already govern the local one.TARGETS[key].repoalready names the repo, so no new configuration is needed.Two ways to close the loop, and I'd argue for the second:
<!-- brandkit-conformance:<key> -->in its body gets found and closed alongside the local ticket. Cheap, but it only works when whoever files the pointer remembers the marker — the failure mode is silent and looks exactly like today.Either way the pointer body should be a link plus the routing verdict, not a copy of the findings — a copied body is a second thing to keep in step, which is the defect above in a new place.
Things worth getting right
FORGEJO_TOKENis scoped to this repo. Cross-repo issue writes need something broader;roster.ymlalready reads the estate withGREYOOO_PAT, so there is precedent. Absent the wider token, downstream reconciliation should degrade to a logged no-op — the same wayattach()already tolerates a token that cannot write labels — rather than failing the run.videoandgitboth map toGrey.ooo/Infrastructure. Pointers must therefore be keyed per app key, not per repo, or the two collide and reconcile each other.Acceptance
An app that comes good has both its conformance ticket and its downstream pointer closed by the same nightly run, with the pointer's closing comment linking to the ticket that verified it.