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:
- Create
shared/copilot-sandbox-standard.md with the 5-line frontmatter bundle above.
- Identify workflows using the exact combination (48 files) as first-wave adopters; verify no workflow overrides individual sub-fields differently.
- 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).
- 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.
- 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 · ◷
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: trueappears 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 filestools.cli-proxy: true— 206 filesThese 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.mdContent sketch:
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-denialsdefault changes, or sandbox policy tightens) to one file instead of editing every workflow.Migration plan:
shared/copilot-sandbox-standard.mdwith the 5-line frontmatter bundle above.imports: [shared/copilot-sandbox-standard.md]and rungh aw compile+make recompileto confirm identical generated.lock.ymloutput (no behavior drift).max-tool-denialsvalue, extra sandbox keys), leave as-is or extend with an override merge — do not force conformance.Example usage: