Skip to content

[Fan-out] dev-lead self-host pin (trigger stub + reusable-only + agent_ref) #535

Closed

Description

@don-petry

Parent: #497 · Work type: Infra · Fan-out (B).

Apply the proven pr-review self-host pattern to dev-lead: split dev-lead.yml (currently inline, directly event-triggered) into a thin trigger stub + reusable invoked at @dev-lead/stable, threading an agent_ref so dev-lead's own scripts run at the pinned version too. Breaks dev-lead's self-hosting circular dependency for ring 0.

Acceptance: .github-private's dev-lead runs @dev-lead/stable; promotion = moving the dev-lead/stable tag; validated on a real dev-lead pickup. Cut dev-lead/v1.1.0+ as needed via cut-release.sh.

See #497 (pr-review reference implementation: PRs #513/#519/#523).

Activity

  1. don-petry commented on Jun 10, 2026

    @don-petry
    CollaboratorAuthor

    Drift analysis (gating the inline→stub conversion)

    Increment 1 DONE: agent_ref input added to dev-lead-reusable.yml (PR #537); dev-lead/v1.1.0 cut, dev-lead/stable → v1.1.0.

    Inline (dev-lead.yml, 352L) vs reusable (dev-lead-reusable.yml, 387L) have diverged:

    • Same 2 jobs (dispatch, ci-relay).
    • Inline calls scripts/dev-lead-ci-relay.sh; the reusable inlines ci-relay (no script call).
    • Inline runs scripts in-place; the reusable uses a cross-repo .dev-lead/ sub-checkout model.

    ⚠️ So converting inline → stub-calling-the-reusable is not a safe drop-in — it would change ci-relay behavior and script paths for .github-private's own dev-lead. dev-lead is the most central agent (a bad conversion halts all issue implementation).

    Recommendation: before the conversion, reconcile the reusable to be a verified superset of the inline (port/align ci-relay; confirm the .dev-lead/ model is equivalent), then convert + validate on a real dev-lead pickup. This is a deliberate task, not a quick flip. Acute crisis (stuck approvals) is already resolved via pr-review, so this can be done carefully.

    Note: dev-lead/stable is now a real pinned release (v1.1.0), so #536 consumer pinning of @dev-lead/stable is technically unblocked for the pr-review path; keeping #536 blocked-by #535 enforces ring-0-first discipline for dev-lead.

  2. don-petry commented on Jun 10, 2026

    @don-petry
    CollaboratorAuthor

    #535 acceptance met ✅ (ring-0 self-host pin)

    .github-private's dev-lead now runs @dev-lead/stable with agent_ref — the ring-0 self-host circular dependency is broken.

    Done:

    Validated on a real pickup (run 27307027856, post-merge pull_request event):

    Uses: …/dev-lead-reusable.yml@refs/tags/dev-lead/stable (d827464)
    agent_ref: dev-lead/stable → ref: dev-lead/stable
    INTENT_TYPE: review-changes → completed/success
    

    Follow-up (separate issue, parallels #536): consumer fan-out — markets/ContentTwin/google-app-scripts/bmad-bgreat-suite still call dev-lead-reusable.yml@main; convert them to @dev-lead/stable + agent_ref so the whole fleet runs the pinned channel. Promotion of dev-lead releases is then a central tag move.

    Ready to close (ring-0 scope complete).

    🤖 Generated with Claude Code

  3. don-petry commented on Oct 21, 2026

    @don-petry
    CollaboratorAuthor

    Closing after the 2026-10-21 backlog triage.

    Why: Acceptance met: .github-private dev-lead pinned to channel with agent_ref; parent #497 closed.
    Evidence: PR #554, #537

    Reopen if this still reproduces on main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    initiativeEpic / initiative tracking issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions