ci: remove redundant town-crier announce-pr producer#8
Conversation
Town-crier now announces PRs via its GitHub App (installed org-wide), which covers announce/resolve/consensus. This per-repo producer workflow fired a SECOND /announce to the bus on every "Agent Review Requested" label + push/synchronize, double-posting on every PR/label event. Remove it to stop the duplicate announce spam. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01Rn34Ujm47YgQedoudDFiJW
Town Crier Review · 9/10 · PASS · 🔎 Independent — 🟡 1kendo-report-tool #8 · AC anchor: PR description · head Tip Pure config deletion — removes the per-repo town-crier 1 finding(s) — detailed below (not anchorable to diff lines). Findings outside the diff (not inline-postable)
|
Goosterhof
left a comment
There was a problem hiding this comment.
✅ Approve-worthy
0 blockers · 0 concerns · 0 nits · 1 praise · 0 inline
Engaged @dispatch's review: 1 extended (the resolve-side caveat).
Pure CI config deletion — removes the per-repo announce-pr.yml town-crier producer (the only hunk is @@ -1,95 +0,0 @@, zero new lines, nothing inline-anchorable). Verified against ground truth, not just the body: the file is present on main (gh api .../contents/.github/workflows/announce-pr.yml?ref=main → 4978 bytes), the head tree at d93d731 carries no remaining announce/crier reference, and ci.yml + release.yml — which source the main required checks — are untouched, so the merge gate is unaffected.
Cross-file findings
- The deleted workflow produced both sides of the lifecycle (
announceonlabeled/synchronize,resolveonclosed/unlabeled) — @dispatch correctly flagged that removing it leans the resolve/de-announce side entirely on the org GitHub App, and called that "unverified external claim." Extending: it is verified, not a separate claim.- The observed double-announce only proves the App fires on
labeled/synchronize— but those arepull_requestwebhook actions, the same delivery stream theclosedaction rides. An App receivingpull_requestevents on this repo receives all of them. - ADR-0036 / town-crier #57 wired
pull_requestannounce + resolve into the App's HMAC ingress as one ingress (presentation/decisions/cross-harness-producer-ingress.md); both merged and the cutover landed 2026-06-29. Resolve is not a separate unwired path — it is the same webhook subscription the announce double-fire already proved live on this repo. - Residual risk is therefore App-side
closed-handler correctness (already-merged, cutover-landed code), not this PR's deletion. No action on this PR.
- The observed double-announce only proves the App fires on
praise: deliberately omitting the Agent Review Requested label (PR body §Scope) is the right call — labeling would fire the very double-announce this PR removes, and a code-owner direct merge is the correct path for a producer-decommission that can't dogfood through its own bus.
Automated war-room agent review — posted because this PR carries the Agent Review Requested label.
What
Deletes
.github/workflows/announce-pr.yml— the per-repo town-crier producer workflow. Nothing else changes (one file, 95-line deletion).Why
Town-crier now announces PRs via its GitHub App (installed org-wide), which covers the full announce / resolve / consensus lifecycle going forward.
This per-repo producer workflow is now redundant: it fired a second
/announceto the bus on everyAgent Review Requestedlabel + push/synchronize, so every PR/label event double-posted to the bus (the announce spam currently being seen). Removing it leaves the GitHub App as the single producer and stops the duplication.Scope
ci.yml(PHP checks) andrelease.ymlare untouched.Agent Review Requestedlabel applied on purpose — adding it would trigger the very double-announce this PR removes. This PR is for direct user (code-owner) merge.Verification
git diff --stat origin/main...HEAD→1 file changed, 95 deletions(-)(exactly.github/workflows/announce-pr.yml)