This is an automated email from the ASF dual-hosted git repository.

DaanHoogland pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/main by this push:
     new 957bfbb1cdd Replace issue triage agent with githubnext/agentics daily 
issue triage (#13434)
957bfbb1cdd is described below

commit 957bfbb1cddd1ffac718a2d3f135ded4a85b73d1
Author: Vishesh <[email protected]>
AuthorDate: Wed Jun 17 23:45:03 2026 +0530

    Replace issue triage agent with githubnext/agentics daily issue triage 
(#13434)
---
 .../.github_workflows_shared_noop-reminder.md      |   5 -
 .../.github_workflows_shared_reporting.md          |  73 --------
 ...-agent.lock.yml => daily-issue-triage.lock.yml} | 194 +++++++++++----------
 .github/workflows/daily-issue-triage.md            | 171 ++++++++++++++++++
 .github/workflows/daily-repo-status.lock.yml       |  34 ++--
 .github/workflows/daily-repo-status.md             |   4 +
 .github/workflows/issue-triage-agent.md            |  91 ----------
 7 files changed, 295 insertions(+), 277 deletions(-)

diff --git 
a/.github/aw/imports/github/gh-aw/359795d49ada21681ab616bd4cbcb144a7387115/.github_workflows_shared_noop-reminder.md
 
b/.github/aw/imports/github/gh-aw/359795d49ada21681ab616bd4cbcb144a7387115/.github_workflows_shared_noop-reminder.md
deleted file mode 100644
index 77cca08c1be..00000000000
--- 
a/.github/aw/imports/github/gh-aw/359795d49ada21681ab616bd4cbcb144a7387115/.github_workflows_shared_noop-reminder.md
+++ /dev/null
@@ -1,5 +0,0 @@
-**Important**: If no action is needed after completing your analysis, you 
**MUST** call the `noop` safe-output tool with a brief explanation. Failing to 
call any safe-output tool is the most common cause of safe-output workflow 
failures.
-
-```json
-{"noop": {"message": "No action needed: [brief explanation of what was 
analyzed and why]"}}
-```
diff --git 
a/.github/aw/imports/github/gh-aw/359795d49ada21681ab616bd4cbcb144a7387115/.github_workflows_shared_reporting.md
 
b/.github/aw/imports/github/gh-aw/359795d49ada21681ab616bd4cbcb144a7387115/.github_workflows_shared_reporting.md
deleted file mode 100644
index 72d61b434ef..00000000000
--- 
a/.github/aw/imports/github/gh-aw/359795d49ada21681ab616bd4cbcb144a7387115/.github_workflows_shared_reporting.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-# Report formatting guidelines
----
-
-## Report Structure Guidelines
-
-### 1. Header Levels
-**Use h3 (###) or lower for all headers in your issue report to maintain 
proper document hierarchy.**
-
-When creating GitHub issues or discussions:
-- Use `###` (h3) for main sections (e.g., "### Test Summary")
-- Use `####` (h4) for subsections (e.g., "#### Device-Specific Results")
-- Never use `##` (h2) or `#` (h1) in reports - these are reserved for titles
-
-### 2. Progressive Disclosure
-**Wrap detailed test results in `<details><summary>Section Name</summary>` 
tags to improve readability and reduce scrolling.**
-
-Use collapsible sections for:
-- Verbose details (full test logs, raw data)
-- Secondary information (minor warnings, extra context)
-- Per-item breakdowns when there are many items
-
-Always keep critical information visible (summary, critical issues, key 
metrics).
-
-### 3. Report Structure Pattern
-
-1. **Overview**: 1-2 paragraphs summarizing key findings
-2. **Critical Information**: Show immediately (summary stats, critical issues)
-3. **Details**: Use `<details><summary>Section Name</summary>` for expanded 
content
-4. **Context**: Add helpful metadata (workflow run, date, trigger)
-
-### Design Principles (Airbnb-Inspired)
-
-Reports should:
-- **Build trust through clarity**: Most important info immediately visible
-- **Exceed expectations**: Add helpful context like trends, comparisons
-- **Create delight**: Use progressive disclosure to reduce overwhelm
-- **Maintain consistency**: Follow patterns across all reports
-
-### Example Report Structure
-
-```markdown
-### Summary
-- Key metric 1: value
-- Key metric 2: value
-- Status: ✅/⚠️/❌
-
-### Critical Issues
-[Always visible - these are important]
-
-<details>
-<summary>View Detailed Results</summary>
-
-[Comprehensive details, logs, traces]
-
-</details>
-
-<details>
-<summary>View All Warnings</summary>
-
-[Minor issues and potential problems]
-
-</details>
-
-### Recommendations
-[Actionable next steps - keep visible]
-```
-
-## Workflow Run References
-
-- Format run IDs as links: 
`[§12345](https://github.com/owner/repo/actions/runs/12345)`
-- Include up to 3 most relevant run URLs at end under `**References:**`
-- Do NOT add footer attribution (system adds automatically)
diff --git a/.github/workflows/issue-triage-agent.lock.yml 
b/.github/workflows/daily-issue-triage.lock.yml
similarity index 91%
rename from .github/workflows/issue-triage-agent.lock.yml
rename to .github/workflows/daily-issue-triage.lock.yml
index 94abbb0908c..bd7db9978d4 100644
--- a/.github/workflows/issue-triage-agent.lock.yml
+++ b/.github/workflows/daily-issue-triage.lock.yml
@@ -1,4 +1,4 @@
-# gh-aw-metadata: 
{"schema_version":"v3","frontmatter_hash":"d4b8988df7c60cd416200769cc6bc7f1aab5bb3128df0b9a83a35e061b4da111","compiler_version":"v0.76.1","strict":true,"agent_id":"copilot"}
+# gh-aw-metadata: 
{"schema_version":"v3","frontmatter_hash":"919fb17c7928e5e96d9c0a2854670a42f9c5f6cfc2059b46009bb3c23640d0ca","compiler_version":"v0.76.1","strict":true,"agent_id":"copilot"}
 # gh-aw-manifest: 
{"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011
 [...]
 #    ___                   _   _
 #   / _ \                 | | (_)
@@ -16,19 +16,17 @@
 #
 # This file was automatically generated by gh-aw (v0.76.1). DO NOT EDIT.
 #
-# To update this file, edit 
github/gh-aw/.github/workflows/issue-triage-agent.md@359795d49ada21681ab616bd4cbcb144a7387115
 and run:
+# To update this file, edit 
githubnext/agentics/workflows/daily-issue-triage.md@d7c1dc4b72b00607a67caaffdcc216cb64379cf9
 and run:
 #   gh aw compile
 # Not all edits will cause changes to this file.
 #
 # For more information: https://github.github.com/gh-aw/introduction/overview/
 #
+# Scheduled daily triage that processes untriaged CloudStack issues in batches.
+# Detects duplicates, filters spam, and assigns CloudStack-specific labels
+# (type:*, component:*, Severity:*, status:*), then posts a structured triage 
report.
 #
-# Source: 
github/gh-aw/.github/workflows/issue-triage-agent.md@359795d49ada21681ab616bd4cbcb144a7387115
-#
-# Resolved workflow manifest:
-#   Imports:
-#     - 
github/gh-aw/.github/workflows/shared/noop-reminder.md@359795d49ada21681ab616bd4cbcb144a7387115
-#     - 
github/gh-aw/.github/workflows/shared/reporting.md@359795d49ada21681ab616bd4cbcb144a7387115
+# Source: 
githubnext/agentics/workflows/daily-issue-triage.md@d7c1dc4b72b00607a67caaffdcc216cb64379cf9
 #
 # Secrets used:
 #   - COPILOT_GITHUB_TOKEN
@@ -40,7 +38,6 @@
 #   - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
 #   - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # 
v8.0.1
 #   - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
-#   - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 
(source v9)
 #   - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
 #   - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
 #   - github/gh-aw-actions/setup@46d564922b082d0db93244972e8005ea6904ee5f # 
v0.76.1
@@ -53,10 +50,10 @@
 #   - 
ghcr.io/github/github-mcp-server:v1.0.4@sha256:e3816a476a977cfb836e7d221510011436c654d11861db66ecfd826601aba6a4
 #   - 
node:lts-alpine@sha256:2bdb65ed1dab192432bc31c95f94155ca5ad7fc1392fb7eb7526ab682fa5bf14
 
-name: "Issue Triage Agent"
+name: "Daily Issue Triage"
 on:
   schedule:
-  - cron: "49 14 * * 1-5"
+  - cron: "26 13 * * 1-5"
     # Friendly format: daily around 14:00 on weekdays (scattered)
   workflow_dispatch:
     inputs:
@@ -71,7 +68,7 @@ permissions: {}
 concurrency:
   group: "gh-aw-${{ github.workflow }}"
 
-run-name: "Issue Triage Agent"
+run-name: "Daily Issue Triage"
 
 jobs:
   activation:
@@ -98,8 +95,8 @@ jobs:
           destination: ${{ runner.temp }}/gh-aw/actions
           job-name: ${{ github.job }}
         env:
-          GH_AW_SETUP_WORKFLOW_NAME: "Issue Triage Agent"
-          GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository 
}}/.github/workflows/issue-triage-agent.lock.yml@${{ github.ref }}
+          GH_AW_SETUP_WORKFLOW_NAME: "Daily Issue Triage"
+          GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository 
}}/.github/workflows/daily-issue-triage.lock.yml@${{ github.ref }}
           GH_AW_INFO_VERSION: "1.0.52"
           GH_AW_INFO_AWF_VERSION: "v0.25.55"
           GH_AW_INFO_BODY_MODIFIED: "false"
@@ -113,7 +110,7 @@ jobs:
           GH_AW_INFO_VERSION: "1.0.52"
           GH_AW_INFO_AGENT_VERSION: "1.0.52"
           GH_AW_INFO_CLI_VERSION: "v0.76.1"
-          GH_AW_INFO_WORKFLOW_NAME: "Issue Triage Agent"
+          GH_AW_INFO_WORKFLOW_NAME: "Daily Issue Triage"
           GH_AW_INFO_EXPERIMENTAL: "false"
           GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true"
           GH_AW_INFO_STAGED: "false"
@@ -122,9 +119,8 @@ jobs:
           GH_AW_INFO_AWF_VERSION: "v0.25.55"
           GH_AW_INFO_AWMG_VERSION: ""
           GH_AW_INFO_FIREWALL_TYPE: "squid"
-          GH_AW_INFO_FRONTMATTER_SOURCE: 
"github/gh-aw/.github/workflows/issue-triage-agent.md@359795d49ada21681ab616bd4cbcb144a7387115"
+          GH_AW_INFO_FRONTMATTER_SOURCE: 
"githubnext/agentics/workflows/daily-issue-triage.md@d7c1dc4b72b00607a67caaffdcc216cb64379cf9"
           GH_AW_INFO_BODY_MODIFIED: "false"
-          GH_AW_INFO_FRONTMATTER_EMOJI: "🔧"
           GH_AW_COMPILED_STRICT: "true"
         uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # 
v9.0.0
         with:
@@ -164,7 +160,7 @@ jobs:
         id: check-lock-file
         uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # 
v9.0.0
         env:
-          GH_AW_WORKFLOW_FILE: "issue-triage-agent.lock.yml"
+          GH_AW_WORKFLOW_FILE: "daily-issue-triage.lock.yml"
           GH_AW_CONTEXT_WORKFLOW_REF: "${{ github.workflow_ref }}"
         with:
           script: |
@@ -198,20 +194,20 @@ jobs:
         run: |
           bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh"
           {
-          cat << 'GH_AW_PROMPT_e560c36b9148ef78_EOF'
+          cat << 'GH_AW_PROMPT_7c51e8f15cc7af75_EOF'
           <system>
-          GH_AW_PROMPT_e560c36b9148ef78_EOF
+          GH_AW_PROMPT_7c51e8f15cc7af75_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/safe_outputs_prompt.md"
-          cat << 'GH_AW_PROMPT_e560c36b9148ef78_EOF'
+          cat << 'GH_AW_PROMPT_7c51e8f15cc7af75_EOF'
           <safe-output-tools>
-          Tools: add_comment, add_labels, missing_tool, missing_data, noop
+          Tools: add_comment(max:10), add_labels(max:10), missing_tool, 
missing_data, noop
           </safe-output-tools>
-          GH_AW_PROMPT_e560c36b9148ef78_EOF
+          GH_AW_PROMPT_7c51e8f15cc7af75_EOF
           cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md"
-          cat << 'GH_AW_PROMPT_e560c36b9148ef78_EOF'
+          cat << 'GH_AW_PROMPT_7c51e8f15cc7af75_EOF'
           <github-context>
           The following GitHub context information is available for this 
workflow:
           {{#if github.actor}}
@@ -240,14 +236,12 @@ jobs:
           {{/if}}
           </github-context>
 
-          GH_AW_PROMPT_e560c36b9148ef78_EOF
+          GH_AW_PROMPT_7c51e8f15cc7af75_EOF
           cat 
"${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md"
-          cat << 'GH_AW_PROMPT_e560c36b9148ef78_EOF'
+          cat << 'GH_AW_PROMPT_7c51e8f15cc7af75_EOF'
           </system>
-          {{#runtime-import 
.github/aw/imports/github/gh-aw/359795d49ada21681ab616bd4cbcb144a7387115/.github_workflows_shared_reporting.md}}
-          {{#runtime-import 
.github/aw/imports/github/gh-aw/359795d49ada21681ab616bd4cbcb144a7387115/.github_workflows_shared_noop-reminder.md}}
-          {{#runtime-import .github/workflows/issue-triage-agent.md}}
-          GH_AW_PROMPT_e560c36b9148ef78_EOF
+          {{#runtime-import .github/workflows/daily-issue-triage.md}}
+          GH_AW_PROMPT_7c51e8f15cc7af75_EOF
           } > "$GH_AW_PROMPT"
       - name: Interpolate variables and render templates
         uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # 
v9.0.0
@@ -327,8 +321,7 @@ jobs:
   agent:
     needs: activation
     runs-on: ubuntu-latest
-    permissions:
-      issues: read
+    permissions: read-all
     concurrency:
       group: "gh-aw-copilot-${{ github.workflow }}"
     env:
@@ -337,9 +330,10 @@ jobs:
       GH_AW_ASSETS_BRANCH: ""
       GH_AW_ASSETS_MAX_SIZE_KB: 0
       GH_AW_MCP_LOG_DIR: /tmp/gh-aw/mcp-logs/safeoutputs
-      GH_AW_WORKFLOW_ID_SANITIZED: issuetriageagent
+      GH_AW_WORKFLOW_ID_SANITIZED: dailyissuetriage
     outputs:
       agentic_engine_timeout: ${{ 
steps.detect-agent-errors.outputs.agentic_engine_timeout || 'false' }}
+      checkout_pr_success: ${{ steps.checkout-pr.outputs.checkout_pr_success 
|| 'true' }}
       effective_tokens: ${{ steps.parse-mcp-gateway.outputs.effective_tokens }}
       effective_tokens_rate_limit_error: ${{ 
steps.parse-mcp-gateway.outputs.effective_tokens_rate_limit_error || 'false' }}
       has_patch: ${{ steps.collect_output.outputs.has_patch }}
@@ -362,8 +356,8 @@ jobs:
           trace-id: ${{ needs.activation.outputs.setup-trace-id }}
           parent-span-id: ${{ needs.activation.outputs.setup-parent-span-id || 
needs.activation.outputs.setup-span-id }}
         env:
-          GH_AW_SETUP_WORKFLOW_NAME: "Issue Triage Agent"
-          GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository 
}}/.github/workflows/issue-triage-agent.lock.yml@${{ github.ref }}
+          GH_AW_SETUP_WORKFLOW_NAME: "Daily Issue Triage"
+          GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository 
}}/.github/workflows/daily-issue-triage.lock.yml@${{ github.ref }}
           GH_AW_INFO_VERSION: "1.0.52"
           GH_AW_INFO_AWF_VERSION: "v0.25.55"
           GH_AW_INFO_BODY_MODIFIED: "false"
@@ -399,27 +393,44 @@ jobs:
           SERVER_URL_STRIPPED="${SERVER_URL#https://}";
           git remote set-url origin 
"https://x-access-token:${GITHUB_TOKEN}@${SERVER_URL_STRIPPED}/${REPO_NAME}.git";
           echo "Git configured with standard GitHub Actions identity"
+      - name: Checkout PR branch
+        id: checkout-pr
+        if: |
+          github.event.pull_request || github.event.issue.pull_request
+        uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # 
v9.0.0
+        env:
+          GH_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || 
secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
+        with:
+          github-token: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || 
secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
+          script: |
+            const { setupGlobals } = require('${{ runner.temp 
}}/gh-aw/actions/setup_globals.cjs');
+            setupGlobals(core, github, context, exec, io, getOctokit);
+            const { main } = require('${{ runner.temp 
}}/gh-aw/actions/checkout_pr_branch.cjs');
+            await main();
       - name: Install GitHub Copilot CLI
         run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.52
         env:
           GH_HOST: github.com
       - name: Install AWF binary
         run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.55
-      - name: Determine automatic lockdown mode for GitHub MCP Server
-        id: determine-automatic-lockdown
-        uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # 
v9.0.0 (source v9)
+      - name: Parse integrity filter lists
+        id: parse-guard-vars
         env:
-          GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }}
-          GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ 
secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }}
-        with:
-          script: |
-            const determineAutomaticLockdown = require('${{ runner.temp 
}}/gh-aw/actions/determine_automatic_lockdown.cjs');
-            await determineAutomaticLockdown(github, context, core);
+          GH_AW_BLOCKED_USERS_VAR: ${{ vars.GH_AW_GITHUB_BLOCKED_USERS || '' }}
+          GH_AW_TRUSTED_USERS_VAR: ${{ vars.GH_AW_GITHUB_TRUSTED_USERS || '' }}
+          GH_AW_APPROVAL_LABELS_VAR: ${{ vars.GH_AW_GITHUB_APPROVAL_LABELS || 
'' }}
+        run: bash "${RUNNER_TEMP}/gh-aw/actions/parse_guard_list.sh"
       - name: Download activation artifact
         uses: 
actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
         with:
           name: activation
           path: /tmp/gh-aw
+      - name: Restore agent config folders from base branch
+        if: steps.checkout-pr.outcome == 'success'
+        env:
+          GH_AW_AGENT_FOLDERS: ".agents .antigravity .claude .codex .crush 
.gemini .github .opencode .pi"
+          GH_AW_AGENT_FILES: ".crush.json AGENTS.md ANTIGRAVITY.md CLAUDE.md 
GEMINI.md PI.md opencode.jsonc"
+        run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
       - name: Restore inline sub-agents from activation artifact
         env:
           GH_AW_SUB_AGENT_DIR: ".github/agents"
@@ -436,16 +447,16 @@ jobs:
           mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs"
           mkdir -p /tmp/gh-aw/safeoutputs
           mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs
-          cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 
'GH_AW_SAFE_OUTPUTS_CONFIG_c8eaf0ada4607ff7_EOF'
-          
{"add_comment":{"max":1},"add_labels":{"allowed":["bug","feature","enhancement","documentation","question","help-wanted","good-first-issue"]},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}}
-          GH_AW_SAFE_OUTPUTS_CONFIG_c8eaf0ada4607ff7_EOF
+          cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 
'GH_AW_SAFE_OUTPUTS_CONFIG_09fd9551c3cd7278_EOF'
+          
{"add_comment":{"max":10,"target":"*"},"add_labels":{"max":10,"target":"*"},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}}
+          GH_AW_SAFE_OUTPUTS_CONFIG_09fd9551c3cd7278_EOF
       - name: Generate Safe Outputs Tools
         env:
           GH_AW_TOOLS_META_JSON: |
             {
               "description_suffixes": {
-                "add_comment": " CONSTRAINTS: Maximum 1 comment(s) can be 
added. Supports reply_to_id for discussion threading.",
-                "add_labels": " CONSTRAINTS: Only these labels are allowed: 
[\"bug\" \"feature\" \"enhancement\" \"documentation\" \"question\" 
\"help-wanted\" \"good-first-issue\"]."
+                "add_comment": " CONSTRAINTS: Maximum 10 comment(s) can be 
added. Target: *. Supports reply_to_id for discussion threading.",
+                "add_labels": " CONSTRAINTS: Maximum 10 label(s) can be added. 
Target: *."
               },
               "repo_params": {},
               "dynamic_tools": []
@@ -620,8 +631,6 @@ jobs:
           GH_AW_SAFE_OUTPUTS: ${{ 
steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS }}
           GH_AW_SAFE_OUTPUTS_API_KEY: ${{ 
steps.safe-outputs-start.outputs.api_key }}
           GH_AW_SAFE_OUTPUTS_PORT: ${{ steps.safe-outputs-start.outputs.port }}
-          GITHUB_MCP_GUARD_MIN_INTEGRITY: ${{ 
steps.determine-automatic-lockdown.outputs.min_integrity }}
-          GITHUB_MCP_GUARD_REPOS: ${{ 
steps.determine-automatic-lockdown.outputs.repos }}
           GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN 
|| secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
         run: |
           set -eo pipefail
@@ -640,8 +649,6 @@ jobs:
           export DEBUG="*"
 
           export GH_AW_ENGINE="copilot"
-          export GH_AW_MCP_CLI_SERVERS='["safeoutputs"]'
-          echo GH_AW_MCP_CLI_SERVERS='["safeoutputs"]' >> "$GITHUB_ENV"
           MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0')
           MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0')
           case "${DOCKER_HOST:-}" in
@@ -654,7 +661,7 @@ jobs:
 
           mkdir -p /home/runner/.copilot
           GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null 
|| echo node)
-          cat << GH_AW_MCP_CONFIG_88b8311e90d25032_EOF | "$GH_AW_NODE" 
"${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
+          cat << GH_AW_MCP_CONFIG_37cac1d5ee0c175c_EOF | "$GH_AW_NODE" 
"${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
           {
             "mcpServers": {
               "github": {
@@ -668,8 +675,11 @@ jobs:
                 },
                 "guard-policies": {
                   "allow-only": {
-                    "min-integrity": "$GITHUB_MCP_GUARD_MIN_INTEGRITY",
-                    "repos": "$GITHUB_MCP_GUARD_REPOS"
+                    "approval-labels": ${{ 
steps.parse-guard-vars.outputs.approval_labels }},
+                    "blocked-users": ${{ 
steps.parse-guard-vars.outputs.blocked_users }},
+                    "min-integrity": "none",
+                    "repos": "all",
+                    "trusted-users": ${{ 
steps.parse-guard-vars.outputs.trusted_users }}
                   }
                 }
               },
@@ -695,7 +705,7 @@ jobs:
               "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}"
             }
           }
-          GH_AW_MCP_CONFIG_88b8311e90d25032_EOF
+          GH_AW_MCP_CONFIG_37cac1d5ee0c175c_EOF
       - name: Mount MCP servers as CLIs
         id: mount-mcp-clis
         continue-on-error: true
@@ -720,7 +730,7 @@ jobs:
       - name: Execute GitHub Copilot CLI
         id: agentic_execution
         # Copilot CLI tool arguments (sorted):
-        timeout-minutes: 5
+        timeout-minutes: 60
         run: |
           set -o pipefail
           printf '%s' "$(date +%s%3N)" > /tmp/gh-aw/agent_cli_start_ms.txt
@@ -907,6 +917,8 @@ jobs:
             /tmp/gh-aw/sandbox/agent/logs/
             /tmp/gh-aw/redacted-urls.log
             /tmp/gh-aw/mcp-logs/
+            /tmp/gh-aw/proxy-logs/
+            !/tmp/gh-aw/proxy-logs/proxy-tls/
             /tmp/gh-aw/agent_usage.json
             /tmp/gh-aw/agent-stdio.log
             /tmp/gh-aw/pre-agent-audit.txt
@@ -938,7 +950,7 @@ jobs:
       issues: write
       pull-requests: write
     concurrency:
-      group: "gh-aw-conclusion-issue-triage-agent"
+      group: "gh-aw-conclusion-daily-issue-triage"
       cancel-in-progress: false
       queue: max
     outputs:
@@ -956,8 +968,8 @@ jobs:
           trace-id: ${{ needs.activation.outputs.setup-trace-id }}
           parent-span-id: ${{ needs.activation.outputs.setup-parent-span-id || 
needs.activation.outputs.setup-span-id }}
         env:
-          GH_AW_SETUP_WORKFLOW_NAME: "Issue Triage Agent"
-          GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository 
}}/.github/workflows/issue-triage-agent.lock.yml@${{ github.ref }}
+          GH_AW_SETUP_WORKFLOW_NAME: "Daily Issue Triage"
+          GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository 
}}/.github/workflows/daily-issue-triage.lock.yml@${{ github.ref }}
           GH_AW_INFO_VERSION: "1.0.52"
           GH_AW_INFO_AWF_VERSION: "v0.25.55"
           GH_AW_INFO_BODY_MODIFIED: "false"
@@ -982,9 +994,9 @@ jobs:
         env:
           GH_AW_AGENT_OUTPUT: ${{ 
steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
           GH_AW_NOOP_MAX: "1"
-          GH_AW_WORKFLOW_NAME: "Issue Triage Agent"
-          GH_AW_WORKFLOW_SOURCE: 
"github/gh-aw/.github/workflows/issue-triage-agent.md@359795d49ada21681ab616bd4cbcb144a7387115"
-          GH_AW_WORKFLOW_SOURCE_URL: "${{ github.server_url 
}}/github/gh-aw/blob/359795d49ada21681ab616bd4cbcb144a7387115/.github/workflows/issue-triage-agent.md"
+          GH_AW_WORKFLOW_NAME: "Daily Issue Triage"
+          GH_AW_WORKFLOW_SOURCE: 
"githubnext/agentics/workflows/daily-issue-triage.md@d7c1dc4b72b00607a67caaffdcc216cb64379cf9"
+          GH_AW_WORKFLOW_SOURCE_URL: "${{ github.server_url 
}}/githubnext/agentics/blob/d7c1dc4b72b00607a67caaffdcc216cb64379cf9/workflows/daily-issue-triage.md"
           GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository 
}}/actions/runs/${{ github.run_id }}
           GH_AW_AGENT_CONCLUSION: ${{ needs.agent.result }}
           GH_AW_NOOP_REPORT_AS_ISSUE: "true"
@@ -1000,9 +1012,9 @@ jobs:
         uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # 
v9.0.0
         env:
           GH_AW_AGENT_OUTPUT: ${{ 
steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
-          GH_AW_WORKFLOW_NAME: "Issue Triage Agent"
-          GH_AW_WORKFLOW_SOURCE: 
"github/gh-aw/.github/workflows/issue-triage-agent.md@359795d49ada21681ab616bd4cbcb144a7387115"
-          GH_AW_WORKFLOW_SOURCE_URL: "${{ github.server_url 
}}/github/gh-aw/blob/359795d49ada21681ab616bd4cbcb144a7387115/.github/workflows/issue-triage-agent.md"
+          GH_AW_WORKFLOW_NAME: "Daily Issue Triage"
+          GH_AW_WORKFLOW_SOURCE: 
"githubnext/agentics/workflows/daily-issue-triage.md@d7c1dc4b72b00607a67caaffdcc216cb64379cf9"
+          GH_AW_WORKFLOW_SOURCE_URL: "${{ github.server_url 
}}/githubnext/agentics/blob/d7c1dc4b72b00607a67caaffdcc216cb64379cf9/workflows/daily-issue-triage.md"
           GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository 
}}/actions/runs/${{ github.run_id }}
           GH_AW_DETECTION_CONCLUSION: ${{ 
needs.detection.outputs.detection_conclusion }}
           GH_AW_DETECTION_REASON: ${{ needs.detection.outputs.detection_reason 
}}
@@ -1019,9 +1031,9 @@ jobs:
         env:
           GH_AW_AGENT_OUTPUT: ${{ 
steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
           GH_AW_MISSING_TOOL_CREATE_ISSUE: "true"
-          GH_AW_WORKFLOW_NAME: "Issue Triage Agent"
-          GH_AW_WORKFLOW_SOURCE: 
"github/gh-aw/.github/workflows/issue-triage-agent.md@359795d49ada21681ab616bd4cbcb144a7387115"
-          GH_AW_WORKFLOW_SOURCE_URL: "${{ github.server_url 
}}/github/gh-aw/blob/359795d49ada21681ab616bd4cbcb144a7387115/.github/workflows/issue-triage-agent.md"
+          GH_AW_WORKFLOW_NAME: "Daily Issue Triage"
+          GH_AW_WORKFLOW_SOURCE: 
"githubnext/agentics/workflows/daily-issue-triage.md@d7c1dc4b72b00607a67caaffdcc216cb64379cf9"
+          GH_AW_WORKFLOW_SOURCE_URL: "${{ github.server_url 
}}/githubnext/agentics/blob/d7c1dc4b72b00607a67caaffdcc216cb64379cf9/workflows/daily-issue-triage.md"
         with:
           github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN 
}}
           script: |
@@ -1035,9 +1047,9 @@ jobs:
         env:
           GH_AW_AGENT_OUTPUT: ${{ 
steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
           GH_AW_REPORT_INCOMPLETE_CREATE_ISSUE: "true"
-          GH_AW_WORKFLOW_NAME: "Issue Triage Agent"
-          GH_AW_WORKFLOW_SOURCE: 
"github/gh-aw/.github/workflows/issue-triage-agent.md@359795d49ada21681ab616bd4cbcb144a7387115"
-          GH_AW_WORKFLOW_SOURCE_URL: "${{ github.server_url 
}}/github/gh-aw/blob/359795d49ada21681ab616bd4cbcb144a7387115/.github/workflows/issue-triage-agent.md"
+          GH_AW_WORKFLOW_NAME: "Daily Issue Triage"
+          GH_AW_WORKFLOW_SOURCE: 
"githubnext/agentics/workflows/daily-issue-triage.md@d7c1dc4b72b00607a67caaffdcc216cb64379cf9"
+          GH_AW_WORKFLOW_SOURCE_URL: "${{ github.server_url 
}}/githubnext/agentics/blob/d7c1dc4b72b00607a67caaffdcc216cb64379cf9/workflows/daily-issue-triage.md"
         with:
           github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN 
}}
           script: |
@@ -1051,15 +1063,16 @@ jobs:
         uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # 
v9.0.0
         env:
           GH_AW_AGENT_OUTPUT: ${{ 
steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
-          GH_AW_WORKFLOW_NAME: "Issue Triage Agent"
-          GH_AW_WORKFLOW_SOURCE: 
"github/gh-aw/.github/workflows/issue-triage-agent.md@359795d49ada21681ab616bd4cbcb144a7387115"
-          GH_AW_WORKFLOW_SOURCE_URL: "${{ github.server_url 
}}/github/gh-aw/blob/359795d49ada21681ab616bd4cbcb144a7387115/.github/workflows/issue-triage-agent.md"
+          GH_AW_WORKFLOW_NAME: "Daily Issue Triage"
+          GH_AW_WORKFLOW_SOURCE: 
"githubnext/agentics/workflows/daily-issue-triage.md@d7c1dc4b72b00607a67caaffdcc216cb64379cf9"
+          GH_AW_WORKFLOW_SOURCE_URL: "${{ github.server_url 
}}/githubnext/agentics/blob/d7c1dc4b72b00607a67caaffdcc216cb64379cf9/workflows/daily-issue-triage.md"
           GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository 
}}/actions/runs/${{ github.run_id }}
           GH_AW_AGENT_CONCLUSION: ${{ needs.agent.result }}
-          GH_AW_WORKFLOW_ID: "issue-triage-agent"
+          GH_AW_WORKFLOW_ID: "daily-issue-triage"
           GH_AW_ACTION_FAILURE_ISSUE_EXPIRES_HOURS: "168"
           GH_AW_ENGINE_ID: "copilot"
           GH_AW_SECRET_VERIFICATION_RESULT: ${{ 
needs.activation.outputs.secret_verification_result }}
+          GH_AW_CHECKOUT_PR_SUCCESS: ${{ 
needs.agent.outputs.checkout_pr_success }}
           GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens || 
'' }}
           GH_AW_EFFECTIVE_TOKENS_RATE_LIMIT_ERROR: ${{ 
needs.agent.outputs.effective_tokens_rate_limit_error || 'false' }}
           GH_AW_INFERENCE_ACCESS_ERROR: ${{ 
needs.agent.outputs.inference_access_error }}
@@ -1073,7 +1086,7 @@ jobs:
           GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
           GH_AW_MISSING_TOOL_REPORT_AS_FAILURE: "true"
           GH_AW_MISSING_DATA_REPORT_AS_FAILURE: "true"
-          GH_AW_TIMEOUT_MINUTES: "5"
+          GH_AW_TIMEOUT_MINUTES: "60"
           GH_AW_MAX_EFFECTIVE_TOKENS: "25000000"
         with:
           github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN 
}}
@@ -1106,8 +1119,8 @@ jobs:
           trace-id: ${{ needs.activation.outputs.setup-trace-id }}
           parent-span-id: ${{ needs.activation.outputs.setup-parent-span-id || 
needs.activation.outputs.setup-span-id }}
         env:
-          GH_AW_SETUP_WORKFLOW_NAME: "Issue Triage Agent"
-          GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository 
}}/.github/workflows/issue-triage-agent.lock.yml@${{ github.ref }}
+          GH_AW_SETUP_WORKFLOW_NAME: "Daily Issue Triage"
+          GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository 
}}/.github/workflows/daily-issue-triage.lock.yml@${{ github.ref }}
           GH_AW_INFO_VERSION: "1.0.52"
           GH_AW_INFO_AWF_VERSION: "v0.25.55"
           GH_AW_INFO_BODY_MODIFIED: "false"
@@ -1176,8 +1189,8 @@ jobs:
         if: always() && steps.detection_guard.outputs.run_detection == 'true'
         uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # 
v9.0.0
         env:
-          WORKFLOW_NAME: "Issue Triage Agent"
-          WORKFLOW_DESCRIPTION: "No description provided"
+          WORKFLOW_NAME: "Daily Issue Triage"
+          WORKFLOW_DESCRIPTION: "Scheduled daily triage that processes 
untriaged CloudStack issues in batches.\nDetects duplicates, filters spam, and 
assigns CloudStack-specific labels\n(type:*, component:*, Severity:*, 
status:*), then posts a structured triage report."
           HAS_PATCH: ${{ needs.agent.outputs.has_patch }}
         with:
           script: |
@@ -1300,18 +1313,17 @@ jobs:
       pull-requests: write
     timeout-minutes: 15
     env:
-      GH_AW_CALLER_WORKFLOW_ID: "${{ github.repository }}/issue-triage-agent"
+      GH_AW_CALLER_WORKFLOW_ID: "${{ github.repository }}/daily-issue-triage"
       GH_AW_DETECTION_CONCLUSION: ${{ 
needs.detection.outputs.detection_conclusion }}
       GH_AW_DETECTION_REASON: ${{ needs.detection.outputs.detection_reason }}
       GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }}
       GH_AW_ENGINE_ID: "copilot"
       GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }}
       GH_AW_ENGINE_VERSION: "1.0.52"
-      GH_AW_WORKFLOW_EMOJI: "🔧"
-      GH_AW_WORKFLOW_ID: "issue-triage-agent"
-      GH_AW_WORKFLOW_NAME: "Issue Triage Agent"
-      GH_AW_WORKFLOW_SOURCE: 
"github/gh-aw/.github/workflows/issue-triage-agent.md@359795d49ada21681ab616bd4cbcb144a7387115"
-      GH_AW_WORKFLOW_SOURCE_URL: "${{ github.server_url 
}}/github/gh-aw/blob/359795d49ada21681ab616bd4cbcb144a7387115/.github/workflows/issue-triage-agent.md"
+      GH_AW_WORKFLOW_ID: "daily-issue-triage"
+      GH_AW_WORKFLOW_NAME: "Daily Issue Triage"
+      GH_AW_WORKFLOW_SOURCE: 
"githubnext/agentics/workflows/daily-issue-triage.md@d7c1dc4b72b00607a67caaffdcc216cb64379cf9"
+      GH_AW_WORKFLOW_SOURCE_URL: "${{ github.server_url 
}}/githubnext/agentics/blob/d7c1dc4b72b00607a67caaffdcc216cb64379cf9/workflows/daily-issue-triage.md"
     outputs:
       code_push_failure_count: ${{ 
steps.process_safe_outputs.outputs.code_push_failure_count }}
       code_push_failure_errors: ${{ 
steps.process_safe_outputs.outputs.code_push_failure_errors }}
@@ -1331,8 +1343,8 @@ jobs:
           trace-id: ${{ needs.activation.outputs.setup-trace-id }}
           parent-span-id: ${{ needs.activation.outputs.setup-parent-span-id || 
needs.activation.outputs.setup-span-id }}
         env:
-          GH_AW_SETUP_WORKFLOW_NAME: "Issue Triage Agent"
-          GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository 
}}/.github/workflows/issue-triage-agent.lock.yml@${{ github.ref }}
+          GH_AW_SETUP_WORKFLOW_NAME: "Daily Issue Triage"
+          GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository 
}}/.github/workflows/daily-issue-triage.lock.yml@${{ github.ref }}
           GH_AW_INFO_VERSION: "1.0.52"
           GH_AW_INFO_AWF_VERSION: "v0.25.55"
           GH_AW_INFO_BODY_MODIFIED: "false"
@@ -1369,7 +1381,7 @@ jobs:
           GH_AW_ALLOWED_DOMAINS: 
"api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,github.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,ocsp
 [...]
           GITHUB_SERVER_URL: ${{ github.server_url }}
           GITHUB_API_URL: ${{ github.api_url }}
-          GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: 
"{\"add_comment\":{\"max\":1},\"add_labels\":{\"allowed\":[\"bug\",\"feature\",\"enhancement\",\"documentation\",\"question\",\"help-wanted\",\"good-first-issue\"]},\"create_report_incomplete_issue\":{},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"report_incomplete\":{}}"
+          GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: 
"{\"add_comment\":{\"max\":10,\"target\":\"*\"},\"add_labels\":{\"max\":10,\"target\":\"*\"},\"create_report_incomplete_issue\":{},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"report_incomplete\":{}}"
         with:
           github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN 
}}
           script: |
diff --git a/.github/workflows/daily-issue-triage.md 
b/.github/workflows/daily-issue-triage.md
new file mode 100644
index 00000000000..719dca1f3c6
--- /dev/null
+++ b/.github/workflows/daily-issue-triage.md
@@ -0,0 +1,171 @@
+---
+description: |
+  Scheduled daily triage that processes untriaged CloudStack issues in batches.
+  Detects duplicates, filters spam, and assigns CloudStack-specific labels
+  (type:*, component:*, Severity:*, status:*), then posts a structured triage 
report.
+
+name: Daily Issue Triage
+
+on:
+  schedule: daily around 14:00 on weekdays
+  workflow_dispatch:
+
+permissions: read-all
+
+network: defaults
+
+safe-outputs:
+  add-labels:
+    target: "*"
+    max: 10
+  add-comment:
+    target: "*"
+    max: 10
+
+tools:
+  web-fetch:
+  github:
+    toolsets: [issues, labels]
+    min-integrity: none
+
+source: 
githubnext/agentics/workflows/daily-issue-triage.md@d7c1dc4b72b00607a67caaffdcc216cb64379cf9
+timeout-minutes: 60
+---
+
+# Daily Issue Triage
+
+<!-- Note - this file can be customized to your needs. Replace this section 
directly, or add further instructions here. After editing run 'gh aw compile' 
-->
+
+You are a batch triage assistant for GitHub issues in **${{ github.repository 
}}** (Apache CloudStack). Your task is to find untriaged issues and triage them 
one by one. Your triage comments are written for maintainers reviewing the 
triage, not for the issue author.
+
+Do not make assumptions beyond what the issue content supports. Do not invent 
missing context.
+
+## Step 1: Find untriaged issues
+
+Use the `search_issues` tool to find open issues that need triage. An issue is 
considered untriaged if it has **no labels applied**.
+
+Query: `repo:${{ github.repository }} is:issue is:open no:label`
+
+Paginate through all results to find untriaged issues. Do not stop at the 
first page.
+
+From the results, filter out:
+- Issues that already have a triage comment (look for "🎯 Triage report" in 
comments). **Never retriage an issue that has already been triaged.**
+- Issues created by bots (unless they look like real user issues).
+- Issues that have any labels already applied (even if they weren't applied by 
this workflow).
+
+Process the **oldest untriaged issues first**. Note: this workflow is capped 
at 10 label-sets and 10 comments per run, so the backlog will drain over 
several daily runs — that is intentional.
+
+## Step 2: Fetch labels (once)
+
+Before triaging any issues, fetch the list of labels available in this 
repository using the `list_labels` tool. Use this live list for all issues in 
the batch — only apply labels that actually exist in the repository.
+
+CloudStack uses a prefixed label taxonomy. Choose from these families:
+
+- **Type** (pick the single best one): `type:bug`, `type:new-feature`, 
`type:enhancement`, `type:improvement`, `type:regression`, `type:security`, 
`type:question`, `type:config`, `type:cleanup`
+- **Component** (apply when clearly identifiable; more than one is allowed): 
e.g. `component:kvm`, `component:vmware`, `component:XenServer`, 
`component:api`, `component:UI`, `component:networking`, 
`component:virtual-router`, `component:management-server`, 
`component:primary-storage`, `component:secondary-storage`, 
`component:kubernetes`, `component:database`, and others — use the full list 
returned by `list_labels`.
+- **Severity** (bugs only, when assessable): `Severity:BLOCKER`, 
`Severity:Critical`, `Severity:Major`, `Severity:Minor`, `Severity:Trivial`
+- **Duplicate / invalid**: `status:duplicate`, `status:invalid`
+- **Help wanted / newcomer-friendly**: `status:Help-wanted`
+
+## Step 3: Triage each issue
+
+For each untriaged issue, perform the following steps:
+
+### 3a: Gather context
+
+1. Retrieve the full issue content using the `get_issue` tool.
+2. Fetch any comments on the issue using the `get_issue_comments` tool.
+3. Search for similar issues using the `search_issues` tool.
+
+### 3b: Spam and quality check
+
+**Spam and invalid issues:** If the issue is obviously spam, bot-generated, 
gibberish, or a test issue:
+- Apply the `status:invalid` label.
+- **Do not close the issue** — closing is a human decision. Note in the report 
that it looks like spam/invalid so a maintainer can act.
+- Move to the next issue.
+
+**Incomplete issues:** If the issue lacks enough detail for meaningful triage, 
add a comment that politely asks the author to provide the missing information:
+- For bugs: steps to reproduce, expected vs actual behavior, logs/errors, 
environment details (CloudStack version, hypervisor, etc.).
+- For other issue types: equivalent details that would make the report 
actionable.
+- Apply a `type:question` label if appropriate.
+- Be specific about what is missing and why it is needed.
+- Move to the next issue.
+
+### 3c: Select labels
+
+- Be cautious with labels; they can trigger automation.
+- Choose a single `type:*` label that best reflects the issue's nature.
+- Add `component:*` label(s) when the affected area is clear from the content.
+- Add a `Severity:*` label for bugs when severity can be reasonably assessed.
+- Do not apply labels that do not exist in the repository.
+- It is better to under-label than to speculatively add labels.
+
+### 3d: Detect duplicates and related issues
+
+- Review the similar issues found in Step 3a.
+- Classify matches as:
+  - **Duplicate** (high confidence): the issue describes the same problem as 
an existing open issue. Include up to 3.
+  - **Related**: similar domain or adjacent problem, but not a duplicate. 
Include up to 3.
+- If a high-confidence duplicate is found, apply the `status:duplicate` label.
+- If no similar issues are found, state that explicitly in your report.
+
+### 3e: Assess coding agent suitability
+
+Assess whether the issue is suitable for automated coding agent assignment:
+- **Suitable**: clear requirements, sufficient context, well-defined success 
criteria, self-contained scope.
+- **Needs more info**: potentially suitable but missing details needed to 
start.
+- **Not suitable**: requires investigation, design decisions, extensive 
coordination, or policy/architectural choices.
+
+### 3f: Additional analysis
+
+- Search the web for relevant documentation, error messages, or known 
solutions if applicable.
+- Write notes, debugging strategies, and/or reproduction steps relevant to the 
issue.
+- Suggest resources or links that might help resolve the issue.
+
+### 3g: Apply results and post comment
+
+Apply all triage results for this issue:
+- Use `update_issue` to apply the chosen labels.
+- Add an issue comment with the triage report using the format below.
+
+Then move to the next issue.
+
+## Processing order
+
+1. Fetch available labels (Step 2, once at the start).
+2. Find untriaged issues (Step 1).
+3. For each issue (oldest first), run Step 3 (gather, check, label, detect 
duplicates, comment).
+
+## Comment format
+
+Use this structure for each triage comment. Use collapsed sections to keep it 
tidy.
+
+```markdown
+## 🎯 Triage report
+
+{2-3 sentence summary to help a maintainer quickly grasp the issue.}
+
+### 📊 Assessment
+
+| Dimension | Value | Reasoning |
+|---|---|---|
+| **Type** | [type:* label or "none"] | [brief] |
+| **Component** | [component:* label(s) or "none"] | [brief] |
+| **Severity** | [Severity:* label or "n/a"] | [brief] |
+| **Labels** | [all labels applied or "none"] | [brief] |
+| **Coding agent** | [Suitable / Needs more info / Not suitable] | [brief] |
+
+### 🔗 Similar issues
+
+- issue-url (duplicate/related) — [brief explanation]
+
+<details><summary>💡 Notes and suggestions</summary>
+
+{Debugging strategies, reproduction steps, resource links, sub-task 
checklists, nudges for the team.}
+
+</details>
+```
+
+If no similar issues were found, omit the "Similar issues" section. If there 
are no notes to add, omit the collapsed section.
+
+**Important**: Never close issues. Only apply labels and post comments.
diff --git a/.github/workflows/daily-repo-status.lock.yml 
b/.github/workflows/daily-repo-status.lock.yml
index 7c3d20a166e..98d26f1d559 100644
--- a/.github/workflows/daily-repo-status.lock.yml
+++ b/.github/workflows/daily-repo-status.lock.yml
@@ -1,4 +1,4 @@
-# gh-aw-metadata: 
{"schema_version":"v3","frontmatter_hash":"ae44897dc32d20c421588b31a279653abf436964ad86c58885e0edbfbb2f0416","compiler_version":"v0.76.1","strict":true,"agent_id":"copilot"}
+# gh-aw-metadata: 
{"schema_version":"v3","frontmatter_hash":"bcecce6f1d9f8df2b3eca9eb7bb1fdbac13c396c240a2dc802a96546f435b969","compiler_version":"v0.76.1","strict":true,"agent_id":"copilot","agent_model":"claude-haiku-4.5"}
 # gh-aw-manifest: 
{"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"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":"48b55a011
 [...]
 #    ___                   _   _
 #   / _ \                 | | (_)
@@ -107,7 +107,7 @@ jobs:
         env:
           GH_AW_INFO_ENGINE_ID: "copilot"
           GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI"
-          GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 
'claude-sonnet-4.6' }}
+          GH_AW_INFO_MODEL: "claude-haiku-4.5"
           GH_AW_INFO_VERSION: "1.0.52"
           GH_AW_INFO_AGENT_VERSION: "1.0.52"
           GH_AW_INFO_CLI_VERSION: "v0.76.1"
@@ -195,20 +195,20 @@ jobs:
         run: |
           bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh"
           {
-          cat << 'GH_AW_PROMPT_603e0a48f86a9470_EOF'
+          cat << 'GH_AW_PROMPT_eeb322738661ed58_EOF'
           <system>
-          GH_AW_PROMPT_603e0a48f86a9470_EOF
+          GH_AW_PROMPT_eeb322738661ed58_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/safe_outputs_prompt.md"
-          cat << 'GH_AW_PROMPT_603e0a48f86a9470_EOF'
+          cat << 'GH_AW_PROMPT_eeb322738661ed58_EOF'
           <safe-output-tools>
           Tools: create_issue, missing_tool, missing_data, noop
           </safe-output-tools>
-          GH_AW_PROMPT_603e0a48f86a9470_EOF
+          GH_AW_PROMPT_eeb322738661ed58_EOF
           cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md"
-          cat << 'GH_AW_PROMPT_603e0a48f86a9470_EOF'
+          cat << 'GH_AW_PROMPT_eeb322738661ed58_EOF'
           <github-context>
           The following GitHub context information is available for this 
workflow:
           {{#if github.actor}}
@@ -237,12 +237,12 @@ jobs:
           {{/if}}
           </github-context>
 
-          GH_AW_PROMPT_603e0a48f86a9470_EOF
+          GH_AW_PROMPT_eeb322738661ed58_EOF
           cat 
"${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md"
-          cat << 'GH_AW_PROMPT_603e0a48f86a9470_EOF'
+          cat << 'GH_AW_PROMPT_eeb322738661ed58_EOF'
           </system>
           {{#runtime-import .github/workflows/daily-repo-status.md}}
-          GH_AW_PROMPT_603e0a48f86a9470_EOF
+          GH_AW_PROMPT_eeb322738661ed58_EOF
           } > "$GH_AW_PROMPT"
       - name: Interpolate variables and render templates
         uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # 
v9.0.0
@@ -450,9 +450,9 @@ jobs:
           mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs"
           mkdir -p /tmp/gh-aw/safeoutputs
           mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs
-          cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 
'GH_AW_SAFE_OUTPUTS_CONFIG_9b6646f0d620a78f_EOF'
+          cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 
'GH_AW_SAFE_OUTPUTS_CONFIG_51571b44da85874d_EOF'
           
{"create_issue":{"close_older_issues":true,"labels":["report","daily-status"],"max":1,"title_prefix":"[repo-status]
 
"},"create_report_incomplete_issue":{},"mentions":{"enabled":false},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}}
-          GH_AW_SAFE_OUTPUTS_CONFIG_9b6646f0d620a78f_EOF
+          GH_AW_SAFE_OUTPUTS_CONFIG_51571b44da85874d_EOF
       - name: Generate Safe Outputs Tools
         env:
           GH_AW_TOOLS_META_JSON: |
@@ -658,7 +658,7 @@ jobs:
 
           mkdir -p /home/runner/.copilot
           GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null 
|| echo node)
-          cat << GH_AW_MCP_CONFIG_d075a7f45ab51044_EOF | "$GH_AW_NODE" 
"${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
+          cat << GH_AW_MCP_CONFIG_4b3a7789a6eea081_EOF | "$GH_AW_NODE" 
"${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
           {
             "mcpServers": {
               "github": {
@@ -702,7 +702,7 @@ jobs:
               "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}"
             }
           }
-          GH_AW_MCP_CONFIG_d075a7f45ab51044_EOF
+          GH_AW_MCP_CONFIG_4b3a7789a6eea081_EOF
       - name: Mount MCP servers as CLIs
         id: mount-mcp-clis
         continue-on-error: true
@@ -750,7 +750,7 @@ jobs:
           COPILOT_AGENT_RUNNER_TYPE: STANDALONE
           COPILOT_DUMMY_BYOK: dummy-byok-key-for-offline-mode
           COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
-          COPILOT_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 
'claude-sonnet-4.6' }}
+          COPILOT_MODEL: claude-haiku-4.5
           GH_AW_MCP_CONFIG: /home/runner/.copilot/mcp-config.json
           GH_AW_PHASE: agent
           GH_AW_PROMPT: /tmp/gh-aw/aw-prompts/prompt.txt
@@ -1238,7 +1238,7 @@ jobs:
           COPILOT_AGENT_RUNNER_TYPE: STANDALONE
           COPILOT_DUMMY_BYOK: dummy-byok-key-for-offline-mode
           COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
-          COPILOT_MODEL: ${{ vars.GH_AW_MODEL_DETECTION_COPILOT || 
'claude-sonnet-4.6' }}
+          COPILOT_MODEL: claude-haiku-4.5
           GH_AW_PHASE: detection
           GH_AW_PROMPT: /tmp/gh-aw/aw-prompts/prompt.txt
           GH_AW_VERSION: v0.76.1
@@ -1312,7 +1312,7 @@ jobs:
       GH_AW_DETECTION_REASON: ${{ needs.detection.outputs.detection_reason }}
       GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }}
       GH_AW_ENGINE_ID: "copilot"
-      GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }}
+      GH_AW_ENGINE_MODEL: "claude-haiku-4.5"
       GH_AW_ENGINE_VERSION: "1.0.52"
       GH_AW_WORKFLOW_ID: "daily-repo-status"
       GH_AW_WORKFLOW_NAME: "Repo Status"
diff --git a/.github/workflows/daily-repo-status.md 
b/.github/workflows/daily-repo-status.md
index 8debf570843..49b553940b8 100644
--- a/.github/workflows/daily-repo-status.md
+++ b/.github/workflows/daily-repo-status.md
@@ -16,6 +16,10 @@ permissions:
 
 network: defaults
 
+engine:
+  id: copilot
+  model: claude-haiku-4.5
+
 tools:
   github:
     # If in a public repo, setting `lockdown: false` allows
diff --git a/.github/workflows/issue-triage-agent.md 
b/.github/workflows/issue-triage-agent.md
deleted file mode 100644
index 2d382f9117c..00000000000
--- a/.github/workflows/issue-triage-agent.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-on:
-  schedule: daily around 14:00 on weekdays
-  workflow_dispatch: null
-permissions:
-  issues: read
-imports:
-- 
github/gh-aw/.github/workflows/shared/reporting.md@359795d49ada21681ab616bd4cbcb144a7387115
-- 
github/gh-aw/.github/workflows/shared/noop-reminder.md@359795d49ada21681ab616bd4cbcb144a7387115
-safe-outputs:
-  add-comment: {}
-  add-labels:
-    allowed:
-    - bug
-    - feature
-    - enhancement
-    - documentation
-    - question
-    - help-wanted
-    - good-first-issue
-emoji: 🔧
-source: 
github/gh-aw/.github/workflows/issue-triage-agent.md@359795d49ada21681ab616bd4cbcb144a7387115
-strict: true
-timeout-minutes: 5
-tools:
-  cli-proxy: true
-  github:
-    toolsets:
-    - issues
-    - labels
----
-# Issue Triage Agent
-
-List open issues in ${{ github.repository }} that have no labels. For each 
unlabeled issue, analyze the title and body, then add one of the allowed 
labels: `bug`, `feature`, `enhancement`, `documentation`, `question`, 
`help-wanted`, or `good-first-issue`.
-
-Skip issues that:
-- Already have any of these labels
-- Have been assigned to any user (especially non-bot users)
-
-After adding the label to an issue, mention the issue author in a comment 
using this format (follow shared/reporting.md guidelines):
-
-**Comment Template**:
-```markdown
-### 🏷️ Issue Triaged
-
-Hi @{author}! I've categorized this issue as **{label_name}** based on the 
following analysis:
-
-**Reasoning**: {brief_explanation_of_why_this_label}
-
-<details>
-<summary>View Triage Details</summary>
-
-#### Analysis
-- **Keywords detected**: {list_of_keywords_that_matched}
-- **Issue type indicators**: {what_made_this_fit_the_category}
-- **Confidence**: {High/Medium/Low}
-
-#### Recommended Next Steps
-- {context_specific_suggestion_1}
-- {context_specific_suggestion_2}
-
-</details>
-
-**References**: [Triage run 
§{run_id}](https://github.com/github/gh-aw/actions/runs/{run_id})
-```
-
-**Key formatting requirements**:
-- Use h3 (###) for the main heading
-- Keep reasoning visible for quick understanding
-- Wrap detailed analysis in `<details>` tags
-- Include workflow run reference
-- Keep total comment concise (collapsed details prevent noise)
-
-## Batch Comment Optimization
-
-For efficiency, if multiple issues are triaged in a single run:
-1. Add individual labels to each issue
-2. Add a brief comment to each issue (using the template above)
-3. Optionally: Create a discussion summarizing all triage actions for that run
-
-This provides both per-issue context and batch visibility.
-
-## Labels
-
-- `bug`: Indicates a problem or error in the code that needs fixing.
-- `feature`: Represents a new feature request or enhancement to existing 
functionality.
-- `enhancement`: Suggests improvements to existing features or code.
-- `documentation`: Pertains to issues related to documentation, such as 
missing or unclear docs.
-- `question`: Used for issues that are asking for clarification or have 
questions about the project.
-- `help-wanted`: Indicates that the issue is a good candidate for external 
contributions and help
-- `good-first-issue`: Marks issues that are suitable for newcomers to the 
project, often with simpler scope.

Reply via email to