Skip to content

Commit 29cdca9

Browse files
committed
shepherd-tasks-20260730-0204
1 parent 5fd7c65 commit 29cdca9

17 files changed

Lines changed: 26543 additions & 0 deletions
Lines changed: 215 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,215 @@
1+
# Post-Mortem Report: Shepherd Task Batch [#2144](https://github.com/github/copilot-sdk/issues/2144), [#2145](https://github.com/github/copilot-sdk/issues/2145), [#2146](https://github.com/github/copilot-sdk/issues/2146), [#2147](https://github.com/github/copilot-sdk/issues/2147), [#2148](https://github.com/github/copilot-sdk/issues/2148), [#2149](https://github.com/github/copilot-sdk/issues/2149), [#2150](https://github.com/github/copilot-sdk/issues/2150), [#2151](https://github.com/github/copilot-sdk/issues/2151)
2+
3+
**Campaign:** Java embed Rust CLI runtime shepherding (`shepherd-tasks-20260730-0156`)
4+
**Report generated:** 2026-07-30 02:00 (local)
5+
**Period covered:** 2026-07-30 01:56:50 -> 2026-07-30 02:00:02 (local)
6+
**Script exit code:** 0
7+
**Base branch:** `edburns/1917-java-embed-rust-cli-runtime-dd-3039145`
8+
9+
## Table of Contents
10+
11+
- [Section 1: Executive Summary](#section-1-executive-summary)
12+
- [Section 2: System Architecture](#section-2-system-architecture)
13+
- [2.1 Copilot Coding Agent (CCA)](#21-copilot-coding-agent-cca)
14+
- [2.2 Copilot Code Review Agent (CCRA)](#22-copilot-code-review-agent-ccra)
15+
- [2.3 Local Copilot CLI (Shepherd)](#23-local-copilot-cli-shepherd)
16+
- [Section 3: Per-Task Metrics](#section-3-per-task-metrics)
17+
- [Issue Legend](#issue-legend)
18+
- [3.1 — Issue #2144 / PR #2152](#31--issue-2144--pr-2152)
19+
- [3.2 — Issue #2145](#32--issue-2145)
20+
- [3.3 — Issue #2146](#33--issue-2146)
21+
- [3.4 — Issue #2147](#34--issue-2147)
22+
- [3.5 — Issue #2148](#35--issue-2148)
23+
- [3.6 — Issue #2149](#36--issue-2149)
24+
- [3.7 — Issue #2150](#37--issue-2150)
25+
- [3.8 — Issue #2151](#38--issue-2151)
26+
- [Section 4: Aggregate Statistics](#section-4-aggregate-statistics)
27+
- [Section 5: AI Credits and Token Usage](#section-5-ai-credits-and-token-usage)
28+
- [Section 6: Wall-Clock Timeline](#section-6-wall-clock-timeline)
29+
- [Section 7: Failure Analysis](#section-7-failure-analysis)
30+
- [Section 8: Observations and Recommendations](#section-8-observations-and-recommendations)
31+
32+
---
33+
34+
## Section 1: Executive Summary
35+
36+
The run completed one task end-to-end and then stopped, yielding partial campaign completion: [#2144](https://github.com/github/copilot-sdk/issues/2144) was merged via [#2152](https://github.com/github/copilot-sdk/pull/2152), while [#2145](https://github.com/github/copilot-sdk/issues/2145)-[#2151](https://github.com/github/copilot-sdk/issues/2151) had no phase artifacts in this run directory.
37+
38+
| Metric | Value |
39+
|--------|-------|
40+
| Target tasks | 8 ([#2144](https://github.com/github/copilot-sdk/issues/2144)-[#2151](https://github.com/github/copilot-sdk/issues/2151)) |
41+
| Tasks with completed phase 1 + phase 2 | 1/8 (12.5%) |
42+
| Merged PRs | 1 ([#2152](https://github.com/github/copilot-sdk/pull/2152)) |
43+
| Campaign elapsed (first start to final event) | ~3m 12s |
44+
| Phase 1 duration for completed task | 1m 13s |
45+
| Phase 2 duration for completed task | 1m 54s |
46+
| Total per-task duration ([#2144](https://github.com/github/copilot-sdk/issues/2144)) | 3m 07s |
47+
| Copilot review rounds observed (phase 2) | 1 |
48+
| Copilot review comments generated | 0 |
49+
| Idle markers in JSON logs | 2 (one in each phase session) |
50+
51+
---
52+
53+
## Section 2: System Architecture
54+
55+
### 2.1 Copilot Coding Agent (CCA)
56+
57+
CCA handled issue assignment-to-PR generation and produced draft PR [#2152](https://github.com/github/copilot-sdk/pull/2152) for task [#2144](https://github.com/github/copilot-sdk/issues/2144), targeting `edburns/1917-java-embed-rust-cli-runtime-dd-3039145`.
58+
59+
### 2.2 Copilot Code Review Agent (CCRA)
60+
61+
CCRA (`copilot-pull-request-reviewer[bot]`) posted a review entry indicating it was unable to review files for [#2152](https://github.com/github/copilot-sdk/pull/2152), resulting in zero actionable inline comments for the phase-2 fix loop.
62+
63+
### 2.3 Local Copilot CLI (Shepherd)
64+
65+
Local Copilot CLI orchestrated both skills (`from-assignment-to-ready`, then `from-ready-to-merged-to-base`), approved workflow gates, validated checks, adapted merge strategy (squash after merge-commit rejection), merged [#2152](https://github.com/github/copilot-sdk/pull/2152), and closed [#2144](https://github.com/github/copilot-sdk/issues/2144).
66+
67+
---
68+
69+
## Section 3: Per-Task Metrics
70+
71+
### Issue Legend
72+
73+
| Issue | PR | Notes |
74+
|------:|---:|-------|
75+
| [#2144](https://github.com/github/copilot-sdk/issues/2144) | [#2152](https://github.com/github/copilot-sdk/pull/2152) | Completed in this run; merged and issue closed |
76+
| [#2145](https://github.com/github/copilot-sdk/issues/2145) || No `phase1-task-*2145*` or `phase2-task-*2145*` artifact in this run directory |
77+
| [#2146](https://github.com/github/copilot-sdk/issues/2146) || No artifacts in this run directory |
78+
| [#2147](https://github.com/github/copilot-sdk/issues/2147) || No artifacts in this run directory |
79+
| [#2148](https://github.com/github/copilot-sdk/issues/2148) || No artifacts in this run directory |
80+
| [#2149](https://github.com/github/copilot-sdk/issues/2149) || No artifacts in this run directory |
81+
| [#2150](https://github.com/github/copilot-sdk/issues/2150) || No artifacts in this run directory |
82+
| [#2151](https://github.com/github/copilot-sdk/issues/2151) || No artifacts in this run directory |
83+
84+
### 3.1 — Issue [#2144](https://github.com/github/copilot-sdk/issues/2144) / PR [#2152](https://github.com/github/copilot-sdk/pull/2152)
85+
86+
| Metric | Value |
87+
|--------|-------|
88+
| Phase 1 session | `17b7a2f5-bf46-4ba8-b9a0-6f990aa14e48` |
89+
| Phase 1 start / duration | 01:56:50 / 1m 13s |
90+
| Phase 2 session | `1402e0e2-bfa1-4118-8169-1665f1f04b04` |
91+
| Phase 2 start / duration | 01:58:08 / 1m 54s |
92+
| Total duration | 3m 07s |
93+
| Review rounds | 1 |
94+
| Comments generated | 0 (`"Copilot wasn't able to review any files"`) |
95+
| Outcome | merged ([#2152](https://github.com/github/copilot-sdk/pull/2152)); issue closed ([#2144](https://github.com/github/copilot-sdk/issues/2144)) |
96+
97+
### 3.2 — Issue [#2145](https://github.com/github/copilot-sdk/issues/2145)
98+
99+
No phase artifacts were recorded for this issue in `shepherd-tasks-20260730-0156`.
100+
101+
### 3.3 — Issue [#2146](https://github.com/github/copilot-sdk/issues/2146)
102+
103+
No phase artifacts were recorded for this issue in `shepherd-tasks-20260730-0156`.
104+
105+
### 3.4 — Issue [#2147](https://github.com/github/copilot-sdk/issues/2147)
106+
107+
No phase artifacts were recorded for this issue in `shepherd-tasks-20260730-0156`.
108+
109+
### 3.5 — Issue [#2148](https://github.com/github/copilot-sdk/issues/2148)
110+
111+
No phase artifacts were recorded for this issue in `shepherd-tasks-20260730-0156`.
112+
113+
### 3.6 — Issue [#2149](https://github.com/github/copilot-sdk/issues/2149)
114+
115+
No phase artifacts were recorded for this issue in `shepherd-tasks-20260730-0156`.
116+
117+
### 3.7 — Issue [#2150](https://github.com/github/copilot-sdk/issues/2150)
118+
119+
No phase artifacts were recorded for this issue in `shepherd-tasks-20260730-0156`.
120+
121+
### 3.8 — Issue [#2151](https://github.com/github/copilot-sdk/issues/2151)
122+
123+
No phase artifacts were recorded for this issue in `shepherd-tasks-20260730-0156`.
124+
125+
---
126+
127+
## Section 4: Aggregate Statistics
128+
129+
| Metric | Value |
130+
|--------|-------|
131+
| Tasks targeted | 8 |
132+
| Tasks with observed execution artifacts | 1 |
133+
| PRs merged | 1 ([#2152](https://github.com/github/copilot-sdk/pull/2152)) |
134+
| Issues closed | 1 ([#2144](https://github.com/github/copilot-sdk/issues/2144)) |
135+
| Success rate (target issues closed in this run) | 12.5% |
136+
| Total phase sessions exported | 2 (phase 1 + phase 2 for [#2144](https://github.com/github/copilot-sdk/issues/2144)) |
137+
| Total CCRA rounds | 1 |
138+
| Total CCRA comments | 0 |
139+
| Avg comments/round | 0.00 |
140+
| Idle markers | 2 |
141+
142+
Convergence signal for the completed task was strong (single review round, zero fixes required), but campaign-level throughput was low because only one of eight issues progressed in this run directory.
143+
144+
---
145+
146+
## Section 5: AI Credits and Token Usage
147+
148+
| Scope | Input tokens | Output tokens |
149+
|-------|--------------|---------------|
150+
| Phase 1 JSON (`phase1-task-20260730-0156-2144.json`) | 0 | 2,934 |
151+
| Phase 2 JSON (`phase2-task-20260730-0158-2144.json`) | 0 | 3,629 |
152+
| Aggregate for run directory phase JSONs | 0 | 6,563 |
153+
154+
No explicit CCA/CCRA billing-credit totals were present in local artifacts. Token values above are measured from local Copilot CLI JSON event logs (`assistant.message.outputTokens`/`inputTokens` fields when present).
155+
156+
---
157+
158+
## Section 6: Wall-Clock Timeline
159+
160+
| Time (local) | Event | Evidence |
161+
|--------------|-------|----------|
162+
| 01:56:50 | Phase 1 started for [#2144](https://github.com/github/copilot-sdk/issues/2144) | `phase1-task-20260730-0156-2144.md` header |
163+
| 01:58:03-01:58:04 | Phase 1 completed; [#2152](https://github.com/github/copilot-sdk/pull/2152) ready for review handoff | `SHEPHERD COMPLETE` in phase-1 MD |
164+
| 01:58:08 | Phase 2 started for [#2144](https://github.com/github/copilot-sdk/issues/2144) | `phase2-task-20260730-0158-2144.md` header |
165+
| 01:58:xx | Reviewer-request API attempts failed with HTTP 422 for `copilot-pull-request-reviewer` collaborator check | phase-2 MD command output |
166+
| 01:59:xx | CCRA review result indicated no reviewable files / 0 comments | phase-2 MD review output |
167+
| 01:59:xx | Merge via `--merge` rejected; repository requires non-merge strategy | `mergePullRequest` error in phase-2 MD |
168+
| 01:59:xx | Merge retried with `--squash` succeeded for [#2152](https://github.com/github/copilot-sdk/pull/2152) | phase-2 MD merge command output |
169+
| 02:00:xx | [#2144](https://github.com/github/copilot-sdk/issues/2144) closed; phase 2 marked complete | `gh issue close` + `SHEPHERD COMPLETE` |
170+
171+
Overall run window observed in JSON timestamps: 01:56:52 -> 02:00:02 (~3m 11s).
172+
173+
---
174+
175+
## Section 7: Failure Analysis
176+
177+
Campaign-level failure mode was **incomplete batch execution** (1/8 issues executed in this run directory), despite `SCRIPT_EXIT_CODE=0`.
178+
179+
Observed signatures and handling:
180+
181+
1. Reviewer request failure:
182+
- `gh api ... requested_reviewers` returned HTTP 422 (`not a collaborator`) for `copilot-pull-request-reviewer`.
183+
- Impact: explicit reviewer request path failed; process still progressed because a bot review event appeared.
184+
2. Merge strategy mismatch:
185+
- `gh pr merge ... --merge` failed with `Merge commits are not allowed on this repository`.
186+
- Impact: resolved in-run by fallback to `gh pr merge ... --squash`.
187+
3. Session termination marker:
188+
- `Operation cancelled by user` appears at end of phase-2 export after successful merge/close messages.
189+
- Impact: may indicate interactive cancellation after essential steps completed; no evidence of additional task execution afterward in this run directory.
190+
191+
No timeout-based hard failure was observed in this run (no stalled polls; no nonzero tool execution records in phase JSON tool events).
192+
193+
---
194+
195+
## Section 8: Observations and Recommendations
196+
197+
### What worked
198+
199+
- End-to-end path for [#2144](https://github.com/github/copilot-sdk/issues/2144) converged quickly.
200+
- CI-gate approvals and checks completed cleanly.
201+
- Merge fallback (`--squash`) recovered from repository merge-policy rejection without manual intervention.
202+
203+
### What did not work
204+
205+
- Batch did not advance beyond the first issue in the provided task list.
206+
- Reviewer-request behavior is inconsistent with the configured reviewer identity and collaborator permissions.
207+
- Run-level observability is fragmented when only per-task phase artifacts exist without a unified batch log.
208+
209+
### Recommendations
210+
211+
1. Add an explicit post-task loop checkpoint in the shepherd driver script: after closing one issue, log and assert advancement to the next target issue ([#2145](https://github.com/github/copilot-sdk/issues/2145) here).
212+
2. Normalize review-request logic to a repository-supported path (or skip explicit request when bot auto-review is known to trigger), and treat HTTP 422 as a tracked warning with deterministic fallback.
213+
3. Detect repository merge policy before merge attempt and choose `--squash` up front when merge commits are disallowed.
214+
4. Emit a batch summary artifact listing each target issue and terminal status (`merged`, `failed`, `not-started`) to prevent ambiguity when exit code is zero.
215+
5. Capture a single top-level `*job-logs.txt` for each shepherd batch in the parent directory; none were present for this run.

0 commit comments

Comments
 (0)