Analysis Date: 2026-08-03
Repository: github/gh-aw
Scope: 269 total workflows, 98 using engine: {id: copilot, ...} block form (33 using shorthand engine: copilot)
📊 Executive Summary
Research Topic: Copilot CLI Optimization Opportunities
Key Findings:
--share flag is used in exactly 1 workflow (this research workflow) despite being available for conversation sharing/tracking.
- 5 custom agent files (
create-safe-output-type, custom-engine-implementation, grumpy-reviewer, interactive-agent-designer, w3c-specification-writer) are defined under .github/agents/ but referenced by zero workflows — unchanged since the prior research run.
--autopilot/max-continuations is used in only 11 of 98 copilot-block workflows, leaving most workflows to rely on a single non-continuing run even where multi-step tasks are common.
copilot-sdk: true adoption is strong (68 workflows) and growing, suggesting a broad shift toward SDK mode — worth confirming CLI-only mode is still intentionally used elsewhere.
- Network/firewall configuration (
network:) appears in only 42/98 copilot workflows; only 1 workflow references firewall: explicitly, meaning most rely on defaults rather than explicit allowlists.
Primary Recommendation: Clean up orphaned agent files (delete or wire them into workflows) and evaluate --share adoption for workflows with complex/long-running interactions where conversation replay would aid debugging.
This is a repeat analysis (previous run: 30732964595, 2026-08-02). The orphaned-agent-file finding is a recurring, unresolved item across two consecutive research runs — it's a low-effort cleanup that keeps being deferred.
Critical Findings
🔴 High Priority Issues
- 5 unreferenced custom agent files sitting in
.github/agents/ for at least 2 research cycles with no workflow using them via engine.agent. These represent either dead code or missed integration opportunities.
- Low
network:/firewall explicit configuration (42/98, ~43%) — many copilot workflows run with default network settings rather than reviewed allowlists, which is a security posture gap worth auditing individually.
🟡 Medium Priority Opportunities
--autopilot/max-continuations underused (11/98) — workflows doing multi-step repo analysis or iterative fixes could benefit from continuation support instead of single-shot runs.
--share flag essentially unused (1/269) — no visibility into whether teams want conversation-sharing for debugging failed runs.
- Most
bare: true usage (14 workflows) suppresses custom instructions; confirm this is intentional per-workflow rather than copy-paste.
View Full Analysis
1️⃣ Current State Analysis
View Copilot CLI Capabilities Inventory
Copilot CLI Capabilities Inventory (from pkg/workflow/copilot_engine*.go)
- CLI flags emitted by gh-aw:
--disable-builtin-mcps (always), --no-ask-user (autonomous runs, v1.0.19+), --agent <name> (via engine.agent), --autopilot --max-autopilot-continues N (via max-continuations), --add-dir (multiple, for /tmp, cache dirs), --allow-all-paths (when edit tool enabled), --no-custom-instructions (bare mode), --headless --no-auto-update --port (SDK mode), --log-level all --log-dir.
- Engine config options:
id: copilot, version, model, agent, bare, copilot-sdk, driver (custom SDK driver — JS/Python/Go/Ruby, inline or file), args (raw passthrough), env, max-tool-denials (SDK-only), harness sub-keys mapped to GH_AW_HARNESS_* env vars.
- MCP support:
RenderMCPConfig builds JSON MCP config (copilot_mcp.go); GitHub MCP toolsets used by 64/98, github: tool block by 72/98.
- Sandbox: AWF (Agentic Workflow Firewall) integration for
max-turns; firewall enablement toggles HOME path handling for ARC/DinD topology.
- Not found in code:
--share is not referenced anywhere in copilot_engine_execution.go — it appears only in this research prompt's example text, meaning it may not be an actual supported CLI flag in the installed Copilot CLI version, or it's unmapped to any engine.* config. This should be verified against the actual copilot binary help output before recommending it further.
View Usage Statistics
Usage Statistics
- Total Workflows: 269
- Copilot (shorthand
engine: copilot): 33
- Copilot (block
id: copilot): 98
agent: sub-field usage: 84/98
copilot-sdk: true usage: 68/98
bare: true usage: 14/98
args: (raw CLI passthrough) usage: 5 workflows (copilot-pr-merged-report.md, daily-cli-performance.md, eslint-miner.md, jsweep.md, smoke-copilot.md)
network: config usage: 42/98
safe-outputs: usage: 86/98
cache-memory: usage: 25/98
- Timeout distribution: 20min (25), 30min (23), 15min (18), 10min (14), 5min (6), 45min (6), 60min (3), 120min (2), others (long tail)
2️⃣ Feature Usage Matrix
| Feature Category |
Available Features |
Used |
Not Used / Underused |
Usage Rate |
| CLI Flags |
--disable-builtin-mcps, --no-ask-user, --agent, --autopilot, --add-dir, --allow-all-paths, --no-custom-instructions |
--disable-builtin-mcps/--no-ask-user (auto-applied), --agent (84), --allow-all-paths (auto), --no-custom-instructions via bare (14) |
--autopilot/continuations (11/98 only) |
Autopilot: ~11% |
| Engine Config |
agent, bare, copilot-sdk, driver, args, env, max-tool-denials, harness, model, version |
agent (84), copilot-sdk (68), bare (14), args (5) |
driver (custom SDK driver) rarely used; explicit version pinning rare |
Custom driver: near 0% |
| MCP Servers |
GitHub MCP, custom JSON MCP config |
GitHub MCP (72) |
Custom third-party MCP servers rare |
Low custom MCP adoption |
| Network Config |
network: allowlist, firewall: |
network: (42) |
firewall: explicit (1) |
~43% explicit network config |
| Custom Agents |
.github/agents/*.agent.md (9 total) |
4 referenced (adr-writer, contribution-checker, technical-doc-writer, ci-cleaner) |
5 orphaned (see below) |
44% dead |
3️⃣ Missed Opportunities
View High Priority Opportunities
🔴 High Priority
Opportunity 1: Orphaned custom agent files
- What: 5 files in
.github/agents/ (create-safe-output-type.agent.md, custom-engine-implementation.agent.md, grumpy-reviewer.agent.md, interactive-agent-designer.agent.md, w3c-specification-writer.agent.md) are not referenced by any workflow's engine.agent field.
- Why It Matters: Dead configuration accumulates maintenance risk (docs drift, unclear intent) and confuses contributors about which agents are "live."
- Where:
.github/agents/*.agent.md
- How to Implement: Either (a) wire each into a workflow via
engine: {id: copilot, agent: <name>}, or (b) remove the file if no longer needed, or (c) document them explicitly as "templates/examples" if intentionally unused.
- Example:
engine:
id: copilot
agent: w3c-specification-writer
Opportunity 2: Low explicit network/firewall configuration
- What: Only 42/98 copilot-block workflows set
network:, and just 1 sets firewall: explicitly.
- Why It Matters: Workflows running with default network access have a larger attack surface for prompt-injection-driven exfiltration attempts.
- Where: Audit the 56 copilot workflows without
network: for whether they touch untrusted content (issues/PRs/external data) and need an allowlist.
- How to Implement: Add
network: {allowed: [...]} scoped to only the domains each workflow needs (e.g., api.github.com, package registries used).
View Medium Priority Opportunities
🟡 Medium Priority
Opportunity 3: Underused autopilot/continuations
- What:
max-continuations (which triggers --autopilot --max-autopilot-continues) is set in only 11/98 workflows.
- Why It Matters: Multi-step workflows (e.g., large refactors, iterative issue triage) may silently stop after one pass without continuation support, requiring manual re-triggering.
- Where: Workflows doing large-scope analysis (e.g.,
jsweep.md, eslint-miner.md) could benefit if they aren't already using it.
- How to Implement:
engine:
id: copilot
max-continuations: 3
Opportunity 4: --share flag unexplored
- What: Not referenced in the Go engine code (
copilot_engine_execution.go), suggesting gh-aw doesn't currently map any config to it, and only this research workflow's prompt text mentions it.
- Why It Matters: If Copilot CLI does support
--share for conversation URLs, it could aid debugging failed runs; if it doesn't exist in the installed CLI version, prompt/doc text referencing it should be corrected to avoid confusion.
- How to Implement: Verify via
copilot --help in the CLI version gh-aw installs; if valid, consider exposing via engine.args or a dedicated config key; if invalid, remove references from this workflow's prompt.
Opportunity 5: Custom SDK driver (engine.driver) underused
- What: gh-aw supports fully custom Copilot SDK drivers (JS/Python/Go/Ruby, inline or file-based) but adoption appears minimal outside smoke-test workflows.
- Why It Matters: Advanced workflows needing bespoke tool-approval logic or telemetry hooks aren't leveraging this extensibility point.
- Where: Consider for workflows needing custom sandboxing or non-standard tool-call interception.
View Low Priority Opportunities
🟢 Low Priority
Opportunity 6: Explicit version pinning
- What: Very few workflows pin an explicit
engine.version; most rely on "latest," which the code notes matters for flag compatibility (e.g., --no-ask-user requires v1.0.19+).
- Why It Matters: Silent CLI upgrades could introduce behavior changes; pinning aids reproducibility for critical workflows.
- Where: High-stakes workflows (release automation, security checks) are best candidates.
Opportunity 7: args: passthrough usage is minimal and inconsistent
- What: Only 5 workflows use
engine.args for raw CLI passthrough, each seemingly for different one-off needs.
- Why It Matters: If common patterns emerge (e.g., always adding a specific
--add-dir), consider promoting to first-class config instead of ad hoc args.
Opportunity 8: Timeout tuning
- What: Timeout values cluster around 10–30 minutes with some outliers up to 120 minutes; no clear correlation to workflow complexity was found in this pass.
- Why It Matters: Right-sizing timeouts reduces wasted CI minutes on workflows that fail fast, and avoids premature cutoffs on genuinely long-running ones.
Opportunity 9: bare: true review
- What: 14 workflows suppress custom instructions via
bare: true; worth spot-checking whether all of these are intentional (e.g., isolated test/smoke workflows) vs. accidental copy-paste from a template.
4️⃣ Specific Workflow Recommendations
View Workflow-Specific Recommendations
Orphaned agents: create-safe-output-type, custom-engine-implementation, grumpy-reviewer, interactive-agent-designer, w3c-specification-writer
- Current State: Defined in
.github/agents/*.agent.md, zero workflow references across two consecutive research runs.
- Recommended Changes: Decide fate — wire up, archive, or document as templates.
- Expected Benefits: Reduced repo clutter and clearer contributor guidance on active vs. reference agents.
jsweep.md, eslint-miner.md (use args: for custom CLI flags)
- Current State: Use raw
engine.args passthrough for one-off CLI needs.
- Recommended Changes: Confirm these couldn't be satisfied by first-class config (
bare, agent, max-continuations) to reduce brittleness against future CLI flag changes.
5️⃣ Trends & Insights
View Historical Trends
Comparing to previous analysis (run 30732964595, 2026-08-02):
- Orphaned agent list is unchanged — same 5 files, still unreferenced after a full cycle. This is now a recurring, unaddressed finding.
copilot-sdk: true continues strong adoption (68 this run vs. 99 block-form workflows tracked differently in prior counts — direct comparison method differed slightly between runs; recommend standardizing the counting query for future runs).
--share usage remains at 1 (the research workflow itself) — no organic adoption signal.
- Note: exact workflow/engine counts differ slightly from the prior run due to methodology differences (prior run counted
id: copilot across all workflows including detection-only stanzas differently). Future runs should use a single canonical query, stored in this memory file, for apples-to-apples trend tracking.
6️⃣ Best Practice Guidelines
- Retire or wire up orphaned agent files promptly: An agent file with zero workflow references for more than one research cycle should be actioned (used or removed) rather than left indefinitely.
- Default to explicit
network: allowlists for workflows processing untrusted content: Especially those triggered by issues/PR comments from external actors.
- Reserve
bare: true for workflows that genuinely don't need repo custom instructions (e.g., pure smoke tests), and document why in a comment when used elsewhere.
7️⃣ Action Items
Immediate Actions (this week):
Short-term (this month):
Long-term (this quarter):
View Supporting Evidence & Methodology
📚 References
- Copilot Engine implementation:
pkg/workflow/copilot_engine.go, pkg/workflow/copilot_engine_execution.go, pkg/workflow/copilot_mcp.go
- Engine documentation:
docs/src/content/docs/reference/engines.md
- Custom agent files:
.github/agents/*.agent.md
- Previous research: repo-memory branch
memory/copilot-cli-research (copilot-cli-research/latest.json, run 30732964595)
Research Methodology
Static analysis via grep/find over .github/workflows/*.md frontmatter and pkg/workflow/copilot_*.go source files. Counted CLI flags emitted unconditionally vs. conditionally in buildCopilotArgs; cross-referenced engine.agent values against .github/agents/*.agent.md filenames; compared network/firewall/safe-outputs frontmatter presence across all id: copilot workflows. No workflow runs were triggered as part of this analysis.
Generated by Copilot CLI Deep Research (Run: 30785495408)
Generated by 🔬 Copilot CLI Deep Research Agent · auto · 35 AIC · ⌖ 6.19 AIC · ⊞ 10.6K · ◷
Analysis Date: 2026-08-03
Repository: github/gh-aw
Scope: 269 total workflows, 98 using
engine: {id: copilot, ...}block form (33 using shorthandengine: copilot)📊 Executive Summary
Research Topic: Copilot CLI Optimization Opportunities
Key Findings:
--shareflag is used in exactly 1 workflow (this research workflow) despite being available for conversation sharing/tracking.create-safe-output-type,custom-engine-implementation,grumpy-reviewer,interactive-agent-designer,w3c-specification-writer) are defined under.github/agents/but referenced by zero workflows — unchanged since the prior research run.--autopilot/max-continuationsis used in only 11 of 98 copilot-block workflows, leaving most workflows to rely on a single non-continuing run even where multi-step tasks are common.copilot-sdk: trueadoption is strong (68 workflows) and growing, suggesting a broad shift toward SDK mode — worth confirming CLI-only mode is still intentionally used elsewhere.network:) appears in only 42/98 copilot workflows; only 1 workflow referencesfirewall:explicitly, meaning most rely on defaults rather than explicit allowlists.Primary Recommendation: Clean up orphaned agent files (delete or wire them into workflows) and evaluate
--shareadoption for workflows with complex/long-running interactions where conversation replay would aid debugging.This is a repeat analysis (previous run: 30732964595, 2026-08-02). The orphaned-agent-file finding is a recurring, unresolved item across two consecutive research runs — it's a low-effort cleanup that keeps being deferred.
Critical Findings
🔴 High Priority Issues
.github/agents/for at least 2 research cycles with no workflow using them viaengine.agent. These represent either dead code or missed integration opportunities.network:/firewall explicit configuration (42/98, ~43%) — many copilot workflows run with default network settings rather than reviewed allowlists, which is a security posture gap worth auditing individually.🟡 Medium Priority Opportunities
--autopilot/max-continuationsunderused (11/98) — workflows doing multi-step repo analysis or iterative fixes could benefit from continuation support instead of single-shot runs.--shareflag essentially unused (1/269) — no visibility into whether teams want conversation-sharing for debugging failed runs.bare: trueusage (14 workflows) suppresses custom instructions; confirm this is intentional per-workflow rather than copy-paste.View Full Analysis
1️⃣ Current State Analysis
View Copilot CLI Capabilities Inventory
Copilot CLI Capabilities Inventory (from
pkg/workflow/copilot_engine*.go)--disable-builtin-mcps(always),--no-ask-user(autonomous runs, v1.0.19+),--agent <name>(viaengine.agent),--autopilot --max-autopilot-continues N(viamax-continuations),--add-dir(multiple, for/tmp, cache dirs),--allow-all-paths(when edit tool enabled),--no-custom-instructions(bare mode),--headless --no-auto-update --port(SDK mode),--log-level all --log-dir.id: copilot,version,model,agent,bare,copilot-sdk,driver(custom SDK driver — JS/Python/Go/Ruby, inline or file),args(raw passthrough),env,max-tool-denials(SDK-only),harnesssub-keys mapped toGH_AW_HARNESS_*env vars.RenderMCPConfigbuilds JSON MCP config (copilot_mcp.go); GitHub MCP toolsets used by 64/98,github:tool block by 72/98.max-turns; firewall enablement togglesHOMEpath handling for ARC/DinD topology.--shareis not referenced anywhere incopilot_engine_execution.go— it appears only in this research prompt's example text, meaning it may not be an actual supported CLI flag in the installed Copilot CLI version, or it's unmapped to anyengine.*config. This should be verified against the actualcopilotbinary help output before recommending it further.View Usage Statistics
Usage Statistics
engine: copilot): 33id: copilot): 98agent:sub-field usage: 84/98copilot-sdk: trueusage: 68/98bare: trueusage: 14/98args:(raw CLI passthrough) usage: 5 workflows (copilot-pr-merged-report.md,daily-cli-performance.md,eslint-miner.md,jsweep.md,smoke-copilot.md)network:config usage: 42/98safe-outputs:usage: 86/98cache-memory:usage: 25/982️⃣ Feature Usage Matrix
--disable-builtin-mcps,--no-ask-user,--agent,--autopilot,--add-dir,--allow-all-paths,--no-custom-instructions--disable-builtin-mcps/--no-ask-user(auto-applied),--agent(84),--allow-all-paths(auto),--no-custom-instructionsviabare(14)--autopilot/continuations (11/98 only)agent,bare,copilot-sdk,driver,args,env,max-tool-denials,harness,model,versionagent(84),copilot-sdk(68),bare(14),args(5)driver(custom SDK driver) rarely used; explicitversionpinning rarenetwork:allowlist,firewall:network:(42)firewall:explicit (1).github/agents/*.agent.md(9 total)3️⃣ Missed Opportunities
View High Priority Opportunities
🔴 High Priority
Opportunity 1: Orphaned custom agent files
.github/agents/(create-safe-output-type.agent.md,custom-engine-implementation.agent.md,grumpy-reviewer.agent.md,interactive-agent-designer.agent.md,w3c-specification-writer.agent.md) are not referenced by any workflow'sengine.agentfield..github/agents/*.agent.mdengine: {id: copilot, agent: <name>}, or (b) remove the file if no longer needed, or (c) document them explicitly as "templates/examples" if intentionally unused.Opportunity 2: Low explicit network/firewall configuration
network:, and just 1 setsfirewall:explicitly.network:for whether they touch untrusted content (issues/PRs/external data) and need an allowlist.network: {allowed: [...]}scoped to only the domains each workflow needs (e.g.,api.github.com, package registries used).View Medium Priority Opportunities
🟡 Medium Priority
Opportunity 3: Underused autopilot/continuations
max-continuations(which triggers--autopilot --max-autopilot-continues) is set in only 11/98 workflows.jsweep.md,eslint-miner.md) could benefit if they aren't already using it.Opportunity 4:
--shareflag unexploredcopilot_engine_execution.go), suggesting gh-aw doesn't currently map any config to it, and only this research workflow's prompt text mentions it.--sharefor conversation URLs, it could aid debugging failed runs; if it doesn't exist in the installed CLI version, prompt/doc text referencing it should be corrected to avoid confusion.copilot --helpin the CLI version gh-aw installs; if valid, consider exposing viaengine.argsor a dedicated config key; if invalid, remove references from this workflow's prompt.Opportunity 5: Custom SDK driver (
engine.driver) underusedView Low Priority Opportunities
🟢 Low Priority
Opportunity 6: Explicit version pinning
engine.version; most rely on "latest," which the code notes matters for flag compatibility (e.g.,--no-ask-userrequires v1.0.19+).Opportunity 7:
args:passthrough usage is minimal and inconsistentengine.argsfor raw CLI passthrough, each seemingly for different one-off needs.--add-dir), consider promoting to first-class config instead of ad hocargs.Opportunity 8: Timeout tuning
Opportunity 9:
bare: truereviewbare: true; worth spot-checking whether all of these are intentional (e.g., isolated test/smoke workflows) vs. accidental copy-paste from a template.4️⃣ Specific Workflow Recommendations
View Workflow-Specific Recommendations
Orphaned agents:
create-safe-output-type,custom-engine-implementation,grumpy-reviewer,interactive-agent-designer,w3c-specification-writer.github/agents/*.agent.md, zero workflow references across two consecutive research runs.jsweep.md,eslint-miner.md(useargs:for custom CLI flags)engine.argspassthrough for one-off CLI needs.bare,agent,max-continuations) to reduce brittleness against future CLI flag changes.5️⃣ Trends & Insights
View Historical Trends
Comparing to previous analysis (run 30732964595, 2026-08-02):
copilot-sdk: truecontinues strong adoption (68 this run vs. 99 block-form workflows tracked differently in prior counts — direct comparison method differed slightly between runs; recommend standardizing the counting query for future runs).--shareusage remains at 1 (the research workflow itself) — no organic adoption signal.id: copilotacross all workflows including detection-only stanzas differently). Future runs should use a single canonical query, stored in this memory file, for apples-to-apples trend tracking.6️⃣ Best Practice Guidelines
network:allowlists for workflows processing untrusted content: Especially those triggered by issues/PR comments from external actors.bare: truefor workflows that genuinely don't need repo custom instructions (e.g., pure smoke tests), and document why in a comment when used elsewhere.7️⃣ Action Items
Immediate Actions (this week):
--shareis a real Copilot CLI flag; correct or remove misleading references in this workflow's own prompt if not.Short-term (this month):
network:config for exposure to untrusted input; add allowlists where warranted.max-continuationsfor multi-step analysis workflows (e.g.,jsweep.md,eslint-miner.md).Long-term (this quarter):
engine.argspassthrough patterns to first-class engine config options if repeated needs emerge.View Supporting Evidence & Methodology
📚 References
pkg/workflow/copilot_engine.go,pkg/workflow/copilot_engine_execution.go,pkg/workflow/copilot_mcp.godocs/src/content/docs/reference/engines.md.github/agents/*.agent.mdmemory/copilot-cli-research(copilot-cli-research/latest.json, run 30732964595)Research Methodology
Static analysis via
grep/findover.github/workflows/*.mdfrontmatter andpkg/workflow/copilot_*.gosource files. Counted CLI flags emitted unconditionally vs. conditionally inbuildCopilotArgs; cross-referencedengine.agentvalues against.github/agents/*.agent.mdfilenames; compared network/firewall/safe-outputs frontmatter presence across allid: copilotworkflows. No workflow runs were triggered as part of this analysis.Generated by Copilot CLI Deep Research (Run: 30785495408)