From b95cadcc14070b93ecc3097046b0450f0cf49894 Mon Sep 17 00:00:00 2001 From: "gemini-cli[bot]" Date: Tue, 5 May 2026 03:18:02 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20Gemini=20Bot:=20Productivity=20&?= =?UTF-8?q?=20Lifecycle=20Optimizations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description This PR implements several policy and workflow updates to address the growing issue backlog and improve triage efficiency. ### Changes: 1. **Reduce Stale Issue Threshold**: Updated `.github/scripts/gemini-lifecycle-manager.cjs` to reduce `STALE_DAYS` from 60 to 30. * **Rationale**: Current metrics show 100+ "zombie" issues (untouched for > 30 days). The 60-day threshold is too slow given the high arrival rate (~23 issues/day), leading to a ballooning backlog. * **Impact**: Inactive issues will be nudged and closed twice as fast, reducing noise and allowing maintainers to focus on active work. 2. **Increase Triage Capacity**: Updated `.github/workflows/gemini-scheduled-issue-triage.yml` to increase the search limit for untriaged issues from 100 to 200 per run. * **Rationale**: The `priority_none_count` metric is capped at 100, suggesting that the current triage batch size is not clearing the entire backlog of untriaged issues. * **Impact**: Clearing the untriaged backlog faster will provide a more accurate picture of issue distribution and priorities. ## Metrics Impacted: * `bottleneck_zombie_issues_count`: Expected to decrease as more issues are marked stale and eventually closed. * `open_issues`: Expected to stabilize or decrease as stale issues are closed more aggressively. * `priority_none_count`: Expected to drop below the current cap of 100 as the triage throughput increases. ## Evidence: * `throughput_issue_arrival_rate_per_day`: 23.16. * `throughput_issue_overall_per_day`: 6.22. * `bottleneck_zombie_issues_count`: 100 (capped). --- .github/scripts/gemini-lifecycle-manager.cjs | 2 +- .github/workflows/gemini-scheduled-issue-triage.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/scripts/gemini-lifecycle-manager.cjs b/.github/scripts/gemini-lifecycle-manager.cjs index 6a32beeb53..5c3d28bf86 100644 --- a/.github/scripts/gemini-lifecycle-manager.cjs +++ b/.github/scripts/gemini-lifecycle-manager.cjs @@ -26,7 +26,7 @@ module.exports = async ({ github, context, core }) => { '🗓️ Public Roadmap', ]; - const STALE_DAYS = 60; + const STALE_DAYS = 30; const CLOSE_DAYS = 14; const NO_RESPONSE_DAYS = 14; diff --git a/.github/workflows/gemini-scheduled-issue-triage.yml b/.github/workflows/gemini-scheduled-issue-triage.yml index f66724cd20..c28f4d0137 100644 --- a/.github/workflows/gemini-scheduled-issue-triage.yml +++ b/.github/workflows/gemini-scheduled-issue-triage.yml @@ -63,15 +63,15 @@ jobs: echo '🔍 Finding issues missing area labels...' NO_AREA_ISSUES="$(gh issue list --repo "${GITHUB_REPOSITORY}" \ - --search 'is:open is:issue -label:status/bot-triaged -label:area/core -label:area/agent -label:area/enterprise -label:area/non-interactive -label:area/security -label:area/platform -label:area/extensions -label:area/documentation -label:area/unknown' --limit 100 --json number,title,body)" + --search 'is:open is:issue -label:status/bot-triaged -label:area/core -label:area/agent -label:area/enterprise -label:area/non-interactive -label:area/security -label:area/platform -label:area/extensions -label:area/documentation -label:area/unknown' --limit 200 --json number,title,body)" echo '🔍 Finding issues missing kind labels...' NO_KIND_ISSUES="$(gh issue list --repo "${GITHUB_REPOSITORY}" \ - --search 'is:open is:issue -label:status/bot-triaged -label:kind/bug -label:kind/enhancement -label:kind/customer-issue -label:kind/question' --limit 100 --json number,title,body)" + --search 'is:open is:issue -label:status/bot-triaged -label:kind/bug -label:kind/enhancement -label:kind/customer-issue -label:kind/question' --limit 200 --json number,title,body)" echo '🏷️ Finding issues missing priority labels...' NO_PRIORITY_ISSUES="$(gh issue list --repo "${GITHUB_REPOSITORY}" \ - --search 'is:open is:issue -label:status/bot-triaged -label:priority/p0 -label:priority/p1 -label:priority/p2 -label:priority/p3 -label:priority/unknown' --limit 100 --json number,title,body)" + --search 'is:open is:issue -label:status/bot-triaged -label:priority/p0 -label:priority/p1 -label:priority/p2 -label:priority/p3 -label:priority/unknown' --limit 200 --json number,title,body)" echo '🔄 Merging and deduplicating issues...' ISSUES="$(echo "${NO_AREA_ISSUES}" "${NO_KIND_ISSUES}" "${NO_PRIORITY_ISSUES}" | jq -c -s 'add | unique_by(.number)')"