RepoPilot: балл 0–100 для GitHub-репозитория до клона, и почему это про MCP, а не про «ещё один линтер»

Три развилки для соло-разработчика с ассистентом в цикле: слепо выполнить установку из README, довериться ссылке из чата на skill или MCP-сервер либо вставить owner/repo в проверку до git clone. В кейсе на AWS Builders автор RepoPilot связывает вторую ветку с кампанией FakeGit: сотни подделок под AI skills и MCP-серверы и агент на Lambda с Bedrock, который считает оценку детерминированным Python, а не «угадыванием» модели.
Подделки под skills и MCP: когда агент сам находит ловушку
Кампания AgentBaiting (Island) насчитывает порядка 7 600 вредоносных репозиториев GitHub и более 800, маскирующихся под навыки для ИИ или MCP-серверы; у операции тысячи поддельных профилей и миллионы загрузок release-артефактов. Исследователи описывают сценарий: ассистент без подсказанной ссылки может опираться на убедительный README и рекомендовать опасный репозиторий.
Для vibe coding речь не о абстрактной «безопасности репо», а о доверии к цепочке «модель предложила → вы клонируете → выполняете curl | bash». Рядом с поддельными репозиториями в том же сюжете фигурирует SANDWORM_MODE (Socket, февраль 2026): подмена локальных конфигов MCP в средах вроде Claude Desktop, Cursor, VS Code Continue и Windsurf.
Угроза смещается к README и метаданным, которые читает и человек, и агент. Проверка до первого запуска логичнее, чем расследование после инцидента.
Как устроен score 0–100: инструменты считают, модель объясняет
RepoPilot выставляет репозиторию оценку от 0 до 100 (и буквенный грейд) как взвешенную сумму пяти измерений по метаданным и файлам, а не как «мнение LLM»:
| Измерение | Вес | Смысл |
|---|---|---|
| Safety | 30% | Опасные шаги установки, postinstall, base64, вызовы на «сырые» IP; критическая находка ограничивает итог |
| Trust | 25% | Звёзды, возраст, форки, контрибьюторы, паттерн накрутки |
| Maintenance | 20% | Коммиты, issues, релизы |
| Maturity | 15% | Возраст проекта, «след» команды |
| Documentation | 10% | README, лицензия, примеры |
Принцип автора: Amazon Nova Pro на Amazon Bedrock наррирует факты, которые уже собрали tools («The model only narrates the facts the tools produce»). На развёрнутой Lambda в демо pallets/flask получает 98/100, langchain-ai/langchain даёт 100, а у ollama/ollama низкий грейд из‑за официального curl … | sh в инструкции: это предупреждение об установке, а не ярлык «малварь».
Семь tools агента и стек AWS
Фронт: AWS Lambda (Python 3.12) и API Gateway; локально автор предлагает Strands Agents SDK. Семь инструментов (имена из README проекта):
assess_repo_trust: доверие к репо и владельцуscan_setup_for_danger: опасные шаги в README и install-скриптахbuild_first_run_plan: упорядоченный путь clone → runcheck_readme_against_reality: расхождения README и файловgenerate_env_example: черновик.env.examplepreflight_requirements: версии из манифестовexplain_error: разбор ошибки первого запуска
В документации порядок такой: сначала safety-tools, затем first-run, затем наррация Nova Pro. Open source здесь мотивирован тем, что скан можно развернуть на своём AWS-аккаунте или гонять CLI локально, чтобы данные не уходили в чужой SaaS.
Ввод в UI: строка owner/repo для скоринга и плана первого запуска либо username для профиля и топ-репозиториев по звёздам. Есть demo (без настройки) и live (вызов агента на AWS с fallback на demo при сбое).
Где агент слаб и где цифры расходятся
Ограничения перечислены явно: поверхностный анализ без распаковки бинарников; высокий балл не спасает от вредоносного релиза «завтра»; звёзды и возраст можно наращивать. Оценка advisory: не замена ревью кода и не гарантия supply chain.
В README самого RepoPilot для той же угрозы указано более 17 000 репозиториев со ссылкой на отдельную публикацию. Эта цифра не совпадает с 7 600 в публикации AWS Builders и отчёте Island; счётчики не смешиваем в одном утверждении.
Заявлены 25 тестов, в том числе проверка 200 случайных репозиториев на инварианты весов и cap при critical flag. Это аргумент детерминизма скоринга без облака на этапе unit-тестов.
Если ассистент в Cursor или другом агентном контуре предлагает «поставь MCP» или «склонируй skill из GitHub», имеет смысл вставить паузу: проверить owner/repo тем же классом сигналов, что RepoPilot вынес в Safety и Trust, прежде чем выполнять install-команды из README. Это не отменяет ручной осторожности с секретами и CI, но снижает риск AgentBaiting, когда доверие строится на красивом описании репозитория.
Исходники под лицензией Apache-2.0 на GitHub, есть live demo и walkthrough на YouTube; развёртывание описано как self-hosted AWS или локальный CLI.
Источники
- Пост AWS Builders на Dev.to (публикация 19 октября 2026): Dev.to
- Island, AgentBaiting / FakeGit: https://www.island.io/blog/agentbaiting-how-800-fake-ai-skills-and-mcp-servers-delivered-malware
- Артефакты индикаторов Island: https://github.com/island-io/island-security-research-artifacts/tree/main/agentbaiting
- Репозиторий RepoPilot (README, лицензия, tools): https://github.com/simplynadaf/repopilot-your-first-run-agent
- Live demo: https://simplynadaf.github.io/repopilot-your-first-run-agent/
- Видео walkthrough: https://youtu.be/CZXNQrqXG7I
- Статья AWS Builder Center: https://builder.aws.com/content/3KSGqk5omLzBXfpe6VIOritaAQn/score-any-github-repo-0-100-before-you-clone-it-an-aws-ai-agent