Skip to content

Commit 08d4912

Browse files
authored
Add notes for gemini triage in CLI (#8620)
This adds: - Notes for gemini to help with issue triage - Notes for us on how to set up gemini CLI with GitHub-related extensions - And some unrelated formatting for the md files I touched
1 parent 7892947 commit 08d4912

File tree

2 files changed

+87
-16
lines changed

2 files changed

+87
-16
lines changed

docs/Triaging.md

Lines changed: 77 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,89 @@
11
## Inbox Tracking
2-
3-
The [Inbox Query](https://github.com/flutter/flutter-intellij/issues?q=is%3Aissue%20state%3Aopen%20-label%3AP0%20-label%3AP1%20-label%3AP2%20-label%3AP3) contains all the
2+
3+
The [Inbox Query](https://github.com/flutter/flutter-intellij/issues?q=is%3Aissue%20state%3Aopen%20-label%3AP0%20-label%3AP1%20-label%3AP2%20-label%3AP3)
4+
contains all the
45

56
* open issues that
67
* have no priority assignment.
7-
8+
89
The inbox tracker should do the following initial triage:
910

1011
* Is the issue invalid? Close it, with a brief explanation.
11-
* Is the issue a general question, like _"How can I make a blinking button?"_ Close it and redirect to [discord](https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md); fodder for a redirecting response can be harvested from this [message](https://gist.github.com/pq/9c8293516b055b369e34e7410c52d2d8).
12-
* Is the issue better filed against Flutter? Move it using the GitHub [issue transfer UI](https://docs.github.com/en/issues/tracking-your-work-with-issues/administering-issues/transferring-an-issue-to-another-repository#transferring-an-open-issue-to-another-repository).
13-
* Is the issue better filed against the Dart SDK? Consider creating a new issue on the [Dart SDK](https://github.com/dart-lang/sdk/issues) or ask the author to do so (and close the original issue).
14-
* Is the issue an obvious duplicate? Close it with a pointer to the duplicated issue.
15-
* Is this issue a bug? Add the `bug` label.
16-
* Is this issue a feature? Add the `enhancement` label.
12+
* Is the issue a general question, like _"How can I make a blinking button?"_ Close it and redirect
13+
to [discord](https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md); fodder for a redirecting response can be harvested
14+
from this [message](https://gist.github.com/pq/9c8293516b055b369e34e7410c52d2d8).
15+
* Is the issue better filed against Flutter? Move it using the
16+
GitHub [issue transfer UI](https://docs.github.com/en/issues/tracking-your-work-with-issues/administering-issues/transferring-an-issue-to-another-repository#transferring-an-open-issue-to-another-repository).
17+
* Is the issue better filed against the Dart SDK? Consider creating a new issue on the [Dart SDK](https://github.com/dart-lang/sdk/issues)
18+
or ask the author to do so (and close the original issue).
19+
* Is the issue an obvious duplicate? Close it with a pointer to the duplicated issue.
20+
* Is this issue a bug? Add the `bug` label.
21+
* Is this issue a feature? Add the `enhancement` label.
1722
* Assign a priority label.
18-
* For P0s, let the team know and find an immediate owner. Fixes for P0s get patched into the current stable release.
19-
* For P1s, assign an owner and ping them. We'll plan to get fixes for P1s into the next stable release.
23+
* For P0s, let the team know and find an immediate owner. Fixes for P0s get patched into the current stable release.
24+
* For P1s, assign an owner and ping them. We'll plan to get fixes for P1s into the next stable release.
2025
* Milestone assignment:
21-
* For very high priority issues, assign to the current or upcoming milestones; these are ones you know people plan to work on imminently
22-
* For things that have a high likelihood of being triaged them into the next milestone during planning, assign to the 'On Deck' milestone
23-
* For things we're not willing to close, assign to the 'Backlog' milestone
26+
* For very high priority issues, assign to the current or upcoming milestones; these are ones you know people plan to work on imminently
27+
* For things that have a high likelihood of being triaged them into the next milestone during planning, assign to the 'On Deck'
28+
milestone
29+
* For things we're not willing to close, assign to the 'Backlog' milestone
2430
* Assign any relevant `topic-` labels, and
25-
* Edit the issue's title to best represent our new understanding of the issue; this will save time for every other person who needs to skim the issue titles in the future.
31+
* Edit the issue's title to best represent our new understanding of the issue; this will save time for every other person who needs to skim
32+
the issue titles in the future.
2633

2734
## PR Bots
28-
- if an issue with the `waiting for customer response` label is not responded to in 14 days, it's automatically closed with an appropriate message.
35+
36+
- if an issue with the `waiting for customer response` label is not responded to in 14 days, it's automatically closed with an appropriate
37+
message.
38+
39+
## Using gemini CLI for triage
40+
41+
### Basic setup with GitHub extension
42+
43+
Set up gemini CLI to have extensions relevant for triage:
44+
45+
1. Get a GitHub personal access token ([instructions](https://github.com/settings/personal-access-tokens/new))
46+
2. Install the GitHub Gemini extension
47+
`gemini extensions install https://github.com/github/github-mcp-server` ([doc with more details](https://github.com/github/github-mcp-server/blob/main/docs/installation-guides/install-gemini-cli.md))
48+
3. Start `gemini` and verify that you have the extension by calling `/extensions list`
49+
50+
Once in the gemini CLI, you can say something like "help me with triage". Example response:
51+
52+
```
53+
✦ Here is the first issue to triage:
54+
55+
Issue #458: Can't debug single line lambda in IntelliJ
56+
57+
* URL: https://github.com/flutter/flutter-intellij/issues/458
58+
* Summary: It's not possible to set a breakpoint on the body of a single-line lambda function. The IDE sets the breakpoint on the containing method call instead of the lambda's inner expression.
59+
* Labels: topic-debugging
60+
* Last Updated: 2025-09-29
61+
62+
This looks like a long-standing feature request. It seems useful for debugging. I would suggest the following:
63+
64+
* Priority: This could be a P2 or P3. It's a useful feature but there is a workaround (expanding the lambda to a block body).
65+
* Action: I can try to reproduce this with a minimal project to confirm it's still an issue.
66+
67+
What do you think?
68+
```
69+
70+
Notes:
71+
- There are instructions for gemini in the `tool/triage/GEMINI.md` file, and gemini should be able to access this whenever you start
72+
`gemini` in the flutter-intellij directory.
73+
- This extension can also help with reviewing PRs, or any other tasks that require context from GitHub.
74+
75+
### (Experimental) Embeddings extension for comparing issues and search
76+
77+
The general concept of embeddings is that for each issue in our repository, gemini can create a local "embedding" document, which is a
78+
space-efficient vector representation of the issue. Then, the vector representations can quickly be compared to each other or to a query (
79+
once the query is also turned into an embedding), so that we can do things like generate groups of duplicate issues or run a fuzzy search of
80+
issues. For more information, see [embeddings doc](https://ai.google.dev/gemini-api/docs/embeddings).
81+
82+
1. Get a gemini API key (there are internal instructions for this)
83+
2. Install the embeddings extension: `gemini extensions install https://github.com/jakemac53/embeddings_playground`
84+
3. Similarly as above, you can enter gemini and check that it's active with `/extensions list`
85+
86+
To use this extension, you can ask things like "generate a list of duplicate issues that are open"
87+
88+
Note: Jake put this extension together over a few days during our hackathon, and I've only barely tried it. So there are probably many ways
89+
it can be improved.

tool/triage/GEMINI.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Steps for triage when a user asks for help in the CLI:
2+
- Find the latest open issues in the flutter/flutter-intellij repo that don't have a priority label.
3+
- Consider the most recently updated issues first. Start presenting issues one at a time to the user.
4+
- For each issue, give suggestions such as:
5+
- Close the issue if it's not relevant anymore (e.g. it's been fixed, the code it's referencing is outdated, etc.)
6+
- Suggest how to reproduce if it looks like it may be easy to reproduce locally
7+
- Ask for a reproduction with a small project if reproduction may be hard locally
8+
- Ask for more information and apply a waiting for response label
9+
- Note a code pointer for the issue if it could be a good first issue for an external contributor
10+
- Suggest a priority and other labels that may be relevant along with reasoning for the priority

0 commit comments

Comments
 (0)