Skip to content

[Cross-Squad] Make generated workflow runners and checkout security configurable #1502

Open

Description

@desharpe

Source squad: desharpe/HealthAgent
Request type: cross-repository task delegation
Routing: Booster (CI/CD), with CONTROL/RETRO review
Related: #1493, #1462

Problem

@bradygaster/squad-cli and @bradygaster/squad-sdk currently emit GitHub Actions workflows with hardcoded hosted runners and mutable action tags. CLI upgrade also duplicates non-NPM workflow stubs, so repository-local template hardening is not preserved for standalone/global installs. This blocks downstream repositories that require organization-specific self-hosted runner labels and secure checkout defaults.

HealthAgent confirmed that patching installed package files from postinstall is not an acceptable fix: it is repository-specific, misses standalone/global CLI usage, and can generate the wrong ecosystem workflow.

Requested generic fix

  • Add shared workflow-generation options supporting scalar or multi-label runs-on values without hardcoding a downstream repository's policy.
  • Make secure checkout defaults explicit: immutable action references and persist-credentials: false.
  • Consolidate CLI init/upgrade and non-NPM stubs on the shared generic renderer instead of duplicating workflow YAML generation.
  • Expose equivalent runner/security options through the public SDK CI generator.
  • Persist optional workflow-generation configuration in .squad/config.json so squad upgrade can reproduce the intended policy.
  • Validate configured runner/action values and reject control characters or mutable action references where custom refs are accepted.
  • Keep generated workflows ecosystem-aware for npm, .NET, Go, Python, Java, and unknown projects.

Acceptance criteria

  1. Fresh init and upgrade from a globally installed CLI honor configured scalar and multi-label runners.
  2. Public SDK generation produces the same runner and checkout-security behavior as the CLI.
  3. Upgrade no longer replaces a configured self-hosted policy with ubuntu-latest.
  4. Generated checkout steps use immutable pins and disable persisted credentials by default.
  5. Generic ecosystem tests cover init, upgrade, standalone/global package behavior, and SDK generation.
  6. CLI and SDK receive changesets and the fix is published on npm.

Downstream dependency: desharpe/HealthAgent#190. HealthAgent will remove its rejected local postinstall patch and upgrade to the published fixed packages before its runner-policy PR can merge.

Activity

  1. github-actions commented on Sep 10, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  2. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  3. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  4. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  5. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  6. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  7. github-actions commented on Sep 13, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: architect
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  8. added
    squad:agentic-workflows-devAssigned to agentic-workflows-dev (Agentic Workflows Engineer)
    and removed
    squad:architectAssigned to architect (Lead Architect)
    on Sep 24, 2026
  9. github-actions commented on Sep 24, 2026

    @github-actions
    Contributor

    📋 Assigned to agentic-workflows-dev (Agentic Workflows Engineer)

    Issue: #1502 — [Cross-Squad] Make generated workflow runners and checkout security configurable

    agentic-workflows-dev will pick this up in the next Copilot session.

    For Copilot coding agent: If enabled, this issue will be worked automatically.
    Otherwise, start a Copilot session and say:
    agentic-workflows-dev, work on issue #1502

  10. added
    wave:1-nextWave 1 — immediate next sprint
    wave1:P10Wave 1 PR group P10
    and removed
    wave:2-soonWave 2 — next 2-4 weeks
    on Nov 5, 2026
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 investigationpriority:p2Next sprintsquadSquad triage inbox — Lead will assign to a membersquad:agentic-workflows-devAssigned to agentic-workflows-dev (Agentic Workflows Engineer)triagedIssue has been triagedtype:rfcRFCwave1:P10Wave 1 PR group P10wave:1-nextWave 1 — immediate next sprintworkflows

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions