tree 5f1f654f365a8ecb1a3bcd6ff3763d70ce54de4a
parent d20a814fcb7189ee1eeb7fbbe3ff08898fae2224
author Kate Lovett <katelovett@google.com> 1768956740 -0600
committer GitHub <noreply@github.com> 1768956740 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJpcCNUCRC1aQ7uu5UhlAAA1pQQABYa2rLqDf18bl4s7MWsj6iV
 OQF6M1VXnAOIWGxITwYllJeSqd+kMtJFXnIJZ7r3b9Km2+N7PjOi6LVaMALEBRx9
 vFAdlqhc9g9vZyPFZx1n42H/CnYLXfQsusWz0f9AgwTc8Dm0n2s5jLEqpoaHpA5v
 Wyh+kdjD1Yny3NLj9Xc5UfZt3d8sAqpntEE4648PCrxt+mOPQt4JrPqROIOzBCxr
 4h65J1R1N3FJCh4124t3yXXxlSyraMioHETERgo9tyxaibXyaKxRcov8pdM5R0hF
 QwJptuYP1tFKRUjKP3K+nLasZcRzbkUoPNsSt1jbsl3s9Epc19E8MOCVus6+xXqw
 r2tBIgawY4LNOavHkGs485Cx+XSRywo78VqDlJL0qOEb2hkAK96DvVyyQZUesNbF
 aU7REoW9EKQE6CTmAFcyZqzoeIAmC2hye/oxkuT7uEBPGLfXqXM7BOfY1I3qUV28
 haAGC9GYjyravCJN57BbEDhxs1Tii5RIVHlhIKrMxAhHVtb0EC2LRmrTupdBVqMc
 vNvIrlrA4M87afcmpIgJzfAAACqXzWbpoatTGCyM7ZIdyGYu2Xg6JMiKfRYd4Zsa
 vazL4i7BoAIa1O5gknD5tCfbi+bxwlPcbHU8k0gjHBshkGu5F64PKQISvvqclKJi
 FY8SFSLG44U+wFhqVa9k
 =8X+4
 -----END PGP SIGNATURE-----
 

Update triage docs (#181193)

* Turns down `team-games`. Already confirmed triage bot updated and
triage team notified.
* Updates text input and guidance links wrt selection issues.
* Adds omitted teams from untriaged link

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md