Skip to content

[Phase 5] Pilot on .github: enroll the driver stub, arm epic #505, confirm cross-repo auto-release #888

Description

@github-actions

Story

As a maintainer,
I want enroll the initiative-driver stub in petry-projects/.github, arm its epic #505 with initiative:auto, and confirm the central driver auto-releases the epic's ready DAG cross-repo with no manual dev-lead labels,
so that we validate the fleet release path end-to-end on a real epic before any broader rollout.

Acceptance Criteria

  1. petry-projects/.github has the initiative-driver stub enrolled (the Story 2 template copied to its .github/workflows/initiative-driver.yml) and GH_PAT_WORKFLOWS available there.
  2. The petry-projects/.github epic [Phase 1] Tag protection + document scoped mutable-ref exception to SHA-pin standard #505 is armed with initiative:auto; the central driver releases its first ready wave (and successors as they close) by labelling them dev-lead in .github — with no manual labelling.
  3. The cross-repo release is observed working: a driver run logs the target repo and dev-lead picks up in .github; the canary (Story 3) is green and Fleet Monitor (Story 4) shows the .github driver stub enrolled/aligned.
  4. Pilot findings (release latency vs the safety-net cron, PAT scoping, any MAX_IN_FLIGHT observations) are recorded back on the epic for the go/no-go on wider rollout.

Tasks / Subtasks

Dev Notes

  • This is a cross-repo + human-judgment activity, so hands_off:true: arming initiative:auto is a human decision by hard rule, and enrolling a stub in petry-projects/.github is a cross-repo change dev-lead cannot make from a .github-private issue.
  • IMPORTANT: '.github epic [Phase 1] Tag protection + document scoped mutable-ref exception to SHA-pin standard #505' is the epic in petry-projects/.github — NOT .github-private issue [Phase 1] Tag protection + document scoped mutable-ref exception to SHA-pin standard #505 (which is the closed 'Tag protection' story; issue numbers collide across repos). Do not treat them as the same issue.
  • The driver gate keys on native blocked_by relationships and the initiative:auto label on the epic; confirm both exist in .github before arming, or the sweep will no-op / release everything at once.
  • Depends on the stub (Story 2), and on the canary + Fleet Monitor (Stories 3, 4) so any regression surfaces DURING the pilot, and on the docs (Story 5) so the operator follows a documented enrollment runbook.

Project Structure Notes

Cross-repo + operational: enrollment and arming happen in petry-projects/.github. No .github-private code change in this story.

References

  • docs/initiatives/agentic-release-strategy-orchestration.md#operating-the-driver-runbook
  • .github/workflows/initiative-driver.yml
  • scripts/initiative-driver.sh#drive_epic (gate / cap / blocked_by logic)

Likely target surface

  • petry-projects/.github: .github/workflows/initiative-driver.yml
  • petry-projects/.github: epic #505

Story prepared by the BMAD Scrum Master (Bob) for epic #882. Status: ready-for-dev.

Metadata

Metadata

Assignees

No one assigned

    Labels

    dev-lead:hands-offinitiativeEpic / initiative tracking issueinitiative:holdInitiative driver must not release this issue (human hold)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions