[copilot-cli-research] Copilot CLI Deep Research - 2026-03-24 #22763
Closed
Replies: 1 comment
-
|
This discussion was automatically closed because it expired on 2026-03-25T21:14:53.011Z.
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
🔍 Overview
This is the first comprehensive Copilot CLI feature adoption analysis for this repository. Out of 177 total agentic workflows, 84 (47.5%) use the Copilot engine — making it by far the dominant engine. The analysis compared every available Copilot CLI configuration option against actual workflow usage to identify gaps, security opportunities, and optimizations.
Key finding: Several high-value Copilot CLI features have zero adoption despite being fully implemented and documented — including
block-domains(network security),tools-startup-timeout(reliability),engine.envandengine.args(debugging/customization), and version pinning (reproducibility).🔴 High Priority Issues
1. Zero usage of
block-domains(security feature)The
block-domainsnetwork security feature has 0% adoption across all 177 workflows. This feature allows explicitly denying known-bad domains as an extra defense layer — it complementsnetwork.allowedby blocking specific subdomains or services.2. 35.7% of Copilot workflows use unrestricted bash
30 of 84 Copilot workflows use
bash: true,bash: ["*"], orbash: [":*"]— granting unrestricted shell access. This gives the AI agent write access to the entire runner filesystem without explicit tool-level scope.3.
copilot-requestsfeature at 49% adoptionOnly 41 of 84 Copilot workflows use the
copilot-requests: truefeature, which uses the GitHub Actions token directly ($\{\{ github.token }}). The other 43 workflows still use the olderCOPILOT_GITHUB_TOKENsecret flow with extra auth overhead.🟡 Medium Priority Opportunities
4.
tools-startup-timeout: 0% usageMCP server startup failures are a known flakiness source. The
tools-startup-timeoutfield (available in frontmatter) allows customizing the MCP startup wait window — yet no workflow uses it. Workflows using Playwright or custom MCP servers are most vulnerable.5.
max-continuations: 1.2% usage (1 workflow)Autopilot mode (
--autopilot --max-autopilot-continues N) allows the agent to complete multiple consecutive passes — ideal for long-running research, refactoring, or batch operations. Only 1 workflow uses it. Several research/analysis workflows (e.g.,agent-performance-analyzer,daily-copilot-token-report) would benefit.6. GitHub toolset over-provisioning
Many workflows use
toolsets: [default](providescontext,repos,issues,pull_requests,users) when they only need 1-2 toolsets. For example,auto-triage-issues.mdcorrectly usestoolsets: [issues]. More workflows should follow this pattern to apply least-privilege.📊 Feature Usage Matrix
copilot-requests: truestrict: true(all workflows)engine.modelengine.agentengine.argsengine.envengine.commandmax-continuationsengine.api-targetagent: awf)network:configuredblock-domains:github:toolbash:(specific)bash: true/wildcardedit:web-fetch:web-search:playwright:serena:repo-memory:cache-memory:agentic-workflows:qmd:(vector search)mcp-scripts:toolsets:specifiedallowed-repos:min-integrity:tools-startup-timeout:dispatch-workflow:3️⃣ Missed Opportunities (Detailed)
View High Priority Opportunities
🔴 Opportunity 1: Enable
block-domainsfor Known-Bad Domainsblock-domainsfield allows explicitly denying specific domains regardless of thenetwork.allowedlist — useful for blocking known data-exfiltration targets, malicious subdomains, or telemetry endpoints.network:configured (85 workflows), especially those handling sensitive data (code-scanning-fixer.md,security-review.md).🔴 Opportunity 2: Reduce Unrestricted Bash Usage
bash: true,bash: ["*"], orbash: [":*"]— giving the AI unrestricted shell access. Many of these could use explicit command lists.daily-copilot-token-report.md(usesbash: ["*"]),craft.md(usesbash: ["*"]).bash: ["*"]with explicit needed commands:🔴 Opportunity 3: Complete
copilot-requestsAdoptionCOPILOT_GITHUB_TOKENsecret instead of enablingcopilot-requests: true(which uses$\{\{ github.token }}directly).features: copilot-requests: true.View Medium Priority Opportunities
🟡 Opportunity 4: Use
tools-startup-timeoutfor MCP-Heavy Workflowstools-startup-timeoutincreases the wait window before the agent starts.playwright:workflows (12 workflows), any workflow using Docker-based MCP servers.🟡 Opportunity 5: Leverage
max-continuationsfor Research Workflowsmax-continuations. Research/analysis workflows that collect and synthesize data in multiple phases could benefit from autopilot mode.agent-performance-analyzer.md,daily-copilot-token-report.md,copilot-pr-nlp-analysis.md.cache-memory:to pass state between continuations.🟡 Opportunity 6: Tighten GitHub Toolset Specificity
toolsets: [default]ortoolsets: [default, actions]when they only need specific API groups.defaultincludescontext,repos,issues,pull_requests,users.context,repos,issues,pull_requests,users,actions,code_security,discussions,labels,notifications,orgs,projects,gists,search,dependabot,experiments,secret_protection,security_advisories,stargazersauto-triage-issues.md(already done correctly):🟡 Opportunity 7: Pin Engine Versions for Stability
🟡 Opportunity 8: Expand
min-integrityUsagegithub.min-integrity. This filter prevents the agent from reading low-integrity content (e.g., content from anonymous users or untrusted forks) via GitHub tools.auto-triage-issues.md,contribution-check.md,ai-moderator.md).View Low Priority Opportunities
🟢 Opportunity 9: Use
qmdfor Documentation-Heavy Workflowsqmdvector similarity search tool. Workflows that need to answer questions about codebase documentation could benefit from a local vector index.daily-doc-updater.md,daily-doc-healer.md,cli-consistency-checker.md.🟢 Opportunity 10: Adopt
mcp-scriptsfor Inline Toolsmcp-scriptsto define inline JavaScript/shell tools. These can encapsulate complex operations that would otherwise require full bash tool access.🟢 Opportunity 11: Use
engine.envfor Debug Configurationengine.envfor Copilot-specific environment variables. This can be used to pass debugging flags, custom endpoints, or feature toggles without hardcoding them.COPILOT_DEBUG_TOOLS=1for tool call logging, custom API routing, feature flags.🟢 Opportunity 12: Leverage
dispatch-workflowfor Multi-Agent Orchestrationdispatch-workflowto fan out tasks to sub-agents. For complex meta-orchestration tasks, this enables parallel processing and specialization.agent-performance-analyzer.mdalready creates sub-issues; it could instead dispatch specialized analysis agents.4️⃣ Specific Workflow Recommendations
View Workflow-Specific Recommendations
daily-copilot-token-report.mdbash: ["*"](unrestricted), nomax-continuationsjq,cat,find,sort); addmax-continuations: 2for multi-phase data collection + analysiscraft.mdbash: ["*"](unrestricted)gh extension install,git,cat,find); the craft agent needs few commands beyond reading files and runninggh aw compileagent-performance-analyzer.mdrepo-memory, nomax-continuationsmax-continuations: 3to allow phase 1 (data collection) → phase 2 (analysis) → phase 3 (report writing); would significantly improve qualitycode-scanning-fixer.mdgithub-token, specific toolsets,cache-memory— well configuredmin-integrity: approvedto github tool; addblock-domainsfor extra security when handling security alertsauto-triage-issues.mdtoolsets: [issues]— excellent example of least-privilegeWorkflows using AWF sandbox (14 workflows)
agent: awfcorrectlyblock-domainsto these workflows as an additional security layer since they handle sensitive operations5️⃣ Trends & Historical Context
View Historical Trends
This is the first comprehensive analysis run (2026-03-24, run §23512121672).
Baseline established:
block-domains,tools-startup-timeout,engine.env,engine.args, version pinningFuture analysis runs will track:
copilot-requests: truefeature (target: 100%)bash: ["*"]) usagemax-continuationsusageblock-domainsadoption6️⃣ Best Practice Guidelines
Based on this analysis, here are the top 5 best practices for Copilot workflows:
Minimal bash access: Use
bash: [specific-commands]instead ofbash: trueorbash: ["*"]. Referenceauto-triage-issues.md(bash: ["jq *"]) as a model.Enable
copilot-requests: true: All new Copilot workflows should includefeatures: copilot-requests: trueto use the simpler, native GitHub Actions token flow.Specific GitHub toolsets: Never use the full
defaulttoolset unless all 5 toolset groups are actually needed. Start with the minimum (e.g.,toolsets: [issues]) and add as required.Use AWF sandbox +
block-domainstogether: For any workflow that handles untrusted input (issues, PRs, comments), combinenetwork: allowed: [defaults]withblock-domainsto apply defense-in-depth.Add
tools-startup-timeoutfor MCP workflows: Any workflow with Playwright, custom MCP servers, or Docker-based tools should settools-startup-timeout: 90or higher to reduce flakiness.7️⃣ Action Items
Immediate (this week):
features: copilot-requests: trueto the 43 Copilot workflows missing itbash: ["*"]with explicit command lists incraft.mdanddaily-copilot-token-report.mdblock-domainsto workflows handling security-sensitive dataShort-term (this month):
[default]max-continuations: 2-3to multi-phase research workflowstools-startup-timeout: 90to all Playwright-using workflowsmin-integrity: approvedto public-facing issue/PR processing workflowsLong-term (this quarter):
qmdadoption for documentation-heavy analysis workflowsmcp-scriptsexamples in shared imports for common data-transform patternsView Supporting Evidence & Methodology
Research Methodology
Phase 1 - Feature Inventory: Examined
pkg/workflow/copilot_engine.go,copilot_engine_execution.go,copilot_engine_tools.go,pkg/workflow/engine.go, anddocs/src/content/docs/reference/engines.mdto build a complete list of available Copilot CLI configuration options.Phase 2 - Usage Analysis: Used
greppattern matching across all 177 workflow markdown files to count feature adoption. Examined sample workflows (archie.md,craft.md,auto-triage-issues.md,code-scanning-fixer.md,agent-performance-analyzer.md) for qualitative pattern analysis.Phase 3 - Gap Analysis: Compared available features against measured usage to identify zero-adoption and low-adoption features.
Data Sources:
pkg/workflow/copilot_engine*.go,pkg/workflow/engine.go,pkg/constants/constants.godocs/src/content/docs/reference/engines.md,docs/src/content/docs/reference/tools.md,docs/src/content/docs/reference/github-tools.md.github/workflows/*.md(177 files, 84 using Copilot)Repo Memory: This analysis was intended to be saved to
memory/copilot-cli-research/on thememory/copilot-cli-researchbranch for trend tracking. The branch is initialized; future runs will persist data for longitudinal comparison.References:
Beta Was this translation helpful? Give feedback.
All reactions