Repository navigation
[copilot-session-insights] Daily Copilot Agent Session Analysis — 2026-11-02 #74070
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Copilot Session Insights. A newer discussion is available at Discussion #74442. |
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.
🤖 Copilot Agent Session Analysis — 2026-11-02
Executive Summary
copilot/*branches. 3 were Copilot coding-agent sessions, and 1 had a full agent transcript.All 3 coding-agent sessions succeeded, and all 3 PRs behind today's branches merged (#73886, #73819, #73839). The most useful finding comes from the one transcript. A run on the
copilot/route-linter-minerbranch moved its main agent to the economy model, but its 3 subagents stayed pinned toclaude-sonnet-5.5and used 74.9% of the run's AI units (AIU) with 26% of the requests. Separately, #73886 merged while every CGO run on its branch was red (4 of 4).📈 Session Trends Analysis
Completion Patterns
Completion fell for the second day in a row (90% → 70% → 64%) but is still 12 points above the 30-day mean of 51.9%. The drop comes from Squad skips (13, up from 5 on 10-31) and 4 CI-gate failures. Of the 37 runs that actually executed, 86.5% succeeded.
Duration & Efficiency
Average and median durations stay in the low range seen since 10-29 (3.9 / 1.4 min). The mix of short runs pulls the average down: 13 Squad skips took about 1 second each and 11 Agentic Commands averaged 0.8 min. The 3 coding-agent sessions averaged 21.9 min. No loops were found in today's only transcript.
Key Metrics
Success Factors ✅
Coding-agent sessions answering PR review comments: all 3
Addressing comment on PRruns succeeded (2 on Upgrade AWF to v0.29.5 and generate Docker enclave integration #73819, 1 on audit: count only the audited attempt's evals invocations, once each, in the evals summary #73886), and both PRs merged.EvalsSummaryUnknownAttemptMixedEvidence), plus 4 reasoned declines ("Not changing this in this PR... listed as a possible follow-up"). The PR merged 37 minutes after the first reply.Briefed subagents in a fixed order: the transcript run handed work to
discussion-miner, thencode-pattern-scanner, thenlinter-writer, with briefs of 724, 656, and 1,798 chars. All 3 subagents finished in 3 min 20 s, and the work landed in a single PR.create_pull_requestcall.Explicit file paths in
git add: before committing, the agent restored a clobbered tracked binary and then staged only named paths. This kept a 12.3 MB file out of the PR (see Failure Signals).High prompt-cache reuse: cache reads were 95.8% of input-side tokens (3.04M cache-read vs 1,650 fresh input and 130,933 cache-write).
No permission friction: 85 of 85 permission requests were approved, with 0 denials. On 10-31, every PR Code Quality Reviewer run (5/5) had at least one denial.
Failure Signals⚠️
Subagent model pin dominates cost (new): the transcript ran on the
copilot/route-linter-minerbranch, which became Linter Miner: use model routing (cost/economy) instead of pinning claude-sonnet-5.5 #73839 "use model routing (cost/economy) instead of pinning claude". The main agent was routed togpt-5.6-luna, but all 3 subagents loadedclaude-sonnet-5.5throughagent_definition_default.subagent.completed ... "modelSelectionSource":"agent_definition_default"appears 3 times.Final validation gate cannot pass in the agent sandbox: the agent ran
make agent-report-progresstwice, and it exited non-zero both times.unable to determine merge-base from BASE_REF=origin/main, even after unshallowing. This is the 3rd straight day of thepartial_clone_git_history_dead_endpattern.BASE_REF=HEAD) failed becausegolangci-lintcould not be installed (make install-golangci-lint, Error 1).make fmtfailed infmt-cjs, andmake golint-customexited 3 on findings that already exist across the repo. The agent polled that last step for about 4.5 min.maketargets the agent ran exited non-zero. The PR was opened anyway, with a note in the summary.Tracked build artifact gets clobbered (new):
maintracks a 12.3 MB ELF executable at the repo root namedlinters(last changed by Add regexpdynamicpattern linter: flag non-constant regexp compile patterns #50674, and before that by feat(linters): add uncheckedflushreturn analyzer + fix existing violations #49862 and feat(linters): add stringsjoinone analyzer #47288). Runninggo build ./cmd/linterswithout-ooverwrites it.git checkout linterstwice in 1 run.Merged with a red gate (2nd day): audit: count only the audited attempt's evals invocations, once each, in the evals summary #73886 merged at 23:06 with CGO
impacted-go-testsfailing on its headf10d0ce, onTestFallbackAWFilesMatchesLocalAWDirectory. All 4 CGO runs on the branch failed. On 11-01 the same thing happened with audit: report failed continue-on-error evals/detection engine steps and add an evals summary #73556.TestActionsLockJSONFieldsAreSorted), passed at 23:42, and the PR merged at 23:49.Hidden shell failures:
tool.execution_completereported success for 7 bash calls that actually exited non-zero.Prompt Quality Analysis 📝
Per-Prompt Breakdown
High-Quality Prompt Characteristics
linter-writerbrief namedpkg/linters/largefuncas the convention to follow, the analyzer name, the URL, and the Doc wording. That subagent finished in 1 min 54 s, and its own summary matched the brief item for item.EvalsSummarySharedJobLogLocationfor "two evals jobs resolve to the same log file").Example High-Quality Prompt (paraphrased from the transcript):
Low-Quality Prompt Characteristics
make agent-report-progresswithout saying how to resolveBASE_REFin a shallow checkout, so the agent spent 2 turns finding the workaround.todosSQL columns, and 2 of its 5sqlcalls failed before it readPRAGMA table_info.Example Low-Quality Prompt:
(This gives no
BASE_REF, ignores the shallow checkout, and assumesgolangci-lintcan be installed.)Orphaned Branch Escalation Alerts 🚨
Summary
Escalation Candidate Details
Escalation Candidates
✅ No orphaned branches exceed the escalation threshold today. At 07:14 UTC there was 1 in-progress run in the last 6 hours, and it was on
main. No open PR branch had any active gate.CI Waste Estimate
Notable Observations
Loop Detection and Session Diagnostics
Loop Detection
make golint-customwithread_bash(delay 120 s), which was waiting rather than looping.Tool Usage
bash71,view11,sql5,task3,read_bash3,edit2,skill/glob/create1 each (98 total, 78 turns)sql, 1edit"No match found"); 89.8% effective once the 7 hidden non-zero bash exits are countedmake fmttook 78 s, andgolint-customtook about 4.5 min of polling.golangci-lintcould not be installed. The run filed areport_missing_datafor a cache-memory miss on its first run ofproposed-linters.json.Context Issues
todostable schemaBASE_REFto use in a shallow cloneCI Gate Health (per workflow, a standing metric)
mainpassed at 01:47, 02:46, and 04:20 UTC today, so the "red on main since 10-29" streak has ended.mainwent red again from 05:48 UTC, at the current HEADf37d3b9, on a different test:TestPortfolioAnalystAvoidsInvalidSentryAggregations. Becausemainruns only impacted tests, its green runs don't prove audit: count only the audited attempt's evals invocations, once each, in the evals summary #73886's failing test was harmless. I couldn't re-run that test here because the sandbox firewall blocks the Go toolchain download.Squad implementrun fired at 06:04 oncopilot/support-claude-on-vertex-ai, the branch of Support Claude on Vertex AI with GCP WIF #72273, which was closed without merging. It was skipped and cost about 1 s.Experimental Analysis
Standard analysis only, with no experimental strategy this run (roll 53 ≥ 30).
Actionable Recommendations
For Users Writing Task Descriptions
Ask for a named regression test in each review comment: every audit: count only the audited attempt's evals invocations, once each, in the evals summary #73886 fix that named a test merged cleanly.
Give validation commands that work in a shallow checkout: say which
BASE_REFto use, or name the narrower check you actually want.go test ./pkg/linters/...andgo build -o /tmp/linters ./cmd/linters" rather than "Runmake agent-report-progress".Say where build output should go: always pass
-o /tmp/...when buildingcmd/linters.go build -o /tmp/gh-aw/agent/linters ./cmd/lintersrather thango build ./cmd/linters.For System Improvements
Route subagent models too, not just the main agent: Linter Miner's agent definitions still set
claude-sonnet-5.5as the default. Pricing those 20 subagent requests at Luna's per-request rate would bring the run from about 37 to about 12.5 AIU (−66%). That is a projection only; subagent output quality on the cheaper model hasn't been tested.Remove the tracked
lintersbinary from the repo root: it is a 12.3 MB ELF onmain, rewritten by 3 linter PRs since July. Find out why it is tracked, thengit rm --cachedit and ignore it.Make the final validation gate pass in agent sandboxes: have
agent-report-progressfall back to a usableBASE_REFwhen merge-base can't be resolved. Also make suregolangci-lintand thefmt-cjsdependencies are available in the sandbox, or skip those steps explicitly.Don't merge over a red CGO: this has happened 2 days in a row (audit: report failed continue-on-error evals/detection engine steps and add an evals summary #73556, audit: count only the audited attempt's evals invocations, once each, in the evals summary #73886). Consider making CGO
impacted-go-testsa required check, or adding a Squad/merge guard.Don't run Squad implement on closed PRs: it fired on the branch of closed-unmerged Support Claude on Vertex AI with GCP WIF #72273.
For Tool Development
Transcripts for coding-agent sessions: none of today's 3
Addressing commentsessions produced a transcript. Coverage fell from 15/50 to 1/50.Show the SQL
todosschema in the tool description: this would avoid failed INSERTs from guessing columns.Make
tool.execution_completereport a non-zero exit assuccess=false(hidden_shell_failure_masking, first seen 10-29)Historical Trends and Statistical Summary
Trends Over Time
Statistical Summary
Next Steps
lintersbinary is tracked, then untrack itagent-report-progressfor shallow checkouts and sandbox lint installsimpacted-go-testsshould block mergesAnalysis generated automatically on 2026-11-02 at 07:30 UTC
Run ID: 41402196393
Workflow: Copilot Session Insights
All reactions