Record PhotoCleaner as the Merge-Bot Pilot and Reorder the Stage Pilots - #752
Conversation
PhotoCleaner adopted the merge-bot caller stub on its develop branch in ptr727/PhotoCleaner#53, chosen over an operational repo because it is a release-model repo with Dependabot, C#, executable and Docker targets and a fresh resync, so what the pilot shows is the mechanism. The tracker records the state and the two proofs the pilot owes, ticks the repo on promotion to its ground-truth branch, and moves PhotoCleaner to the front of the later stages' pilot lists. The reuse report is regenerated at this hub state.
There was a problem hiding this comment.
Pull request overview
Updates the staged rollout tracker for hub-hosted reusable workflows to record PhotoCleaner as the Merge-Bot adoption pilot and to reorder pilot repositories across later stages, keeping the hub’s tracking docs and generated reuse report aligned with the current migration status.
Changes:
- Reorders stage pilots to put PhotoCleaner first (Stage 1, and also reflected in Stages 2 and 4).
- Updates TODO tracking counts/notes to reflect the new pilot and current adoption state.
- Regenerates the fleet workflow reuse report at the current hub revision.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| TODO.md | Updates rollout tracker notes (pilot repo and outstanding count) for merge-bot adoption. |
| reports/workflow-reuse.md | Regenerated reuse metrics and variant clustering at the current hub commit. |
| docs/reusable-workflows.md | Reorders Stage 1/2/4 pilots, adds PhotoCleaner pilot details and proof checkboxes. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (1)
docs/reusable-workflows.md:122
- The PhotoCleaner checklist item says its three proofs "are the proof items in stage 0 and below", but stage 0's proofs are the hub's Dependabot runs; PhotoCleaner's proofs are the two "Proof:" items immediately below in Stage 1. This wording is inconsistent with the surrounding tracker structure and could mislead a reader about where to tick evidence.
- [ ] PhotoCleaner (pilot, chosen as a release-model repo with Dependabot, C#, executable and Docker targets and a fresh resync, so what it shows is the mechanism): adopted on `develop` in ptr727/PhotoCleaner#53 at `a3158ce` on 2026-08-15, where `python3 spec/audit.py PhotoCleaner --branch develop` reports no `interface` finding on the file. Ticks when that repo promotes `develop` to `main`, its ground-truth branch, which is also when the report below counts it as a caller. The three live proofs it owes, cross-repository resolution of the pin, a Dependabot PR to `develop` merged with `--squash` through the callee, and Dependabot bumping the pin, are the proof items in stage 0 and below, ticked with their run URLs when they happen.
|
Answering the suppressed finding, "Suppressed comments (1)", from the round on |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (1)
TODO.md:535
- The wording here implies there are only 15 repos “carrying the file”, but
reports/workflow-reuse.mdstill reports 16 copies ofmerge-bot-pull-request.yml(with 1 of those being a caller). If this line is tracking remaining repos still carrying job bodies (not total copies of the file), please say that explicitly so it stays consistent with the report’s definitions.
- **Outstanding** - Every repo carrying the file, 15 after PhotoCleaner adopted in ptr727/PhotoCleaner#53 and promoted it in ptr727/PhotoCleaner#54 on 2026-08-15, then HomeAutomation-Config for the operational path and homeassistant-purpleair for the `rules` input.
|
Answering the suppressed finding, "Suppressed comments (1)", from the round on |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (1)
docs/reusable-workflows.md:108
- This line hard-codes the fleet workflow line-count as 10,964, but the regenerated
reports/workflow-reuse.mdin this PR reports 10,914 lines. To avoid this tracker text drifting every time the report is regenerated, refer to the report's fleet total instead of embedding a specific number here.
A stage carries three kinds of item, plus a proof item where a claim needs a live run. **Hub** is the hub pull request that ships the task and its stub, and the catalog snippet that follows the release. **Release** is the promotion and release that gives the task a pinnable `main` commit, since a downstream stub pins a released tag and nothing can adopt before one exists. **Adoption** is one checkbox per repo, ticked when that repo's ground-truth branch carries the stub and the audit reports no `interface` finding on the file. **Proof** is a checkbox for a behavior only a live run demonstrates, ticked with the run URL. Stage 0 is the merge-bot's hub and release items plus its two proofs, and stage 1 is its adoption, split so the adoption list is a stage of its own. The exit metric per stage comes from [reports/workflow-reuse.md][workflow-reuse-report]: every downstream copy of the stage's files becomes a caller, so the callers column equals the copies column, and downstream workflow lines fall from 10,964 toward the stubs plus the genuinely repo-specific hooks. Regenerate that report in the pull request that ticks a stage's last adoption, so the number and the tick land together.
|
Answering the suppressed finding, "Suppressed comments (1)", from the round on |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (1)
docs/reusable-workflows.md:120
- This prose uses an inline anchor link (
[Adopting the Merge-Bot](#adopting-the-merge-bot)). Repo convention requires reference-style links for all Markdown files except AGENTS.md, GOVERNANCE.md, OPERATIONS.md, and .github/copilot-instructions.md; inline links in prose outside a ToC violate that rule.
Adoptable since `2.0.338`. Each repo replaces the whole of its `.github/workflows/merge-bot-pull-request.yml` with the stub in [Adopting the Merge-Bot](#adopting-the-merge-bot), on its own feature branch, and the audit's `missing required job 'merge-bot'` finding on that file is the work list. The pilot goes first and records what the hub cannot prove, cross-repository resolution of the pin, the `rules` input where the repo has a tracker, and the first Dependabot bump of the pin, as proof items here.
|
Answering the suppressed finding, "Suppressed comments (1)", from the round on |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (1)
docs/reusable-workflows.md:259
- In the link-definition block, the
<!-- Repo -->reference definitions are not alphabetized by reference name (e.g.[todo]is after severalworkflow*entries). The repo's reference-style link rule asks that definitions within each group be alphabetized to keep lookups predictable.
[the-docker-family]: #the-docker-family
<!-- Repo -->
[governance-hub-hosted-tooling]: ../GOVERNANCE.md#hub-hosted-tooling
|
Answering the suppressed finding, "Suppressed comments (1)", from the round on |
…cleaner-merge-bot # Conflicts: # TODO.md # docs/reusable-workflows.md # reports/workflow-reuse.md
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (1)
docs/reusable-workflows.md:158
- This checklist item uses "0 copies carrying job bodies", but
reports/workflow-reuse.mddoes not distinguish job-bodies vs stub copies; it tracksCopiesandCallers. Given the rollout metrics above (every copy should become a caller), make the criterion checkable from the report by expressing it as callers == copies for these workflows.
- [ ] `reports/workflow-reuse.md` regenerated with `validate-task.yml` and `test-pull-request.yml` at 0 copies carrying job bodies.
|
Answering the suppressed finding, "Suppressed comments (1)", from the round on |
… Default (#768) Promote `develop` to `main`, carrying the remaining stages of the hub-hosted reusable-workflow rollout and the changes that landed beside them: - #759 Host Get-Version and Publish-Plan as Hub Reusable Tasks - #760 Host the Validate Task and Reshape the Test Pull Request Stub (settles #729 by design: the hub's validate task runs `uvx <tool>@latest`, since Dependabot tracks the action pins and not a uvx version) - #761 Host the Type-Specific Tasks and Retire the Date Badge - #762 Host the Release Chain and the Docker Core in the Hub - #748 and #752, the staged rollout tracker and the PhotoCleaner merge-bot pilot record - #758 Flip the Fleet Line-Ending Default from CRLF to LF - #753, #755, #756, #764, host-setup and test-collection changes The release that follows this promotion is the first tag carrying every hub task, so it is the pin the stage 2 to 5 adoptions and their catalog snippets use. It is also the first run of the hub's own `publish-release.yml` through `build-release-task.yml` with every target disabled, which is the live proof that `github-release` runs when its build needs are skipped. Closes #729. Refs #521 (hub half shipped, the merge-bot adoption sweep is what remains).
What
docs/reusable-workflows.mdRollout: stage 1 names PhotoCleaner as the pilot, adopted ondevelopin Adopt the Hub-Hosted Merge-Bot Caller Stub PhotoCleaner#53 ata3158ce(audit clean on that branch), ticking on promotion to its ground-truth branch per the tracker's own rule, with two proof items (the firstpull_request_targetrun resolving the pin and merging a Dependabot PR, and Dependabot bumping the pin). HomeAutomation-Config moves to the operational slot. Stages 2 and 4 put PhotoCleaner first as well.TODO.md: the cluster's pilot line and the sweep entry's outstanding count follow.reports/workflow-reuse.mdregenerated at this hub state (PhotoCleaner still counts as a copy there because its ground truth ismain).Why
The maintainer chose PhotoCleaner as the first repo to test with: release model, Dependabot, C#, executable and Docker targets, recently converged, so what it shows is the mechanism rather than the repo. The tracker is the record a cold session resumes from, so the choice and its state land in git.