[copilot-cli-research] Copilot CLI Deep Research - 2026-03-15 #21122
Closed
Replies: 1 comment
-
|
This discussion has been marked as outdated by Copilot CLI Deep Research Agent. A newer discussion is available at Discussion #21290. |
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.
-
📊 Executive Summary
Analysis Date: 2026-03-15 | Workflow Run: §23119478023
Scope: 172 total workflows, 80 using Copilot engine (46.5%)
This is the first comprehensive Copilot CLI deep research for this repository. The Copilot engine is the dominant choice (vs. 35 Claude, 13 Codex), but a number of high-value features remain almost completely unused. Key findings include: custom agent files are available for 10 personas but adopted by only 3 workflows;
max-continuations(autopilot mode) is deployed in exactly 1 smoke test; rate-limiting is configured in just 3 workflows despite many being user-triggered; andcheckout: falseoptimization is missing from ~50+ read-only workflows.The repository demonstrates excellent baseline hygiene —
features.copilot-requests: trueat 50% adoption, structured safe-outputs in nearly all workflows,strict: truewidely applied, andtoolsetsused thoughtfully. The opportunities below are about closing the gap between available and used.🔴 Critical Findings
High Priority
.agent.mdfiles in.github/agents/but only 3 workflows reference them viaengine.agent— a largely untapped specialization mechanismrate-limit:— user-triggered workflows are fully open to repeat invocationscheckout: falsealmost never used: Only 1 workflow opts out of checkout despite many being read-only (wasting ~5-15s startup per run)Medium Priority
max-continuationsunderused: Only thesmoke-copilottest uses autopilot mode — complex tasks likecode-scanning-fixer,dead-code-remover, andrepository-quality-improverwould benefit from extended autonomous operationfeatures.copilot-requests: trueat 50%: This is the recommended authentication path; the other 50% still rely onCOPILOT_GITHUB_TOKENsecret1️⃣ Current State Analysis
View Copilot CLI Capabilities Inventory
Copilot CLI Capabilities Inventory
Automatic (always applied by compiler):
--add-dir /tmp/gh-aw/— Allows CLI to read generated prompts/scripts--add-dir "\$\{GITHUB_WORKSPACE}"— Workspace access in AWF sandbox--disable-builtin-mcps— External MCP servers only--log-level all --log-dir (logsFolder)— Full session logging--prompt "..."— Workflow prompt injectionTool Permission Flags (compiler-generated from
tools:config):--allow-tool shell((cmd))— Specific shell commands--allow-all-tools— Bash wildcard triggers this--allow-tool write— Whenedit:tool is present--allow-tool web_fetch— Whenweb-fetch:tool present--allow-all-paths— Automatically added withedit:tool--allow-tool github((op))— Granular GitHub MCP tool permissionsConfigurable via Frontmatter (workflow author controls):
engine.agent→--agent (id)— Custom agent persona from.github/agents/engine.model→COPILOT_MODELenv var — LLM model selectionengine.version→ Install script pin — Reproducible buildsengine.args→ Custom CLI args injected before--promptengine.env→ Custom environment variables for the Copilot processengine.command→ Override binary path entirelymax-continuations→--autopilot --max-autopilot-continues N— Extended autonomous operationfeatures.copilot-requests: true→ S2STOKENS auth (no personal PAT needed)features.mcp-gateway: true— Unified HTTP gateway for MCP serversfeatures.disable-xpia-prompt: true— Disable anti-injection system promptfeatures.action-tag: "v0"— Pin compiled action references to a tagengine.error_patterns— Custom error pattern detection in logssandbox.agent: awf+ AWF config — Network firewall with domain allowlistsandbox.agent.mounts— Mount host tools into AWF sandboxplugins:— Plugin ecosystem integration (currently unused in all 172 workflows)View Usage Statistics
Usage Statistics
Copilot-Specific Feature Adoption (of 80 Copilot workflows)
features.copilot-requests: truetoolsets: [default](most common)sandbox: agent: awf)engine.versionpinningengine.modeloverrideengine.agentcustom agentmax-continuationsfeatures.mcp-gatewayCross-All-Workflows Feature Adoption
tracker-id:status-comment: trueskip-if-match:rate-limit:checkout: falseinlined-imports: trueerror_patterns:plugins:Most Common Toolsets
[default][default, discussions][default, actions][pull_requests, repos][all]2️⃣ Feature Usage Matrix
--add-dir,--disable-builtin-mcps,--log-level,--prompt--agent,--autopilot,--allow-tool,--allow-all-paths--agent(3%),--autopilot(1%)id,version,model,agent,args,env,command,max-continuations,error_patternsmodel(8%),version(10%),agent(3%),max-continuations(1%)args,env,command,error_patternsnetwork.allowed, AWF sandbox,network.blocked, domain defaultsallowed(15+), AWF (7)blocked, fine-grained per-domaincopilot-requests,mcp-gateway,disable-xpia-prompt,action-tagcopilot-requests(50%)copilot-requests,COPILOT_GITHUB_TOKENsecret3️⃣ Missed Opportunities
🔴 View High Priority Opportunities
Opportunity 1: Custom Agent Files Are Almost Completely Unused
What: 10 agent persona files exist in
.github/agents/but only 3 Copilot workflows reference them viaengine.agent.Available agents:
agentic-workflows.agent.md,ci-cleaner.agent.md,contribution-checker.agent.md,create-safe-output-type.agent.md,custom-engine-implementation.agent.md,developer.instructions.md,grumpy-reviewer.agent.md,interactive-agent-designer.agent.md,technical-doc-writer.agent.md,w3c-specification-writer.agent.mdCurrently using:
ci-cleaner(1 workflow),technical-doc-writer(2 workflows)Unused agents:
grumpy-reviewer,contribution-checker,agentic-workflows,developer.instructions,interactive-agent-designer,w3c-specification-writer,create-safe-output-typeWhy It Matters: Custom agents give Copilot a specialized system prompt tuned for the task. Workflows doing code review (
grumpy-reviewer), contribution checking (contribution-checker), or documentation (technical-doc-writer) get dramatically better results when the agent persona matches the task.Where:
grumpy-reviewer.md→ useagent: grumpy-reviewerpr-nitpick-reviewer.md→ useagent: grumpy-reviewercontribution-check.md→ useagent: contribution-checkerdocs-noob-tester.md,blog-auditor.md,claude-code-user-docs-review.md→ useagent: technical-doc-writerworkflow-generator.md,daily-workflow-updater.md→ useagent: agentic-workflowsHow to Implement:
Opportunity 2: Rate Limiting Missing from User-Triggered Workflows
What: Only 3 of 172 workflows configure
rate-limit:. Many user-triggered workflows (slash commands, reactions, issue events) have no protection against repeated invocations.Why It Matters: Without rate limiting, a single user can repeatedly trigger expensive agent runs.
rate-limit:prevents abuse while keeping workflows accessible.Where: Any workflow with
on: slash_command:,on: reaction:, or user-triggeredon: issues:/on: pull_request:that doesn't haverate-limit:.Examples:
archie.md,brave.md,dictation-prompt.md,mcp-inspector.md,plan.mdHow to Implement:
🟡 View Medium Priority Opportunities
Opportunity 3:
max-continuationsUnderused in Complex Analysis WorkflowsWhat: The
max-continuationsfield enables--autopilot --max-autopilot-continues Nmode, allowing Copilot to run multiple continuation turns autonomously. Onlysmoke-copilot.mduses it (value: 2).Why It Matters: Complex multi-step tasks — scanning all open issues, fixing multiple code problems, or performing deep repository analysis — benefit from Copilot being able to continue without human re-prompting.
Where:
code-scanning-fixer.md— Iterates through multiple security alertsdead-code-remover.md— Potentially many files to processrepository-quality-improver.md— Cross-cutting improvementsdaily-testify-uber-super-expert.md— Might need multiple passesci-doctor.md— Complex CI debuggingHow to Implement:
Opportunity 4:
checkout: falsefor Read-Only WorkflowsWhat: Only 1 of 172 workflows disables repository checkout. Many workflows only use GitHub API tools (no repo file access) and waste 5-15 seconds on a full git clone.
Why It Matters: Disabling checkout speeds up workflow startup and reduces token consumption. For daily/hourly workflows running hundreds of times, this compounds significantly.
Where: Any workflow that:
edit:, nobash:with file operations)GITHUB_WORKSPACEcontentdaily-news.md,weekly-issue-summary.md,org-health-report.md,stale-repo-identifier.md,copilot-pr-merged-report.mdHow to Implement:
Opportunity 5:
features.copilot-requests: trueat Only 50% AdoptionWhat: The recommended authentication approach (
copilot-requests: true) uses GitHub Actions token instead of a personalCOPILOT_GITHUB_TOKENsecret. Currently only 40 of 80 Copilot workflows enable this.Why It Matters: This is the preferred auth path — it avoids managing long-lived PATs, uses GitHub's built-in token, and is simpler to maintain.
Where: All Copilot workflows that don't have
features.copilot-requests: truein theirfeatures:block.How to Implement:
Opportunity 6:
toolsets: [all]Over-PermissioningWhat: 3 workflows use
toolsets: [all], which grants access to every GitHub MCP tool. This includes potentially sensitive operations beyond what the workflow needs.Where:
github-mcp-structural-analysis.md,github-mcp-tools-report.md,security-review.mdWhy It Matters: Least-privilege principle — restrict GitHub MCP access to only what each workflow actually needs.
How to Implement: Replace with specific toolsets:
🟢 View Low Priority Opportunities
Opportunity 7: Custom
error_patternsfor Better DiagnosticsWhat: The
engine.error_patternsfield (defined inEngineConfig) is never used across all 172 workflows. It allows defining custom regex patterns that the log parser uses to detect and classify errors.Why It Matters: Workflows with specific failure modes (API errors, domain-specific error messages) could get better error reporting and alerting when failures occur.
How to Implement:
Opportunity 8: AWF Firewall Version Pinning for Reproducibility
What: Workflows using AWF sandbox (
sandbox: agent: awf) don't pin the AWF version. Thenetwork.firewall.versionandnetwork.firewall.log-leveloptions are unused.Why It Matters: AWF version changes could affect network behavior. Pinning ensures reproducible security boundaries.
How to Implement:
Opportunity 9:
engine.envfor Debug InstrumentationWhat: The
engine.envfield (passed directly to the Copilot process environment) is not used in any workflow. This could be useful for enabling debug modes or customizing behavior without modifying prompts.Where: Workflows needing conditional debugging or custom API configurations.
How to Implement:
4️⃣ Specific Workflow Recommendations
View Workflow-Specific Recommendations
grumpy-reviewer.mdengine.agent: grumpy-reviewerto use the purpose-built grumpy reviewer personacontribution-check.mdengine.agent: contribution-checker; addrate-limit: max: 2, window: 60code-scanning-fixer.mdtimeout-minutes: 20max-continuations: 3; increasetimeout-minutes: 60workflow-generator.mdengine.agent: agentic-workflows; addrate-limit: max: 2, window: 60daily-news.md,weekly-issue-summary.md,stale-repo-identifier.mdcheckout: falsesecurity-review.mdtoolsets: [all]and AWF sandbox[all]with[repos, code_security]; considerrate-limit: max: 1, window: 120docs-noob-tester.md,blog-auditor.mdengine.agent: technical-doc-writer5️⃣ Trends & Insights
View Historical Trends
This is the first run of this research workflow. No previous baseline exists for trend comparison.
Baseline established (2026-03-15):
copilot-requestsadoptionmax-continuationsadoptionerror_patternsadoptionFuture runs will compare against this baseline to track:
copilot-requests: truecheckout: falseadoption for read-only workflows6️⃣ Best Practice Guidelines
Based on this research, here are recommended best practices for Copilot workflows:
Always set
features.copilot-requests: true— Use GitHub's built-in token auth instead of managingCOPILOT_GITHUB_TOKENsecrets for simpler, more secure workflows.Match agent files to workflow purpose — When a
.github/agents/file exists for your task type (code review, documentation, contribution checking, workflow authoring), useengine.agent: (name)for specialized prompting.Rate-limit all user-triggered workflows — Any workflow triggered by slash commands, reactions, or direct issue/PR events should have
rate-limit: max: 3, window: 60to prevent abuse.Use
checkout: falsefor API-only workflows — If a workflow only uses GitHub MCP tools and doesn't access repository files, skip the checkout for faster startup.Use specific GitHub toolsets — Prefer
[repos, issues]over[default]or[all]when you know which tools the agent needs; avoid[all].Consider
max-continuationsfor multi-step tasks — Complex analysis or remediation workflows benefit frommax-continuations: 2or3with a proportionally increasedtimeout-minutes.7️⃣ Action Items
Immediate Actions (this week):
rate-limit:to the top 5 highest-traffic user-triggered workflows (archie,brave,plan,dictation-prompt,mcp-inspector)features.copilot-requests: truein the remaining 40 Copilot workflows that lack itShort-term (this month):
engine.agentfor at least 5 more workflows matching existing agent files (grumpy-reviewer, contribution-checker, technical-doc-writer x3+)checkout: falseto 10+ read-only, API-only workflowstoolsets: [all]with specific toolsets in the 3 workflows that use itLong-term (this quarter):
max-continuations: 2-3for complex remediation workflows (code-scanning-fixer,dead-code-remover,repository-quality-improver)engine.error_patternsin one high-value workflow to evaluate benefitView Supporting Evidence & Methodology
Research Methodology
Data Sources:
.github/workflows/*.mdfrontmatter (172 files)pkg/workflow/copilot_engine*.go(execution, tools, installation, core) for available feature inventorypkg/workflow/engine.goforEngineConfigstruct fields.github/aw/github-agentic-workflows.mdfor configuration documentationdocs/src/content/docs/reference/engines.mdfor user-facing feature docs.github/agents/for available custom agent files (10 files)Analysis Approach:
EngineConfigstruct to enumerate all configurable fieldsGetExecutionSteps()to identify which fields map to which CLI flagsTools Used:
grep,ls,head, Go source code analysisReferences
docs/src/content/docs/reference/engines.mdpkg/workflow/copilot_engine_execution.go.github/aw/github-agentic-workflows.md.github/agents/*.agent.mdReferences:
Beta Was this translation helpful? Give feedback.
All reactions