Repository navigation
[Phase 3] Cross-repo rollout: lift the all-reusables standard into petry-projects/.github and repin downstream consumers #690
Copy link
Copy link
Closed
Labels
dev-lead:hands-offExclude from dev-lead agent automationExclude from dev-lead agent automationinitiativeEpic / initiative tracking issueEpic / initiative tracking issueinitiative:holdInitiative driver must not release this issue (human hold)Initiative driver must not release this issue (human hold)
Description
Story
As a org maintainer,
I want promote the all-reusables tag-pinning standard into petry-projects/.github and repin downstream consuming repos that call first-party reusables by SHA/# main,
so that the standard and its compliance gate apply org-wide, not just inside .github-private.
Acceptance Criteria
- The generalized pinning standard (one convention for all first-party reusables) is reflected in
petry-projects/.github(orgAGENTS.md/standards/) so downstream repos defer to it, as foreseen by the AGENTS.md 'Promotion' note. - Downstream consumer repos that call first-party reusables (e.g. ci-failure-analyst template deployments) are repinned from SHA/# main to the channel tag.
- The compliance check (story id 3) is available to / referenced by downstream repos so off-channel pins are caught org-wide.
- A rollout/migration order is recorded that avoids breaking in-flight consumers (dogfood
.github-privatefirst, then rings).
Tasks / Subtasks
- Lift the standard into petry-projects/.github. (AC: test issue from agent #1)
- Generalize the org AGENTS.md / standards text from dev-lead/pr-review to all first-party reusables; cross-link this repo's versioning.md.
- Inventory and repin downstream consumers. (AC: Go-live improvements for PR review agent #2, Optimize review: small-PR and incremental fast paths #4)
- Enumerate repos deploying templates/ci-failure-analyst.yml and other first-party reusable callers; repin to channel tags ring-by-ring.
- Make the compliance gate reusable downstream. (AC: Add @claude delegation, auto-merge, and rebase handling #3)
Dev Notes
- HANDS-OFF / cross-repo: this work spans
petry-projects/.githuband downstream consumer repos, which dev-lead cannot modify from within.github-private. Treat as a human-coordinated rollout (mirrors the existing fan-out epics [Fan-out] dev-lead self-host pin (trigger stub + reusable-only + agent_ref) #535/[Fan-out] Convert consumers' pr-review to @pr-review/stable callers (ring-staged) #536 for dev-lead/pr-review pins). - Depends on the in-repo standard + compliance test being proven first (stories id 3 and id 5) — dogfood-first per the Safe Release Strategy (
docs/initiatives/agentic-release-strategy.md): ring-0 is.github-privateitself. - AGENTS.md already flags the promotion path: the repo-local pinning standard becomes org-wide by lifting it into
petry-projects/.githuband having repos defer to it. Reuse that mechanism rather than inventing a new one. - Migration order (discussion open question) must avoid breaking in-flight consumers: repin
.github-private(done in Phase 2), then downstream rings, verifying each before advancing.
Project Structure Notes
Primarily out-of-repo (petry-projects/.github + consumer repos). In-repo footprint is limited to documentation cross-links; the executable changes live in other repos.
References
- AGENTS.md (Promotion: lift repo-local standard into petry-projects/.github)
- docs/initiatives/agentic-release-strategy.md (dogfood-first, ring-0 = .github-private)
- templates/ci-failure-analyst.yml (deployed downstream)
- open epics [Fan-out] dev-lead self-host pin (trigger stub + reusable-only + agent_ref) #535/[Fan-out] Convert consumers' pr-review to @pr-review/stable callers (ring-staged) #536 (existing pr-review/dev-lead fan-out pattern to mirror)
Likely target surface
petry-projects/.github (org AGENTS.md / standards)downstream consumer repos: .github/workflows/ci-failure-analyst.yml
Story prepared by the BMAD Scrum Master (Bob) for epic #684. Status: ready-for-dev.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
dev-lead:hands-offExclude from dev-lead agent automationExclude from dev-lead agent automationinitiativeEpic / initiative tracking issueEpic / initiative tracking issueinitiative:holdInitiative driver must not release this issue (human hold)Initiative driver must not release this issue (human hold)
Activity
don-petry commentedon Sep 1, 2026
Closing — superseded by work that already landed
Re-validated 2026-09-01 against live state. Three of four ACs are satisfied by work that shipped through other issues; the fourth is moot.
AC1 — standard lifted into
petry-projects/.github. ✅ Done.standards/ci-standards.mddocuments the all-reusables convention across ~8 sections: the thin-stub pattern delegating viauses: …/<name>-reusable.yml@<name>/stable, the "Reusable workflow versioning — the stable channel" section, therelease-channel-tagstag-protection ruleset, and the rule that rollout happens by moving the channel tag, never by editing callers.AC3 — compliance gate available org-wide. ✅ Done.
check_centralized_workflow_stubsinscripts/compliance-audit.shenforces the expected pin per reusable, andreusable-pin-compliancenow fails bare-tier first-party pins (the #1493 enforcement flip).AC2 — downstream consumers repinned. ✅ Effectively done.
pinned-version-reportrun33409266607(2026-08-31) resolved 92 fleet pins: 90 compliant. The 2 flagged rows are both in.github-private:Both are pinned more conservatively than their ring expects — stable instead of next — which is the SC2 self-hosting property, not pin drift. That intentional exception is now documented and test-guarded by #1624.
AC4 — rollout order recorded. Moot. The ring-by-ring rollout happened (dogfood → ring0 → ring1 → stable, as the registry records), and
pinned-version-reportis the durable surface showing where every consumer sits.Nothing actionable remains. Closing; epic #684 closes with it.