Skip to content

feat(skills): add github-issue-triage skill for automated backlog maintenance#24958

Draft
cocosheng-g wants to merge 21 commits intomainfrom
triage-skill
Draft

feat(skills): add github-issue-triage skill for automated backlog maintenance#24958
cocosheng-g wants to merge 21 commits intomainfrom
triage-skill

Conversation

@cocosheng-g
Copy link
Copy Markdown
Contributor

@cocosheng-g cocosheng-g commented Apr 8, 2026

Introduces a new workspace-specific skill github-issue-triage to automate and standardize the GitHub issue maintenance workflow for the Gemini CLI repository. This skill helps maintainers and oncallers quickly process the backlog by automating repetitive analysis and enforcing project triage policies.

Component Breakdown

The skill is located in .gemini/skills/github-issue-triage and consists of:

  • analyze_issue.cjs: A deterministic Node.js script that fetches issue metadata (labels, timeline, cross-references) and calculates staleness/inactivity (30/60 day thresholds) and response deadlines (14 days).
  • find_issues.cjs: A helper script to find the oldest updated issues needing triage.
  • triage_rules.md: A comprehensive procedural guide for the agent covering:
    • Step 1 (Resolution Check): Automated closure for resolved issues, with critical mistake prevention to thoroughly read comments for community-provided fixes or workarounds.
    • Step 1.1 (Existing Feature Check): Mandatory grep_search to verify if a requested feature already exists natively before proceeding with triage.
    • Step 1.2 (Closed PR Re-evaluation): Critical evaluation and restoration of community PRs incorrectly closed by bots (with apology and sync instructions).
    • Step 1.5 (Pending Response Check): Automated closure for issues where more info was requested but no response received for 14 days, unless other community members have already provided the context.
    • Step 2 (Assignee and Inactivity Handling): Strict boolean verification of inactivity flags to prevent date-based guessing, and context-aware feature request identification.
    • Step 3 (Vagueness Check): Automated requests for reproduction steps for incomplete reports.
    • Step 6 (Triage Summary): Categorization into Help-wanted with required brief explanations.

Key Features & Design Decisions

  • Help-wanted Whitelist: Transitions away from using a maintainer only label, instead using help wanted as the sole whitelist label for community contributions. Explicitly defines counter-examples (e.g., core architecture, IPC, telemetry) that should not receive the label.
  • Bot-Closed PR Handling: Implements a "restoration with apology" flow to improve the contributor experience for those whose work was swept by the 14-day inactivity bot.
  • Mistake Prevention: Incorporates explicit safeguards against LLM skimming, enforcing deep comment reading and mandatory codebase searches for feature requests.

How to Use

Inside the gemini-cli repository, simply ask the agent:

  • "Use github-issue-triage to triage issues" (for discovery mode)
  • "Triage issue fix .env check #123" (for targeted mode)

Fixes #24960

@cocosheng-g cocosheng-g requested a review from a team as a code owner April 8, 2026 20:14
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Note

Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported.

@gemini-cli
Copy link
Copy Markdown
Contributor

gemini-cli bot commented Apr 8, 2026

Hi @cocosheng-g, thank you so much for your contribution to Gemini CLI! We really appreciate the time and effort you've put into this.

We're making some updates to our contribution process to improve how we track and review changes. Please take a moment to review our recent discussion post: Improving Our Contribution Process & Introducing New Guidelines.

Key Update: Starting January 26, 2026, the Gemini CLI project will require all pull requests to be associated with an existing issue. Any pull requests not linked to an issue by that date will be automatically closed.

Thank you for your understanding and for being a part of our community!

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 8, 2026

Size Change: -4 B (0%)

Total Size: 34 MB

Filename Size Change
./bundle/chunk-GN5PKLNC.js 0 B -3.16 MB (removed) 🏆
./bundle/chunk-IIHVYCUQ.js 0 B -3.47 kB (removed) 🏆
./bundle/chunk-SXO4DHDZ.js 0 B -14.8 MB (removed) 🏆
./bundle/core-KCXUYDVW.js 0 B -45.6 kB (removed) 🏆
./bundle/devtoolsService-D7JOOMDH.js 0 B -28.4 kB (removed) 🏆
./bundle/gemini-AQWWYJFD.js 0 B -552 kB (removed) 🏆
./bundle/interactiveCli-FANRV2CH.js 0 B -1.64 MB (removed) 🏆
./bundle/oauth2-provider-REV7JLY6.js 0 B -9.16 kB (removed) 🏆
./bundle/chunk-K7S2LQ2Z.js 3.16 MB +3.16 MB (new file) 🆕
./bundle/chunk-RKCYZ326.js 14.8 MB +14.8 MB (new file) 🆕
./bundle/chunk-VCLMZEBN.js 3.47 kB +3.47 kB (new file) 🆕
./bundle/core-EXLX5H4R.js 45.6 kB +45.6 kB (new file) 🆕
./bundle/devtoolsService-4XS6TOR4.js 28.4 kB +28.4 kB (new file) 🆕
./bundle/gemini-TSCDQNXS.js 552 kB +552 kB (new file) 🆕
./bundle/interactiveCli-FW2CYRGB.js 1.64 MB +1.64 MB (new file) 🆕
./bundle/oauth2-provider-JQZNKG44.js 9.16 kB +9.16 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size Change
./bundle/bundled/third_party/index.js 8 MB 0 B
./bundle/chunk-34MYV7JD.js 2.45 kB 0 B
./bundle/chunk-5AUYMPVF.js 858 B 0 B
./bundle/chunk-5PS3AYFU.js 1.18 kB 0 B
./bundle/chunk-664ZODQF.js 124 kB 0 B
./bundle/chunk-DAHVX5MI.js 206 kB 0 B
./bundle/chunk-ETSDHTGW.js 1.96 MB 0 B
./bundle/chunk-IUUIT4SU.js 56.5 kB 0 B
./bundle/chunk-RJTRUG2J.js 39.8 kB 0 B
./bundle/cleanup-CTXCUBW2.js 0 B -856 B (removed) 🏆
./bundle/devtools-36NN55EP.js 696 kB 0 B
./bundle/dist-T73EYRDX.js 356 B 0 B
./bundle/events-XB7DADIJ.js 418 B 0 B
./bundle/gemini.js 4.97 kB 0 B
./bundle/getMachineId-bsd-TXG52NKR.js 1.55 kB 0 B
./bundle/getMachineId-darwin-7OE4DDZ6.js 1.55 kB 0 B
./bundle/getMachineId-linux-SHIFKOOX.js 1.34 kB 0 B
./bundle/getMachineId-unsupported-5U5DOEYY.js 1.06 kB 0 B
./bundle/getMachineId-win-6KLLGOI4.js 1.72 kB 0 B
./bundle/memoryDiscovery-YL35JRSL.js 980 B 0 B
./bundle/multipart-parser-KPBZEGQU.js 11.7 kB 0 B
./bundle/node_modules/@google/gemini-cli-devtools/dist/client/main.js 222 kB 0 B
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.js 229 kB 0 B
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.js 13.4 kB 0 B
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/types.js 132 B 0 B
./bundle/sandbox-macos-permissive-open.sb 890 B 0 B
./bundle/sandbox-macos-permissive-proxied.sb 1.31 kB 0 B
./bundle/sandbox-macos-restrictive-open.sb 3.36 kB 0 B
./bundle/sandbox-macos-restrictive-proxied.sb 3.56 kB 0 B
./bundle/sandbox-macos-strict-open.sb 4.82 kB 0 B
./bundle/sandbox-macos-strict-proxied.sb 5.02 kB 0 B
./bundle/src-QVCVGIUX.js 47 kB 0 B
./bundle/tree-sitter-7U6MW5PS.js 274 kB 0 B
./bundle/tree-sitter-bash-34ZGLXVX.js 1.84 MB 0 B
./bundle/cleanup-L2GI3WRW.js 856 B +856 B (new file) 🆕

compressed-size-action

@gemini-cli gemini-cli bot added the area/platform Issues related to Build infra, Release mgmt, Testing, Eval infra, Capacity, Quota mgmt label Apr 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/platform Issues related to Build infra, Release mgmt, Testing, Eval infra, Capacity, Quota mgmt

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement automated and standardized GitHub issue triage workflow

1 participant