Поиск паттернов кода с помощью regex приводит к ложным срабатываниям и пропущенным совпадениям. Этот навык предоставляет шаблоны поиска на основе AST, которые понимают структуру кода, обеспечивая точный поиск кода и рефакторинг для JavaScript, TypeScript, Python, Go и Rust.
Скачать ZIP навыка
Загрузить в Claude
Перейдите в Settings → Capabilities → Skills → Upload skill
Включите и начните использовать
Протестировать
Использование «structural-search». Найдите все вызовы eval в кодовой базе
Ожидаемый результат:
- Найдено 3 вызова eval:
- - src/auth.js:42 - eval(userInput)
- - src/utils.js:15 - eval(dynamicCode)
- - src/parser.js:88 - eval(config.script)
- Рекомендация: Замените eval на более безопасные альтернативы, такие как JSON.parse для данных или конструкторы Function для конкретных случаев использования.
Аудит безопасности
БезопасноThis is a documentation-only skill containing pattern references for the ast-grep CLI tool. No executable code, network calls, filesystem access, or external command execution detected.
Оценка качества
Что вы можете построить
Обнаружение уязвимостей
Находите проблемы безопасности, такие как вызовы eval, присваивания innerHTML и жестко закодированные учетные данные во всей кодовой базе.
Безопасный рефакторинг
Предварительно просматривайте структурные изменения перед их применением, гарантируя отсутствие непреднамеренных модификаций.
Миграция паттернов
Преобразуйте паттерны, такие как require в import или var в const, во всех проектах.
Попробуйте эти промпты
Найдите все вызовы [function_name] с помощью структурного поиска ast-grep. Покажите пути к файлам и номера строк.
Ищите паттерны [eval/innerHTML/innerText/command injection], которые могут быть уязвимостями безопасности.
Предварительно просмотрите рефакторинг [old_pattern] в [new_pattern] без применения изменений. Сначала покажите все совпадения.
Создайте YAML-правило ast-grep, которое обнаруживает [anti-pattern] с сообщением [warning_message].
Лучшие практики
- Всегда предварительно просматривайте рефакторинг с помощью sg -p 'pattern' -r 'replacement' перед использованием --rewrite для применения изменений.
- Создавайте YAML-правила в директории rules/ и запускайте sg scan для применения стандартов кодирования во всей организации.
- Объединяйте ast-grep с pre-commit хуками для обнаружения проблем до того, как код попадет в репозиторий.
Избегать
- Использование regex для поиска кода вместо AST-паттернов, что приводит к пропуску структурных совпадений и ложным срабатываниям.
- Запуск sg scan --fix без предварительного просмотра изменений, что может внести непреднамеренные модификации.
- Применение широких паттернов, таких как $_ == $_, без понимания контекста, что захватывает легитимные паттерны кода.