analyze-github-flake

Разобрать нестабильную проверку Flutter

flutter/flutterОт разработчика платформы
179 716звёзд33 668форковУ всего репозитория

Что получите

Обзор происходящего с группировкой неудачных сборок по типам ошибок.

Что передать

Ссылка на обращение о нестабильной проверке в flutter/flutter.

Автопроверка файлов

Проверен состав файлов. Запуск не тестировался. Что проверено

Оценки пользователей

Загрузка оценок…
Ваш опыт
Обсудить →

Как использовать

Помогает разработчикам Flutter понять общую картину периодических сбоев проверки из обращения на GitHub. Собирает связанные неудачные сборки, изучает журналы и разделяет сбои по типам.

  1. Передайте ссылку на обращение, созданное ботом fluttergithubbot.
  2. Соберите сборки из описания и комментариев бота со ссылками на дополнительные случаи.
  3. Сопоставьте журналы сбоев и выделите повторяющиеся категории.

Условия работы

  • Нужны установленные Dart, Git и GitHub CLI с настроенной авторизацией.
  • Поддерживаются обращения от fluttergithubbot с заголовком вида «<ci.yaml target> is X% flaky».
  • Работа ограничена анализом: файлы не изменяют, исправления и поиск точной первопричины в коде Flutter не выполняют.

Пример запроса после установки

Разбери обращение fluttergithubbot о нестабильной Windows-проверке в flutter/flutter: изучи связанные сборки и сгруппируй ошибки, чтобы команда увидела основные типы сбоев.

Пример составлен по инструкции автора; результат запуска не проверялся.

Основание: инструкция закреплённой версии

Для установки

Node.js, npm и Git для команды выше. Подключения и инструменты для работы скилла настраиваются отдельно.

Совместимые агенты

Совместимость указана для инструкций. Запуск в каждом приложении не тестировался; для веб-чата способ подключения может отличаться.

Файлы скилла

GitHub
Читать инструкцию SKILL.md

Исходный текст закреплённой версии.

---
name: analyze-github-flake
description:
  Expertise in analyzing flake github issues in the flutter/flutter repository. Use when a user wants to analyze the flakiness of a specific link to a flutter github issue.
---
<!--
Host assumptions:
    Installed and on path:
        * dart
        * git
        * gh
    Had authentication setup:
        * gh
-->
# Flake analysis instructions

*Rules*
You should not modify ANY files - you are only to provide an analysis of why the specific check is flaking.
You should only look at the issue body, as well as comments containing links to additional builds.
You should not attempt to solve the flakes or pinpoint root causes inside of flutter/, just provide a high level summary of what is going on and bucket the failures into distinct types.

## Collecting the list of failing builds and obtaining the logs

Github issue urls take the form of https://github.com/flutter/flutter/issues/<issue-number>. Where issue-number is a number.

Get information about the issue by using `gh issue view <issue-number> --repo flutter/flutter --json=author,body,id,labels,number,state,title,url`

For example to find information about the issue https://github.com/flutter/flutter/issues/174116 you can call `gh issue view 174116 --repo flutter/flutter --json=author,body,id,labels,number,state,title,url`

At this point there are two possible cases. If the issue
1. Is filed by fluttergithubbot
2. Has a title of the format "<ci.yaml target> is X% flaky"
Then it is of the type we are looking to analyze. If it is not, you should short circuit here, either notifying the user that the issue is not filed by the github flake bot (if they directly asked for the skill to be invoked) or otherwise continue with your previous work (if they did not).

If the previous conditions are met, the title will contain the name of the flaking check, and the body will contain urls which link to instances where the check failed or flaked, each on a new line, directly after "Flaky builds:". You should also inspect the comments and find each comment made by "login": "fluttergithubbot", and extract the urls from there as well (the format will be the same, with an example flake at the top, and the full list immediately after the "Flaky builds:" header).

To find information about the specific failure take one of the urls listed in the issue body.
That link takes the format `"https://ci.chromium.org/ui/p/flutter/builders/<bucket>/<check_name>/<buildNumber>/overview",`

Example `https://ci.chromium.org/ui/p/flutter/builders/prod/Windows%20plugin_test/16247/overview` where `prod` is the <bucket>, `Windows%20plugin_test` is the <check_name> and `16247` is the <buildNumber>.


Then use the <buildNumber> to get the test logs metadata by running the following command.

```
curl 'https://cr-buildbucket.appspot.com/prpc/buildbucket.v2.Builds/GetBuild' \
  -H 'accept: application/json' \
  -H 'accept-language: en-US,en;q=0.9,es;q=0.8' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -H 'origin: https://ci.chromium.org' \
  -H 'pragma: no-cache' \
  -H 'priority: u=1, i' \
  -H 'referer: https://ci.chromium.org/' \
  -H 'sec-ch-ua: "Chromium";v="146", "Not-A.Brand";v="24", "Google Chrome";v="146"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "macOS"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: cross-site' \
  -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36' \
  -H 'x-return-encrypted-headers: all' \
  --data-raw '{"builder":{"project":"flutter","bucket":"<bucket>","builder":"<check_name>"},"buildNumber":<buildNumber>,"mask":{"fields":"id,builder,builderInfo,number,canceledBy,createdBy,createTime,startTime,endTime,cancelTime,status,statusDetails,summaryMarkdown,output,steps,tags,schedulingTimeout,executionTimeout,gracePeriod,ancestorIds,retriable"}}'
```
Ignore the characters `)]}'` that start the response and treat the rest like json.

Inspect the content of the logs to determine the cause of the failure.

Do this for each of the urls in the issue body. Collect the logs for each of the specific failures, and categorize them by the type of failure in to a high level summary.

Проверка и особенности

Автоматическая проверка источника и файлов

Автоматически проверены публичный репозиторий, лицензия, заголовок SKILL.md, состав текстового пакета и Git-хеш каждого файла. Пакеты с исполняемым кодом и срабатываниями применённых статических правил не включены. Ручной аудит всех инструкций и функциональный запуск не проводились. Внешние инструменты и сервисы не проверялись. Проверка не гарантирует безопасность.

У репозитория было 179,128 звёзд GitHub при проверке 2026-09-27. Порог добавления — строго больше 100 000. Звёзды относятся ко всему репозиторию, а не к качеству или установкам скилла.

Есть ссылки на внешние инструкции или инструменты: их содержимое и доступность могут изменяться отдельно от скилла.

Проверка состава
27.09.2026
Проверенная версия
8db55268667c
Файлы с кодом
Не указаны в данных проверки
Изменения на GitHub
Нужна повторная проверкаПоследняя проверка: 11.10.2026
Как мы проверяем скиллы

Репозиторий и лицензия

flutter/flutter
179 716 звёзд33 668 форков

Это показатели всего репозитория, а не установки скилла. Снимок требует обновления.

Последняя активность GitHub
11.10.2026
Лицензия
BSD-3-Clause
Добавлен в каталог
27.09.2026
Полный текст лицензии
Copyright 2014 The Flutter Authors. All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the following
      disclaimer in the documentation and/or other materials provided
      with the distribution.
    * Neither the name of Google Inc. nor the names of its
      contributors may be used to endorse or promote products derived
      from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Ещё в этой категории

Все в категории

Обсуждение

Правила

Пользовались этим скиллом? Делитесь опытом без регистрации. Все комментарии проверяет модератор.

Мои комментарии