Skip to content

chore(ci): High Actions usage from Squad Heartbeat (Ralph) – recommendation to remove scheduled trigger (or make config option on squad init) #815

Closed

Description

@melodiouscode

Problem

The GitHub Actions usage for this repository is extremely high, with the Squad Heartbeat (Ralph) workflow accounting for a large number of workflow runs.

Root cause

  • The Squad Heartbeat (Ralph) workflow is currently set to run on a schedule: every 30 minutes (cron: '*/30 * * * *').
  • In combination with its event-based triggers (issue closed/labeled, PR closed), this causes frequent workflow runs regardless of whether there is actual triage needed.
  • Given the frequency (48 times/day, every day), this results in significant Actions minute consumption, even though each run is relatively lightweight.

Impact

  • Rapid consumption of GitHub Actions minutes.
  • Possible throttling or high billing for Actions usage.
  • Many runs do not actually "triage" anything because they are on a timer, not in response to real repo events.

Recommendation

Remove the scheduled trigger and switch to an event-driven approach. Or; make two options that can be configured on squad init to use either the current functionality or the proposed lighter version.

Specific change

Replace this block in .github/workflows/squad-heartbeat.yml:

on:
  schedule:
    - cron: '*/30 * * * *'

  issues:
    types: [closed, labeled]
  pull_request:
    types: [closed]
  workflow_dispatch:

With this:

on:
  issues:
    types: [opened, labeled, closed]
  pull_request:
    types: [closed]
  workflow_dispatch:
  • This keeps the workflow fully reactive to meaningful project board changes, but eliminates the constant polling.
  • It is strongly recommended to update all synced copies:
    • templates/workflows/squad-heartbeat.yml
    • packages/squad-cli/templates/workflows/squad-heartbeat.yml
    • .squad/templates/workflows/squad-heartbeat.yml
    • .github/workflows/squad-heartbeat.yml

Expected Result

  • Drastically fewer workflow runs for Squad Heartbeat (Ralph).
  • No loss of actual automation for issue triage, Copilot assignment, or board management.
  • Significant reduction in Actions billing/minute usage.
    • Espcially impactful for users who are on personal plans.

Activity

  1. changed the title [-]High Actions usage from Squad Heartbeat (Ralph) – recommendation to remove scheduled trigger (or make config option on squad init)[/-] [+]chore(ci): High Actions usage from Squad Heartbeat (Ralph) – recommendation to remove scheduled trigger (or make config option on squad init)[/+] on Apr 5, 2026
  2. added a commit that references this issue on Apr 7, 2026
    a34389d
  3. added
    type:choreMaintenance, refactoring, cleanup
    squadSquad triage inbox — Lead will assign to a member
    on Apr 8, 2026
  4. github-actions commented on Apr 8, 2026

    @github-actions
    Contributor

    🏗️ Squad Triage — Flight (Lead)

    Issue: #815 — chore(ci): High Actions usage from Squad Heartbeat (Ralph) – recommendation to remove scheduled trigger (or make config option on squad init)
    Assigned to: Flight (Lead)
    Reason: No specific domain match — assigned to Lead for further analysis

    @copilot evaluation: No strong capability match — routed to squad member.

    Team roster:

    • Flight (Lead) → label: squad:flight
    • Procedures (Prompt Engineer) → label: squad:procedures
    • EECOM (Core Dev) → label: squad:eecom
    • FIDO (Quality Owner) → label: squad:fido
    • PAO (DevRel) → label: squad:pao
    • CAPCOM (SDK Expert) → label: squad:capcom
    • CONTROL (TypeScript Engineer) → label: squad:control
    • Surgeon (Release Manager) → label: squad:surgeon
    • Booster (CI/CD Engineer) → label: squad:booster
    • GNC (Node.js Runtime) → label: squad:gnc
    • Network (Distribution) → label: squad:network
    • RETRO (Security) → label: squad:retro
    • INCO (CLI UX & Visual Design) → label: squad:inco
    • GUIDO (VS Code Extension) → label: squad:guido
    • Telemetry (Aspire & Observability) → label: squad:telemetry
    • VOX (REPL & Interactive Shell) → label: squad:vox
    • DSKY (TUI Engineer) → label: squad:dsky
    • Sims (E2E Test Engineer) → label: squad:sims
    • Handbook (SDK Usability) → label: squad:handbook
    • Ralph (Work Monitor) → label: squad:ralph
    • @copilot (Coding Agent) → label: squad:copilot

    To reassign, remove the current squad:* label and add the correct one.

  5. added a commit that references this issue on Apr 13, 2026
    85ee3f7
  6. bradygaster commented on Apr 18, 2026

    @bradygaster
    Collaborator

    We've mentioned this in a few other issues, and we've since removed the cron items from the workflows. Apologies for this. We've also added the --no-workflows switch for folks who don't use Ralph's actions/workflows.

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

    go:needs-researchNeeds investigationsquadSquad triage inbox — Lead will assign to a membertype:choreMaintenance, refactoring, cleanup

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions