Skip to content

[refactoring] Skill extraction: Copilot high-privilege sandbox/engine bundle (shared/copilot-sandbox-standard.md) #50757

Description

@github-actions

Skill: Copilot high-privilege sandbox/engine bundle

Description: A recurring Copilot-engine configuration block combining engine.id: copilot + engine.copilot-sdk: true + max-tool-denials: 3 + sandbox.agent.sudo: false + tools.cli-proxy: true appears near-verbatim across dozens of workflows. It represents the "standard hardened Copilot agent" configuration used by most non-trivial autonomous workflows in this repo.

Current usage (measured via exact substring match against .github/workflows/*.md):

  • engine:\n id: copilot\n copilot-sdk: true\nmax-tool-denials: 3\n — 48 files (e.g. agent-performance-analyzer.md, architecture-guardian.md, artifacts-summary.md, breaking-change-checker.md)
  • sandbox:\n agent:\n sudo: false\n — 195 files
  • tools.cli-proxy: true — 206 files

These three fragments co-occur in 63 files exactly, and overlap broadly across ~200 workflows total, making this the single largest unextracted duplication pattern in the repo.

Proposed shared component: .github/workflows/shared/copilot-sandbox-standard.md

Content sketch:

---
engine:
  id: copilot
  copilot-sdk: true
max-tool-denials: 3
sandbox:
  agent:
    sudo: false
tools:
  cli-proxy: true
---

Estimated impact: 48–200+ workflows affected depending on adoption scope; ~4–6 lines saved per workflow (200-1000+ lines repo-wide); centralizes future changes to the standard Copilot sandbox posture (e.g. if max-tool-denials default changes, or sandbox policy tightens) to one file instead of editing every workflow.

Migration plan:

  1. Create shared/copilot-sandbox-standard.md with the 5-line frontmatter bundle above.
  2. Identify workflows using the exact combination (48 files) as first-wave adopters; verify no workflow overrides individual sub-fields differently.
  3. Replace inline blocks with imports: [shared/copilot-sandbox-standard.md] and run gh aw compile + make recompile to confirm identical generated .lock.yml output (no behavior drift).
  4. For workflows that diverge slightly (e.g. different max-tool-denials value, extra sandbox keys), leave as-is or extend with an override merge — do not force conformance.
  5. Land in small batches (10–15 workflows per PR) to keep diffs reviewable.

Example usage:

---
name: My Workflow
imports:
  - shared/copilot-sandbox-standard.md
  - shared/otlp.md
tools:
  github:
    mode: gh-proxy
---

Generated by 🔍 Workflow Skill Extractor · auto · 90.2 AIC · ⌖ 2.7 AIC · ⊞ 7K ·

  • expires on Aug 7, 2026, 8:48 PM UTC-08:00

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions