OpenZeppelin Skills — плагин

Набор скиллов для разработки и обновления смарт-контрактов на библиотеках OpenZeppelin в Solidity, Cairo, Stylus, Stellar и Sui

  • 223 ★ репозитория
  • Последний коммит
  • AGPL-3.0
Плагин

Расширенный доступ

Почему такой уровень

  • Скилл генерации контрактов запускает npm-пакет `contracts-cli` и ходит в сеть
  • Контракты управляют ценностью после развертывания, поэтому ошибки в них дороги, а аудит остается обязательным
Все причины и проверки

openzeppelin/openzeppelin-skills

Установка

Работает в

В терминале, через SkillFoxx CLI

npx skillfoxx add plugins/openzeppelin-skills

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Скилл генерации контрактов запускает npm-пакет `contracts-cli` и ходит в сеть
  • Контракты управляют ценностью после развертывания, поэтому ошибки в них дороги, а аудит остается обязательным

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

OpenZeppelin Skills — двенадцать скиллов от OpenZeppelin для безопасной разработки смарт-контрактов. Скилл `develop-secure-contracts` подсказывает агенту, как собирать контракты на библиотеках OpenZeppelin Contracts, и использует для этого пакет @openzeppelin/contracts-cli, который генерирует эталонные реализации. Для пяти платформ есть пары скиллов настройки проекта и обновления контрактов: Solidity, Cairo, Stylus, Stellar и Sui Move. Отдельный скилл `review-sui-contracts` разбирает интеграцию OpenZeppelin Contracts for Sui, а `migrate-defender-to-cre` оценивает, реализует и проверяет перенос рабочих процессов Defender на Chainlink CRE. Скиллы ставятся через Skills CLI, как плагин Claude Code или копированием папок.

Для кого. Разработчикам смарт-контрактов, которые используют библиотеки OpenZeppelin и ведут проекты на нескольких блокчейн-платформах.

Подходит, если

  • Новый проект на Solidity, Cairo, Stylus, Stellar или Sui строится с библиотеками OpenZeppelin
  • Контракты на OpenZeppelin переезжают на новую версию библиотеки
  • Интеграцию OpenZeppelin Contracts for Sui в проекте на Move надо проверить
  • Рабочие процессы Defender переносят на Chainlink CRE

Не подходит, если

  • Нужен полноценный аудит перед запуском в основную сеть: скиллы направляют разработку и не заменяют аудиторов
  • Проект не использует OpenZeppelin: скиллы построены вокруг его библиотек
  • Нужны скиллы для других сетей вне пяти перечисленных платформ

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

Настрой проект на Solidity с OpenZeppelin Contracts и собери токен ERC-20 с ограничением доступа по ролям

Ограничения

Лицензия AGPL-3.0: проверьте, подходит ли она вашему проекту. Скилл `develop-secure-contracts` требует пакета @openzeppelin/contracts-cli и доступа в сеть при установке. Скиллы ведут разработку, но развертывание контрактов и проверку безопасности перед запуском остаются за командой. Для каждой платформы нужен свой инструментарий: компилятор, фреймворк и кошелек для тестовой сети агент не устанавливает за вас без вашего согласия.

Как отключить. Удалите нужные папки скиллов из ~/.claude/skills/ или выполните /plugin uninstall openzeppelin-skills, если ставили плагином.

Частые вопросы

Какие платформы поддерживаются?

Solidity, Cairo, Stylus, Stellar и Sui Move. Для каждой есть скилл настройки проекта, для всех кроме Sui еще и скилл обновления контрактов, для Sui отдельный скилл проверки интеграции.

Как поставить скиллы в Claude Code?

Через плагин: /plugin marketplace add OpenZeppelin/openzeppelin-skills и /plugin install openzeppelin-skills. Можно и командой npx skills add OpenZeppelin/openzeppelin-skills или копированием папок skills/ в ~/.claude/skills.

Что такое Defender и зачем скилл миграции?

Defender — сервис OpenZeppelin для автоматизации операций с контрактами. Скилл `migrate-defender-to-cre` помогает оценить рабочие процессы Defender, реализовать их на Chainlink CRE и проверить результат; справочные файлы лежат в `references`.

Зачем нужен `contracts-cli`?

Пакет @openzeppelin/contracts-cli генерирует эталонные реализации контрактов. Скилл `develop-secure-contracts` использует их, чтобы агент изучал рекомендуемые приемы интеграции и не изобретал структуру с нуля.

Заменяют ли скиллы аудит?

Нет. Они направляют агента при разработке на проверенных библиотеках, но независимый аудит перед запуском в основную сеть остается отдельным шагом команды.

Обсуждение

Вопросов и отзывов пока нет.

Плагины
Официальный

Восемь скиллов Stellar Development Foundation: контракты на Rust, SDK, RPC, активы, кошельки и аудит безопасности

СкиллМинимальный доступ59Звезды репозитория
Официальный

Скилл Solana Foundation для разработки на Solana: Anchor и Pinocchio, клиенты на @solana/kit, кошельки, тесты Surfpool и LiteSVM, безопасность

СкиллРасширенный доступ590Звезды репозитория

Девять скиллов для разработки на Chainlink: CRE, CCIP, Data Feeds, Data Streams, VRF и другие продукты сети

СкиллРасширенный доступ128Звезды репозитория

Поправки к знаниям ИИ-агентов об Ethereum: актуальный газ, адреса контрактов, L2, стандарты и безопасность смарт-контрактов

СкиллМинимальный доступ304Звезды репозитория

73 скилла для конвейера разработки: план, код, ревью и QA, а в конце готовый PR с метками в вашем репозитории.

СкиллШирокий доступ276Звезды репозитория

Официальный реестр OpenHands: 71 скилл и 11 плагинов для ревью кода, GitHub, Bitbucket, Docker и CI, пригодные другим агентам.

СкиллРасширенный доступ183Звезды репозитория

Коротко о README

README коротко описывает набор: три способа установки, таблица из двенадцати скиллов с назначением каждого и раздел о Contracts CLI, который использует `develop-secure-contracts`. Для разработчиков проекта есть заметки в папке `dev` о принципах и тестировании.

Бейдж для README

Исходный SKILL.md

---
name: develop-secure-contracts
description: "Develop secure smart contracts using OpenZeppelin Contracts libraries. Use when users need to integrate OpenZeppelin library components — including token standards (ERC20, ERC721, ERC1155), access control (Ownable, AccessControl, AccessManager), security primitives (Pausable, ReentrancyGuard), governance (Governor, timelocks), or accounts (multisig, account abstraction) — into existing or new contracts. Covers pattern discovery from library source, CLI contract generators, and library-first integration. Supports Solidity, Cairo, Stylus, Stellar, and Sui Move."
license: AGPL-3.0-only
metadata:
  author: OpenZeppelin
---

# Develop Secure Smart Contracts with OpenZeppelin

## Core Workflow

### Understand the Request Before Responding

For conceptual questions ("How does Ownable work?"), explain without generating code. For implementation requests, proceed with the workflow below.

### CRITICAL: Always Read the Project First

Before generating code or suggesting changes:

1. **Search the user's project** for existing contracts (`Glob` for `**/*.sol`, `**/*.cairo`, `**/*.rs`, `**/*.move`, etc.)
2. **Read the relevant contract files** to understand what already exists
3. **Default to integration, not replacement** — when users say "add pausability" or "make it upgradeable", they mean modify their existing code, not generate something new. Only replace if explicitly requested ("start fresh", "replace this").

If a file cannot be read, surface the failure explicitly — report the path attempted and the reason. Ask whether the path is correct. Never silently fall back to a generic response as if the file does not exist.

### Fundamental Rule: Prefer Library Components Over Custom Code

Before writing ANY logic, search the OpenZeppelin library for an existing component:

1. **Exact match exists?** Import and use it directly — inherit, implement its trait, compose with it. Done.
2. **Close match exists?** Import and extend it — override only functions the library marks as overridable (virtual, hooks, configurable parameters).
3. **No match exists?** Only then write custom logic. Confirm by browsing the library's directory structure first.

**NEVER copy or embed library source code into the user's contract.** Always import from the dependency so the project receives security updates. Never hand-write what the library already provides:
- Never write a custom `paused` modifier when `Pausable` or `ERC20Pausable` exists
- Never write `require(msg.sender == owner)` when `Ownable` exists
- Never implement ERC165 logic when the library's base contracts already handle it

### Methodology

The primary workflow is **pattern discovery from library source code**:

1. Inspect what the user's project already imports
2. Read the dependency source and docs in the project's installed packages

Сообщить о проблеме