К основному содержанию
правило официальный · GitHub

attester-verify-packages — правило GitHub Copilot: проверка

Проверяет имена пакетов и символов PyPI и npm через attester.dev до установки или импорта. Нужен для защиты от выдуманных зависимостей.

Установить в GitHub Copilot · Вручную: положить файлы Все способы и платформы ↓
.github/instructions/attester-verify-packages.instructions.md
Открыть на GitHub

Что делает attester-verify-packages

Правило просит GitHub Copilot проверять сторонние пакеты перед добавлением в requirements.txt, pyproject.toml или package.json, а также перед import, require и вызовом непроверенного символа. Проверка идёт через опубликованные артефакты PyPI и npm, а не через память модели. Стандартные библиотеки, локальные модули и имена, уже проверенные в этой сессии, можно пропускать.

Для пакетов используется POST-запрос к https://attester.dev/demo/v1/package/exists, для символов — к https://attester.dev/demo/v1/symbol/exists. Сервис работает без аккаунта и API-ключа, но ограничивает бесплатный доступ 25 вызовами в день на IP-клиент. При HTTP 429 или сбое сети правило сообщает причину и предлагает консервативный вариант с известным пакетом и закреплённой версией. Имя с typosquat_adjacent: true устанавливать нельзя.

Какие задачи решает

  • проверить пакет PyPI перед добавлением зависимости
  • подтвердить существование npm-пакета до установки
  • проверить символ библиотеки перед импортом
  • разобрать ошибку о пропавшем пакете или символе
  • отсеять опечатку или выдуманное имя зависимости

Примеры запросов агенту

  • Добавь зависимость в requirements.txt, но сначала проверь существование пакета PyPI.
  • Перед импортом проверь, что символ существует в npm-пакете.
  • Сборка упала на отсутствующем модуле. Проверь имя пакета и предложи реальное совпадение.

Как установить attester-verify-packages

Вручную: положить файлы

.github/instructions/attester-verify-packages.instructions.md

Поле applyTo задаёт, к каким файлам применять

По шагам, с командами для каждой платформы: AGENTS.md и CLAUDE.md: что это, кто читает и какой выбрать

Вопросы о attester-verify-packages

Как установить attester-verify-packages в GitHub Copilot?

Добавьте файл правила по пути .github/instructions/attester-verify-packages.instructions.md.

Что делает attester-verify-packages?

Правило проверяет пакеты и символы PyPI и npm через attester.dev до установки, импорта или вызова. При отрицательном ответе оно не даёт использовать имя и показывает ближайшие совпадения.

Нужен ли API-ключ для проверки?

Нет, endpoint работает без аккаунта и API-ключа. Бесплатный доступ ограничен 25 вызовами в день на IP-клиент.

Исходный текст

attester-verify-packages.instructions.md · MIT
---
description: 'Verify PyPI and npm package and symbol names against the attester.dev existence oracle before installing or importing, so hallucinated dependencies never reach code'
applyTo: '**'
---

# Verify packages before installing or importing

Use the attester.dev existence oracle before adding any third-party dependency or calling a library symbol you cannot confirm exists. The oracle answers from real published artifacts (PyPI wheels, npm tarballs), not from model memory.

This instruction exists because models invent plausible package names: a USENIX Security 2025 study measured 5.2% to 21.7% of suggested package names as nonexistent, depending on model and ecosystem.

## When to check

- Before adding a package to a dependency file (`requirements.txt`, `pyproject.toml`, `package.json`) or running an install command for a package you did not choose yourself.
- Before writing an `import`, `require`, or `from ... import` for a third-party package.
- Before calling a function, class, or constant you cannot confirm exists in the target package.
- When a build fails on a missing package or symbol: check the name before changing anything else.

Skip the check for standard library modules, local project modules, and names already verified this session.

## How to check

Free keyless endpoint, no account or API key. Quota: 25 calls per day per client IP, reset 00:00 UTC.

1. Package check: POST `https://attester.dev/demo/v1/package/exists` with body `{"ecosystem": "pypi" | "npm", "name": "<name>"}`. Proceed only when `exists` is `true`.
2. Symbol check: POST `https://attester.dev/demo/v1/symbol/exists` with body `{"ecosystem": "pypi" | "npm", "package": "<package>", "symbol": "<symbol>"}`. On a miss, prefer the `closest_match` suggestions over inventing variants.

On HTTP 429 (daily quota spent) or on network failure: state that the check was skipped and why, then continue with the most conservative option (prefer well-known packages and pinned versions).

## What to do with answers

- `exists: true`: proceed. When pinning, prefer the version in `latest_version`.
- `exists: false`: do not install or import. Report the negative to the user together with the oracle's closest real names (`adjacent_to`, `closest_match`) and ask which one was meant.
- `typosquat_adjacent: true`: treat as a strong signal that the name is a typo or a hallucination. Never install the flagged name.

## Higher volume

The free tier covers normal editing sessions. A paid route without the daily cap exists for high-volume use; see the service docs for details.

© github · MIT · github/awesome-copilot

Похожие правила IDE

Всё по теме «Безопасность» →

Из того же набора732

Весь набор →
azure-functions-csharp Правило для GitHub Copilot, которое задаёт стандарты разработки Azure Functions на C# в изолированной модели worker. Пригодится, если пишете функции и хотите единый стиль в проекте. ★ 40 418звёзд репо azure-durable-functions-csharp Задаёт стандарты разработки Azure Durable Functions на C# в изолированной модели воркера. Помогает писать детерминированные оркестраторы и настраивать очереди. ★ 40 418звёзд репо azure-devops-pipelines Правило задаёт практики для Azure DevOps Pipeline YAML: структура, тесты, безопасность и деплой. Пригодится для проверки и ведения pipeline-файлов. ★ 40 418звёзд репо aws-appsync Задаёт правила разработки обработчиков AWS AppSync Event API на рантайме APPSYNC_JS. Помогает писать код с учётом строгих ограничений среды без промисов и стандартных блоков ошибок. ★ 40 418звёзд репо astro Правило задаёт Copilot стандарты разработки на Astro 7: островная архитектура, Content Layer API, TypeScript и серверный рендеринг по умолчанию. ★ 40 418звёзд репо aspnet-rest-apis Направляет GitHub Copilot при создании REST API на ASP.NET Core 10, сопоставляя контроллеры и Minimal API. Применяется к файлам *.cs и *.json. ★ 40 418звёзд репо arch-linux Правило задаёт рекомендации для инструкций и скриптов по Arch Linux: от обновления через pacman до проверки служб. Пригодится, когда Copilot помогает администрировать систему. ★ 40 418звёзд репо apex Правило задаёт Copilot стиль кода Apex: массовые операции, имена классов и методов, проверка прав доступа. Пригодится, если вы пишете триггеры и классы на платформе Salesforce. ★ 40 418звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой