From d95b435797b7bb8f2bf409f3ba55d2248a4211ac Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sun, 5 Jul 2026 20:39:01 +0000
Subject: [PATCH 1/2] Initial plan
From 9297007829eae9c0525e347c55684d2b5008b441 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sun, 5 Jul 2026 20:52:40 +0000
Subject: [PATCH 2/2] Optimize ambient context: trim copilot-agent-analysis and
daily-code-metrics
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- copilot-agent-analysis.md: remove duplicate body-level jq examples
(already covered by shared/copilot-pr-analysis-base.md)
- copilot-agent-analysis.md: gate cold-start historical rebuild behind
optional runtime-import (shared/copilot-agent-analysis-history.md)
- copilot-agent-analysis.md: remove duplicated §4.2.1 rebuild section
(now lives in the new shared file)
- copilot-agent-analysis.md: trim verbose A/B structured-variant template
(remove verbose Agent Task Texts instructions and brevity guidelines)
- shared/copilot-pr-analysis-base.md: remove jqschema/SKILL.md import
(~992 chars; data is at a known path with a schema file)
- daily-code-metrics.md: remove redundant DPI/grid settings already
covered by python-dataviz.md import
- New: shared/copilot-agent-analysis-history.md for optional cold-start import
Total character savings: ~4,670 chars in copilot-agent-analysis.md (28%)
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
---
.../workflows/copilot-agent-analysis.lock.yml | 20 ++-
.github/workflows/copilot-agent-analysis.md | 117 +-----------------
.../copilot-pr-merged-report.lock.yml | 16 ++-
.../copilot-pr-nlp-analysis.lock.yml | 20 ++-
.../copilot-pr-prompt-analysis.lock.yml | 20 ++-
.github/workflows/daily-code-metrics.lock.yml | 2 +-
.github/workflows/daily-code-metrics.md | 2 +-
.../shared/copilot-agent-analysis-history.md | 35 ++++++
.../shared/copilot-pr-analysis-base.md | 1 -
9 files changed, 75 insertions(+), 158 deletions(-)
create mode 100644 .github/workflows/shared/copilot-agent-analysis-history.md
diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml
index c2ab198e59d..0f6d7e02482 100644
--- a/.github/workflows/copilot-agent-analysis.lock.yml
+++ b/.github/workflows/copilot-agent-analysis.lock.yml
@@ -1,4 +1,4 @@
-# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"68f6e9aeb26dfdb6adc17f56f7708542d7fcd7c82213403af48e51798ef60122","body_hash":"9033e03c37ae48fe2aedd54956cf55d9e6843e187519eb2695a999f2e7d3823c","strict":true,"agent_id":"claude","engine_versions":{"claude":"2.1.201"}}
+# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"a6f346986eb045cda1ba0a2ab4ea120a4eac5ca099f5f1e533df9a80e9c769ba","body_hash":"d7692575bdc52a1af37f1ec5ff615a1677044cc567d6ff55e6ecce431039a884","strict":true,"agent_id":"claude","engine_versions":{"claude":"2.1.201"}}
# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_GRAFANA_AUTHORIZATION","GH_AW_OTEL_GRAFANA_ENDPOINT","GH_AW_OTEL_SENTRY_AUTHORIZATION","GH_AW_OTEL_SENTRY_ENDPOINT","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/cache/save","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.22","digest":"sha256:55f06588411008b7148eb64b8dfe28602a0cce3675b36c6b190b54aca138468e","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.22@sha256:55f06588411008b7148eb64b8dfe28602a0cce3675b36c6b190b54aca138468e"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.22","digest":"sha256:afb9ff9140b17d38871dfb9dbac5ff8689ea634c2f91c435da2825192d4881c1","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.22@sha256:afb9ff9140b17d38871dfb9dbac5ff8689ea634c2f91c435da2825192d4881c1"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.22","digest":"sha256:e23e1604241f579b418e6522d938285b57ada31bc27742a65c90ee2250b1755c","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.22@sha256:e23e1604241f579b418e6522d938285b57ada31bc27742a65c90ee2250b1755c"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.22","digest":"sha256:3cdcc1e2b4b4fe602ba69fd3e21aac7ac512d5c1fce24df4ce69dc4f98164b59","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.22@sha256:3cdcc1e2b4b4fe602ba69fd3e21aac7ac512d5c1fce24df4ce69dc4f98164b59"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.33","digest":"sha256:f0e1f1d562f01e737f3ef125cb4d7057ff87a68a97927f5ea9fd6d3f5091da06","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.33@sha256:f0e1f1d562f01e737f3ef125cb4d7057ff87a68a97927f5ea9fd6d3f5091da06"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b","pinned_image":"ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b"},{"image":"ghcr.io/github/github-mcp-server:v1.5.0","digest":"sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4","pinned_image":"ghcr.io/github/github-mcp-server:v1.5.0@sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4"}]}
# This file was automatically generated by gh-aw. DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
#
@@ -27,7 +27,6 @@
#
# Resolved workflow manifest:
# Imports:
-# - ../skills/jqschema/SKILL.md
# - shared/copilot-pr-data-fetch.md
# - shared/daily-audit-discussion.md
# - shared/otlp.md
@@ -308,22 +307,22 @@ jobs:
run: |
bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh"
{
- cat << 'GH_AW_PROMPT_b6e769305882d969_EOF'
+ cat << 'GH_AW_PROMPT_0886d0284d62238a_EOF'
- GH_AW_PROMPT_b6e769305882d969_EOF
+ GH_AW_PROMPT_0886d0284d62238a_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md"
- cat << 'GH_AW_PROMPT_b6e769305882d969_EOF'
+ cat << 'GH_AW_PROMPT_0886d0284d62238a_EOF'
Tools: create_discussion, missing_tool, missing_data, noop
- GH_AW_PROMPT_b6e769305882d969_EOF
+ GH_AW_PROMPT_0886d0284d62238a_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md"
- cat << 'GH_AW_PROMPT_b6e769305882d969_EOF'
+ cat << 'GH_AW_PROMPT_0886d0284d62238a_EOF'
The following GitHub context information is available for this workflow:
{{#if github.actor}}
@@ -352,18 +351,17 @@ jobs:
{{/if}}
- GH_AW_PROMPT_b6e769305882d969_EOF
+ GH_AW_PROMPT_0886d0284d62238a_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/cli_proxy_with_safeoutputs_prompt.md"
- cat << 'GH_AW_PROMPT_b6e769305882d969_EOF'
+ cat << 'GH_AW_PROMPT_0886d0284d62238a_EOF'
{{#runtime-import .github/workflows/shared/copilot-pr-analysis-base.md}}
{{#runtime-import .github/workflows/shared/otlp.md}}
{{#runtime-import .github/workflows/shared/reporting.md}}
- {{#runtime-import .github/skills/jqschema/SKILL.md}}
{{#runtime-import .github/workflows/shared/copilot-pr-data-fetch.md}}
{{#runtime-import .github/workflows/shared/noop-reminder.md}}
{{#runtime-import .github/workflows/copilot-agent-analysis.md}}
- GH_AW_PROMPT_b6e769305882d969_EOF
+ GH_AW_PROMPT_0886d0284d62238a_EOF
} > "$GH_AW_PROMPT"
- name: Interpolate variables and render templates
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
diff --git a/.github/workflows/copilot-agent-analysis.md b/.github/workflows/copilot-agent-analysis.md
index 1794ae28a8d..255941d96b1 100644
--- a/.github/workflows/copilot-agent-analysis.md
+++ b/.github/workflows/copilot-agent-analysis.md
@@ -85,19 +85,6 @@ Daily analysis of pull requests created by copilot-swe-agent in the last 24 hour
- `/tmp/gh-aw/agent/pr-data/copilot-prs.json` - Full PR data in JSON format
- `/tmp/gh-aw/agent/pr-data/copilot-prs-schema.json` - Schema showing the structure
-You can use `jq` to process this data directly. For example:
-```bash
-# Get PRs from the last 24 hours
-TODAY="$(date -d '24 hours ago' '+%Y-%m-%dT%H:%M:%SZ' 2>/dev/null || date -v-24H '+%Y-%m-%dT%H:%M:%SZ')"
-jq --arg today "$TODAY" '[.[] | select(.createdAt >= $today)]' /tmp/gh-aw/agent/pr-data/copilot-prs.json
-
-# Count total PRs
-jq 'length' /tmp/gh-aw/agent/pr-data/copilot-prs.json
-
-# Get PR numbers for the last 24 hours
-jq --arg today "$TODAY" '[.[] | select(.createdAt >= $today) | .number]' /tmp/gh-aw/agent/pr-data/copilot-prs.json
-```
-
**Alternative Approaches** (if you need additional data not in the pre-fetched file): Use `gh pr list --search "head:copilot/"` with `--state all` or `list_pull_requests` filtered by `user.login == "app/github-copilot"` or branch prefix `copilot/`.
### Phase 2: Analyze Each PR
@@ -175,23 +162,7 @@ The history file should contain daily metrics in this format:
**If Historical Data is Missing or Incomplete:**
-If the history file doesn't exist or has gaps in the data, rebuild it by querying historical PRs:
-
-1. **Determine Missing Date Range**: Identify which dates need data (up to last 3 days maximum for concise trends)
-
-2. **Query PRs One Day at a Time**: To avoid context explosion, query PRs for each missing day separately
-
-3. **Process Each Day**: For each day with missing data:
- - Query PRs created on that specific date
- - Calculate the same metrics as for today (total PRs, merged, closed, success rate, etc.)
- - Store in the history file
- - Limit to 3 days total to keep reports concise
-
-4. **Simplified Approach**:
- - Process one day at a time in chronological order (oldest to newest)
- - Save after each day to preserve progress
- - **Stop at 3 days** - this is sufficient for concise trend analysis
- - Prioritize most recent days first
+{{#runtime-import? shared/copilot-agent-analysis-history.md}}
#### 4.2 Store Today's Metrics
@@ -211,42 +182,6 @@ mkdir -p /tmp/gh-aw/repo-memory/default/copilot-agent-metrics/
Store the data in JSON format with proper structure.
-#### 4.2.1 Rebuild Historical Data (if needed)
-
-**When to Rebuild:**
-- History file doesn't exist
-- History file has gaps (missing dates in the last 3 days)
-- Insufficient data for trend analysis (< 3 days)
-
-**Rebuilding Strategy:**
-1. **Assess Current State**: Check how many days of data you have
-2. **Target Collection**: Aim for 3 days maximum (for concise trends)
-3. **One Day at a Time**: Query PRs for each missing date separately to avoid context explosion
-
-**For Each Missing Day:**
-```
-# Query PRs for specific date using keyword search
-repo:${{ github.repository }} is:pr "START COPILOT CODING AGENT" created:YYYY-MM-DD..YYYY-MM-DD
-```
-
-Or use `list_pull_requests` with date filtering and filter results by agent criteria (see `agent_prs_total` in scratchpad/metrics-glossary.md for scope).
-
-**Process:**
-- Start with the oldest missing date in your target range (maximum 3 days ago)
-- For each date:
- 1. Search for PRs created on that date
- 2. Analyze each PR (same as Phase 2)
- 3. Calculate daily metrics (same as Phase 4.2)
- 4. Add to history.json
- 5. Save immediately to preserve progress
-- Stop at 3 days total
-
-**Important Constraints:**
-- Process dates in chronological order (oldest first)
-- Save after processing each day
-- **Maximum 3 days** of historical data for concise reporting
-- Prioritize data quality over quantity
-
#### 4.4 Analyze Trends
**Concise Trend Analysis** - If historical data exists (at least 3 days), show:
@@ -302,67 +237,23 @@ _Generated by Copilot Agent Analysis (Run: [run_id])_
Agent Task Texts
-[Show this table for all PRs created in the last 24 hours - extract task text from PR body]
-
| PR # | Status | Task Text (first 100 chars) |
|------|--------|----------------------------|
-| [#number]([url]) | [status] | [First 100 characters of PR body/task description...] |
+| [#number]([url]) | [Merged/Closed/Open] | [PR body truncated to 100 chars, or "No description provided"] |
Notable PRs
-[Only list if there are failures, closures, or issues - otherwise omit this section]
-
-**Issues ⚠️**
-- **PR #[number]**: [title] - [brief reason for failure/closure]
-
-**Open PRs ⏳**
-[Only list if open for >24 hours]
-- **PR #[number]**: [title] - [age]
+[Only if failures, closures, or PRs open >24h — otherwise omit]
**Key Insights**
-[1-2 bullet points only, focus on actionable items or notable observations]
+[1-2 bullets max — omit if nothing notable]
```
-
-**Agent Task Texts Table Instructions:**
-
-The "Agent Task Texts" section should include a table showing all PRs created in the last 24 hours with their task text:
-
-1. **For each PR created in the last 24 hours:**
- - Extract the PR number and URL
- - Determine the status (Merged, Closed, or Open)
- - Extract the task text from the PR's `body` field (this is the original task description)
- - Truncate the task text to the first 100 characters for display in the table
- - If the body is empty or null, show "No description provided"
-
-2. **Table Format:**
- ```markdown
- | PR # | Status | Task Text (first 100 chars) |
- |------|--------|----------------------------|
- | [#123](https://github.com/owner/repo/pull/123) | Merged | Fix the login validation to handle edge cases where users enter special char... |
- | [#124](https://github.com/owner/repo/pull/124) | Open | Implement new feature for exporting reports in CSV format with proper heade... |
- ```
-
-3. **Status Values:**
- - "Merged" - PR was successfully merged
- - "Closed" - PR was closed without merging
- - "Open" - PR is still open
-
-4. **If no PRs in last 24 hours:**
- - Omit the "Agent Task Texts" section entirely
-
-**Important Brevity Guidelines:**
-- **Skip the "PR Summary Table"** - use simple 3-day metrics table instead
-- **Omit "Detailed PR Analysis"** section - only show notable PRs with issues
-- **Skip "Weekly Summary"** and **"Monthly Summary"** sections - use 3-day trend only
-- **Remove "Instruction File Changes"** section entirely
-- **Eliminate "Recommendations"** section - fold into "Key Insights" (1-2 bullets max)
-- **Remove verbose methodology** and historical context sections
{{/if}}
{{#if experiments.output_format == 'prose' }}
**Prose Variant Body Template**:
diff --git a/.github/workflows/copilot-pr-merged-report.lock.yml b/.github/workflows/copilot-pr-merged-report.lock.yml
index a0fa46bd343..0892a91df04 100644
--- a/.github/workflows/copilot-pr-merged-report.lock.yml
+++ b/.github/workflows/copilot-pr-merged-report.lock.yml
@@ -1,4 +1,4 @@
-# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"29b7910ac6a8feb3e0b7f0ef91120c66a99d433ba3e13ce658c3ecaeaa47ec90","body_hash":"a8dcde067c3d2afbf83bbc849b0da59f5377251a6304dc49c5ab24c3404e04ac","agent_id":"copilot","engine_versions":{"copilot":"1.0.68","copilot-sdk":"1.0.5"}}
+# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"3012ac02be68153bec2e7e94ee5d75190f2689a75df5e23c8d019b6db2a17ed5","body_hash":"a8dcde067c3d2afbf83bbc849b0da59f5377251a6304dc49c5ab24c3404e04ac","agent_id":"copilot","engine_versions":{"copilot":"1.0.68","copilot-sdk":"1.0.5"}}
# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_GRAFANA_AUTHORIZATION","GH_AW_OTEL_GRAFANA_ENDPOINT","GH_AW_OTEL_SENTRY_AUTHORIZATION","GH_AW_OTEL_SENTRY_ENDPOINT","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/cache/save","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.22","digest":"sha256:55f06588411008b7148eb64b8dfe28602a0cce3675b36c6b190b54aca138468e","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.22@sha256:55f06588411008b7148eb64b8dfe28602a0cce3675b36c6b190b54aca138468e"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.22","digest":"sha256:afb9ff9140b17d38871dfb9dbac5ff8689ea634c2f91c435da2825192d4881c1","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.22@sha256:afb9ff9140b17d38871dfb9dbac5ff8689ea634c2f91c435da2825192d4881c1"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.22","digest":"sha256:3cdcc1e2b4b4fe602ba69fd3e21aac7ac512d5c1fce24df4ce69dc4f98164b59","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.22@sha256:3cdcc1e2b4b4fe602ba69fd3e21aac7ac512d5c1fce24df4ce69dc4f98164b59"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.33","digest":"sha256:f0e1f1d562f01e737f3ef125cb4d7057ff87a68a97927f5ea9fd6d3f5091da06","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.33@sha256:f0e1f1d562f01e737f3ef125cb4d7057ff87a68a97927f5ea9fd6d3f5091da06"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b","pinned_image":"ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b"}]}
# This file was automatically generated by gh-aw. DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
#
@@ -27,7 +27,6 @@
#
# Resolved workflow manifest:
# Imports:
-# - ../skills/jqschema/SKILL.md
# - shared/copilot-pr-data-fetch.md
# - shared/daily-audit-discussion.md
# - shared/gh.md
@@ -258,31 +257,30 @@ jobs:
run: |
bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh"
{
- cat << 'GH_AW_PROMPT_380a9420830ddf34_EOF'
+ cat << 'GH_AW_PROMPT_e1cc9d54a27d4f2b_EOF'
- GH_AW_PROMPT_380a9420830ddf34_EOF
+ GH_AW_PROMPT_e1cc9d54a27d4f2b_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md"
- cat << 'GH_AW_PROMPT_380a9420830ddf34_EOF'
+ cat << 'GH_AW_PROMPT_e1cc9d54a27d4f2b_EOF'
Tools: create_discussion, missing_tool, missing_data, noop
- GH_AW_PROMPT_380a9420830ddf34_EOF
+ GH_AW_PROMPT_e1cc9d54a27d4f2b_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md"
- cat << 'GH_AW_PROMPT_380a9420830ddf34_EOF'
+ cat << 'GH_AW_PROMPT_e1cc9d54a27d4f2b_EOF'
{{#runtime-import .github/workflows/shared/reporting.md}}
{{#runtime-import .github/workflows/shared/gh.md}}
{{#runtime-import .github/workflows/shared/copilot-pr-analysis-base.md}}
{{#runtime-import .github/workflows/shared/otlp.md}}
- {{#runtime-import .github/skills/jqschema/SKILL.md}}
{{#runtime-import .github/workflows/shared/copilot-pr-data-fetch.md}}
{{#runtime-import .github/workflows/shared/noop-reminder.md}}
{{#runtime-import .github/workflows/copilot-pr-merged-report.md}}
- GH_AW_PROMPT_380a9420830ddf34_EOF
+ GH_AW_PROMPT_e1cc9d54a27d4f2b_EOF
} > "$GH_AW_PROMPT"
- name: Interpolate variables and render templates
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
diff --git a/.github/workflows/copilot-pr-nlp-analysis.lock.yml b/.github/workflows/copilot-pr-nlp-analysis.lock.yml
index f1e7956d938..fdd01a40e0a 100644
--- a/.github/workflows/copilot-pr-nlp-analysis.lock.yml
+++ b/.github/workflows/copilot-pr-nlp-analysis.lock.yml
@@ -1,4 +1,4 @@
-# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"defafff3b55866623c547f983d3af3c2332b3298077ea038be2d7c1cc8f7f8bf","body_hash":"3d02d2a2b593f1ef50b98d5f64a5f7f03e09fab3aac0a72bd2815dcb17e1e255","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.68","copilot-sdk":"1.0.5"}}
+# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"e361a54234f9e707dfc3b86e7ed8ce9087ba4eec4250c10bea32325c9b89ff97","body_hash":"3d02d2a2b593f1ef50b98d5f64a5f7f03e09fab3aac0a72bd2815dcb17e1e255","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.68","copilot-sdk":"1.0.5"}}
# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_GRAFANA_AUTHORIZATION","GH_AW_OTEL_GRAFANA_ENDPOINT","GH_AW_OTEL_SENTRY_AUTHORIZATION","GH_AW_OTEL_SENTRY_ENDPOINT","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/cache/save","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-python","sha":"ece7cb06caefa5fff74198d8649806c4678c61a1","version":"v6.3.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.22","digest":"sha256:55f06588411008b7148eb64b8dfe28602a0cce3675b36c6b190b54aca138468e","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.22@sha256:55f06588411008b7148eb64b8dfe28602a0cce3675b36c6b190b54aca138468e"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.22","digest":"sha256:afb9ff9140b17d38871dfb9dbac5ff8689ea634c2f91c435da2825192d4881c1","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.22@sha256:afb9ff9140b17d38871dfb9dbac5ff8689ea634c2f91c435da2825192d4881c1"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.22","digest":"sha256:3cdcc1e2b4b4fe602ba69fd3e21aac7ac512d5c1fce24df4ce69dc4f98164b59","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.22@sha256:3cdcc1e2b4b4fe602ba69fd3e21aac7ac512d5c1fce24df4ce69dc4f98164b59"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.33","digest":"sha256:f0e1f1d562f01e737f3ef125cb4d7057ff87a68a97927f5ea9fd6d3f5091da06","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.33@sha256:f0e1f1d562f01e737f3ef125cb4d7057ff87a68a97927f5ea9fd6d3f5091da06"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b","pinned_image":"ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b"},{"image":"ghcr.io/github/github-mcp-server:v1.5.0","digest":"sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4","pinned_image":"ghcr.io/github/github-mcp-server:v1.5.0@sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4"}]}
# This file was automatically generated by gh-aw. DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
#
@@ -27,7 +27,6 @@
#
# Resolved workflow manifest:
# Imports:
-# - ../skills/jqschema/SKILL.md
# - shared/copilot-pr-data-fetch.md
# - shared/daily-audit-discussion.md
# - shared/otlp.md
@@ -265,24 +264,24 @@ jobs:
run: |
bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh"
{
- cat << 'GH_AW_PROMPT_3eedca19303c1282_EOF'
+ cat << 'GH_AW_PROMPT_f419860becb44fcf_EOF'
- GH_AW_PROMPT_3eedca19303c1282_EOF
+ GH_AW_PROMPT_f419860becb44fcf_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md"
- cat << 'GH_AW_PROMPT_3eedca19303c1282_EOF'
+ cat << 'GH_AW_PROMPT_f419860becb44fcf_EOF'
Tools: create_discussion, upload_asset(max:5), missing_tool, missing_data, noop
upload_asset: provide a file path; returns a URL; assets are published after the workflow completes (safeoutputs).
- GH_AW_PROMPT_3eedca19303c1282_EOF
+ GH_AW_PROMPT_f419860becb44fcf_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md"
- cat << 'GH_AW_PROMPT_3eedca19303c1282_EOF'
+ cat << 'GH_AW_PROMPT_f419860becb44fcf_EOF'
The following GitHub context information is available for this workflow:
{{#if github.actor}}
@@ -311,20 +310,19 @@ jobs:
{{/if}}
- GH_AW_PROMPT_3eedca19303c1282_EOF
+ GH_AW_PROMPT_f419860becb44fcf_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md"
- cat << 'GH_AW_PROMPT_3eedca19303c1282_EOF'
+ cat << 'GH_AW_PROMPT_f419860becb44fcf_EOF'
{{#runtime-import .github/workflows/shared/copilot-pr-analysis-base.md}}
{{#runtime-import .github/workflows/shared/python-dataviz.md}}
{{#runtime-import .github/workflows/shared/python-nlp.md}}
{{#runtime-import .github/workflows/shared/reporting.md}}
{{#runtime-import .github/workflows/shared/otlp.md}}
- {{#runtime-import .github/skills/jqschema/SKILL.md}}
{{#runtime-import .github/workflows/shared/copilot-pr-data-fetch.md}}
{{#runtime-import .github/workflows/shared/noop-reminder.md}}
{{#runtime-import .github/workflows/copilot-pr-nlp-analysis.md}}
- GH_AW_PROMPT_3eedca19303c1282_EOF
+ GH_AW_PROMPT_f419860becb44fcf_EOF
} > "$GH_AW_PROMPT"
- name: Interpolate variables and render templates
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
diff --git a/.github/workflows/copilot-pr-prompt-analysis.lock.yml b/.github/workflows/copilot-pr-prompt-analysis.lock.yml
index d1002da9ba3..eba51d9d25d 100644
--- a/.github/workflows/copilot-pr-prompt-analysis.lock.yml
+++ b/.github/workflows/copilot-pr-prompt-analysis.lock.yml
@@ -1,4 +1,4 @@
-# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"d3287767296f0d6762f13eb67b8009893e9371333256cd50aedecdd991949b35","body_hash":"e43a000bb8db4472b5f201be8284d41bec1dbdc2ec9bea730256be0a81719517","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.68","copilot-sdk":"1.0.5"}}
+# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"f38188badcec08369877304ea30b7b384d9e7c2c5bd8cd4183900fb70349a349","body_hash":"e43a000bb8db4472b5f201be8284d41bec1dbdc2ec9bea730256be0a81719517","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.68","copilot-sdk":"1.0.5"}}
# gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_GRAFANA_AUTHORIZATION","GH_AW_OTEL_GRAFANA_ENDPOINT","GH_AW_OTEL_SENTRY_AUTHORIZATION","GH_AW_OTEL_SENTRY_ENDPOINT","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/cache/save","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.22","digest":"sha256:55f06588411008b7148eb64b8dfe28602a0cce3675b36c6b190b54aca138468e","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.22@sha256:55f06588411008b7148eb64b8dfe28602a0cce3675b36c6b190b54aca138468e"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.22","digest":"sha256:afb9ff9140b17d38871dfb9dbac5ff8689ea634c2f91c435da2825192d4881c1","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.22@sha256:afb9ff9140b17d38871dfb9dbac5ff8689ea634c2f91c435da2825192d4881c1"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.22","digest":"sha256:3cdcc1e2b4b4fe602ba69fd3e21aac7ac512d5c1fce24df4ce69dc4f98164b59","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.22@sha256:3cdcc1e2b4b4fe602ba69fd3e21aac7ac512d5c1fce24df4ce69dc4f98164b59"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.33","digest":"sha256:f0e1f1d562f01e737f3ef125cb4d7057ff87a68a97927f5ea9fd6d3f5091da06","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.33@sha256:f0e1f1d562f01e737f3ef125cb4d7057ff87a68a97927f5ea9fd6d3f5091da06"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b","pinned_image":"ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b"},{"image":"ghcr.io/github/github-mcp-server:v1.5.0","digest":"sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4","pinned_image":"ghcr.io/github/github-mcp-server:v1.5.0@sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4"}]}
# This file was automatically generated by gh-aw. DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
#
@@ -27,7 +27,6 @@
#
# Resolved workflow manifest:
# Imports:
-# - ../skills/jqschema/SKILL.md
# - shared/copilot-pr-data-fetch.md
# - shared/daily-audit-discussion.md
# - shared/otlp.md
@@ -262,22 +261,22 @@ jobs:
run: |
bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh"
{
- cat << 'GH_AW_PROMPT_87405866dd40e3cc_EOF'
+ cat << 'GH_AW_PROMPT_51f425b38d4d9497_EOF'
- GH_AW_PROMPT_87405866dd40e3cc_EOF
+ GH_AW_PROMPT_51f425b38d4d9497_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/cache_memory_prompt.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/repo_memory_prompt.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md"
- cat << 'GH_AW_PROMPT_87405866dd40e3cc_EOF'
+ cat << 'GH_AW_PROMPT_51f425b38d4d9497_EOF'
Tools: create_discussion, missing_tool, missing_data, noop
- GH_AW_PROMPT_87405866dd40e3cc_EOF
+ GH_AW_PROMPT_51f425b38d4d9497_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md"
- cat << 'GH_AW_PROMPT_87405866dd40e3cc_EOF'
+ cat << 'GH_AW_PROMPT_51f425b38d4d9497_EOF'
The following GitHub context information is available for this workflow:
{{#if github.actor}}
@@ -306,18 +305,17 @@ jobs:
{{/if}}
- GH_AW_PROMPT_87405866dd40e3cc_EOF
+ GH_AW_PROMPT_51f425b38d4d9497_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md"
- cat << 'GH_AW_PROMPT_87405866dd40e3cc_EOF'
+ cat << 'GH_AW_PROMPT_51f425b38d4d9497_EOF'
{{#runtime-import .github/workflows/shared/copilot-pr-analysis-base.md}}
{{#runtime-import .github/workflows/shared/otlp.md}}
{{#runtime-import .github/workflows/shared/reporting.md}}
- {{#runtime-import .github/skills/jqschema/SKILL.md}}
{{#runtime-import .github/workflows/shared/copilot-pr-data-fetch.md}}
{{#runtime-import .github/workflows/shared/noop-reminder.md}}
{{#runtime-import .github/workflows/copilot-pr-prompt-analysis.md}}
- GH_AW_PROMPT_87405866dd40e3cc_EOF
+ GH_AW_PROMPT_51f425b38d4d9497_EOF
} > "$GH_AW_PROMPT"
- name: Interpolate variables and render templates
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
diff --git a/.github/workflows/daily-code-metrics.lock.yml b/.github/workflows/daily-code-metrics.lock.yml
index d7e79a176a7..9a7493ff4e6 100644
--- a/.github/workflows/daily-code-metrics.lock.yml
+++ b/.github/workflows/daily-code-metrics.lock.yml
@@ -1,4 +1,4 @@
-# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"d691a55ef0a9645228b9549173d31b3fce6c9402c402dbe1af861c62733536ab","body_hash":"cf950410e9c28d79dfc4a64e86ca155ad7ccb14377f196c335506cd50a95aff3","strict":true,"agent_id":"claude","engine_versions":{"claude":"2.1.201"}}
+# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"d691a55ef0a9645228b9549173d31b3fce6c9402c402dbe1af861c62733536ab","body_hash":"e3ca02025bcee33907a2a96a726ed922d8b6d44c05a22d216564acdf6f48e0a6","strict":true,"agent_id":"claude","engine_versions":{"claude":"2.1.201"}}
# gh-aw-manifest: {"version":1,"secrets":["ANTHROPIC_API_KEY","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GH_AW_OTEL_GRAFANA_AUTHORIZATION","GH_AW_OTEL_GRAFANA_ENDPOINT","GH_AW_OTEL_SENTRY_AUTHORIZATION","GH_AW_OTEL_SENTRY_ENDPOINT","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/cache/save","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/setup-python","sha":"ece7cb06caefa5fff74198d8649806c4678c61a1","version":"v6.3.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.22","digest":"sha256:55f06588411008b7148eb64b8dfe28602a0cce3675b36c6b190b54aca138468e","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.22@sha256:55f06588411008b7148eb64b8dfe28602a0cce3675b36c6b190b54aca138468e"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.22","digest":"sha256:afb9ff9140b17d38871dfb9dbac5ff8689ea634c2f91c435da2825192d4881c1","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.22@sha256:afb9ff9140b17d38871dfb9dbac5ff8689ea634c2f91c435da2825192d4881c1"},{"image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.22","digest":"sha256:e23e1604241f579b418e6522d938285b57ada31bc27742a65c90ee2250b1755c","pinned_image":"ghcr.io/github/gh-aw-firewall/cli-proxy:0.27.22@sha256:e23e1604241f579b418e6522d938285b57ada31bc27742a65c90ee2250b1755c"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.22","digest":"sha256:3cdcc1e2b4b4fe602ba69fd3e21aac7ac512d5c1fce24df4ce69dc4f98164b59","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.22@sha256:3cdcc1e2b4b4fe602ba69fd3e21aac7ac512d5c1fce24df4ce69dc4f98164b59"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.33","digest":"sha256:f0e1f1d562f01e737f3ef125cb4d7057ff87a68a97927f5ea9fd6d3f5091da06","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.33@sha256:f0e1f1d562f01e737f3ef125cb4d7057ff87a68a97927f5ea9fd6d3f5091da06"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b","pinned_image":"ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b"},{"image":"ghcr.io/github/github-mcp-server:v1.5.0","digest":"sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4","pinned_image":"ghcr.io/github/github-mcp-server:v1.5.0@sha256:e25564dccc9110a70a77b9df560cbde11aa392fcb5f08b9abe5c4ebc6d146ea4"}]}
# This file was automatically generated by gh-aw. DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
#
diff --git a/.github/workflows/daily-code-metrics.md b/.github/workflows/daily-code-metrics.md
index 0eab49a3f93..557522ccfc4 100644
--- a/.github/workflows/daily-code-metrics.md
+++ b/.github/workflows/daily-code-metrics.md
@@ -152,7 +152,7 @@ All charts save to `/tmp/gh-aw/python/charts/`.
### Python Script
-Use `figsize=(12, 7)`, DPI 300, `ax.grid(True, alpha=0.3)` (see `python-dataviz.md` for full chart setup and upload pattern). Create a script that:
+Use `figsize=(12, 7)` (see `python-dataviz.md` for full chart setup and upload pattern). Create a script that:
1. Reads variant from `GH_AW_EXPERIMENTS_OUTPUT_FORMAT`
2. Loads historical data from `/tmp/gh-aw/repo-memory/default/history.jsonl` and current metrics from `/tmp/gh-aw/python/data/current_metrics.json`
diff --git a/.github/workflows/shared/copilot-agent-analysis-history.md b/.github/workflows/shared/copilot-agent-analysis-history.md
new file mode 100644
index 00000000000..5687b870d6f
--- /dev/null
+++ b/.github/workflows/shared/copilot-agent-analysis-history.md
@@ -0,0 +1,35 @@
+## Historical Data Cold-Start Rebuild
+
+**When to Rebuild:**
+- History file doesn't exist
+- History file has gaps (missing dates in the last 3 days)
+- Insufficient data for trend analysis (< 3 days)
+
+**Rebuilding Strategy:**
+1. **Assess Current State**: Check how many days of data you have
+2. **Target Collection**: Aim for 3 days maximum (for concise trends)
+3. **One Day at a Time**: Query PRs for each missing date separately to avoid context explosion
+
+**For Each Missing Day:**
+```
+# Query PRs for specific date using keyword search
+repo:${{ github.repository }} is:pr "START COPILOT CODING AGENT" created:YYYY-MM-DD..YYYY-MM-DD
+```
+
+Or use `list_pull_requests` with date filtering and filter results by agent criteria (see `agent_prs_total` in scratchpad/metrics-glossary.md for scope).
+
+**Process:**
+- Start with the oldest missing date in your target range (maximum 3 days ago)
+- For each date:
+ 1. Search for PRs created on that date
+ 2. Analyze each PR (same as Phase 2)
+ 3. Calculate daily metrics (same as Phase 4.2)
+ 4. Add to history.json
+ 5. Save immediately to preserve progress
+- Stop at 3 days total
+
+**Important Constraints:**
+- Process dates in chronological order (oldest first)
+- Save after processing each day
+- **Maximum 3 days** of historical data for concise reporting
+- Prioritize data quality over quantity
diff --git a/.github/workflows/shared/copilot-pr-analysis-base.md b/.github/workflows/shared/copilot-pr-analysis-base.md
index b5030e961fb..42cdec6c103 100644
--- a/.github/workflows/shared/copilot-pr-analysis-base.md
+++ b/.github/workflows/shared/copilot-pr-analysis-base.md
@@ -6,7 +6,6 @@ tools:
bash: ["*"]
imports:
- - ../skills/jqschema/SKILL.md
- shared/reporting.md
- shared/copilot-pr-data-fetch.md
---