eslint-plugin-custom-rule

USE THIS when asked to create a new eslint plugin rule for the eslint-plugin-cds package

npx skills add https://github.com/coinbase/cds --skill eslint-plugin-custom-rule

Writing new rules

Process

When asked to create a new custom rule for the package, follow these steps in order:

  1. Run the scaffold-new-rule.mjs script found at packages/eslint-plugin-cds/scripts/scaffold-new-rule.mjs. The script should be used every time a new rule is created. This script will ensure that the same format is used for all custom rules created.
  2. Ask the user what the custom rule should do. If the user doesn't provide enough context in the prompt, ask for clarification or follow up. Do not make assumptions about how a custom rule is meant to behave or what guideline it's supposed to enforce. After gathering the needed context, ask the user which package(s) the rule should be applied to.
  3. Once you have all the needed context, ask the user to provide at least one valid and one invalid example demonstrating when the custom rule is being followed or not. This will help you to write tests for the custom rule in a future step. Similar to step 2, if the provided examples do not give you enough context to understand the difference between a valid versus invalid example, ask the user for clarification. Do not proceed until the user has provided at least one valid and one invalid example and you have enough needed context to understand a valid and invalid example.
  4. Based on the user's provided context, fill in the rule file generated under the src/rules directory. The main section you should fill out is the create() function key that's in the rule object. You can refer to packages/eslint-plugin-cds/src/rules/custom-rule.ts for more documentation on how custom rules are formatted and information to enter. Custom rules should use the AST visitor methods to determine when rules have been violated and should report warnings in the linter. Custom rules should also verify the packages being imported before performing AST parsing. If a file doesn't import a package specified in step 2, do not report an error in the custom rule. Most custom rules already do this. As an example, you can refer to the ImportDeclaration() function in the no-v7-imports rule found here: packages/eslint-plugin-cds/src/rules/no-v7-imports.ts. The rule only reports an error when one of the CDS_PACKAGES packages is used,
  5. Using the context from step 3, write in valid and invalid test cases for the test file generated from the scaffold-new-rule.mjs script. The valid and invalid examples provided in step 3 should be included. Based off those examples and the rule criteria provided in step 2, you can add additional valid or invalid examples.

Directory placement

Custom rules should always be placed in the packages/eslint-plugin-cds/src/rules directory. Tests for each custom rule should be placed in the packages/eslint-plugin-cds/tests directory.

Больше skills от coinbase

git.repo-manager
coinbase
git.repo-manager — устанавливаемый навык для AI-агентов, опубликованный coinbase/cds.
official
agentic-wallet
coinbase
Операции с криптокошельком через CLI awal — вход, проверка балансов, отправка USDC/ETH/POL/SOL, обмен токенов, пополнение кошелька и использование платежного протокола x402 для…
official
authenticate-wallet
coinbase
Аутентификация кошелька на основе одноразового кода (OTP), отправленного по электронной почте, с проверкой и контролем статуса. Двухэтапный процесс входа: инициируйте запрос, указав email, чтобы получить 6-значный OTP, затем подтвердите его с помощью flowId и кода для завершения аутентификации. Включает правила проверки ввода для email, flowId и OTP, чтобы предотвратить внедрение команд перед их выполнением. Обеспечивает проверку статуса, запросы баланса, получение адреса и доступ к окну кошелька через сопутствующие команды CLI. Все команды поддерживают вывод в формате --json для машинно-читаемого...
official
fund
coinbase
Пополнение кошелька USDC через Coinbase Onramp или прямой перевод. Открывает сопутствующий интерфейс, где пользователи выбирают предустановленные суммы ($10, $20, $50) или произвольные значения, а также способы оплаты: Apple Pay, дебетовая карта, банковский перевод или счет Coinbase. Поддерживает несколько способов оплаты с разным временем зачисления: мгновенно для карт и Apple Pay, 1–3 дня для банковских переводов ACH. Средства зачисляются в USDC в сети Base; также пользователи могут отправить USDC напрямую на адрес кошелька через npx awal@2.0.3...
official
monetize-service
coinbase
Разверните платный API-эндпоинт, который другие агенты могут обнаруживать и оплачивать через протокол x402. Взимает USDC за запрос на Base с использованием протокола оплаты HTTP 402; клиенты платят подписанными транзакциями, без необходимости в API-ключах или аккаунтах. Автоматически регистрирует эндпоинты в x402 Bazaar для обнаружения агентами при объявлении расширений обнаружения. Поддерживает несколько ценовых уровней, маршруты с подстановочными знаками и несколько вариантов оплаты на эндпоинт с использованием промежуточного ПО Express. Создан на основе @x402/express и @x402/core...
official
pay-for-service
coinbase
Вызов платных API на Base с автоматической оплатой в USDC через протокол x402. Выполняет HTTP-запросы (GET, POST и т.д.) к конечным точкам с поддержкой x402, при этом атомарные платежи в USDC обрабатываются автоматически. Поддерживает настройку запросов через метод, JSON-тело, параметры запроса и пользовательские заголовки. Включает контроль платежей: установка максимальной суммы USDC на запрос и группировка связанных операций с идентификаторами корреляции. Требует аутентификации кошелька и достаточного баланса USDC; проверяет все пользовательские данные для предотвращения shell...
official
query-blockchain-data
coinbase
Запрос ончейн-данных блокчейна на Base с использованием CDP SQL API через x402. Используйте, когда вы или ваш пользователь хотите просмотреть ончейн-информацию о декодированных блоках,…
official
query-onchain-data
coinbase
Запрос ончейн-данных на Base с использованием SQL и оплатой x402 за каждый запрос. Доступ к декодированным событиям, транзакциям и блокам через CoinbaseQL — диалект SQL на основе ClickHouse, поддерживающий JOIN, CTE, подзапросы и стандартные функции. Доступны три основные таблицы: base.events (декодированные логи смарт-контрактов), base.transactions (полные данные транзакций) и base.blocks (метаданные блоков). Требуется фильтрация по индексированным полям (event_signature, address, block_timestamp) в запросах событий, чтобы избежать полного сканирования таблицы...
official