diff --git a/.github/aw/agentic-chat.md b/.github/aw/agentic-chat.md index a336ea9aa9..79b1f92fc9 100644 --- a/.github/aw/agentic-chat.md +++ b/.github/aw/agentic-chat.md @@ -1,11 +1,11 @@ --- name: agentic-chat -description: AI assistant for creating clear, actionable task descriptions for GitHub Copilot agents +description: AI assistant for creating clear, actionable task descriptions for GitHub Copilot coding agent --- # Agentic Task Description Assistant -You are an AI assistant specialized in helping users create clear, actionable task descriptions for GitHub Copilot agents that work with GitHub Agentic Workflows (gh-aw). +You are an AI assistant specialized in helping users create clear, actionable task descriptions for GitHub Copilot coding agent that work with GitHub Agentic Workflows (gh-aw). ## Required Knowledge diff --git a/.github/aw/debug-agentic-workflow.md b/.github/aw/debug-agentic-workflow.md index 8dbe27ca05..d268b06517 100644 --- a/.github/aw/debug-agentic-workflow.md +++ b/.github/aw/debug-agentic-workflow.md @@ -66,7 +66,7 @@ Report back with specific findings and actionable fixes. > [!NOTE] > **Alternative: agentic-workflows Tool** > -> If `gh aw` is not authenticated (e.g., running in a Copilot agent environment without GitHub CLI auth), use the corresponding tools from the **agentic-workflows** tool instead: +> If `gh aw` is not authenticated (e.g., running in a Copilot coding agent environment without GitHub CLI auth), use the corresponding tools from the **agentic-workflows** tool instead: > - `status` tool → equivalent to `gh aw status` > - `compile` tool → equivalent to `gh aw compile` > - `logs` tool → equivalent to `gh aw logs` diff --git a/.github/aw/github-agentic-workflows.md b/.github/aw/github-agentic-workflows.md index 6c1d5b3537..796bc3b9dd 100644 --- a/.github/aw/github-agentic-workflows.md +++ b/.github/aw/github-agentic-workflows.md @@ -736,7 +736,7 @@ The YAML frontmatter supports these fields: max: 10 # Optional: max autofixes (default: 10) ``` Provides automated fixes for code scanning alerts. - - `create-agent-session:` - Create GitHub Copilot agent sessions + - `create-agent-session:` - Create GitHub Copilot coding agent sessions ```yaml safe-outputs: create-agent-session: @@ -744,7 +744,7 @@ The YAML frontmatter supports these fields: target-repo: "owner/repo" # Optional: cross-repository ``` Requires PAT as `COPILOT_GITHUB_TOKEN`. Note: `create-agent-task` is deprecated (use `create-agent-session`). - - `assign-to-agent:` - Assign Copilot agents to issues + - `assign-to-agent:` - Assign Copilot coding agent to issues ```yaml safe-outputs: assign-to-agent: diff --git a/.github/workflows/copilot-agent-analysis.lock.yml b/.github/workflows/copilot-agent-analysis.lock.yml index 6c9a4979b9..69c4730313 100644 --- a/.github/workflows/copilot-agent-analysis.lock.yml +++ b/.github/workflows/copilot-agent-analysis.lock.yml @@ -21,7 +21,7 @@ # # For more information: https://github.github.com/gh-aw/introduction/overview/ # -# Analyzes GitHub Copilot agent usage patterns in pull requests to provide insights on agent effectiveness and behavior +# Analyzes GitHub Copilot coding agent usage patterns in pull requests to provide insights on agent effectiveness and behavior # # Resolved workflow manifest: # Imports: @@ -30,7 +30,7 @@ # - shared/mood.md # - shared/reporting.md # -# frontmatter-hash: 7ab09aa2c72d1dc010110d7ac8ad24c689601553f85c0c0554d6b7b897e9a090 +# frontmatter-hash: 49e233a6fddc68b01bfb552844d10705384860956cebc90df11ae53e16d11dc9 name: "Copilot Agent PR Analysis" "on": @@ -1119,7 +1119,7 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 env: WORKFLOW_NAME: "Copilot Agent PR Analysis" - WORKFLOW_DESCRIPTION: "Analyzes GitHub Copilot agent usage patterns in pull requests to provide insights on agent effectiveness and behavior" + WORKFLOW_DESCRIPTION: "Analyzes GitHub Copilot coding agent usage patterns in pull requests to provide insights on agent effectiveness and behavior" HAS_PATCH: ${{ needs.agent.outputs.has_patch }} with: script: | diff --git a/.github/workflows/copilot-agent-analysis.md b/.github/workflows/copilot-agent-analysis.md index 83e5b938a7..6eaa3e4320 100644 --- a/.github/workflows/copilot-agent-analysis.md +++ b/.github/workflows/copilot-agent-analysis.md @@ -1,6 +1,6 @@ --- name: Copilot Agent PR Analysis -description: Analyzes GitHub Copilot agent usage patterns in pull requests to provide insights on agent effectiveness and behavior +description: Analyzes GitHub Copilot coding agent usage patterns in pull requests to provide insights on agent effectiveness and behavior on: schedule: # Every day at 6pm UTC @@ -466,7 +466,7 @@ The "Agent Task Texts" section should include a table showing all PRs created in ### No PRs in Last 24 Hours If no PRs were created by Copilot in the last 24 hours: -- Create a minimal discussion: "No Copilot agent activity in the last 24 hours." +- Create a minimal discussion: "No Copilot coding agent activity in the last 24 hours." - Update repo memory with zero counts - Keep it to 2-3 sentences max diff --git a/.github/workflows/copilot-pr-merged-report.md b/.github/workflows/copilot-pr-merged-report.md index b9742d0d31..e769373506 100644 --- a/.github/workflows/copilot-pr-merged-report.md +++ b/.github/workflows/copilot-pr-merged-report.md @@ -45,7 +45,7 @@ timeout-minutes: 10 # Daily Copilot PR Merged Report -You are an AI analytics agent that generates daily reports on GitHub Copilot agent pull requests that were **merged** in the last 24 hours. +You are an AI analytics agent that generates daily reports on GitHub Copilot coding agent pull requests that were **merged** in the last 24 hours. ## Mission @@ -82,7 +82,7 @@ safeinputs-gh with args: "pr list --repo ${{ github.repository }} --search \"hea ``` This searches for: -- PRs from branches starting with `copilot/` (Copilot agent PRs) +- PRs from branches starting with `copilot/` (Copilot coding agent PRs) - PRs that are merged - PRs merged in the last 24 hours - Returns: PR number, title, merge timestamp, additions, deletions, files changed, URL @@ -283,7 +283,7 @@ If no Copilot PRs were merged in the last 24 hours: ```markdown # 🤖 Daily Copilot PR Merged Report - [DATE] -No Copilot agent pull requests were merged in the last 24 hours. +No Copilot coding agent pull requests were merged in the last 24 hours. --- _Generated by Copilot PR Merged Report (Run: [${{ github.run_id }}](...))_ diff --git a/.github/workflows/copilot-session-insights.lock.yml b/.github/workflows/copilot-session-insights.lock.yml index d6497e846c..a1e75d7d4c 100644 --- a/.github/workflows/copilot-session-insights.lock.yml +++ b/.github/workflows/copilot-session-insights.lock.yml @@ -21,7 +21,7 @@ # # For more information: https://github.github.com/gh-aw/introduction/overview/ # -# Analyzes GitHub Copilot agent sessions to provide detailed insights on usage patterns, success rates, and performance metrics +# Analyzes GitHub Copilot coding agent sessions to provide detailed insights on usage patterns, success rates, and performance metrics # # Resolved workflow manifest: # Imports: @@ -33,7 +33,7 @@ # - shared/session-analysis-charts.md # - shared/session-analysis-strategies.md # -# frontmatter-hash: 1b2864370d65c60ed768cb2e794d2b20256ec84f3ce347aca33dbbd2e8032bdd +# frontmatter-hash: 750804c6a2a89dc635b4c6e1216950672e3620fb95c1202f3aa34b1d798cfcca name: "Copilot Session Insights" "on": @@ -346,7 +346,7 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} name: Fetch Copilot session data - run: "# Create output directories\nmkdir -p /tmp/gh-aw/session-data\nmkdir -p /tmp/gh-aw/session-data/logs\nmkdir -p /tmp/gh-aw/cache-memory\n\n# Get today's date for cache identification\nTODAY=$(date '+%Y-%m-%d')\nCACHE_DIR=\"/tmp/gh-aw/cache-memory\"\n\n# Check if cached data exists from today\nif [ -f \"$CACHE_DIR/copilot-sessions-${TODAY}.json\" ] && [ -s \"$CACHE_DIR/copilot-sessions-${TODAY}.json\" ]; then\n echo \"✓ Found cached session data from ${TODAY}\"\n cp \"$CACHE_DIR/copilot-sessions-${TODAY}.json\" /tmp/gh-aw/session-data/sessions-list.json\n \n # Regenerate schema if missing\n if [ ! -f \"$CACHE_DIR/copilot-sessions-${TODAY}-schema.json\" ]; then\n /tmp/gh-aw/jqschema.sh < /tmp/gh-aw/session-data/sessions-list.json > \"$CACHE_DIR/copilot-sessions-${TODAY}-schema.json\"\n fi\n cp \"$CACHE_DIR/copilot-sessions-${TODAY}-schema.json\" /tmp/gh-aw/session-data/sessions-schema.json\n \n # Restore cached log files if they exist\n if [ -d \"$CACHE_DIR/session-logs-${TODAY}\" ]; then\n echo \"✓ Found cached session logs from ${TODAY}\"\n cp -r \"$CACHE_DIR/session-logs-${TODAY}\"/* /tmp/gh-aw/session-data/logs/ 2>/dev/null || true\n echo \"Restored $(find /tmp/gh-aw/session-data/logs -type f | wc -l) session log files from cache\"\n fi\n \n echo \"Using cached data from ${TODAY}\"\n echo \"Total sessions in cache: $(jq 'length' /tmp/gh-aw/session-data/sessions-list.json)\"\nelse\n echo \"⬇ Downloading fresh session data...\"\n \n # Calculate date 30 days ago\n DATE_30_DAYS_AGO=$(date -d '30 days ago' '+%Y-%m-%d' 2>/dev/null || date -v-30d '+%Y-%m-%d')\n\n # Search for workflow runs from copilot/* branches\n # This fetches GitHub Copilot agent task runs by searching for workflow runs on copilot/* branches\n echo \"Fetching Copilot agent workflow runs from the last 30 days...\"\n \n # Get workflow runs from copilot/* branches\n gh api \"repos/${{ github.repository }}/actions/runs\" \\\n --paginate \\\n --jq \".workflow_runs[] | select(.head_branch | startswith(\\\"copilot/\\\")) | select(.created_at >= \\\"${DATE_30_DAYS_AGO}\\\") | {id, name, head_branch, created_at, updated_at, status, conclusion, html_url}\" \\\n | jq -s '.[0:50]' \\\n > /tmp/gh-aw/session-data/sessions-list.json\n\n # Generate schema for reference\n /tmp/gh-aw/jqschema.sh < /tmp/gh-aw/session-data/sessions-list.json > /tmp/gh-aw/session-data/sessions-schema.json\n\n # Download conversation logs using gh agent-task command (limit to first 50)\n SESSION_COUNT=$(jq 'length' /tmp/gh-aw/session-data/sessions-list.json)\n echo \"Downloading conversation logs for $SESSION_COUNT sessions...\"\n \n # Use gh agent-task to fetch session logs with conversation transcripts\n # Extract session numbers from head_branch (format: copilot/issue-123 or copilot/task-456)\n # The number is the issue/task/PR number that the gh agent-task command uses\n jq -r '.[].head_branch' /tmp/gh-aw/session-data/sessions-list.json | while read -r branch; do\n if [ -n \"$branch\" ]; then\n # Extract number from branch name (e.g., copilot/issue-123 -> 123)\n # This is the session identifier used by gh agent-task\n session_number=$(echo \"$branch\" | sed 's/copilot\\///' | sed 's/[^0-9]//g')\n \n if [ -n \"$session_number\" ]; then\n echo \"Downloading conversation log for session #$session_number (branch: $branch)\"\n \n # Use gh agent-task view --log to get conversation transcript\n # This contains the agent's internal monologue, tool calls, and reasoning\n gh agent-task view --repo \"${{ github.repository }}\" \"$session_number\" --log \\\n > \"/tmp/gh-aw/session-data/logs/${session_number}-conversation.txt\" 2>&1 || {\n echo \"Warning: Could not fetch conversation log for session #$session_number\"\n # If gh agent-task fails, fall back to downloading GitHub Actions logs\n # This ensures we have some data even if agent-task command is unavailable\n run_id=$(jq -r \".[] | select(.head_branch == \\\"$branch\\\") | .id\" /tmp/gh-aw/session-data/sessions-list.json)\n if [ -n \"$run_id\" ]; then\n echo \"Falling back to GitHub Actions logs for run ID: $run_id\"\n gh api \"repos/${{ github.repository }}/actions/runs/${run_id}/logs\" \\\n > \"/tmp/gh-aw/session-data/logs/${session_number}-actions.zip\" 2>&1 || true\n \n if [ -f \"/tmp/gh-aw/session-data/logs/${session_number}-actions.zip\" ] && [ -s \"/tmp/gh-aw/session-data/logs/${session_number}-actions.zip\" ]; then\n unzip -q \"/tmp/gh-aw/session-data/logs/${session_number}-actions.zip\" -d \"/tmp/gh-aw/session-data/logs/${session_number}/\" 2>/dev/null || true\n rm \"/tmp/gh-aw/session-data/logs/${session_number}-actions.zip\"\n fi\n fi\n }\n fi\n fi\n done\n \n LOG_COUNT=$(find /tmp/gh-aw/session-data/logs/ -type f -name \"*-conversation.txt\" | wc -l)\n echo \"Conversation logs downloaded: $LOG_COUNT session logs\"\n \n FALLBACK_COUNT=$(find /tmp/gh-aw/session-data/logs/ -type d -mindepth 1 | wc -l)\n if [ \"$FALLBACK_COUNT\" -gt 0 ]; then\n echo \"Fallback GitHub Actions logs: $FALLBACK_COUNT sessions\"\n fi\n\n # Store in cache with today's date\n cp /tmp/gh-aw/session-data/sessions-list.json \"$CACHE_DIR/copilot-sessions-${TODAY}.json\"\n cp /tmp/gh-aw/session-data/sessions-schema.json \"$CACHE_DIR/copilot-sessions-${TODAY}-schema.json\"\n \n # Cache the log files\n mkdir -p \"$CACHE_DIR/session-logs-${TODAY}\"\n cp -r /tmp/gh-aw/session-data/logs/* \"$CACHE_DIR/session-logs-${TODAY}/\" 2>/dev/null || true\n\n echo \"✓ Session data saved to cache: copilot-sessions-${TODAY}.json\"\n echo \"Total sessions found: $(jq 'length' /tmp/gh-aw/session-data/sessions-list.json)\"\nfi\n\n# Always ensure data is available at expected locations for backward compatibility\necho \"Session data available at: /tmp/gh-aw/session-data/sessions-list.json\"\necho \"Schema available at: /tmp/gh-aw/session-data/sessions-schema.json\"\necho \"Logs available at: /tmp/gh-aw/session-data/logs/\"\n\n# Set outputs for downstream use\necho \"sessions_count=$(jq 'length' /tmp/gh-aw/session-data/sessions-list.json)\" >> \"$GITHUB_OUTPUT\"" + run: "# Create output directories\nmkdir -p /tmp/gh-aw/session-data\nmkdir -p /tmp/gh-aw/session-data/logs\nmkdir -p /tmp/gh-aw/cache-memory\n\n# Get today's date for cache identification\nTODAY=$(date '+%Y-%m-%d')\nCACHE_DIR=\"/tmp/gh-aw/cache-memory\"\n\n# Check if cached data exists from today\nif [ -f \"$CACHE_DIR/copilot-sessions-${TODAY}.json\" ] && [ -s \"$CACHE_DIR/copilot-sessions-${TODAY}.json\" ]; then\n echo \"✓ Found cached session data from ${TODAY}\"\n cp \"$CACHE_DIR/copilot-sessions-${TODAY}.json\" /tmp/gh-aw/session-data/sessions-list.json\n \n # Regenerate schema if missing\n if [ ! -f \"$CACHE_DIR/copilot-sessions-${TODAY}-schema.json\" ]; then\n /tmp/gh-aw/jqschema.sh < /tmp/gh-aw/session-data/sessions-list.json > \"$CACHE_DIR/copilot-sessions-${TODAY}-schema.json\"\n fi\n cp \"$CACHE_DIR/copilot-sessions-${TODAY}-schema.json\" /tmp/gh-aw/session-data/sessions-schema.json\n \n # Restore cached log files if they exist\n if [ -d \"$CACHE_DIR/session-logs-${TODAY}\" ]; then\n echo \"✓ Found cached session logs from ${TODAY}\"\n cp -r \"$CACHE_DIR/session-logs-${TODAY}\"/* /tmp/gh-aw/session-data/logs/ 2>/dev/null || true\n echo \"Restored $(find /tmp/gh-aw/session-data/logs -type f | wc -l) session log files from cache\"\n fi\n \n echo \"Using cached data from ${TODAY}\"\n echo \"Total sessions in cache: $(jq 'length' /tmp/gh-aw/session-data/sessions-list.json)\"\nelse\n echo \"⬇ Downloading fresh session data...\"\n \n # Calculate date 30 days ago\n DATE_30_DAYS_AGO=$(date -d '30 days ago' '+%Y-%m-%d' 2>/dev/null || date -v-30d '+%Y-%m-%d')\n\n # Search for workflow runs from copilot/* branches\n # This fetches GitHub Copilot coding agent task runs by searching for workflow runs on copilot/* branches\n echo \"Fetching Copilot coding agent workflow runs from the last 30 days...\"\n \n # Get workflow runs from copilot/* branches\n gh api \"repos/${{ github.repository }}/actions/runs\" \\\n --paginate \\\n --jq \".workflow_runs[] | select(.head_branch | startswith(\\\"copilot/\\\")) | select(.created_at >= \\\"${DATE_30_DAYS_AGO}\\\") | {id, name, head_branch, created_at, updated_at, status, conclusion, html_url}\" \\\n | jq -s '.[0:50]' \\\n > /tmp/gh-aw/session-data/sessions-list.json\n\n # Generate schema for reference\n /tmp/gh-aw/jqschema.sh < /tmp/gh-aw/session-data/sessions-list.json > /tmp/gh-aw/session-data/sessions-schema.json\n\n # Download conversation logs using gh agent-task command (limit to first 50)\n SESSION_COUNT=$(jq 'length' /tmp/gh-aw/session-data/sessions-list.json)\n echo \"Downloading conversation logs for $SESSION_COUNT sessions...\"\n \n # Use gh agent-task to fetch session logs with conversation transcripts\n # Extract session numbers from head_branch (format: copilot/issue-123 or copilot/task-456)\n # The number is the issue/task/PR number that the gh agent-task command uses\n jq -r '.[].head_branch' /tmp/gh-aw/session-data/sessions-list.json | while read -r branch; do\n if [ -n \"$branch\" ]; then\n # Extract number from branch name (e.g., copilot/issue-123 -> 123)\n # This is the session identifier used by gh agent-task\n session_number=$(echo \"$branch\" | sed 's/copilot\\///' | sed 's/[^0-9]//g')\n \n if [ -n \"$session_number\" ]; then\n echo \"Downloading conversation log for session #$session_number (branch: $branch)\"\n \n # Use gh agent-task view --log to get conversation transcript\n # This contains the agent's internal monologue, tool calls, and reasoning\n gh agent-task view --repo \"${{ github.repository }}\" \"$session_number\" --log \\\n > \"/tmp/gh-aw/session-data/logs/${session_number}-conversation.txt\" 2>&1 || {\n echo \"Warning: Could not fetch conversation log for session #$session_number\"\n # If gh agent-task fails, fall back to downloading GitHub Actions logs\n # This ensures we have some data even if agent-task command is unavailable\n run_id=$(jq -r \".[] | select(.head_branch == \\\"$branch\\\") | .id\" /tmp/gh-aw/session-data/sessions-list.json)\n if [ -n \"$run_id\" ]; then\n echo \"Falling back to GitHub Actions logs for run ID: $run_id\"\n gh api \"repos/${{ github.repository }}/actions/runs/${run_id}/logs\" \\\n > \"/tmp/gh-aw/session-data/logs/${session_number}-actions.zip\" 2>&1 || true\n \n if [ -f \"/tmp/gh-aw/session-data/logs/${session_number}-actions.zip\" ] && [ -s \"/tmp/gh-aw/session-data/logs/${session_number}-actions.zip\" ]; then\n unzip -q \"/tmp/gh-aw/session-data/logs/${session_number}-actions.zip\" -d \"/tmp/gh-aw/session-data/logs/${session_number}/\" 2>/dev/null || true\n rm \"/tmp/gh-aw/session-data/logs/${session_number}-actions.zip\"\n fi\n fi\n }\n fi\n fi\n done\n \n LOG_COUNT=$(find /tmp/gh-aw/session-data/logs/ -type f -name \"*-conversation.txt\" | wc -l)\n echo \"Conversation logs downloaded: $LOG_COUNT session logs\"\n \n FALLBACK_COUNT=$(find /tmp/gh-aw/session-data/logs/ -type d -mindepth 1 | wc -l)\n if [ \"$FALLBACK_COUNT\" -gt 0 ]; then\n echo \"Fallback GitHub Actions logs: $FALLBACK_COUNT sessions\"\n fi\n\n # Store in cache with today's date\n cp /tmp/gh-aw/session-data/sessions-list.json \"$CACHE_DIR/copilot-sessions-${TODAY}.json\"\n cp /tmp/gh-aw/session-data/sessions-schema.json \"$CACHE_DIR/copilot-sessions-${TODAY}-schema.json\"\n \n # Cache the log files\n mkdir -p \"$CACHE_DIR/session-logs-${TODAY}\"\n cp -r /tmp/gh-aw/session-data/logs/* \"$CACHE_DIR/session-logs-${TODAY}/\" 2>/dev/null || true\n\n echo \"✓ Session data saved to cache: copilot-sessions-${TODAY}.json\"\n echo \"Total sessions found: $(jq 'length' /tmp/gh-aw/session-data/sessions-list.json)\"\nfi\n\n# Always ensure data is available at expected locations for backward compatibility\necho \"Session data available at: /tmp/gh-aw/session-data/sessions-list.json\"\necho \"Schema available at: /tmp/gh-aw/session-data/sessions-schema.json\"\necho \"Logs available at: /tmp/gh-aw/session-data/logs/\"\n\n# Set outputs for downstream use\necho \"sessions_count=$(jq 'length' /tmp/gh-aw/session-data/sessions-list.json)\" >> \"$GITHUB_OUTPUT\"" - name: Setup Python environment run: "# Create working directory for Python scripts\nmkdir -p /tmp/gh-aw/python\nmkdir -p /tmp/gh-aw/python/data\nmkdir -p /tmp/gh-aw/python/charts\nmkdir -p /tmp/gh-aw/python/artifacts\n\necho \"Python environment setup complete\"\necho \"Working directory: /tmp/gh-aw/python\"\necho \"Data directory: /tmp/gh-aw/python/data\"\necho \"Charts directory: /tmp/gh-aw/python/charts\"\necho \"Artifacts directory: /tmp/gh-aw/python/artifacts\"\n" - name: Install Python scientific libraries @@ -1174,7 +1174,7 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 env: WORKFLOW_NAME: "Copilot Session Insights" - WORKFLOW_DESCRIPTION: "Analyzes GitHub Copilot agent sessions to provide detailed insights on usage patterns, success rates, and performance metrics" + WORKFLOW_DESCRIPTION: "Analyzes GitHub Copilot coding agent sessions to provide detailed insights on usage patterns, success rates, and performance metrics" HAS_PATCH: ${{ needs.agent.outputs.has_patch }} with: script: | diff --git a/.github/workflows/copilot-session-insights.md b/.github/workflows/copilot-session-insights.md index 7b9ef8b41c..7c3323365d 100644 --- a/.github/workflows/copilot-session-insights.md +++ b/.github/workflows/copilot-session-insights.md @@ -1,6 +1,6 @@ --- name: Copilot Session Insights -description: Analyzes GitHub Copilot agent sessions to provide detailed insights on usage patterns, success rates, and performance metrics +description: Analyzes GitHub Copilot coding agent sessions to provide detailed insights on usage patterns, success rates, and performance metrics on: schedule: # Daily at 8:00 AM Pacific Time (16:00 UTC) @@ -58,13 +58,13 @@ timeout-minutes: 20 --- -# Copilot Agent Session Analysis +# Copilot coding agent Session Analysis -You are an AI analytics agent specializing in analyzing Copilot agent sessions to extract insights, identify behavioral patterns, and recommend improvements. +You are an AI analytics agent specializing in analyzing Copilot coding agent sessions to extract insights, identify behavioral patterns, and recommend improvements. ## Mission -Analyze approximately 50 Copilot agent sessions to identify: +Analyze approximately 50 Copilot coding agent sessions to identify: - Behavioral patterns and inefficiencies - Success factors and failure signals - Prompt quality indicators @@ -493,7 +493,7 @@ If approaching timeout: A successful analysis includes: -- ✅ Analyzed ~50 Copilot agent sessions +- ✅ Analyzed ~50 Copilot coding agent sessions - ✅ Calculated key metrics (completion rate, duration, quality) - ✅ Identified success factors and failure signals - ✅ Generated actionable recommendations diff --git a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml index c9cdf446c6..d4f0e8e60c 100644 --- a/.github/workflows/daily-mcp-concurrency-analysis.lock.yml +++ b/.github/workflows/daily-mcp-concurrency-analysis.lock.yml @@ -440,12 +440,12 @@ jobs: "name": "create_issue" }, { - "description": "Create a GitHub Copilot agent session to delegate coding work. Use this when you need another Copilot agent to implement code changes, fix bugs, or complete development tasks. The task becomes a new issue that triggers the Copilot coding agent. For non-coding tasks or manual work items, use create_issue instead. CONSTRAINTS: Maximum 3 agent task(s) can be created.", + "description": "Create a GitHub Copilot coding agent session to delegate coding work. Use this when you need another Copilot coding agent to implement code changes, fix bugs, or complete development tasks. The task becomes a new issue that triggers the Copilot coding agent. For non-coding tasks or manual work items, use create_issue instead. CONSTRAINTS: Maximum 3 agent task(s) can be created.", "inputSchema": { "additionalProperties": false, "properties": { "body": { - "description": "Clear, detailed task description for the Copilot agent. Include specific files to modify, expected behavior, acceptance criteria, and any constraints. The description should be actionable and self-contained.", + "description": "Clear, detailed task description for the Copilot coding agent. Include specific files to modify, expected behavior, acceptance criteria, and any constraints. The description should be actionable and self-contained.", "type": "string" } }, @@ -1184,7 +1184,7 @@ jobs: env: GH_AW_AGENT_OUTPUT: ${{ env.GH_AW_AGENT_OUTPUT }} with: - github-token: ${{ secrets.COPILOT_GITHUB_TOKEN || secrets.GH_AW_GITHUB_TOKEN }} + github-token: ${{ secrets.COPILOT_GITHUB_TOKEN }} script: | const { setupGlobals } = require('/opt/gh-aw/actions/setup_globals.cjs'); setupGlobals(core, github, context, exec, io); diff --git a/.github/workflows/daily-mcp-concurrency-analysis.md b/.github/workflows/daily-mcp-concurrency-analysis.md index 30701f5af6..33efc89436 100644 --- a/.github/workflows/daily-mcp-concurrency-analysis.md +++ b/.github/workflows/daily-mcp-concurrency-analysis.md @@ -393,7 +393,7 @@ describe('${TOOL_NAME} concurrency safety', () => { #### Optionally Create Agent Session -For CRITICAL or HIGH severity issues, consider creating a Copilot agent session: +For CRITICAL or HIGH severity issues, consider creating a Copilot coding agent session: ```markdown Fix the concurrency safety issue in \`${TOOL_NAME}\` tool. diff --git a/.github/workflows/daily-safe-outputs-conformance.md b/.github/workflows/daily-safe-outputs-conformance.md index 88a760de9d..a7e079a352 100644 --- a/.github/workflows/daily-safe-outputs-conformance.md +++ b/.github/workflows/daily-safe-outputs-conformance.md @@ -47,7 +47,7 @@ Your mission is to: - Clear description of the conformance violation - Severity level and check ID - Specific files or code locations affected - - Actionable remediation steps suitable for Copilot agent assignment + - Actionable remediation steps suitable for Copilot coding agent assignment 4. Close older issues from previous runs (auto-handled by expires: 1d and close-older-issues: true) ## Phase 1: Run Conformance Checks @@ -127,7 +127,7 @@ Example: `SEC-001: Agent job in workflow X has write permissions` ## Remediation Steps -This task can be assigned to a Copilot agent with the following steps: +This task can be assigned to a Copilot coding agent with the following steps: 1. [Specific action 1] 2. [Specific action 2] diff --git a/.github/workflows/issue-monster.lock.yml b/.github/workflows/issue-monster.lock.yml index d35def1b55..f8dc8b5895 100644 --- a/.github/workflows/issue-monster.lock.yml +++ b/.github/workflows/issue-monster.lock.yml @@ -21,13 +21,13 @@ # # For more information: https://github.github.com/gh-aw/introduction/overview/ # -# The Cookie Monster of issues - assigns issues to Copilot agents one at a time +# The Cookie Monster of issues - assigns issues to Copilot coding agent one at a time # # Resolved workflow manifest: # Imports: # - shared/mood.md # -# frontmatter-hash: 499084bba53b33d3d6741037f0e2e17178fb144120241576df249aaa6f511842 +# frontmatter-hash: dc34e052a20e5b53d141cd9277e9497b52ffebc098737e1b728e4ed3bf5a71bc name: "Issue Monster" "on": @@ -429,14 +429,14 @@ jobs: "type": "string" }, "issue_number": { - "description": "Issue number to assign the Copilot agent to. This is the numeric ID from the GitHub URL (e.g., 234 in github.com/owner/repo/issues/234). Can also be a temporary_id (e.g., 'aw_abc123', 'aw_Test123') from an issue created earlier in the same workflow run. The issue should contain clear, actionable requirements. Either issue_number or pull_number must be provided, but not both.", + "description": "Issue number to assign the Copilot coding agent to. This is the numeric ID from the GitHub URL (e.g., 234 in github.com/owner/repo/issues/234). Can also be a temporary_id (e.g., 'aw_abc123', 'aw_Test123') from an issue created earlier in the same workflow run. The issue should contain clear, actionable requirements. Either issue_number or pull_number must be provided, but not both.", "type": [ "number", "string" ] }, "pull_number": { - "description": "Pull request number to assign the Copilot agent to. This is the numeric ID from the GitHub URL (e.g., 456 in github.com/owner/repo/pull/456). Either issue_number or pull_number must be provided, but not both.", + "description": "Pull request number to assign the Copilot coding agent to. This is the numeric ID from the GitHub URL (e.g., 456 in github.com/owner/repo/pull/456). Either issue_number or pull_number must be provided, but not both.", "type": [ "number", "string" @@ -1000,7 +1000,7 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 env: WORKFLOW_NAME: "Issue Monster" - WORKFLOW_DESCRIPTION: "The Cookie Monster of issues - assigns issues to Copilot agents one at a time" + WORKFLOW_DESCRIPTION: "The Cookie Monster of issues - assigns issues to Copilot coding agent one at a time" HAS_PATCH: ${{ needs.agent.outputs.has_patch }} with: script: | @@ -1444,7 +1444,7 @@ jobs: return false; } - // Exclude issues with open PRs from Copilot agent + // Exclude issues with open PRs from Copilot coding agent const openCopilotPRs = issue.linkedPRs?.filter(pr => pr.state === 'OPEN' && (pr.author === 'copilot-swe-agent' || pr.author?.includes('copilot')) diff --git a/.github/workflows/issue-monster.md b/.github/workflows/issue-monster.md index df26ae4ca2..ec4e7a7664 100644 --- a/.github/workflows/issue-monster.md +++ b/.github/workflows/issue-monster.md @@ -1,6 +1,6 @@ --- name: Issue Monster -description: The Cookie Monster of issues - assigns issues to Copilot agents one at a time +description: The Cookie Monster of issues - assigns issues to Copilot coding agent one at a time on: workflow_dispatch: schedule: every 30m @@ -273,7 +273,7 @@ jobs: return false; } - // Exclude issues with open PRs from Copilot agent + // Exclude issues with open PRs from Copilot coding agent const openCopilotPRs = issue.linkedPRs?.filter(pr => pr.state === 'OPEN' && (pr.author === 'copilot-swe-agent' || pr.author?.includes('copilot')) @@ -383,11 +383,11 @@ imports: # Issue Monster 🍪 -You are the **Issue Monster** - the Cookie Monster of issues! You love eating (resolving) issues by assigning them to Copilot agents for resolution. +You are the **Issue Monster** - the Cookie Monster of issues! You love eating (resolving) issues by assigning them to Copilot coding agent for resolution. ## Your Mission -Find up to three issues that need work and assign them to the Copilot agent for resolution. You work methodically, processing up to three separate issues at a time every hour, ensuring they are completely different in topic to avoid conflicts. +Find up to three issues that need work and assign them to the Copilot coding agent for resolution. You work methodically, processing up to three separate issues at a time every hour, ensuring they are completely different in topic to avoid conflicts. ## Current Context @@ -412,7 +412,7 @@ The issue search has already been performed in a previous job with smart filteri - ✅ Excluded issues that already have assignees - ✅ Excluded issues that have sub-issues (parent/organizing issues) - ✅ Excluded issues with closed or merged PRs (treating those as complete) -- ✅ Excluded issues with open PRs from Copilot agent (already being worked on) +- ✅ Excluded issues with open PRs from Copilot coding agent (already being worked on) - ✅ Prioritized issues with labels: good-first-issue, bug, security, documentation, enhancement, feature, performance, tech-debt, refactoring **Scoring System:** @@ -510,7 +510,7 @@ For each selected issue (which has already been pre-filtered to ensure no open/c ### 5. Assign Issues to Copilot Agent -For each selected issue, use the `assign_to_agent` tool from the `safeoutputs` MCP server to assign the Copilot agent: +For each selected issue, use the `assign_to_agent` tool from the `safeoutputs` MCP server to assign the Copilot coding agent: ``` safeoutputs/assign_to_agent(issue_number=, agent="copilot") @@ -518,7 +518,7 @@ safeoutputs/assign_to_agent(issue_number=, agent="copilot") Do not use GitHub tools for this assignment. The `assign_to_agent` tool will handle the actual assignment. -The Copilot agent will: +The Copilot coding agent will: 1. Analyze the issue and related context 2. Generate the necessary code changes 3. Create a pull request with the fix @@ -529,7 +529,7 @@ The Copilot agent will: For each issue you assign, use the `add_comment` tool from the `safeoutputs` MCP server to add a comment: ``` -safeoutputs/add_comment(item_number=, body="🍪 **Issue Monster has assigned this to Copilot!**\n\nI've identified this issue as a good candidate for automated resolution and assigned it to the Copilot agent.\n\nThe Copilot agent will analyze the issue and create a pull request with the fix.\n\nOm nom nom! 🍪") +safeoutputs/add_comment(item_number=, body="🍪 **Issue Monster has assigned this to Copilot!**\n\nI've identified this issue as a good candidate for automated resolution and assigned it to the Copilot coding agent.\n\nThe Copilot coding agent will analyze the issue and create a pull request with the fix.\n\nOm nom nom! 🍪") ``` **Important**: You must specify the `item_number` parameter with the issue number you're commenting on. This workflow runs on a schedule without a triggering issue, so the target must be explicitly specified. @@ -555,13 +555,13 @@ A successful run means: 5. The search already excluded issues that already have assignees 6. The search already excluded issues that have sub-issues (parent/organizing issues are not tasks) 7. The search already excluded issues with closed or merged PRs (treated as complete) -8. The search already excluded issues with open PRs from Copilot agent (already being worked on) +8. The search already excluded issues with open PRs from Copilot coding agent (already being worked on) 9. Issues are sorted by priority score (good-first-issue, bug, security, etc. get higher scores) 10. For "task" or "plan" issues: You checked for parent issues and sibling sub-issue PRs if necessary 11. You selected up to three appropriate issues from the top of the priority list that are completely separate in topic 12. You read and understood each issue 13. You verified that the selected issues don't have overlapping concerns or file changes -14. You assigned each issue to the Copilot agent using `assign_to_agent` +14. You assigned each issue to the Copilot coding agent using `assign_to_agent` 15. You commented on each issue being assigned ## Error Handling diff --git a/.github/workflows/plan.md b/.github/workflows/plan.md index 967e4ba91e..bbb934baf9 100644 --- a/.github/workflows/plan.md +++ b/.github/workflows/plan.md @@ -31,7 +31,7 @@ imports: # Planning Assistant -You are an expert planning assistant for GitHub Copilot agents. Your task is to analyze an issue or discussion and break it down into a sequence of actionable work items that can be assigned to GitHub Copilot agents. +You are an expert planning assistant for GitHub Copilot coding agent. Your task is to analyze an issue or discussion and break it down into a sequence of actionable work items that can be assigned to GitHub Copilot coding agent. ## Current Context @@ -46,7 +46,7 @@ ${{ steps.sanitized.outputs.text }} ## Your Mission -Analyze the issue or discussion along with the comment content (which may contain additional guidance from the user), then create actionable sub-issues (at most 5) that can be assigned to GitHub Copilot agents. +Analyze the issue or discussion along with the comment content (which may contain additional guidance from the user), then create actionable sub-issues (at most 5) that can be assigned to GitHub Copilot coding agent. **Important**: With issue grouping enabled, all issues you create will be automatically grouped under a parent tracking issue. You don't need to create a parent issue manually or use temporary IDs - just create the sub-issues directly. diff --git a/.github/workflows/poem-bot.lock.yml b/.github/workflows/poem-bot.lock.yml index bbf8bb6eed..6e52d72379 100644 --- a/.github/workflows/poem-bot.lock.yml +++ b/.github/workflows/poem-bot.lock.yml @@ -465,12 +465,12 @@ jobs: "name": "create_issue" }, { - "description": "Create a GitHub Copilot agent session to delegate coding work. Use this when you need another Copilot agent to implement code changes, fix bugs, or complete development tasks. The task becomes a new issue that triggers the Copilot coding agent. For non-coding tasks or manual work items, use create_issue instead. CONSTRAINTS: Maximum 1 agent task(s) can be created. Base branch for tasks: \"main\".", + "description": "Create a GitHub Copilot coding agent session to delegate coding work. Use this when you need another Copilot coding agent to implement code changes, fix bugs, or complete development tasks. The task becomes a new issue that triggers the Copilot coding agent. For non-coding tasks or manual work items, use create_issue instead. CONSTRAINTS: Maximum 1 agent task(s) can be created. Base branch for tasks: \"main\".", "inputSchema": { "additionalProperties": false, "properties": { "body": { - "description": "Clear, detailed task description for the Copilot agent. Include specific files to modify, expected behavior, acceptance criteria, and any constraints. The description should be actionable and self-contained.", + "description": "Clear, detailed task description for the Copilot coding agent. Include specific files to modify, expected behavior, acceptance criteria, and any constraints. The description should be actionable and self-contained.", "type": "string" } }, @@ -1821,7 +1821,7 @@ jobs: GH_AW_AGENT_OUTPUT: ${{ env.GH_AW_AGENT_OUTPUT }} GH_AW_SAFE_OUTPUTS_STAGED: "true" with: - github-token: ${{ secrets.COPILOT_GITHUB_TOKEN || secrets.GH_AW_GITHUB_TOKEN }} + github-token: ${{ secrets.COPILOT_GITHUB_TOKEN }} script: | const { setupGlobals } = require('/opt/gh-aw/actions/setup_globals.cjs'); setupGlobals(core, github, context, exec, io); diff --git a/.github/workflows/prompt-clustering-analysis.lock.yml b/.github/workflows/prompt-clustering-analysis.lock.yml index f39649bf07..924f8427e6 100644 --- a/.github/workflows/prompt-clustering-analysis.lock.yml +++ b/.github/workflows/prompt-clustering-analysis.lock.yml @@ -21,7 +21,7 @@ # # For more information: https://github.github.com/gh-aw/introduction/overview/ # -# Analyzes and clusters GitHub Copilot agent prompts to identify patterns and usage trends +# Analyzes and clusters GitHub Copilot coding agent prompts to identify patterns and usage trends # # Resolved workflow manifest: # Imports: @@ -31,7 +31,7 @@ # - shared/reporting.md # - shared/trending-charts-simple.md # -# frontmatter-hash: 55aaa5cabc63a05ec6ecd37b694afaec14d2ff60837e05c4fbc60f57adeb888d +# frontmatter-hash: 5916161eaa3bed8bf2747c838309559e94337286bb6b11175d447c18e0f869a6 name: "Copilot Agent Prompt Clustering Analysis" "on": @@ -1156,7 +1156,7 @@ jobs: uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8 env: WORKFLOW_NAME: "Copilot Agent Prompt Clustering Analysis" - WORKFLOW_DESCRIPTION: "Analyzes and clusters GitHub Copilot agent prompts to identify patterns and usage trends" + WORKFLOW_DESCRIPTION: "Analyzes and clusters GitHub Copilot coding agent prompts to identify patterns and usage trends" HAS_PATCH: ${{ needs.agent.outputs.has_patch }} with: script: | diff --git a/.github/workflows/prompt-clustering-analysis.md b/.github/workflows/prompt-clustering-analysis.md index 56ce0691f3..3922a30d09 100644 --- a/.github/workflows/prompt-clustering-analysis.md +++ b/.github/workflows/prompt-clustering-analysis.md @@ -1,6 +1,6 @@ --- name: Copilot Agent Prompt Clustering Analysis -description: Analyzes and clusters GitHub Copilot agent prompts to identify patterns and usage trends +description: Analyzes and clusters GitHub Copilot coding agent prompts to identify patterns and usage trends on: schedule: daily workflow_dispatch: diff --git a/.github/workflows/repository-quality-improver.md b/.github/workflows/repository-quality-improver.md index b0ec32e446..2eb01a4a7f 100644 --- a/.github/workflows/repository-quality-improver.md +++ b/.github/workflows/repository-quality-improver.md @@ -341,11 +341,11 @@ Create a comprehensive report using the **reporting MCP** with the following str ## 🤖 Tasks for Copilot Agent -**NOTE TO PLANNER AGENT**: The following tasks are designed for GitHub Copilot agent execution. Please split these into individual work items for Claude to process. +**NOTE TO PLANNER AGENT**: The following tasks are designed for GitHub Copilot coding agent execution. Please split these into individual work items for Claude to process. ### Improvement Tasks -The following code regions and tasks should be processed by the Copilot agent. Each section is marked for easy identification by the planner agent. +The following code regions and tasks should be processed by the Copilot coding agent. Each section is marked for easy identification by the planner agent. #### Task 1: [Short Description] @@ -364,7 +364,7 @@ The following code regions and tasks should be processed by the Copilot agent. E **Code Region:** `[file path or pattern]` ```markdown -[Copilot agent prompt for this task] +[Copilot coding agent prompt for this task] ``` --- @@ -385,7 +385,7 @@ The following code regions and tasks should be processed by the Copilot agent. E **Code Region:** `[file path or pattern]` ```markdown -[Copilot agent prompt for this task] +[Copilot coding agent prompt for this task] ``` --- @@ -438,7 +438,7 @@ Track these metrics to measure improvement in the **[FOCUS AREA]**: ## Next Steps 1. Review and prioritize the tasks above -2. Assign tasks to Copilot agent via planner agent +2. Assign tasks to Copilot coding agent via planner agent 3. Track progress on improvement items 4. Re-evaluate this focus area in [timeframe] @@ -450,7 +450,7 @@ Track these metrics to measure improvement in the **[FOCUS AREA]**: ### Important Report Guidelines -1. **Copilot Agent Section**: Always include a clearly marked section for Copilot agent tasks +1. **Copilot Agent Section**: Always include a clearly marked section for Copilot coding agent tasks 2. **Planner Note**: Include a note for the planner agent to split tasks 3. **Code Regions**: Mark specific files or patterns where changes are needed 4. **Task Format**: Each task should be self-contained with clear acceptance criteria @@ -496,7 +496,7 @@ A successful quality improvement run: - ✅ Conducts thorough analysis of the selected area (using custom analysis for custom areas) - ✅ Uses Serena MCP only when static analysis is needed - ✅ Generates exactly one discussion with the report -- ✅ Includes 3-5 actionable tasks for Copilot agent +- ✅ Includes 3-5 actionable tasks for Copilot coding agent - ✅ Clearly marks code regions for planner agent to split - ✅ Updates cache memory with run history including custom area tracking - ✅ Maintains high diversity rate (aim for 60%+ custom or varied strategies) @@ -549,7 +549,7 @@ When creating custom focus areas specific to gh-aw: Your output MUST: 1. Create exactly one discussion with the quality improvement report -2. Include a clearly marked section for Copilot agent tasks +2. Include a clearly marked section for Copilot coding agent tasks 3. Provide 3-5 actionable tasks with code region markers 4. Note for planner agent to split tasks for Claude 5. Update cache memory with run history (including custom area tracking) @@ -557,4 +557,4 @@ Your output MUST: 7. Use the reporting MCP for structured content 8. **For custom focus areas**: Clearly explain the rationale and custom analysis performed -Begin your quality improvement analysis now. Select a focus area (prioritizing custom, repository-specific areas), conduct appropriate analysis, generate actionable tasks for the Copilot agent, and create the discussion report. +Begin your quality improvement analysis now. Select a focus area (prioritizing custom, repository-specific areas), conduct appropriate analysis, generate actionable tasks for the Copilot coding agent, and create the discussion report. diff --git a/.github/workflows/shared/copilot-pr-data-fetch.md b/.github/workflows/shared/copilot-pr-data-fetch.md index 0fdab45d67..340e023c99 100644 --- a/.github/workflows/shared/copilot-pr-data-fetch.md +++ b/.github/workflows/shared/copilot-pr-data-fetch.md @@ -74,7 +74,7 @@ steps: